:root{--text:#4b4855;--text-muted:#6b6375;--text-h:#08060d;--bg:#fff;--bg-subtle:#faf9fc;--surface:#fff;--border:#e5e4e7;--accent:#aa3bff;--accent-strong:#7e14ff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff66;--success:#1a9c5c;--success-bg:#1a9c5c1a;--danger:#d33a4b;--danger-bg:#d33a4b1a;--warning-bg:#ffb02024;--code-attr:#b45309;--shadow:#140a2814 0 10px 24px -8px, #140a280f 0 2px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--text:#c2bfc9;--text-muted:#9ca3af;--text-h:#f5f4f7;--bg:#131319;--bg-subtle:#1a1a22;--surface:#1c1c25;--border:#2e2e3a;--accent:#c084fc;--accent-strong:#a855f7;--accent-bg:#c084fc29;--accent-border:#c084fc73;--success:#4ade80;--success-bg:#4ade8024;--danger:#f87171;--danger-bg:#f8717124;--warning-bg:#ffb0201f;--code-attr:#f59e0b;--shadow:#00000073 0 10px 24px -8px, #0000004d 0 2px 6px -2px}}:root[data-theme=dark]{--text:#c2bfc9;--text-muted:#9ca3af;--text-h:#f5f4f7;--bg:#131319;--bg-subtle:#1a1a22;--surface:#1c1c25;--border:#2e2e3a;--accent:#c084fc;--accent-strong:#a855f7;--accent-bg:#c084fc29;--accent-border:#c084fc73;--success:#4ade80;--success-bg:#4ade8024;--danger:#f87171;--danger-bg:#f8717124;--warning-bg:#ffb0201f;--code-attr:#f59e0b;--shadow:#00000073 0 10px 24px -8px, #0000004d 0 2px 6px -2px}*{box-sizing:border-box}body{background:var(--bg-subtle);margin:0}h1,h2,h3{font-family:var(--sans);color:var(--text-h);font-weight:600}p{margin:0}button{font:inherit;color:inherit}a{color:var(--accent-strong)}#root{flex-direction:column;min-height:100svh;display:flex}.theme-toggle{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text-h);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,background .15s;display:flex}.theme-toggle svg{display:block}.theme-toggle:hover{border-color:var(--accent-border);background:var(--accent-bg)}.resume-test-spacer{height:112px}.resume-test{z-index:50;box-sizing:border-box;border:1px solid var(--accent-border);background:var(--surface);width:min(680px,100% - 32px);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:14px;padding:14px 14px 14px 18px;animation:.25s ease-out resume-test-in;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.resume-test:before{content:"";border-radius:inherit;background:var(--accent-bg);pointer-events:none;position:absolute;inset:0}.resume-test>*{position:relative}.resume-test-emoji{font-size:1.8rem;line-height:1}.resume-test-text{flex-direction:column;flex:1;gap:2px;min-width:0;margin:0;display:flex}.resume-test-text strong{color:var(--text-h)}.resume-test-text span{color:var(--text-muted);overflow-wrap:anywhere;font-size:.92rem}.resume-test-button{background:var(--accent-strong);color:#fff;border-radius:10px;flex:none;align-items:center;min-height:48px;padding:10px 20px;font-weight:600;text-decoration:none;display:inline-flex}.resume-test-button:hover{background:var(--accent)}.resume-test-button:focus-visible,.resume-test-close:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.resume-test-close{width:40px;height:40px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:none;font-size:1.1rem}.resume-test-close:hover{background:var(--accent-bg);color:var(--text-h)}@keyframes resume-test-in{0%{opacity:0;transform:translate(-50%,16px)}}@media (prefers-reduced-motion:reduce){.resume-test{animation:none}}@media (width<=560px){.resume-test-spacer{height:168px}.resume-test{flex-wrap:wrap;gap:10px 12px;padding:14px}.resume-test-text{flex-basis:calc(100% - 100px)}.resume-test-button{flex:1 0 100%;order:1;justify-content:center}}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.brand{color:var(--text-h);align-items:center;gap:8px;font-size:1.1rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{font-size:1.3rem}.app-nav{flex:1;justify-content:center;gap:8px;display:flex}.app-nav-link{color:var(--text-muted);border-radius:999px;padding:8px 16px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.app-nav-link:hover{color:var(--text-h);background:var(--bg-subtle)}.app-nav-link.active{color:var(--accent-strong);background:var(--accent-bg)}.app-header-actions{align-items:center;gap:8px;display:flex}.app-teacher-link{color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:8px 12px;font-size:.9rem;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s}.app-teacher-link-text{margin-left:6px}.app-teacher-link:hover{color:var(--text-h);border-color:var(--accent-border)}.app-body{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:32px 24px 56px}@media (width<=640px){.app-header{flex-wrap:wrap;gap:6px;padding:12px 16px}.app-nav{flex-basis:100%;order:3;justify-content:flex-start;gap:0}.app-nav-link{padding:8px}.app-teacher-link{padding:8px 10px}.app-teacher-link-text{display:none}}.sp-demo{--sp-brand:#1d4ed8;--sp-brand-ink:#fff;text-align:left;flex-direction:column;align-items:flex-start;gap:14px;width:100%;display:flex}.sp-region--header{--sp-tone:#7e22ce}.sp-region--nav{--sp-tone:#1d4ed8}.sp-region--main{--sp-tone:#15803d}.sp-region--section{--sp-tone:#b45309}.sp-region--article{--sp-tone:#be185d}.sp-region--footer{--sp-tone:#0f766e}.sp-demo{--sp-on-tone:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sp-demo{--sp-brand:#60a5fa;--sp-brand-ink:#0b0b10;--sp-on-tone:#0b0b10}:root:not([data-theme=light]) .sp-region--header{--sp-tone:#c084fc}:root:not([data-theme=light]) .sp-region--nav{--sp-tone:#60a5fa}:root:not([data-theme=light]) .sp-region--main{--sp-tone:#4ade80}:root:not([data-theme=light]) .sp-region--section{--sp-tone:#fbbf24}:root:not([data-theme=light]) .sp-region--article{--sp-tone:#f472b6}:root:not([data-theme=light]) .sp-region--footer{--sp-tone:#2dd4bf}}:root[data-theme=dark] .sp-demo{--sp-brand:#60a5fa;--sp-brand-ink:#0b0b10;--sp-on-tone:#0b0b10}:root[data-theme=dark] .sp-region--header{--sp-tone:#c084fc}:root[data-theme=dark] .sp-region--nav{--sp-tone:#60a5fa}:root[data-theme=dark] .sp-region--main{--sp-tone:#4ade80}:root[data-theme=dark] .sp-region--section{--sp-tone:#fbbf24}:root[data-theme=dark] .sp-region--article{--sp-tone:#f472b6}:root[data-theme=dark] .sp-region--footer{--sp-tone:#2dd4bf}.sp-toggle{color:var(--text-h);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;font-size:1.05rem;font-weight:600;display:inline-flex}.sp-toggle input{opacity:0;width:1px;height:1px;position:absolute}.sp-toggle-track{background:var(--border);border-radius:999px;flex-shrink:0;width:48px;height:28px;transition:background .2s;position:relative}.sp-toggle-track:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.sp-toggle input:checked+.sp-toggle-track{background:var(--accent)}.sp-toggle input:checked+.sp-toggle-track:after{transform:translate(20px)}.sp-toggle input:focus-visible+.sp-toggle-track{outline:3px solid var(--accent-border);outline-offset:2px}.sp-browser{border:1px solid var(--border);background:var(--surface);width:100%;box-shadow:var(--shadow);border-radius:12px;overflow:hidden}.sp-browser-bar{border-bottom:1px solid var(--border);background:var(--bg-subtle);align-items:center;gap:6px;padding:8px 12px;display:flex}.sp-browser-bar span{border:2px solid var(--text-muted);border-radius:50%;width:10px;height:10px}.sp-browser-bar em{color:var(--text-muted);border:1px solid var(--border);background:var(--surface);border-radius:999px;flex:1;margin-left:10px;padding:2px 12px;font-size:.85rem;font-style:normal}.sp-page{color:var(--text);flex-direction:column;gap:12px;padding:14px 12px 12px;font-size:.95rem;line-height:1.5;display:flex}.sp-page h3,.sp-page h4,.sp-page p{margin:0}.sp-region{outline-offset:-2px;border-radius:8px;outline:2px solid #0000;transition:outline-color .2s,background .2s;position:relative}.sp-region--header{border-bottom:3px solid var(--sp-brand);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding:14px 18px;display:flex}.sp-brand{align-items:center;gap:12px;display:flex}.sp-brand strong{color:var(--text-h);font-size:1.15rem;display:block}.sp-brand small{color:var(--text-muted)}.sp-logo{background:var(--sp-brand);width:42px;height:42px;color:var(--sp-brand-ink);border-radius:10px;place-items:center;font-weight:800;display:grid}.sp-region--nav{flex-wrap:wrap;gap:4px;padding:12px 4px 4px;display:flex}.sp-region--nav a{color:var(--text-h);border-radius:999px;padding:6px 12px;font-weight:600;text-decoration:none}.sp-region--nav a:hover,.sp-region--nav a[aria-current=page]{background:var(--sp-brand);color:var(--sp-brand-ink)}.sp-region--main{flex-direction:column;gap:22px;padding:22px 18px 18px;display:flex}.sp-region--section{flex-direction:column;gap:16px;margin:0 -10px;padding:14px 10px 10px;display:flex}.sp-section-title{color:var(--text-h);font-size:1.2rem}.sp-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px 12px;display:grid}.sp-region--article{border:1px solid var(--border);background:var(--bg-subtle);flex-direction:column;gap:6px;padding:16px 14px 14px;display:flex}.sp-region--article h4{color:var(--text-h);font-size:1.05rem}.sp-region--article p{margin-bottom:10px}.sp-meta{color:var(--text-muted);margin:auto -6px 0;padding:10px 6px 4px;font-size:.85rem}.sp-page-footer{background:var(--bg-subtle);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:14px 18px 12px;font-size:.85rem;display:flex}.sp-browser--tags .sp-region{outline-color:var(--sp-tone);background-color:color-mix(in srgb, var(--sp-tone) 7%, transparent)}.sp-browser--tags .sp-region--article{background-color:color-mix(in srgb, var(--sp-tone) 7%, var(--bg-subtle))}.sp-region:before{content:attr(data-tag);z-index:1;background:var(--sp-tone);color:var(--sp-on-tone);font-family:var(--mono);opacity:0;pointer-events:none;border-radius:999px;padding:0 8px;font-size:.75rem;font-weight:700;line-height:18px;transition:opacity .2s,transform .2s;position:absolute;top:-9px;left:8px;transform:scale(.8)}.sp-browser--tags .sp-region:before{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.sp-region,.sp-region:before,.sp-toggle-track,.sp-toggle-track:after{transition:none}}.join-card{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:16px;margin-bottom:32px;padding:20px 24px}.join-card-head{align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.join-card-emoji{font-size:2rem;line-height:1}.join-card h2{color:var(--text-h);margin:0 0 2px;font-size:1.25rem}.join-card-head p{color:var(--text-muted);margin:0}.join-card-fields{grid-template-columns:180px 1fr auto;align-items:end;gap:12px;display:grid}.join-card-field{flex-direction:column;gap:6px;min-width:0;display:flex}.join-card-field span{color:var(--text-h);font-size:.9rem;font-weight:600}.join-card-field input{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);width:100%;min-height:48px;color:var(--text-h);font:inherit;border-radius:10px;padding:10px 14px;font-size:1.05rem}.join-card-code input{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;font-weight:700}.join-card-field input:focus{outline:2px solid var(--accent-border);border-color:var(--accent-border)}.join-card-submit{border:1px solid var(--accent-strong);background:var(--accent-strong);color:#fff;min-height:48px;font:inherit;cursor:pointer;border-radius:10px;padding:10px 22px;font-weight:600}.join-card-submit:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.join-card-submit:disabled{opacity:.6;cursor:default}.join-card-error{background:var(--danger-bg);color:var(--text-h);border-radius:8px;margin:12px 0 0;padding:8px 12px}@media (width<=767px){.join-card{padding:16px}.join-card-fields{grid-template-columns:1fr}}.home-page h1{margin:0 0 6px;font-size:2.2rem}.home-search{max-width:100%;margin-bottom:32px}.home-search-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);font:inherit;box-shadow:var(--shadow);border-radius:14px;padding:14px 18px;font-size:1.05rem}.home-search-input:focus{border-color:var(--accent-border);outline:none}.home-search-empty{color:var(--text-muted);margin-top:12px}.home-search-results{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.home-search-result{color:inherit;border:1px solid var(--border);background:var(--surface);border-radius:12px;align-items:center;gap:14px;padding:12px 16px;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.home-search-result:hover,.home-search-result:focus-visible{border-color:var(--accent-border);background:var(--accent-bg)}.home-search-result-emoji{flex-shrink:0;font-size:1.6rem}.home-search-result-meta{color:var(--accent-strong);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:600;display:block}.home-search-result-title{color:var(--text-h);font-weight:600;line-height:1.35;display:block}.home-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;display:grid}.home-card{text-align:left;color:inherit;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:20px;padding:32px;text-decoration:none;transition:transform .15s,border-color .15s;display:block}.home-card:hover{border-color:var(--accent-border);transform:translateY(-2px)}.home-card-emoji{margin-bottom:14px;font-size:2.6rem;display:block}.home-card h2{margin:0 0 8px;font-size:1.4rem}.home-card p{color:var(--text-muted);margin:0;line-height:1.5}.link-list{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;margin:0;padding:0;list-style:none;overflow:hidden}.link-list li+li{border-top:1px solid var(--border)}.link-list-row{color:inherit;text-align:left;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;transition:background .15s;display:flex}.link-list-row:hover,.link-list-row:focus-visible{background:var(--accent-bg)}.link-list-row:focus-visible{outline:2px solid var(--accent-border);outline-offset:-2px}.link-list-icon{background:var(--accent-bg);width:48px;height:48px;color:var(--accent-strong);border-radius:12px;flex-shrink:0;place-items:center;font-size:1.6rem;font-weight:700;display:grid}.link-list-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.link-list-title{color:var(--text-h);font-size:1.05rem;font-weight:600;line-height:1.35}.link-list-description{color:var(--text-muted);font-size:.9rem;line-height:1.45}.link-list-meta{color:var(--accent-strong);background:var(--accent-bg);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:4px 12px;font-size:.82rem;font-weight:600}.link-list-chevron{color:var(--text-muted);flex-shrink:0;font-size:1.5rem;line-height:1;transition:transform .15s,color .15s}.link-list-row:hover .link-list-chevron{color:var(--accent-strong);transform:translate(3px)}@media (width<=560px){.link-list-row{flex-wrap:wrap;align-items:flex-start;gap:12px;padding:14px 16px}.link-list-icon{width:40px;height:40px;font-size:1.3rem}.link-list-body{flex-basis:calc(100% - 52px)}.link-list-meta{margin-left:52px}.link-list-chevron{display:none}}.subjects-page h1{margin:0 0 6px;font-size:2rem}.page-lead{color:var(--text-muted);margin-bottom:28px}.grades-page-header{align-items:center;gap:16px;margin-bottom:32px;display:flex}.grades-page-emoji{font-size:2.6rem}.grades-page-header h1{margin:0 0 4px;font-size:1.8rem}.grades-page-header p{color:var(--text-muted);margin:0}.grades-heading{margin:0 0 14px;font-size:1.1rem}.back-link{color:var(--text-muted);margin-bottom:18px;font-size:.9rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent-strong)}.lessons-page-header{align-items:center;gap:16px;margin-bottom:32px;display:flex}.lessons-page-emoji{font-size:2.6rem}.lessons-page-header h1{margin:0 0 4px;font-size:1.8rem}.lessons-page-header p{color:var(--text-muted);margin:0}.lessons-heading{margin:0 0 14px;font-size:1.1rem}.progress-dots{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.progress-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:13px;height:13px;padding:0;transition:transform .15s,background .15s}.progress-dot:hover{transform:scale(1.25)}.progress-dot--visited{background:var(--accent-border)}.progress-dot--current{background:var(--accent);transform:scale(1.35)}.slide-eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-strong);margin:0 0 10px;font-size:1rem;font-weight:600}.slide-heading{margin:0 0 20px;font-size:clamp(2rem,4vw,3.2rem);line-height:1.15}.slide-lead{color:var(--text-muted);max-width:75ch;margin:0 0 24px;font-size:1.35rem;line-height:1.5}.slide-body{flex-direction:column;gap:20px;width:100%;margin-bottom:20px;display:flex}.card-grid{text-align:left;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;width:100%;display:grid}.info-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:24px}.info-card-emoji{margin-bottom:10px;font-size:2rem;display:block}.info-card h3{margin:0 0 8px;font-size:1.3rem}.info-card p{color:var(--text-muted);margin:0;font-size:1.1rem;line-height:1.5}.callout{text-align:left;border:1px solid #0000;border-radius:16px;padding:20px 24px;font-size:1.2rem;line-height:1.55}.callout--info{background:var(--accent-bg);border-color:var(--accent-border);color:var(--text)}.callout--warning{background:var(--warning-bg);color:var(--text)}.callout--success{background:var(--success-bg);color:var(--text)}.step-list{counter-reset:step;text-align:left;flex-direction:column;gap:16px;width:100%;margin:0;padding:0;list-style:none;display:flex}.step{counter-increment:step;border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:18px 22px 18px 68px;position:relative}.step:before{content:counter(step);background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;font-weight:700;display:flex;position:absolute;top:18px;left:18px}.step h3{margin:0 0 6px;font-size:1.2rem}.step p{color:var(--text-muted);margin:0;font-size:1.1rem;line-height:1.5}.summary-link{color:var(--accent-strong);font-weight:600;text-decoration:none;display:inline-block}.summary-link:hover{text-decoration:underline}.discussion-prompt{border:1.5px dashed var(--accent-border);background:var(--accent-bg);border-radius:16px;align-items:flex-start;gap:14px;padding:20px 24px;display:flex}.discussion-prompt-icon{flex-shrink:0;font-size:1.5rem;line-height:1}.discussion-prompt p{color:var(--text-h);margin:0;font-size:1.2rem;font-style:italic;font-weight:600;line-height:1.5}.tag-list{text-align:left;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));column-gap:40px;width:100%;margin:0;padding:0;list-style:none;display:grid}.tag{border-bottom:1px solid var(--border);color:var(--text-h);padding:12px 0 12px 30px;font-size:1.2rem;line-height:1.4;position:relative}.tag:before{content:"";background:var(--accent);border-radius:3px;width:10px;height:10px;position:absolute;top:1.1em;left:4px}.flow-diagram{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;width:100%;padding:12px 0;display:flex}.flow-node{border:1px solid var(--border);background:var(--surface);color:var(--text-h);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:8px;min-width:140px;padding:18px 26px;font-size:1.1rem;font-weight:600;display:flex}.flow-node-emoji{font-size:2rem}.flow-arrow{color:var(--accent-strong);font-size:1.8rem;font-weight:700}.figure{flex-direction:column;gap:10px;width:100%;margin:0;display:flex}.figure-zoom{all:unset;cursor:zoom-in;width:100%;display:block;position:relative}.figure-zoom:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:16px}.figure-zoom:after{content:"🔍";color:#fff;opacity:0;background:#0000008c;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;transition:opacity .15s;display:flex;position:absolute;bottom:12px;right:12px}.figure-zoom:hover:after,.figure-zoom:focus-visible:after{opacity:1}.figure-img{object-fit:contain;object-position:top;border:1px solid var(--border);background:var(--bg-subtle);border-radius:16px;width:100%;max-height:420px}.figure-caption{color:var(--text-muted);text-align:center;font-size:1.05rem}.image-compare-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;width:100%;display:grid}.image-compare-grid--gallery{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.image-compare-grid--gallery>.figure{flex:240px;max-width:280px}.image-compare-grid--gallery .figure-img{aspect-ratio:4/3;object-fit:cover;object-position:center;max-height:none}.lightbox{z-index:1000;cursor:zoom-out;background:#08060dd9;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;border-radius:8px;max-width:100%;max-height:100%;box-shadow:0 20px 60px #00000080}.lightbox-close{z-index:1001;color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;display:flex;position:fixed;top:20px;right:24px}.lightbox-close:hover{background:#ffffff38}.tree{text-align:left;width:100%;padding:4px 0;overflow-x:auto}.tree-branch{align-items:center;width:max-content;display:flex}.tree-node{border:1px solid var(--border);background:var(--surface);color:var(--text-h);white-space:nowrap;border-radius:10px;padding:7px 14px;font-size:1.05rem;line-height:1.3}.tree-node--depth-0{background:var(--accent);border-color:var(--accent);color:#fff;font-size:1.15rem;font-weight:700}.tree-node--depth-1{background:var(--accent-bg);border-color:var(--accent-border);font-weight:600}.tree-children{flex-direction:column;margin-left:40px;display:flex;position:relative}.tree-children:before{content:"";border-top:2px solid var(--accent-border);width:20px;position:absolute;top:50%;left:-40px}.tree-children>.tree-branch{padding:4px 0;position:relative}.tree-children>.tree-branch:before{content:"";border-top:2px solid var(--accent-border);width:20px;position:absolute;top:50%;left:-20px}.tree-children>.tree-branch:after{content:"";border-left:2px solid var(--accent-border);position:absolute;top:0;bottom:0;left:-20px}.tree-children>.tree-branch:first-child:after{top:50%}.tree-children>.tree-branch:last-child:after{bottom:50%}.tree-children>.tree-branch:only-child:after{display:none}.wireframe{border:2px solid var(--text-muted);background:var(--surface);text-align:left;border-radius:12px;width:100%;overflow:hidden;container-type:inline-size}.wireframe-bar{border-bottom:2px solid var(--text-muted);background:var(--bg-subtle);align-items:center;gap:6px;padding:8px 12px;display:flex}.wireframe-bar span{border:2px solid var(--text-muted);border-radius:50%;width:10px;height:10px}.wireframe-bar em{color:var(--text-muted);border:1px solid var(--border);background:var(--surface);border-radius:999px;flex:1;margin-left:10px;padding:2px 12px;font-size:.85rem;font-style:normal}.wireframe-body{flex-direction:column;gap:10px;padding:12px;display:flex}.wireframe-row{gap:10px;display:flex}.wireframe-box{border:2px dashed var(--text-muted);min-width:0;color:var(--text-h);border-radius:6px;flex-direction:column;justify-content:center;gap:6px;padding:8px 12px;font-size:1rem;font-weight:600;display:flex}.wireframe-lines{flex-direction:column;gap:5px;display:flex}.wireframe-lines i{background:var(--border);border-radius:3px;height:5px;display:block}.wireframe-lines i:last-child{width:60%}.wireframe-box--nav{border-style:solid;border-width:0 0 2px;border-radius:0;flex-direction:row;justify-content:flex-start;align-items:center;gap:18px;font-weight:600}.wireframe-head{flex-wrap:wrap;align-items:center;gap:8px 18px;display:flex}.wireframe-box--nav .wireframe-head{gap:8px 18px}.wireframe-nested{flex-direction:column;gap:10px;margin-top:4px;display:flex}@container (width<=520px){.wireframe-row{flex-direction:column}.wireframe-body,.wireframe-box--tone{padding:8px}}.wireframe-tone--violet{--wf-tone:#7e22ce}.wireframe-tone--blue{--wf-tone:#1d4ed8}.wireframe-tone--green{--wf-tone:#15803d}.wireframe-tone--amber{--wf-tone:#b45309}.wireframe-tone--pink{--wf-tone:#be185d}.wireframe-tone--teal{--wf-tone:#0f766e}.wireframe-box--tone{--wf-on-tone:#fff;border:2px solid var(--wf-tone);background:color-mix(in srgb, var(--wf-tone) 9%, var(--surface));border-radius:10px}.wireframe-box--nav.wireframe-box--tone{border-width:2px}.wireframe-box--tone .wireframe-lines i{background:color-mix(in srgb, var(--wf-tone) 25%, var(--surface))}.wireframe-tag{background:var(--wf-tone,var(--text-muted));color:var(--wf-on-tone,#fff);font-family:var(--mono);border-radius:999px;flex-shrink:0;padding:2px 10px;font-size:.95rem;font-weight:700}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .wireframe-tone--violet{--wf-tone:#c084fc}:root:not([data-theme=light]) .wireframe-tone--blue{--wf-tone:#60a5fa}:root:not([data-theme=light]) .wireframe-tone--green{--wf-tone:#4ade80}:root:not([data-theme=light]) .wireframe-tone--amber{--wf-tone:#fbbf24}:root:not([data-theme=light]) .wireframe-tone--pink{--wf-tone:#f472b6}:root:not([data-theme=light]) .wireframe-tone--teal{--wf-tone:#2dd4bf}:root:not([data-theme=light]) .wireframe-box--tone{--wf-on-tone:#0b0b10}}:root[data-theme=dark] .wireframe-tone--violet{--wf-tone:#c084fc}:root[data-theme=dark] .wireframe-tone--blue{--wf-tone:#60a5fa}:root[data-theme=dark] .wireframe-tone--green{--wf-tone:#4ade80}:root[data-theme=dark] .wireframe-tone--amber{--wf-tone:#fbbf24}:root[data-theme=dark] .wireframe-tone--pink{--wf-tone:#f472b6}:root[data-theme=dark] .wireframe-tone--teal{--wf-tone:#2dd4bf}:root[data-theme=dark] .wireframe-box--tone{--wf-on-tone:#0b0b10}.wireframe-box--image{background:linear-gradient(to top right, transparent calc(50% - 1px), var(--text-muted) 50%, transparent calc(50% + 1px)), linear-gradient(to bottom right, transparent calc(50% - 1px), var(--text-muted) 50%, transparent calc(50% + 1px)), var(--bg-subtle);border-style:solid;align-items:center}.wireframe-box--image .wireframe-label{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:2px 10px}.code-block{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:12px;width:100%;margin:0;overflow:hidden}.code-block-bar{border-bottom:1px solid var(--border);background:var(--bg-subtle);align-items:center;gap:6px;padding:8px 12px;display:flex}.code-block-bar span{border:2px solid var(--text-muted);border-radius:50%;width:10px;height:10px}.code-block-bar em{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-left:auto;font-size:.78rem;font-style:normal;font-weight:600}.code-block-title{color:var(--text-h);margin-left:8px;font-size:.9rem}.code-compare-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;width:100%;display:grid}.code-compare-grid .code-block-pre{padding:14px 16px}.code-compare-grid .code-block-pre code{font-size:.85rem}.code-block-pre{margin:0;padding:18px 20px;overflow-x:auto}.code-block-pre code{font-family:var(--mono);color:var(--text-h);white-space:pre;font-size:.95rem;line-height:1.65}.code-tag{color:var(--accent-strong);font-weight:600}.code-attr{color:var(--code-attr)}.code-value{color:var(--success)}.code-comment{color:var(--text-muted);font-style:italic}.code-block-caption{color:var(--text-muted);text-align:center;padding:2px 20px 16px;font-size:1.05rem}.wireframe-box--button{background:var(--border);text-align:center;border-style:solid;border-radius:999px;justify-content:center;align-items:center}.quiz{text-align:left;flex-direction:column;gap:26px;width:100%;display:flex}.quiz-question-text{color:var(--text-h);margin:0 0 14px;font-size:1.2rem;font-weight:600}.quiz-options{flex-wrap:wrap;gap:12px;display:flex}.quiz-option{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:10px;padding:14px 20px;font-size:1.05rem;transition:border-color .15s,background .15s}.quiz-option:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.quiz-option:disabled{cursor:default}.quiz-option--correct{border-color:var(--success);background:var(--success-bg);color:var(--success);font-weight:600}.quiz-option--incorrect{border-color:var(--danger);background:var(--danger-bg);color:var(--danger);font-weight:600}.quiz-feedback{color:var(--text-muted);margin-top:12px;font-size:1.05rem}.quiz-feedback--correct{color:var(--success)}.quiz-feedback--incorrect{color:var(--danger)}.quiz-summary{color:var(--text-h);border-top:1px solid var(--border);padding-top:16px;font-size:1.2rem;font-weight:700}.classify-game{text-align:left;flex-direction:column;gap:16px;width:100%;display:flex}.classify-item{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:20px}.classify-item-text{color:var(--text);margin:0 0 14px;font-size:1.1rem;line-height:1.5}.classify-options{flex-wrap:wrap;gap:10px;display:flex}.classify-option{border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;border-radius:8px;padding:12px 18px;font-size:1.05rem;transition:border-color .15s,background .15s}.classify-option:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.classify-option:disabled{cursor:default}.classify-option--correct{border-color:var(--success);background:var(--success-bg);color:var(--success);font-weight:600}.classify-option--incorrect{border-color:var(--danger);background:var(--danger-bg);color:var(--danger);font-weight:600}.classify-feedback{color:var(--text-muted);margin:12px 0 0;font-size:1.05rem}.classify-feedback--correct{color:var(--success)}.classify-feedback--incorrect{color:var(--danger)}.classify-summary{color:var(--text-h);border-top:1px solid var(--border);padding-top:16px;font-size:1.2rem;font-weight:700}.checklist{text-align:left;width:100%}.checklist ul{flex-direction:column;gap:10px;margin:0 0 20px;padding:0;list-style:none;display:flex}.checklist-item{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;align-items:flex-start;gap:14px;padding:14px 18px;font-size:1.1rem;display:flex}.checklist-item input{width:22px;height:22px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:3px}.checklist-item span{line-height:1.45}.checklist-progress{color:var(--text-h);font-size:1.15rem;font-weight:600}.message-check{text-align:left;flex-direction:column;gap:16px;width:100%;display:flex}.message-check-progress{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0;font-size:.85rem;font-weight:700}.message-check-card{border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--surface);border-radius:14px;padding:18px 22px}.message-check-sender{color:var(--text-h);margin:0 0 8px;font-size:1rem;font-weight:700}.message-check-text{color:var(--text);margin:0;font-size:1.1rem;line-height:1.55}.message-check-text code{font-family:var(--mono);background:var(--bg-subtle);border:1px solid var(--border);color:var(--danger);border-radius:4px;padding:1px 6px;font-size:.92em}.message-check-options{flex-wrap:wrap;gap:12px;display:flex}.message-check-option{border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;border-radius:10px;flex:1;min-width:220px;padding:14px 20px;font-size:1.05rem;font-weight:600;transition:border-color .15s,background .15s}.message-check-option:hover{border-color:var(--accent-border);background:var(--accent-bg)}.message-check-reveal{flex-direction:column;gap:14px;animation:.2s message-check-fade-in;display:flex}@keyframes message-check-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.message-check-verdict{margin:0;font-size:1.15rem;font-weight:700}.message-check-verdict--correct{color:var(--success)}.message-check-verdict--incorrect{color:var(--danger)}.message-check-section{border:1px solid var(--border);background:var(--bg-subtle);border-radius:12px;padding:14px 18px}.message-check-section h4{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 8px;font-size:.82rem;font-weight:700}.message-check-section ul{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.message-check-section p{color:var(--text);margin:0;font-size:1.05rem;line-height:1.5}.message-check-discussion{border:1.5px dashed var(--accent-border);background:var(--accent-bg);border-radius:12px;align-items:flex-start;gap:10px;padding:14px 18px;display:flex}.message-check-discussion p{color:var(--text-h);margin:0;font-size:1.05rem;font-style:italic;font-weight:600}.message-check-next{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent-strong);cursor:pointer;border-radius:10px;align-self:flex-start;padding:12px 20px;font-size:1.05rem;font-weight:700;transition:background .15s}.message-check-next:hover{background:var(--accent-border)}.message-check-summary{color:var(--text-h);font-size:1.2rem;font-weight:700}.message-check-restart{border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-h);cursor:pointer;border-radius:10px;align-self:flex-start;padding:12px 20px;font-size:1.05rem;font-weight:600;transition:border-color .15s,background .15s}.message-check-restart:hover{border-color:var(--accent-border);background:var(--accent-bg)}.reveal{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:16px;width:100%;padding:20px 24px}.reveal-prompt{color:var(--text-h);margin:0 0 16px;font-size:1.15rem;line-height:1.5}.reveal-button{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent-strong);cursor:pointer;border-radius:10px;padding:12px 20px;font-size:1.05rem;font-weight:600;transition:border-color .15s,background .15s}.reveal-button:hover{border-color:var(--accent);background:var(--accent-border)}.reveal-answer{color:var(--text);font-size:1.1rem;line-height:1.55;animation:.2s reveal-fade-in}.reveal-answer p{margin:0 0 12px}.reveal-answer p:last-child{margin-bottom:0}.reveal-answer ul:not(.tag-list){flex-direction:column;gap:6px;margin:0 0 12px;padding-left:22px;display:flex}.reveal-answer ul:not(.tag-list):last-child,.reveal-answer .slide-body:last-child{margin-bottom:0}@keyframes reveal-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.lesson-page{background:var(--bg-subtle);flex-direction:column;min-height:100svh;display:flex}.lesson-header{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:16px;padding:16px 24px;display:flex}.lesson-back{color:var(--text-muted);white-space:nowrap;font-size:1rem;text-decoration:none}.lesson-back:hover{color:var(--accent-strong)}.lesson-title{text-align:center;flex:1;margin:0;font-size:1.25rem}.lesson-header-end{align-items:center;gap:14px;display:flex}.lesson-counter{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.95rem}.lesson-stage{flex:1;align-items:stretch;gap:20px;width:100%;max-width:1560px;margin:0 auto;padding:32px;display:flex}.lesson-nav{border:1px solid var(--border);background:var(--surface);width:52px;height:52px;color:var(--text-h);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-self:center;align-items:center;padding:0;line-height:0;transition:border-color .15s,background .15s,opacity .15s;display:flex}.lesson-nav svg{display:block}.lesson-nav:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.lesson-nav:disabled{opacity:.3;cursor:default}.lesson-slide{border:1px solid var(--border);background:var(--surface);min-width:0;min-height:60vh;box-shadow:var(--shadow);border-radius:24px;flex-direction:column;flex:1;justify-content:center;align-items:flex-start;padding:clamp(32px,4vw,72px);animation:.2s slide-fade-in;display:flex}@keyframes slide-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.lesson-footer{flex-direction:column;align-items:center;gap:10px;padding:18px 24px 28px;display:flex}.lesson-hint{color:var(--text-muted);font-size:.82rem}.lesson-missing{text-align:center;padding:48px}@media (width<=640px){.lesson-title{font-size:.95rem}.lesson-stage{gap:6px;padding:14px}.lesson-nav{width:36px;height:36px}.lesson-nav svg{width:18px;height:18px}.lesson-slide{min-height:50vh}}.bsod{color:#fff;text-align:center;border-radius:inherit;z-index:50;background:#1a5fb4;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex;position:absolute;inset:0}.bsod-face{margin-bottom:24px;font-size:5rem;font-weight:300}.bsod-text{max-width:44ch;margin:0 0 32px;font-size:1.3rem;line-height:1.55}.bsod-button{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff9;border-radius:12px;padding:16px 28px;font-size:1.15rem;font-weight:600;transition:background .15s}.bsod-button:hover{background:#fff3}.report-button{border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-h);cursor:pointer;border-radius:12px;padding:16px 22px;font-size:1.15rem;font-weight:600;transition:border-color .15s,background .15s}.report-button:hover{border-color:var(--accent-border);background:var(--accent-bg)}.report-button--primary{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent-strong)}.final-report{text-align:center;max-width:580px;margin:0 auto}.final-report h2{margin:0 0 24px;font-size:1.8rem}.final-report-rank{color:var(--text-h);justify-content:center;align-items:center;gap:12px;margin-bottom:28px;font-size:1.5rem;font-weight:700;display:flex}.final-report-rank-emoji{font-size:2.4rem}.final-report-rows{text-align:left;flex-direction:column;gap:12px;margin:0 0 32px;display:flex}.final-report-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:14px;padding-bottom:10px;display:flex}.final-report-row dt{color:var(--text-muted);font-size:1.1rem}.final-report-row dd{color:var(--text-h);margin:0;font-size:1.15rem;font-weight:700}.final-report-actions{flex-direction:column;gap:12px;display:flex}.mistake-review{max-width:640px;margin:0 auto}.mistake-review h2{text-align:center;margin:0 0 24px;font-size:1.8rem}.mistake-empty{color:var(--text-muted);text-align:center;margin-bottom:24px;font-size:1.1rem}.mistake-list{flex-direction:column;gap:12px;margin:0 0 28px;padding:0;list-style:none;display:flex}.mistake-item{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:18px 22px}.mistake-item-level{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:8px;font-size:.85rem;font-weight:700;display:block}.mistake-item p{color:var(--text);margin:0;font-size:1.1rem;line-height:1.55}.mistake-item--good{border-left:4px solid var(--success)}.mistake-item--bad{border-left:4px solid var(--danger)}.mistake-item--neutral{border-left:4px solid var(--border)}.win-frame{background:var(--surface);border:1px solid var(--border);width:100%;max-width:900px;height:min(86vh,780px);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.win-titlebar{background:var(--bg-subtle);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.win-titlebar-label{color:var(--text-h);align-items:center;gap:10px;font-size:1.15rem;font-weight:600;display:flex}.win-titlebar-icon{font-size:1.4rem;display:flex}.win-titlebar-icon .app-icon{filter:drop-shadow(0 1px 2px #0000004d);height:1.6rem}.win-titlebar-close{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.05rem;transition:background .15s,color .15s;display:flex}.win-titlebar-close:hover{background:var(--danger-bg);color:var(--danger)}.win-content{flex:1;min-height:0;padding:28px;font-size:1.1rem;overflow-y:auto}.win-content--bare{flex-direction:column;padding:0;font-size:1rem;display:flex}.app-icon{filter:drop-shadow(0 4px 6px #00000059);width:auto;height:3rem;display:block;overflow:visible}.folder-papers,.folder-front,.trash-lid,.globe-land,.mail-flap,.mail-flap-open,.mail-letter,.shield-body,.chat-dot{transform-box:fill-box;transition:transform .25s}.folder-front{transform-origin:50% 100%}.desktop-icon:is(:hover,:focus-visible) .folder-papers{transform:translateY(-3px)}.desktop-icon:is(:hover,:focus-visible) .folder-front{transform:perspective(60px)rotateX(18deg)}.trash-lid{transform-origin:0 100%}.desktop-icon:is(:hover,:focus-visible) .trash-lid{transform:translateY(-3px)rotate(-12deg)}.globe-land{transition-duration:.6s}.desktop-icon:is(:hover,:focus-visible) .globe-land{transform:translate(-5px)}.mail-flap{transform-origin:50% 0}.desktop-icon:is(:hover,:focus-visible) .mail-flap{transform:scaleY(0)}.mail-flap-open{transform-origin:50% 100%;transform:scaleY(0)}.desktop-icon:is(:hover,:focus-visible) .mail-flap-open{transition-delay:.1s;transform:scaleY(1)}.mail-letter{transform:translateY(10px)}.desktop-icon:is(:hover,:focus-visible) .mail-letter{transform:translateY(-4px)}.shield-body{transform-origin:50%}.desktop-icon:is(:hover,:focus-visible) .shield-body{transform:scale(1.06)}.desktop-icon:is(:hover,:focus-visible) .shield-check{animation:.45s ease-out shield-check-draw}@keyframes shield-check-draw{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}.desktop-icon:is(:hover,:focus-visible) .chat-dot{animation:.9s ease-in-out infinite chat-dot-bounce}.desktop-icon:is(:hover,:focus-visible) .chat-dot:nth-child(2){animation-delay:.15s}.desktop-icon:is(:hover,:focus-visible) .chat-dot:nth-child(3){animation-delay:.3s}@keyframes chat-dot-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.app-icon *{transition:none;animation:none!important}}.stat-tile{border:1px solid var(--border);background:var(--surface);border-radius:12px;align-items:center;gap:10px;padding:10px 16px;display:flex}.stat-tile-icon{font-size:1.5rem;display:flex}.stat-tile-icon .app-icon{filter:drop-shadow(0 1px 2px #0000004d);height:1.8rem}.stat-tile-body{flex-direction:column;line-height:1.25;display:flex}.stat-tile-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.8rem}.stat-tile-value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.stat-tile--bad .stat-tile-value{color:var(--danger)}.stat-tile--good .stat-tile-value{color:var(--success)}.stats-hud{flex-wrap:wrap;gap:12px;padding:16px;display:flex}.desktop-icon{width:128px;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;transition:background .15s;display:flex}.desktop-icon:hover,.desktop-icon:focus-visible{background:#ffffff1f}.desktop-icon-glyph{font-size:3rem;line-height:1;position:relative}.desktop-icon-badge{background:var(--danger);border:2px solid var(--bg);border-radius:50%;width:16px;height:16px;position:absolute;top:-6px;right:-10px}.desktop-icon-label{text-align:center;text-shadow:0 1px 2px #0006;font-size:1.05rem;line-height:1.3}.cd-desktop{flex-direction:column;flex:1;min-height:0;display:flex}.cd-desktop-icons{flex-wrap:wrap;flex:1;align-content:flex-start;gap:10px;padding:24px;display:flex}.cd-taskbar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;background:#0a0a148c;align-items:center;gap:22px;padding:14px 22px;display:flex}.cd-taskbar-glyph{font-size:1.6rem}.cd-taskbar-spacer{flex:1}.cd-taskbar-wifi{opacity:.85;font-size:1.05rem}.cd-taskbar-clock{font-variant-numeric:tabular-nums;font-size:1.15rem}.choice-list{flex-direction:column;gap:14px;margin-top:20px;display:flex}.choice-button{border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-h);text-align:left;cursor:pointer;border-radius:12px;padding:16px 20px;font-size:1.15rem;transition:border-color .15s,background .15s}.choice-button:hover{border-color:var(--accent-border);background:var(--accent-bg)}.choice-button--primary{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent-strong);font-weight:600}.choice-button--primary:hover{background:var(--accent-border)}.scan-progress{text-align:center;flex-direction:column;align-items:center;padding:32px 0;display:flex}.scan-progress-icon{margin-bottom:16px;font-size:3rem;animation:1s ease-in-out infinite scan-pulse}.scan-progress-label{color:var(--text-h);font-variant-numeric:tabular-nums;margin:0 0 18px;font-size:1.15rem;font-weight:600}.scan-progress-track{background:var(--border);border-radius:999px;width:100%;max-width:360px;height:12px;overflow:hidden}.scan-progress-fill{background:linear-gradient(90deg, var(--accent) 0%, var(--accent-strong) 100%);border-radius:999px;height:100%;transition:width .1s linear}@keyframes scan-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.browser-chrome{flex-direction:column;flex:1;min-height:0;display:flex}.browser-tabs{background:var(--bg-subtle);gap:4px;padding:8px 8px 0;display:flex}.browser-tab{background:var(--surface);color:var(--text);border-radius:8px 8px 0 0;align-items:center;gap:8px;max-width:220px;padding:8px 16px;font-size:.92rem;display:flex}.browser-tab-favicon{font-size:.95rem}.browser-tab-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.browser-toolbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 16px;display:flex}.browser-nav-btn{color:var(--text-muted);font-size:1.1rem;line-height:1}.browser-address-bar{background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;flex:1;align-items:center;gap:10px;min-width:0;padding:8px 16px;font-size:.95rem;display:flex}.browser-address-insecure{color:var(--danger);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;font-size:.78rem;font-weight:700}.browser-address-url{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-family:var(--mono);overflow:hidden}.browser-page{color:#1a1a1a;background:#f1f3f6;flex:1;padding:28px;overflow-y:auto}.browser-page .scenario-body p,.browser-page .scenario-header p,.browser-page .scenario-contact,.browser-page .scenario-attachment{color:#1a1a1a}.browser-page .scenario-body p{color:#333}.mail-chrome{flex:1;min-height:0;display:flex}.mail-sidebar{border-right:1px solid var(--border);background:var(--bg-subtle);flex-shrink:0;width:220px;padding:16px 0;overflow-y:auto}.mail-folder{color:var(--text-h);align-items:center;gap:8px;padding:0 16px 14px;font-size:.95rem;font-weight:700;display:flex}.mail-count{background:var(--accent);color:#fff;border-radius:999px;padding:1px 8px;font-size:.75rem}.mail-list-item{cursor:default;border-left:3px solid #0000;flex-direction:column;gap:2px;padding:12px 16px;display:flex}.mail-list-item--active{background:var(--accent-bg);border-left-color:var(--accent)}.mail-list-sender{color:var(--text-h);font-size:.92rem;font-weight:700}.mail-list-subject{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.mail-list-preview{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.mail-reading-pane{flex:1;min-width:0;padding:28px;overflow-y:auto}.messenger-chrome{flex-direction:column;flex:1;min-height:0;display:flex}.messenger-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:12px;padding:14px 20px;display:flex}.messenger-avatar{background:var(--bg-subtle);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.8rem;display:flex}.messenger-header-info{flex-direction:column;display:flex}.messenger-contact{color:var(--text-h);font-size:1.1rem;font-weight:700}.messenger-status{color:var(--success);font-size:.85rem}.messenger-thread{background:var(--bg-subtle);flex:1;min-height:0;padding:24px 28px;overflow-y:auto}.messenger-thread .scenario-body{align-items:flex-start}.messenger-thread .scenario-body p{background:var(--surface);border:1px solid var(--border);max-width:75%;box-shadow:var(--shadow);border-radius:16px 16px 16px 4px;padding:12px 16px}.messenger-thread .scenario-attachment{border-style:solid;border-radius:16px 16px 16px 4px}.messenger-thread .choice-list{flex-flow:wrap}.messenger-thread .choice-button{background:var(--surface);border-radius:999px}.messenger-thread .scenario-advance{margin-top:22px}.explorer-chrome{flex-direction:column;flex:1;min-height:0;display:flex}.explorer-breadcrumb{background:var(--bg-subtle);border-bottom:1px solid var(--border);color:var(--text-muted);flex-shrink:0;padding:12px 20px;font-size:.95rem}.explorer-body{flex:1;min-height:0;padding:28px;overflow-y:auto}.explorer-grid{flex-wrap:wrap;gap:8px;margin:6px 0 22px;display:flex}.explorer-file{width:108px;font:inherit;color:var(--text);background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:12px 6px;display:flex}.explorer-file-icon{font-size:2.6rem;line-height:1}.explorer-file-name{text-align:center;overflow-wrap:anywhere;font-size:.85rem;line-height:1.3}.explorer-file--clickable{cursor:pointer;transition:background .15s}.explorer-file--clickable:hover{background:var(--accent-bg)}.level-summary{border:1px solid var(--border);background:var(--bg-subtle);border-radius:14px;margin-top:18px;padding:18px 20px}.level-summary-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 12px;font-size:.85rem;font-weight:700}.level-summary-empty{color:var(--text-muted);margin:0;font-size:1rem}.level-summary-rows{flex-direction:column;gap:8px;display:flex}.level-summary-row{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.level-summary-row-label{color:var(--text-h);font-size:1.05rem}.level-summary-row-delta{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.1rem;font-weight:700}.level-summary-row-delta--good{color:var(--success)}.level-summary-row-delta--bad{color:var(--danger)}.scenario-header{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:16px}.scenario-header p{color:var(--text-muted);margin:0 0 6px;font-size:1rem}.scenario-fallback{flex:1;min-height:0;padding:28px;overflow-y:auto}.scenario-body{flex-direction:column;gap:14px;display:flex}.scenario-body p{color:var(--text);margin:0;font-size:1.15rem;line-height:1.55}.scenario-attachment{border:1px dashed var(--border);background:var(--bg-subtle);color:var(--text-h);border-radius:12px;align-items:center;gap:10px;margin-top:18px;padding:14px 18px;font-size:1.1rem;display:inline-flex}.scenario-attachment--clickable{font:inherit;cursor:pointer;border-style:solid;transition:border-color .15s,background .15s}.scenario-attachment--clickable:hover{border-color:var(--accent-border);background:var(--accent-bg)}.scenario-attachment-hint{color:var(--accent-strong);margin-left:auto;font-size:.9rem;font-weight:600}.scenario-advance{border:1px solid var(--accent-border);background:var(--accent-bg);width:100%;color:var(--accent-strong);cursor:pointer;border-radius:12px;margin-top:22px;padding:16px 20px;font-size:1.15rem;font-weight:700;transition:background .15s}.scenario-advance:hover{background:var(--accent-border)}.scatter-choices{flex-wrap:wrap;gap:14px;margin-top:20px;display:flex}.scatter-button{color:#fff;cursor:pointer;border:none;border-radius:10px;padding:18px 24px;font-size:1.15rem;font-weight:700;box-shadow:0 2px #00000026}.scatter-button--v0{background:#e8590c}.scatter-button--v1{background:#2f9e44}.scatter-button--v2{background:#1971c2}.scatter-button--real{background:var(--bg-subtle);color:var(--text);border:1px solid var(--border);box-shadow:none;font-weight:500}.av-status{color:var(--text);margin:0 0 18px;font-size:1.15rem}.av-clean{color:var(--success);font-size:1.1rem;font-weight:600}.av-threat-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.av-threat-list li{border:1px solid var(--danger-bg);background:var(--danger-bg);color:var(--danger);border-radius:10px;padding:14px 16px;font-size:1.05rem}.fm-list{flex-direction:column;gap:8px;margin:0 0 18px;padding:0;list-style:none;display:flex}.fm-list li{color:var(--text);border-radius:10px;padding:12px 14px;font-size:1.1rem}.fm-suspicious{background:var(--danger-bg);color:var(--danger)}.fm-warning{color:var(--danger);margin:0;font-size:1.1rem;font-weight:600}.empty-app-message{color:var(--text-muted);margin:0}.cyberdesk{background:linear-gradient(160deg,#1b2a4a 0%,#0f1a30 100%);flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.cyberdesk--end{background:var(--bg-subtle);justify-content:center;align-items:center;padding:40px 24px}.cyberdesk-window-layer{z-index:10;background:#00000040;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.rogue-result-intro{color:var(--text);margin:0 0 4px;font-size:1.1rem;line-height:1.55}.rogue-result-button{width:100%;margin-top:22px}.bit-row{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.bit-cell{border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:4px;width:52px;padding:10px 4px;transition:border-color .15s,background .15s;display:flex}.bit-cell:hover:not(:disabled){border-color:var(--accent-border)}.bit-cell:disabled{cursor:default}.bit-cell--on{border-color:var(--accent-strong);background:var(--accent-bg)}.bit-cell-value{font-family:var(--mono);color:var(--text-h);font-size:1.4rem;font-weight:700}.bit-cell--on .bit-cell-value{color:var(--accent-strong)}.bit-cell-place{color:var(--text-muted);font-size:.75rem}.binary-lab-sum{margin:0;font-size:1.4rem}.binary-lab-sum-formula{color:var(--text-muted);margin-right:6px;font-size:1rem}.binary-lab-binary-display{font-family:var(--mono);letter-spacing:.08em;color:var(--text-h);margin:0;font-size:2rem}.binary-lab-inline-form{align-items:center;gap:12px;display:flex}.ascii-table{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.ascii-table-entry{border:1px solid var(--border);background:var(--bg-subtle);border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:8px 10px;display:flex}.ascii-table-letter{color:var(--text-h);font-size:1.1rem;font-weight:700}.ascii-table-code{font-family:var(--mono);color:var(--text-muted);font-size:.8rem}.word-decode-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.word-decode-cell{flex-direction:column;align-items:center;gap:6px;display:flex}.word-decode-code{font-family:var(--mono);color:var(--text-muted);font-size:.85rem}.word-decode-input{text-transform:uppercase;width:48px;padding:10px 0;font-size:1.3rem}.word-decode-input--correct{border-color:var(--success);color:var(--success)}.word-decode-input--incorrect{border-color:var(--danger);color:var(--danger)}.units-ladder{flex-direction:column;gap:8px;width:100%;display:flex}.units-ladder-row{color:var(--text);justify-content:center;align-items:baseline;gap:10px;font-size:1.05rem;display:flex}.units-ladder-mult{color:var(--accent-strong);font-weight:700}.units-comparisons{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;width:100%;display:grid}.units-comparison{border:1px solid var(--border);background:var(--bg-subtle);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;display:flex}.units-comparison-emoji{font-size:1.6rem}.units-comparison-label{color:var(--text-h);text-align:center;font-size:.95rem;font-weight:600}.units-comparison-size{color:var(--text-muted);font-size:.85rem}.pixel-puzzle{flex-direction:column;gap:4px;display:flex}.pixel-puzzle-row{align-items:center;gap:12px;display:flex}.pixel-puzzle-code{width:92px;font-family:var(--mono);color:var(--text-muted);text-align:right;flex-shrink:0;font-size:.85rem}.pixel-grid-row{gap:3px;display:flex}.pixel-cell{border:1px solid var(--border);cursor:pointer;border-radius:4px;width:34px;height:34px;padding:0}.pixel-cell--white{background:#fff}.pixel-cell--black{background:#16151a}.pixel-cell--wrong{outline:2px solid var(--danger);outline-offset:-2px}.pixel-puzzle-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.binary-lab{background:var(--bg-subtle);flex:1;width:100%;min-height:0;padding:28px 20px 40px;overflow-y:auto}.binary-lab--menu{flex-direction:column;align-items:center;gap:22px;display:flex}.binary-lab-intro{text-align:center;max-width:60ch;color:var(--text-muted);font-size:1.05rem}.binary-lab-menu-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;width:100%;max-width:860px;display:grid}.binary-lab-menu-card{text-align:left;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;font:inherit;color:inherit;border-radius:16px;padding:22px;transition:transform .15s,border-color .15s;display:block}.binary-lab-menu-card:hover{border-color:var(--accent-border);transform:translateY(-2px)}.binary-lab-menu-emoji{margin-bottom:10px;font-size:2rem;display:block}.binary-lab-menu-card h2{margin:0 0 8px;font-size:1.15rem}.binary-lab-menu-card p{color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.5}.binary-lab-module{flex-direction:column;align-items:center;gap:20px;max-width:720px;margin:0 auto;display:flex}.binary-lab-module-header{flex-wrap:wrap;align-items:center;gap:6px 16px;width:100%;display:flex}.binary-lab-back{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.95rem}.binary-lab-back:hover{color:var(--accent-strong)}.binary-lab-module-header h2{flex:1;margin:0;font-size:1.3rem}.binary-lab-module-meta{color:var(--accent-strong);background:var(--accent-bg);border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:600}.binary-lab-card{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:18px;width:100%;padding:26px;display:flex}.binary-lab-lead{color:var(--text);margin:0;font-size:1.1rem;line-height:1.55}.binary-lab-progress{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.9rem;font-weight:600}.binary-lab-feedback{margin:0;font-size:1.05rem;font-weight:600}.binary-lab-feedback--good{color:var(--success)}.binary-lab-feedback--bad{color:var(--danger)}.binary-lab-input{border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-h);text-align:center;border-radius:10px;width:160px;padding:12px 16px;font-size:1.2rem}.binary-lab-input:focus{border-color:var(--accent-border);outline:none}.binary-lab-summary{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:100%;padding:32px 26px;display:flex}.binary-lab-summary-emoji{font-size:3rem}.binary-lab-summary h3{margin:0 0 6px}.binary-lab-summary p{color:var(--text-muted);font-size:1.05rem}.binary-lab-summary-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px;display:flex}.nm-modal-backdrop{z-index:50;background:#0a142873;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out nm-modal-fade;display:flex;position:absolute;inset:0}.nm-modal{border:2px solid var(--nm-border);background:var(--nm-card);width:min(640px,100%);max-height:100%;color:var(--nm-text);border-radius:22px;outline:none;flex-direction:column;display:flex;box-shadow:0 24px 60px #0000004d}.nm-modal--wide{width:min(900px,100%)}.nm-modal-header{justify-content:space-between;align-items:center;gap:12px;padding:20px 24px 8px;display:flex}.nm-modal-header h2{color:var(--nm-primary-text);margin:0;font-size:1.7rem}.nm-modal-close{border:2px solid var(--nm-border);background:var(--nm-panel);width:52px;height:52px;color:var(--nm-text);cursor:pointer;border-radius:50%;flex-shrink:0;font-size:1.3rem}.nm-modal-close:hover{border-color:var(--nm-select)}.nm-modal-close:focus-visible{outline:3px solid var(--nm-select);outline-offset:3px}.nm-modal-body{flex-direction:column;gap:12px;min-height:0;padding:12px 24px;font-size:1.15rem;line-height:1.5;display:flex;overflow-y:auto}.nm-modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:12px 24px 22px;display:flex}@keyframes nm-modal-fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.nm-modal-backdrop{animation:none}}.nm-toggle{border:2px solid var(--nm-border);background:var(--nm-card);cursor:pointer;border-radius:14px;align-items:center;gap:12px;min-height:64px;padding:10px 14px;display:flex}.nm-toggle input{opacity:0;pointer-events:none;position:absolute}.nm-toggle-track{background:var(--nm-art-led-off);border-radius:16px;flex-shrink:0;width:58px;height:32px;transition:background .15s;position:relative}.nm-toggle-track:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:4px;left:4px}.nm-toggle input:checked+.nm-toggle-track{background:var(--nm-ok-strong)}.nm-toggle input:checked+.nm-toggle-track:after{transform:translate(26px)}.nm-toggle input:focus-visible+.nm-toggle-track{outline:3px solid var(--nm-select);outline-offset:3px}.nm-toggle input:disabled+.nm-toggle-track{opacity:.5}.nm-toggle--disabled{cursor:default;opacity:.6}.nm-toggle-icon{font-size:1.6rem;line-height:1}.nm-toggle-text{color:var(--nm-text-muted);flex-direction:column;font-size:1rem;display:flex}.nm-toggle-text strong{color:var(--nm-text);font-size:1.15rem}.nm-toggle-text span{line-height:1.35}@media (prefers-reduced-motion:reduce){.nm-toggle-track,.nm-toggle-track:after{transition:none}}.nm-context-title{text-transform:uppercase;letter-spacing:.04em;color:var(--nm-text-muted);margin:0;font-size:1rem;font-weight:700}.nm-level-points{background:var(--nm-warn-soft);border:2px solid var(--nm-warn);font-variant-numeric:tabular-nums;color:var(--nm-text);border-radius:999px;flex-shrink:0;padding:4px 12px;font-size:1.15rem;font-weight:700}.nm-goals{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.nm-goals li{color:var(--nm-text);align-items:flex-start;gap:10px;font-size:1.05rem;line-height:1.4;display:flex}.nm-goal-mark{border:2px solid var(--nm-border);background:var(--nm-card);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-weight:700;display:flex}.nm-goals .nm-goal--done{color:var(--nm-text-muted)}.nm-goal--done .nm-goal-mark{border-color:var(--nm-ok-strong);background:var(--nm-ok-strong)}.nm-goal-count{color:var(--nm-primary-text);font-weight:700}.nm-level-progress{background:var(--nm-border);border-radius:6px;height:12px;overflow:hidden}.nm-level-progress span{background:var(--nm-ok);border-radius:6px;height:100%;transition:width .4s;display:block}@media (prefers-reduced-motion:reduce){.nm-level-progress span{transition:none}}.nm-teacher{flex-direction:column;gap:8px;display:flex}.nm-teacher h3{color:var(--nm-text-muted);margin:10px 0 2px;font-size:1.05rem}.nm-teacher-buttons{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;display:grid}.nm-teacher-buttons .nm-button{text-align:center;min-height:56px;font-size:1.05rem}.nm-teacher-buttons--two{margin-top:8px}.nm-teacher-save{gap:8px;display:flex}.nm-teacher-save input{border:2px solid var(--nm-border);background:var(--nm-panel);min-width:0;min-height:50px;color:var(--nm-text);font:inherit;border-radius:12px;flex:1;padding:8px 12px;font-size:1.05rem}.nm-teacher-save input:focus-visible{outline:3px solid var(--nm-select);outline-offset:2px}.nm-teacher-list{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.nm-teacher-list li{align-items:center;gap:6px;display:flex}.nm-teacher-list li>span{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;font-size:1rem;display:flex}.nm-teacher-list small{color:var(--nm-text-muted);font-size:.9rem}.nm-teacher-list .nm-button{min-height:48px;padding-inline:10px;font-size:1rem}.nm-art rect,.nm-art path,.nm-art circle,.nm-art ellipse{stroke:var(--nm-art-outline);stroke-width:3px;stroke-linejoin:round}.nm-art-dark{fill:var(--nm-art-dark)}.nm-art-mid{fill:var(--nm-art-mid)}.nm-art-light{fill:var(--nm-art-light)}.nm-art-screen{fill:var(--nm-art-screen)}.nm-art-screen--light{fill:var(--nm-art-screen-light)}.nm-art .nm-art-shine{fill:#ffffff59;stroke:none}.nm-art-keys{fill:var(--nm-art-light)}.nm-art-paper{fill:var(--nm-art-paper)}.nm-art-unit{fill:var(--nm-art-unit)}.nm-art-switch{fill:var(--nm-art-switch)}.nm-art-port{fill:var(--nm-art-port)}.nm-art-router{fill:var(--nm-art-light)}.nm-art .nm-art-stripe{fill:var(--nm-art-screen);stroke:none}.nm-art-detail{stroke:var(--nm-art-mid);stroke-width:3px;stroke-linecap:round}.nm-art-detail--light{stroke:var(--nm-art-unit-detail)}.nm-art-antenna{stroke:var(--nm-art-outline);stroke-width:6px;stroke-linecap:round}.nm-art .nm-art-wave{fill:none;stroke:var(--nm-art-screen);stroke-width:4px;stroke-linecap:round}.nm-art .nm-art-led{fill:var(--nm-art-led-off);stroke-width:1.5px}.nm-art .nm-art-led--on{fill:var(--nm-ok)}.nm-art .nm-art-led--blue{fill:var(--nm-art-screen-light)}.nm-art-cloud{fill:var(--nm-art-cloud)}.nm-art .nm-art-cloud{stroke:var(--nm-art-screen)}.nm-art-globe circle,.nm-art-globe ellipse,.nm-art-globe line,.nm-art-globe path{fill:none;stroke:var(--nm-art-screen);stroke-width:3px}.nm-device-icon{flex-shrink:0;display:block;overflow:visible}.nm-delivery{pointer-events:none}.nm-delivery text{text-anchor:middle;dominant-baseline:central;font-weight:700}.nm-badge rect{fill:var(--nm-primary);stroke:var(--nm-card);stroke-width:3px}.nm-badge text{fill:var(--nm-primary-contrast);font-size:24px}.nm-routing-label rect{fill:var(--nm-warn);stroke:var(--nm-card);stroke-width:3px}.nm-routing-label--serve rect{fill:var(--nm-ok-strong)}.nm-routing-label text{fill:#fff;font-size:24px}.nm-packet-glow{fill:var(--nm-select-soft);stroke:var(--nm-select);stroke-width:3px}.nm-packet-body{fill:#fff;stroke:var(--nm-primary);stroke-width:4px;stroke-linejoin:round}.nm-packet-flap{fill:none;stroke:var(--nm-primary);stroke-width:4px;stroke-linejoin:round}.nm-packet--reply .nm-packet-glow{fill:var(--nm-ok-soft);stroke:var(--nm-ok)}.nm-packet--reply .nm-packet-body{fill:#eafff1;stroke:var(--nm-ok-strong)}.nm-packet--reply .nm-packet-flap{stroke:var(--nm-ok-strong)}.nm-mark{transform-box:fill-box;transform-origin:50%;animation:.35s ease-out nm-mark-pop}.nm-mark circle{stroke:var(--nm-card);stroke-width:4px}.nm-mark polyline,.nm-mark path{fill:none;stroke:#fff;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.nm-mark--ok circle{fill:var(--nm-ok)}.nm-mark--error circle{fill:var(--nm-error)}.nm-mark--warning circle{fill:var(--nm-warn)}@keyframes nm-mark-pop{0%{opacity:0;transform:scale(.2)}70%{transform:scale(1.15)}}.nm-message-card{animation:.3s ease-out nm-card-in}.nm-message-card rect{fill:var(--nm-card);stroke:var(--nm-ok);stroke-width:4px;filter:drop-shadow(0 6px 10px #0000002e)}.nm-message-card--reply rect{stroke:var(--nm-select)}.nm-delivery .nm-message-card-title,.nm-delivery .nm-message-card-text{text-anchor:start;dominant-baseline:alphabetic}.nm-message-card-title{fill:var(--nm-text-muted);font-size:22px;font-weight:600}.nm-message-card-text{fill:var(--nm-text);font-size:30px}@keyframes nm-card-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.nm-mark,.nm-message-card{animation:none}}.nm-board{aspect-ratio:16/10;border:2px solid var(--nm-border);width:min(100cqw,160cqh);box-shadow:var(--nm-shadow);border-radius:20px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.nm-board--drop{border-color:var(--nm-select);box-shadow:0 0 0 4px var(--nm-select-soft), var(--nm-shadow)}.nm-board-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;font-family:var(--sans);display:block}.nm-board-bg{fill:var(--nm-board)}.nm-board-dot{fill:var(--nm-board-dot)}.nm-board-empty{fill:var(--nm-text-muted);text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:40px;font-weight:600}.nm-cable{cursor:pointer}.nm-cable-hit{stroke:#0000;stroke-width:34px;stroke-linecap:round}.nm-cable-line{stroke:var(--nm-cable);stroke-width:9px;stroke-linecap:round;pointer-events:none;transition:stroke .15s}.nm-cable:hover .nm-cable-line{stroke:var(--nm-select)}.nm-cable--selected .nm-cable-line{stroke:var(--nm-error);stroke-dasharray:18 12}.nm-cable--lit .nm-cable-line{stroke:var(--nm-ok);stroke-width:13px}.nm-cable--reply .nm-cable-line{stroke:var(--nm-select);stroke-width:13px}.nm-board--locked .nm-cable,.nm-board--locked .nm-device{cursor:progress}.nm-board--send .nm-device{cursor:pointer}.nm-cable-rubber{stroke:var(--nm-select);stroke-width:7px;stroke-linecap:round;stroke-dasharray:14 12;pointer-events:none}.nm-landing{fill:var(--nm-select-soft);stroke:var(--nm-select);stroke-width:3px;stroke-dasharray:12 10;pointer-events:none}.nm-device{cursor:grab;outline:none}.nm-board--connect .nm-device{cursor:crosshair}.nm-device--dragging{cursor:grabbing;opacity:.85}.nm-device-halo{fill:#0000;stroke:#0000;stroke-width:4px;transition:fill .15s,stroke .15s}.nm-device:hover .nm-device-halo{fill:var(--nm-hover-soft)}.nm-device:focus-visible .nm-device-halo{stroke:var(--nm-select);stroke-width:6px}.nm-device--selected .nm-device-halo{fill:var(--nm-select-soft);stroke:var(--nm-select)}.nm-device--pending .nm-device-halo{fill:var(--nm-select-soft);stroke:var(--nm-select);stroke-dasharray:14 10;animation:1s ease-in-out infinite nm-pending-pulse}@keyframes nm-pending-pulse{50%{stroke-opacity:.35}}.nm-device--flash .nm-device-halo{fill:var(--nm-ok-soft);stroke:var(--nm-ok);animation:.35s ease-in-out infinite alternate nm-flash}.nm-device--flash .nm-art-led--on{animation:.18s steps(2,end) infinite nm-led-blink}@keyframes nm-flash{to{fill:#0000}}@keyframes nm-led-blink{50%{fill:#eaffef}}.nm-device--error .nm-device-halo{fill:var(--nm-error-soft);stroke:var(--nm-error);stroke-width:6px}.nm-device-body--shake{animation:.45s ease-in-out nm-shake}@keyframes nm-shake{20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}.nm-device--printing .nm-art-printout{animation:1.2s ease-out nm-print}@keyframes nm-print{0%{opacity:0;transform:translateY(-18px)}30%{opacity:1}}.nm-device-label{fill:var(--nm-text);text-anchor:middle;paint-order:stroke;stroke:var(--nm-board);stroke-width:7px;stroke-linejoin:round;pointer-events:none;font-size:28px;font-weight:700}.nm-device-ip{fill:var(--nm-text-muted);font-variant-numeric:tabular-nums;text-anchor:middle;paint-order:stroke;stroke:var(--nm-board);stroke-width:6px;stroke-linejoin:round;pointer-events:none;font-size:22px;font-weight:600}.nm-device-ip--missing{fill:var(--nm-warn)}.nm-port-ip{pointer-events:none}.nm-port-ip rect{fill:var(--nm-card);stroke:var(--nm-cable);stroke-width:2px}.nm-port-ip text{fill:var(--nm-text);font-variant-numeric:tabular-nums;text-anchor:middle;dominant-baseline:central;font-size:20px;font-weight:600}.nm-chip{cursor:pointer;outline:none}.nm-chip rect{fill:var(--nm-error);stroke:var(--nm-card);stroke-width:4px;filter:drop-shadow(0 4px 6px #0003)}.nm-chip:hover rect,.nm-chip:focus-visible rect{fill:var(--nm-error-strong)}.nm-chip:focus-visible rect{stroke:var(--nm-select);stroke-width:6px}.nm-chip text{fill:#fff;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:26px;font-weight:700}@media (prefers-reduced-motion:reduce){.nm-board,.nm-cable-line,.nm-device-halo{transition:none}.nm-device--pending .nm-device-halo,.nm-device--flash .nm-device-halo,.nm-device--flash .nm-art-led--on,.nm-device-body--shake,.nm-device--printing .nm-art-printout{animation:none}}.nm-button.nm-menu-toggle{width:56px;min-height:56px;padding:0;font-size:1.6rem}.nm-menu-popover{z-index:30;border:2px solid var(--nm-border);background:var(--nm-card);border-radius:18px;flex-direction:column;padding:8px;animation:.12s ease-out nm-menu-in;display:flex;position:absolute;top:82px;left:16px;right:16px;box-shadow:0 18px 40px #0a142840}.nm-menu-summary{background:var(--nm-panel);font-variant-numeric:tabular-nums;color:var(--nm-text);border-radius:12px;flex-wrap:wrap;gap:6px 14px;margin:2px 4px 8px;padding:10px 12px;font-size:1rem;display:flex}.nm-menu-summary strong{color:var(--nm-primary-text)}.nm-menu-item{min-height:54px;color:var(--nm-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;padding:8px 12px;font-size:1.15rem;font-weight:600;display:flex}.nm-menu-item:hover:not(:disabled),.nm-menu-item:focus-visible{background:var(--nm-select-soft);outline:none}.nm-menu-item:focus-visible{box-shadow:inset 0 0 0 3px var(--nm-select)}.nm-menu-item:disabled{opacity:.45;cursor:default}.nm-menu-item--separated{margin-top:12px;position:relative}.nm-menu-item--separated:before{content:"";border-top:2px solid var(--nm-border);position:absolute;top:-7px;left:8px;right:8px}.nm-menu-item-icon{text-align:center;width:30px;font-size:1.35rem}@keyframes nm-menu-in{0%{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.nm-menu-popover{animation:none}}.nm-control{background:var(--nm-panel);border-left:1px solid var(--nm-border);flex-direction:column;grid-area:panel;min-height:0;display:flex;position:relative}.nm-control-fixed{border-bottom:2px solid var(--nm-border);flex-direction:column;flex-shrink:0;gap:12px;padding:16px 16px 14px;display:flex}.nm-control-header{align-items:center;gap:10px;display:flex}.nm-control-title{min-width:0;color:var(--nm-primary-text);flex:1;margin:0;font-size:1.2rem;line-height:1.25}.nm-tools{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.nm-tool{border:2px solid var(--nm-border);background:var(--nm-card);min-width:0;min-height:82px;color:var(--nm-text);cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 2px;font-size:.95rem;font-weight:700;transition:border-color .15s,background .15s;display:flex}.nm-tool-icon{font-size:1.7rem;line-height:1}.nm-tool:hover:not(:disabled){border-color:var(--nm-select);background:var(--nm-select-soft)}.nm-tool:focus-visible{outline:3px solid var(--nm-select);outline-offset:3px}.nm-tool:disabled{opacity:.45;cursor:default}.nm-tool.nm-tool--active,.nm-tool.nm-tool--active:hover:not(:disabled){border-color:var(--nm-primary);background:var(--nm-primary);color:var(--nm-primary-contrast)}.nm-control-quick{grid-template-columns:1fr 1fr;gap:8px;display:grid}.nm-control-quick--single{grid-template-columns:1fr}.nm-control-quick .nm-button{min-width:0;min-height:52px;padding-inline:8px;font-size:1.05rem}.nm-control-context{flex-direction:column;flex:1;gap:14px;min-height:0;padding:16px;display:flex;overflow-y:auto}.nm-control-context>*{flex-shrink:0}.nm-control-notice{flex-shrink:0;padding:0 16px 16px}.nm-control-notice:has(.nm-notice:empty){padding:0}.nm-button.nm-button--hint{border-color:var(--nm-warn);background:var(--nm-warn-soft)}.nm-control-section{flex-direction:column;gap:10px;display:flex}.nm-control-task{background:var(--nm-card);border:2px solid var(--nm-border);color:var(--nm-text);border-radius:14px;margin:0;padding:14px 16px;font-size:1.1rem;line-height:1.45}.nm-selected{background:var(--nm-card);border:2px solid var(--nm-border);border-radius:16px;padding:14px}.nm-selected-head{align-items:center;gap:12px;display:flex}.nm-selected-name{color:var(--nm-primary-text);margin:0;font-size:1.25rem;font-weight:700}.nm-selected-kind,.nm-selected-meta{color:var(--nm-text-muted);margin:0;font-size:1rem}@media (width<=1000px){.nm-control{border-left:none;border-top:1px solid var(--nm-border)}.nm-control-context{overflow:visible}.nm-control-notice{z-index:5;background:var(--nm-panel);padding-top:8px;position:sticky;bottom:0}}@media (prefers-reduced-motion:reduce){.nm-tool{transition:none}}.nm-notice{max-height:40vh;color:var(--nm-text);border:2px solid #0000;border-radius:16px;align-items:flex-start;gap:12px;padding:12px 14px;font-size:1.1rem;line-height:1.4;display:flex;overflow-y:auto}.nm-notice:empty{display:none}.nm-notice-title{margin-bottom:2px;display:block}.nm-notice-icon{font-size:1.4rem;line-height:1.1}.nm-notice--info{background:linear-gradient(var(--nm-select-soft), var(--nm-select-soft)), var(--nm-card);border-color:var(--nm-select)}.nm-notice--success{background:linear-gradient(var(--nm-ok-soft), var(--nm-ok-soft)), var(--nm-card);border-color:var(--nm-ok)}.nm-notice--warning{background:linear-gradient(var(--nm-warn-soft), var(--nm-warn-soft)), var(--nm-card);border-color:var(--nm-warn)}.nm-notice--error{background:linear-gradient(var(--nm-error-soft), var(--nm-error-soft)), var(--nm-card);border-color:var(--nm-error)}.nm-palette{background:var(--nm-panel);border-right:1px solid var(--nm-border);flex-direction:column;grid-area:palette;gap:10px;min-height:0;padding:18px 14px;display:flex;overflow-y:auto}.nm-palette-tip{color:var(--nm-text-muted);margin:-4px 0 4px;font-size:1rem}.nm-palette-list{flex-direction:column;gap:10px;display:flex}.nm-palette-card{border:2px solid var(--nm-border);background:var(--nm-card);min-height:80px;box-shadow:var(--nm-shadow);color:var(--nm-text);text-align:left;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:16px;align-items:center;gap:10px;padding:6px 12px;transition:border-color .15s,transform .15s;display:flex}.nm-palette-card:hover{border-color:var(--nm-select);transform:translateY(-2px)}.nm-palette-card:disabled{opacity:.5;cursor:progress;transform:none}.nm-palette-card:active{cursor:grabbing}.nm-palette-card:focus-visible{outline:3px solid var(--nm-select);outline-offset:3px}.nm-palette-card{position:relative}.nm-palette-count{background:var(--nm-primary);min-width:30px;height:30px;color:var(--nm-primary-contrast);border-radius:15px;justify-content:center;align-items:center;padding:0 8px;font-size:1rem;font-weight:700;display:flex;position:absolute;top:-8px;right:-6px}.nm-palette-count--empty{background:var(--nm-art-led-off)}.nm-palette-text{flex-direction:column;gap:2px;min-width:0;display:flex}.nm-palette-name{color:var(--nm-primary-text);font-size:1.1rem;font-weight:700;line-height:1.2}.nm-palette-hint{color:var(--nm-text-muted);font-size:.95rem;line-height:1.3}@media (width<=1000px){.nm-palette{border-right:none;border-bottom:1px solid var(--nm-border);overflow:auto hidden}.nm-palette-tip{display:none}.nm-palette-list{flex-direction:row}.nm-palette-card{text-align:center;flex-direction:column;justify-content:center;min-width:156px}.nm-palette-name{font-size:1rem}.nm-palette-hint{display:none}}@media (prefers-reduced-motion:reduce){.nm-palette-card{transition:none}.nm-palette-card:hover{transform:none}}.nm-settings-form{flex-direction:column;gap:10px;display:flex}.nm-field{flex-direction:column;gap:4px;display:flex}.nm-field label{color:var(--nm-text-muted);font-size:1rem;font-weight:600}.nm-field input{border:2px solid var(--nm-border);background:var(--nm-panel);width:100%;min-width:0;min-height:50px;color:var(--nm-text);font:inherit;font-variant-numeric:tabular-nums;border-radius:12px;padding:8px 12px;font-size:1.15rem}.nm-field input:focus-visible{outline:3px solid var(--nm-select);outline-offset:2px}.nm-field input[aria-invalid=true]{border-color:var(--nm-warn)}.nm-field-problem{background:var(--nm-warn-soft);color:var(--nm-text);border-radius:10px;margin:0;padding:6px 10px;font-size:.95rem;line-height:1.35}.nm-readonly{flex-direction:column;gap:4px;display:flex}.nm-readonly-row{color:var(--nm-text-muted);justify-content:space-between;gap:8px;font-size:1.05rem;display:flex}.nm-readonly-row strong{color:var(--nm-text);font-variant-numeric:tabular-nums}.nm-ports{flex-direction:column;gap:10px;display:flex}.nm-port{border:2px solid var(--nm-border);border-radius:14px;flex-direction:column;gap:8px;min-inline-size:0;margin:0;padding:10px 12px 12px;display:flex}.nm-port legend{color:var(--nm-primary-text);padding:0 6px;font-size:1.05rem;font-weight:700}.nm-settings-note{color:var(--nm-text-muted);margin:0;font-size:1rem;line-height:1.4}.nm-settings-actions{flex-direction:column;gap:8px;display:flex}.nm-send{background:var(--nm-card);border:2px solid var(--nm-border);border-radius:16px;padding:14px}.nm-send-steps{gap:6px;margin:0;padding:0;list-style:none;display:flex}.nm-send-steps li{color:var(--nm-text-muted);text-align:center;flex-direction:column;flex:1;align-items:center;gap:4px;font-size:.95rem;font-weight:600;display:flex}.nm-send-step-number{border:2px solid var(--nm-border);background:var(--nm-panel);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:1.05rem;font-weight:700;display:flex}.nm-send-steps .nm-send-step--current{color:var(--nm-primary-text)}.nm-send-step--current .nm-send-step-number{border-color:var(--nm-primary);background:var(--nm-primary);color:var(--nm-primary-contrast)}.nm-send-steps .nm-send-step--done{color:var(--nm-ok-text)}.nm-send-step--done .nm-send-step-number{border-color:var(--nm-ok);background:var(--nm-ok-soft)}.nm-send-route{color:var(--nm-text);flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:1.1rem;display:flex}.nm-send-route strong{color:var(--nm-primary-text)}.nm-send-form{flex-direction:column;gap:8px;display:flex}.nm-send-label{color:var(--nm-text-muted);font-size:1rem;font-weight:600}.nm-send-input{border:2px solid var(--nm-border);background:var(--nm-panel);min-height:52px;color:var(--nm-text);font:inherit;border-radius:12px;padding:10px 14px;font-size:1.2rem}.nm-send-input:focus-visible{outline:3px solid var(--nm-select);outline-offset:2px}.nm-button.nm-button--send{border-color:var(--nm-ok-strong);background:var(--nm-ok-strong);color:#fff}.nm-button.nm-button--send:hover:not(:disabled){border-color:var(--nm-ok-strong);background:var(--nm-ok-strong);filter:brightness(1.08)}.nm-send-after{flex-direction:column;gap:8px;display:flex}.nm-help-steps{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.nm-help-steps li{align-items:flex-start;gap:14px;display:flex}.nm-help-icon{background:var(--nm-select-soft);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;font-size:1.8rem;display:flex}.nm-stars{z-index:49;pointer-events:none;position:absolute;inset:0;overflow:hidden}.nm-stars span{font-size:2.6rem;animation:2.4s ease-in forwards nm-star-fall;position:absolute;top:-60px}@keyframes nm-star-fall{to{opacity:.2;transform:translateY(110vh)rotate(260deg)}}.nm-complete-score{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px 24px;font-size:1.3rem;font-weight:600;display:flex}.nm-complete-points{color:var(--nm-primary-text);font-variant-numeric:tabular-nums;font-size:2.8rem;font-weight:800}.nm-complete-awards{background:var(--nm-ok-soft);border-radius:14px;flex-direction:column;gap:6px;margin:0;padding:14px 18px 14px 36px;display:flex}@media (prefers-reduced-motion:reduce){.nm-stars{display:none}}.nm-levels{background:var(--nm-board);flex:1;min-height:0;overflow-y:auto}.nm-levels-inner{flex-direction:column;gap:20px;width:min(1200px,100%);margin:0 auto;padding:24px 20px 40px;display:flex}.nm-levels-head{align-items:center;gap:20px;display:flex}.nm-levels-head h1{color:var(--nm-primary-text);margin:0;font-size:2.2rem}.nm-level-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;display:grid}.nm-level-card{border:2px solid var(--nm-border);background:var(--nm-card);box-shadow:var(--nm-shadow);border-radius:20px;flex-direction:column;gap:8px;padding:22px;font-size:1.1rem;line-height:1.45;display:flex}.nm-level-card p{margin:0}.nm-level-card h2{color:var(--nm-primary-text);margin:0;font-size:1.45rem}.nm-level-card .nm-button{margin-top:auto}.nm-level-number{background:var(--nm-primary);width:52px;height:52px;color:var(--nm-primary-contrast);border-radius:50%;justify-content:center;align-items:center;font-size:1.6rem;font-weight:800;display:flex}.nm-level-difficulty{color:var(--nm-text-muted);font-weight:600}.nm-level-best{color:var(--nm-ok-text);font-weight:600}.nm-level-lock{background:var(--nm-warn-soft);border-radius:12px;padding:8px 12px;font-size:1rem}.nm-level-card--locked .nm-level-number{background:var(--nm-art-led-off)}.nm-menu{background:var(--nm-board);background-image:radial-gradient(var(--nm-board-dot) 2px, transparent 2px);background-size:40px 40px;flex:1;justify-content:center;min-height:0;display:flex;position:relative;overflow-y:auto}.nm-menu-decor{pointer-events:none;position:absolute;inset:0;overflow:hidden}.nm-menu-decor span{opacity:.18;font-size:3.5rem;position:absolute}.nm-menu-decor span:first-child{top:8%;left:6%}.nm-menu-decor span:nth-child(2){top:20%;right:9%}.nm-menu-decor span:nth-child(3){bottom:12%;right:5%}.nm-menu-decor span:nth-child(4){bottom:18%;left:8%}.nm-menu-decor span:nth-child(5){top:55%;left:3%}.nm-menu-content{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(760px,100%);padding:28px 20px 36px;display:flex;position:relative}.nm-menu-title{color:var(--nm-primary-text);margin:0;font-size:clamp(2.4rem,5vw,3.6rem);font-weight:800;line-height:1.1}.nm-menu-subtitle{color:var(--nm-text-muted);margin:0;font-size:1.4rem}.nm-menu-art{width:min(460px,100%);height:auto;overflow:visible}.nm-menu-cable{stroke:var(--nm-cable);stroke-width:8px;stroke-linecap:round}.nm-menu-envelope rect{fill:#fff;stroke:var(--nm-ok-strong);stroke-width:3px}.nm-menu-envelope polyline{fill:none;stroke:var(--nm-ok-strong);stroke-width:3px}.nm-menu-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(560px,100%);display:grid}.nm-menu-actions .nm-button{min-height:64px;font-size:1.25rem}.nm-menu-actions .nm-menu-wide{grid-column:1/-1}.nm-menu-actions .nm-menu-play{grid-column:1/-1;min-height:76px;font-size:1.6rem}.nm-menu-mode{color:var(--nm-text-muted);margin:0;font-size:1.05rem}@media (width<=560px){.nm-menu-actions{grid-template-columns:minmax(0,1fr)}}.network-master{--nm-board:#e6f3fd;--nm-board-dot:#a9cdea;--nm-panel:#f3f8fd;--nm-card:#fff;--nm-border:#c8dcef;--nm-text:#14213d;--nm-text-muted:#4a5a78;--nm-primary:#1d3a8a;--nm-primary-text:#1d3a8a;--nm-primary-contrast:#fff;--nm-select:#2f6fe0;--nm-select-soft:#2f6fe024;--nm-hover-soft:#2f6fe012;--nm-cable:#3a5584;--nm-ok:#1f9d55;--nm-ok-strong:#157a41;--nm-ok-text:#157a41;--nm-ok-soft:#1f9d5521;--nm-warn:#e0700b;--nm-warn-soft:#e0700b21;--nm-error:#d63a3a;--nm-error-strong:#b42323;--nm-error-soft:#d63a3a1f;--nm-shadow:#1428501a 0 8px 20px -8px, #14285014 0 2px 6px -2px;--nm-art-outline:#1c2a44;--nm-art-dark:#24396b;--nm-art-mid:#7c8aa5;--nm-art-light:#e8edf5;--nm-art-screen:#3b82f6;--nm-art-screen-light:#93c5fd;--nm-art-paper:#fff;--nm-art-unit:#3a5592;--nm-art-unit-detail:#93a9d6;--nm-art-switch:#1d3a8a;--nm-art-port:#0d1830;--nm-art-led-off:#9aa8bf;--nm-art-cloud:#cfe8ff;color:var(--nm-text)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .network-master{--nm-board:#10203a;--nm-board-dot:#2a4570;--nm-panel:#142540;--nm-card:#1a2d4c;--nm-border:#2d4670;--nm-text:#e6eefb;--nm-text-muted:#a7b8d4;--nm-primary:#3563c9;--nm-primary-text:#9dbcff;--nm-select:#6b9bff;--nm-select-soft:#6b9bff33;--nm-hover-soft:#6b9bff1a;--nm-cable:#8fa9d6;--nm-ok:#3ccf7d;--nm-ok-strong:#17773f;--nm-ok-text:#3ccf7d;--nm-ok-soft:#3ccf7d29;--nm-warn:#ff9a3d;--nm-warn-soft:#ff9a3d29;--nm-error:#f26464;--nm-error-strong:#d63a3a;--nm-error-soft:#f2646429;--nm-shadow:#00000073 0 8px 20px -8px, #0000004d 0 2px 6px -2px;--nm-art-outline:#0a1222;--nm-art-cloud:#2b4f80}}:root[data-theme=dark] .network-master{--nm-board:#10203a;--nm-board-dot:#2a4570;--nm-panel:#142540;--nm-card:#1a2d4c;--nm-border:#2d4670;--nm-text:#e6eefb;--nm-text-muted:#a7b8d4;--nm-primary:#3563c9;--nm-primary-text:#9dbcff;--nm-select:#6b9bff;--nm-select-soft:#6b9bff33;--nm-hover-soft:#6b9bff1a;--nm-cable:#8fa9d6;--nm-ok:#3ccf7d;--nm-ok-strong:#17773f;--nm-ok-text:#3ccf7d;--nm-ok-soft:#3ccf7d29;--nm-warn:#ff9a3d;--nm-warn-soft:#ff9a3d29;--nm-error:#f26464;--nm-error-strong:#d63a3a;--nm-error-soft:#f2646429;--nm-shadow:#00000073 0 8px 20px -8px, #0000004d 0 2px 6px -2px;--nm-art-outline:#0a1222;--nm-art-cloud:#2b4f80}.nm-root{background:var(--nm-panel);flex:1;min-width:0;min-height:0;display:flex;position:relative}.nm-workbench{background:var(--nm-panel);flex:1;grid-template-columns:300px minmax(0,1fr) 330px;grid-template-areas:"palette stage panel";min-width:0;min-height:0;display:grid;position:relative}.nm-stage{flex-direction:column;grid-area:stage;min-width:0;min-height:0;padding:16px;display:flex;position:relative}.nm-board-wrap{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;container-type:size}.nm-panel-title{color:var(--nm-primary-text);margin:0;font-size:1.35rem;font-weight:700}.nm-button{border:2px solid var(--nm-border);background:var(--nm-card);min-height:56px;color:var(--nm-text);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:1.15rem;font-weight:700;transition:border-color .15s,background .15s;display:inline-flex}.nm-button:hover:not(:disabled){border-color:var(--nm-select);background:var(--nm-select-soft)}.nm-button:focus-visible{outline:3px solid var(--nm-select);outline-offset:3px}.nm-button:disabled{opacity:.45;cursor:default}.nm-button--active,.nm-button--active:hover:not(:disabled),.nm-button.nm-button--primary{border-color:var(--nm-primary);background:var(--nm-primary);color:var(--nm-primary-contrast)}.nm-button.nm-button--primary:hover:not(:disabled){border-color:var(--nm-primary);background:var(--nm-primary);filter:brightness(1.12)}.nm-button--danger{border-color:var(--nm-error);color:var(--nm-error)}.nm-button--danger:hover:not(:disabled){border-color:var(--nm-error);background:var(--nm-error-soft)}.nm-ghost{z-index:100;pointer-events:none;opacity:.75;filter:drop-shadow(0 8px 12px #00000040);position:fixed;transform:translate(-50%,-50%)scale(.9)}.nm-ghost--over{opacity:.95;transform:translate(-50%,-50%)}@media (width<=1000px){.nm-workbench{flex-direction:column;display:flex;overflow-y:auto}.nm-workbench>*{flex:none}.nm-board-wrap{flex:none;height:calc(62.5vw - 20px)}}@media (prefers-reduced-motion:reduce){.nm-button{transition:none}}.games-page h1{margin:0 0 6px;font-size:2rem}.page-lead{color:var(--text-muted);max-width:60ch;margin-bottom:28px}.game-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;display:grid}.game-card{text-align:left;color:inherit;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:22px;text-decoration:none;transition:transform .15s,border-color .15s;display:block}.game-card:hover{border-color:var(--accent-border);transform:translateY(-2px)}.game-card-emoji{margin-bottom:10px;font-size:2rem;display:block}.game-card h2{margin:0 0 6px;font-size:1.2rem}.game-card p{color:var(--text-muted);margin:0 0 14px;font-size:.92rem;line-height:1.5}.game-card-meta{color:var(--accent-strong);background:var(--accent-bg);border-radius:999px;padding:4px 12px;font-size:.82rem;font-weight:600;display:inline-block}.game-page{background:var(--bg-subtle);z-index:40;flex-direction:column;height:100dvh;display:flex;position:fixed;inset:0}.game-page-header{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:16px;padding:10px 20px;display:flex}.game-page-back{color:var(--text-muted);white-space:nowrap;font-size:.95rem;text-decoration:none}.game-page-back:hover{color:var(--accent-strong)}.game-page-title{text-align:center;flex:1;margin:0;font-size:1.1rem}.game-page-stage{flex:1;min-height:0;padding:0;display:flex}.ht{min-height:0;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background:var(--bg-subtle);flex:1;overflow-y:auto}.ht-card{border:1px solid var(--border);background:var(--surface);max-width:760px;box-shadow:var(--shadow);border-radius:16px;margin:0 auto;padding:24px}.ht-title{color:var(--text-h);margin:0 0 16px;font-size:1.35rem;line-height:1.3}.ht-muted{color:var(--text-muted);margin:0}.ht-rules{margin:0 0 20px;padding-left:20px}.ht-rules li+li{margin-top:4px}.ht-label{color:var(--text-h);margin-bottom:6px;font-weight:600;display:block}.ht-input{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);border-radius:8px;padding:10px 12px;font-size:16px}.ht-input:focus{outline:2px solid var(--accent-border);outline-offset:0;border-color:var(--accent-border)}.ht-actions{justify-content:space-between;gap:12px;margin-top:24px;display:flex}.ht-actions-end{justify-content:flex-end;margin-top:16px}.ht-btn{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text-h);cursor:pointer;border-radius:10px;padding:8px 18px;font-size:1rem;font-weight:500;transition:border-color .15s,background .15s}.ht-btn:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.ht-btn:disabled{opacity:.4;cursor:default}.ht-btn-primary{border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.ht-btn-primary:hover:not(:disabled){border-color:var(--accent);background:var(--accent)}.ht-progress-head{color:var(--text-h);justify-content:space-between;gap:12px;font-size:.9rem;font-weight:600;display:flex}.ht-progress{background:var(--border);border-radius:3px;height:6px;margin:8px 0 20px;overflow:hidden}.ht-progress-fill{background:var(--accent);height:100%;transition:width .2s}.ht-question{color:var(--text-h);margin:0 0 16px;font-size:1.2rem;line-height:1.4}.ht-code{background:var(--bg-subtle);border:1px solid var(--border);font-family:var(--mono);color:var(--text-h);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0 0 16px;padding:12px 14px;font-size:.95rem}.ht-options{flex-direction:column;gap:10px;display:flex}.ht-option{border:2px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;font-size:1rem;transition:border-color .15s,background .15s;display:flex}.ht-option:hover{border-color:var(--accent-border)}.ht-option.is-selected{border-color:var(--accent);background:var(--accent-bg)}.ht-option-letter{background:var(--bg-subtle);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-weight:600;display:flex}.ht-option.is-selected .ht-option-letter{border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.ht-option-text{overflow-wrap:anywhere;min-width:0}.ht-warning{background:var(--warning-bg);color:var(--text-h);border-radius:8px;margin:12px 0 0;padding:8px 12px;font-size:.95rem}.ht-nav{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px;margin-top:24px;padding-top:16px;display:grid}.ht-nav-item{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text-muted);cursor:pointer;border-radius:8px;font-size:.9rem}.ht-nav-item.is-answered{border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-h)}.ht-nav-item.is-current{outline:2px solid var(--accent-strong);outline-offset:1px;color:var(--text-h);font-weight:700}.ht-result{text-align:center;position:relative}.ht-grade{--grade-color:var(--accent-strong);border:6px solid var(--grade-color);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;margin:8px auto 12px;display:flex}.ht-grade[data-level=high]{--grade-color:var(--success)}.ht-grade[data-level=low]{--grade-color:var(--text-muted)}.ht-grade-value{color:var(--grade-color);font-size:3.4rem;font-weight:800;line-height:1}.ht-grade-caption{color:var(--text-muted);margin-top:4px;font-size:.85rem}.ht-level{color:var(--text-h);margin:0 0 20px;font-size:1.1rem;font-weight:600}.ht-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.ht-stats div{background:var(--bg-subtle);border-radius:10px;padding:10px 8px}.ht-stats dt{color:var(--text-muted);font-size:.8rem}.ht-stats dd{color:var(--text-h);margin:2px 0 0;font-size:1.1rem;font-weight:700}.ht-flag{justify-content:flex-end;align-items:center;gap:6px;margin-top:20px;display:flex}.ht-flag-dot{background:#e0202e;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 3px #e0202e40}.ht-flag-count{color:#e0202e;font-size:.85rem;font-weight:700}.ht-hint{color:var(--accent-strong);margin:-8px 0 14px;font-weight:600}.ht-option-multi .ht-option-letter{border-radius:6px}.ht-options-tf{grid-template-columns:1fr 1fr;display:grid}.ht-option-tf{justify-content:center;min-height:64px;font-size:1.1rem;font-weight:600}@media (width<=480px){.ht-options-tf{grid-template-columns:1fr}}.ht-text-answer{max-width:420px}.ht-fill{color:var(--text-h);margin:0;font-size:1.1rem;line-height:2.4}.ht-input.ht-blank{text-align:center;width:auto;min-width:6ch;font-family:var(--mono);margin:0 4px;padding:4px 8px;display:inline-block}.ht-long{flex-direction:column;gap:4px;display:flex}.ht-long-answer{min-height:160px;font:inherit;resize:vertical;font-size:16px;line-height:1.5}.ht-counter{font-variant-numeric:tabular-nums;align-self:flex-end;font-size:.85rem}.ht-pending{margin:-8px 0 16px}.ht-order{flex-direction:column;gap:12px;display:flex}.ht-order-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ht-order-row{border:2px solid var(--border);background:var(--surface);color:var(--text-h);-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.ht-order-row.is-dragging{border-color:var(--accent);background:var(--accent-bg);box-shadow:var(--shadow)}.ht-order-handle{width:36px;height:40px;color:var(--text-muted);cursor:grab;touch-action:none;border-radius:8px;justify-content:center;align-items:center;font-size:1.3rem;display:inline-flex}.ht-order-row.is-dragging .ht-order-handle{cursor:grabbing}.ht-order-number{background:var(--bg-subtle);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-weight:700;display:inline-flex}.ht-order-buttons{gap:4px;margin-left:auto;display:flex}.ht-order-btn{border:1px solid var(--border);background:var(--surface);min-width:40px;min-height:40px;color:var(--text-h);cursor:pointer;border-radius:8px;font-size:1.05rem}.ht-order-btn:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.ht-order-btn:disabled{opacity:.35;cursor:default}.ht-order-keep{align-self:flex-start}.ht-match{flex-direction:column;gap:10px;display:flex}.ht-match-row{border:2px solid var(--border);background:var(--surface);border-radius:10px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;padding:8px 10px;display:grid}.ht-match-left{color:var(--text-h);overflow-wrap:anywhere;font-weight:600}.ht-match-arrow{color:var(--text-muted)}.ht-match-select{min-height:44px}@media (width<=560px){.ht-match-row{grid-template-columns:1fr}.ht-match-arrow{display:none}}.ht-save-state{color:var(--text-muted)}.ht-save-state.is-unsaved{color:var(--danger)}.ht-error{background:var(--danger-bg)}.ht-actions-center{justify-content:center}.ht-btn-link{align-items:center;text-decoration:none;display:inline-flex}.ht-stats-text{line-height:1.3;font-size:.9rem!important;font-weight:600!important}@media (width<=767px){.ht-card{padding:18px 16px}.ht-stats{grid-template-columns:1fr}}.student-test-page{background:var(--bg-subtle);flex-direction:column;min-height:100svh;display:flex}.student-test-header{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:16px;padding:10px 24px;display:flex}.student-test-header>:last-child{margin-left:auto}.student-test-brand{color:var(--text-h);font-weight:700}.student-test-who{text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;color:var(--text-muted);flex:1;font-weight:600;overflow:hidden}.student-test-status{text-align:center;max-width:520px;color:var(--text-h);margin:64px auto;padding:0 16px}.student-test-home{align-items:center;margin-top:8px;text-decoration:none;display:inline-flex}@media (width<=767px){.student-test-header{padding:10px 16px}}.materials-page h1{color:var(--text-h);margin:0 0 6px;font-size:2rem}.materials-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:24px 0 0;padding:0;list-style:none;display:grid}.materials-card{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);height:100%;box-shadow:var(--shadow);color:var(--text);border-radius:16px;gap:14px;padding:20px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.materials-card:hover{border-color:var(--accent-border);transform:translateY(-2px)}.materials-emoji{font-size:2rem;line-height:1}.materials-meta{color:var(--text-muted);font-size:.85rem;display:block}.materials-title{color:var(--text-h);margin:2px 0 6px;font-size:1.15rem;font-weight:700;display:block}.materials-description{font-size:.95rem;display:block}.materials-empty{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:16px;margin-top:24px;padding:20px 24px}.materials-empty p{margin:0 0 12px}.materials-action{color:var(--accent-strong);font-weight:700;text-decoration:none}@media (prefers-reduced-motion:reduce){.materials-card{transition:none}.materials-card:hover{transform:none}}
