:root{--project-accent:var(--primary-accent);--project-bg:var(--background-card);--project-border:var(--card-border-subtle);--project-code-bg:var(--primary-accent-light);--project-code-text:var(--text-primary);--project-link-button-bg:var(--background-container-frame);--project-link-button-text:var(--text-nav-links);--project-text:var(--text-primary);--project-text-secondary:var(--text-secondary);scrollbar-color:var(--project-accent) var(--project-bg);scrollbar-width:thin}.project-detail-container{margin:auto;max-width:900px}h1{border-bottom:3px solid var(--project-accent);color:var(--project-accent);font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold);margin-bottom:30px;margin-top:0;padding-bottom:12px}h2{border-bottom:1px solid var(--project-border);color:var(--project-text);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:18px;margin-top:35px;padding-bottom:8px}li,p{color:var(--project-text-secondary);font-size:var(--font-size-md);margin-bottom:12px}ul{list-style-type:"❋ ";padding-left:25px}.skills-list{display:flex;flex-wrap:wrap;gap:.7em 1.2em;list-style:none;margin:2em 0 0;padding:0}.skills-list li{align-items:center;background:var(--project-code-bg);border-radius:6px;box-shadow:0 1px 4px rgba(80,60,120,.07);color:var(--text-primary);display:flex;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);gap:.5em;padding:.4em 1em}.project-meta{align-items:center;background-color:var(--project-code-bg);border:1px solid var(--project-border);border-radius:12px;display:flex;flex-direction:row;flex-wrap:wrap;gap:1em;justify-content:center;margin-bottom:1.5em;padding:20px}.mini-demo-link-btn,.mini-demo-toggle-btn,.project-meta .button-link{align-items:center;border:transparent;border-radius:8px;display:inline-flex;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);gap:.5em;justify-content:center;padding:10px 18px;text-decoration:none;transition:background-color .2s,transform .1s}.button-link{background-color:var(--project-link-button-bg);color:var(--project-link-button-text)}.mini-demo-link-btn,.mini-demo-toggle-btn{background-color:var(--primary-accent);color:#fff}.project-meta .button-link:hover{text-decoration:none;transform:translateY(-2px)}.mini-demo-link-btn:hover,.mini-demo-toggle-btn:hover{background:#7a33e0;color:#fff;text-decoration:none}.project-meta .icon{margin-right:8px}img,video{border:1px solid var(--project-border);border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.07);height:auto;margin-top:15px;max-width:100%}::-webkit-scrollbar{background:var(--project-bg);width:12px}::-webkit-scrollbar-thumb{background:var(--project-accent);border:3px solid var(--project-bg);border-radius:8px}::-webkit-scrollbar-corner{background:var(--project-bg)}.project-demo-input,.project-demo-select{background:var(--project-bg,#fff);border:2px solid var(--project-border,#e8e1f5);border-radius:6px;box-sizing:border-box;color:var(--project-text,#2c004f);font-size:var(--font-size-md);padding:.5em;width:100%;appearance:none;-webkit-appearance:none;-moz-appearance:none;transition:background .18s,border-color .18s}.project-demo-input:focus,.project-demo-select:focus{background:var(--project-code-bg,#f8f5ff);border-color:var(--project-accent,#8f50ff);outline:0}.project-demo-label{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--project-text,#2c004f);margin-bottom:.3em;display:block;letter-spacing:.01em;transition:color .18s}.project-log-output{margin-top:1.5em;background-color:#0d0d0d;border:1px solid #333;border-radius:12px;padding:1em;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:var(--font-size-sm);color:#ccc;min-height:120px;white-space:pre-wrap;word-break:break-word;overflow-y:auto;max-height:360px;display:flex;flex-direction:column}.project-log-output div{line-height:1.4;margin-bottom:.2em}.log-timestamp{color:#888}.log-appname{color:#f0f;font-weight:var(--font-weight-bold)}.log-level-info{color:#4caf50;font-weight:var(--font-weight-bold)}.log-level-warn{color:#ffd600;font-weight:var(--font-weight-bold)}.log-level-error{color:#f44336;font-weight:var(--font-weight-bold)}.log-level-debug{color:#2196f3;font-weight:var(--font-weight-bold)}.log-message{color:#ccc}.toggle-container{display:flex;flex-direction:column;align-items:flex-start;margin-top:.5em}.toggle-switch{position:relative;display:inline-block;width:48px;height:28px;vertical-align:middle;margin-top:.3em}.toggle-switch input[type=checkbox]{opacity:0;width:0;height:0}.toggle-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--primary-accent-light,#d1bfff);border-radius:28px;transition:background .3s;box-shadow:0 2px 8px rgba(80,60,120,.07);box-sizing:border-box}.toggle-switch .slider:before{content:"";position:absolute;left:4px;top:4px;width:20px;height:20px;background:var(--primary-accent-dark,#6a2fcc);border-radius:50%;transition:transform .3s,background .3s;box-shadow:0 1px 4px rgba(80,60,120,.13)}.toggle-switch .slider::after{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:32px;border:2px solid var(--primary-accent,#8f50ff);opacity:0;transform:scale(.95);transition:opacity .22s,transform .22s;pointer-events:none}.toggle-switch input:checked+.slider{background:var(--primary-accent,#8f50ff)}.toggle-switch input:checked+.slider:before{background:var(--primary-accent,#8f50ff);transform:translateX(20px)}.toggle-switch input:focus+.slider::after,.toggle-switch input:hover+.slider::after{opacity:1;transform:scale(1)}