@font-face{font-family:Geist;src:url(/assets/Geist-Variable-Bj2R_7yk.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/assets/GeistMono-Variable-Dispecij.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f4f7f8;font-synthesis:none;text-rendering:optimizelegibility;--gt-background:#071116;--gt-background-soft:#0a171e;--gt-surface:#0d1a22;--gt-surface-raised:#10232d;--gt-surface-accent:#172b34;--gt-text:#f4f7f8;--gt-text-secondary:#b7c2c8;--gt-text-muted:#829098;--gt-accent:#ff6a3d;--gt-accent-hover:#ff7c55;--gt-accent-strong:#e95d36;--gt-accent-ink:#071116;--gt-border:#ffffff17;--gt-border-strong:#ffffff29;--gt-success:#9bd8b0;--gt-danger:#ff8b76;--gt-radius-card:20px;--gt-radius-control:12px;--gt-radius-pill:999px;--gt-shadow-raised:0 24px 80px #01080c61;--gt-ease-out:cubic-bezier(.16, 1, .3, 1);background:#071116;font-family:Geist,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--gt-background)}body{background:var(--gt-background);min-width:320px;min-height:100dvh;margin:0}button,a{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--gt-accent);outline-offset:4px}.page-shell{grid-template-rows:1fr auto;min-height:100dvh;display:grid}.eyebrow,.panel-label,.step-kicker{color:var(--gt-text-muted);margin:0;font:500 .75rem Geist Mono,ui-monospace,monospace}.welcome-shell{grid-template-columns:minmax(0,1.08fr) minmax(380px,.72fr);min-height:calc(100dvh - 84px);display:grid;overflow:hidden}.welcome-copy{align-self:center;padding:clamp(48px,7vw,112px)}.welcome-copy .eyebrow{color:var(--gt-accent)}.welcome-copy h1{letter-spacing:-.065em;max-width:900px;margin:24px 0;font-size:clamp(3.2rem,6vw,6.1rem);font-weight:650;line-height:.98}.welcome-copy h1 em{color:var(--gt-accent);font-style:normal}.lead{max-width:620px;color:var(--gt-text-secondary);font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.68}.mode-list{border-top:1px solid var(--gt-border);margin-top:clamp(32px,5vw,64px)}.mode-row{text-align:left;width:100%;min-height:88px;color:var(--gt-text);border:0;border-bottom:1px solid var(--gt-border);transition:color .18s ease, background-color .18s ease, transform .18s var(--gt-ease-out);background:0 0;grid-template-columns:48px 1fr 28px;align-items:center;gap:16px;padding:0 10px;display:grid}.mode-row:hover{color:var(--gt-accent);background:var(--gt-surface);transform:translate(4px)}.mode-row:active{transform:scale(.99)}.mode-row strong{font-size:1.08rem;font-weight:650;display:block}.mode-row small{color:var(--gt-text-muted);margin-top:5px;font-size:.94rem;line-height:1.4;display:block}.mode-number{color:var(--gt-accent);font:500 .76rem Geist Mono,monospace}.welcome-object{color:var(--gt-text);background:var(--gt-background-soft);border-left:1px solid var(--gt-border);place-content:center;justify-items:center;padding:48px;display:grid;position:relative;overflow:hidden}.welcome-object:before{content:"";filter:blur(90px);pointer-events:none;background:#ff6a3d14;border-radius:50%;width:420px;height:420px;position:absolute}.blueprint-case{aspect-ratio:.86;border:1px solid var(--gt-border-strong);border-radius:var(--gt-radius-card);background:var(--gt-surface);width:min(29vw,420px);box-shadow:var(--gt-shadow-raised);flex-direction:column;justify-content:flex-end;padding:clamp(32px,4vw,56px);display:flex;position:relative;overflow:hidden;transform:rotate(1.5deg)}.blueprint-case:before,.blueprint-case:after{content:"";border:1px solid var(--gt-border);border-radius:12px;position:absolute}.blueprint-case:before{background:var(--gt-surface-raised);inset:11% 12% 50%}.blueprint-case:after{background:var(--gt-background-soft);inset:57% 12% 12%}.blueprint-case span,.blueprint-case small{z-index:1;letter-spacing:.08em;font:500 .8rem Geist Mono,monospace;position:relative}.blueprint-case b{z-index:1;color:var(--gt-accent);letter-spacing:-.12em;font-size:clamp(6rem,10vw,9rem);line-height:.78;position:relative}.blueprint-case small{color:var(--gt-text-secondary);letter-spacing:.22em;margin-top:14px}.welcome-object>p{color:var(--gt-text-muted);margin-top:32px;font:500 .75rem Geist Mono,monospace}.workshop{--gt-background:#f4f7f8;--gt-background-soft:#eaf0f2;--gt-surface:#fff;--gt-surface-raised:#e1e9ec;--gt-surface-accent:#d7e2e6;--gt-text:#071116;--gt-text-secondary:#40515a;--gt-text-muted:#67767e;--gt-border:#0711161c;--gt-border-strong:#07111630;--gt-success:#216c43;--gt-danger:#b8402c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;height:100dvh;color:var(--gt-text);background:var(--gt-background);grid-template-rows:72px minmax(0,1fr) 84px 64px;display:grid;overflow:hidden}.topbar{z-index:2;border-bottom:1px solid var(--gt-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f4f7f8f0;grid-template-columns:230px 1fr 270px;align-items:center;padding:0 22px;display:grid}.brand{align-items:center;gap:11px;display:flex}.brand-mark{width:36px;height:36px;color:var(--gt-accent-ink);background:var(--gt-accent);border-radius:10px;place-items:center;font:650 .7rem Geist Mono,monospace;display:grid}.brand strong{letter-spacing:-.02em;font-size:1rem}.brand i{color:var(--gt-accent);font-style:normal}.step-progress{color:var(--gt-text-secondary);justify-self:center;align-items:center;gap:16px;font:500 .75rem Geist Mono,monospace;display:flex}.progress-track{background:var(--gt-surface-accent);border-radius:var(--gt-radius-pill);width:min(25vw,320px);height:5px;overflow:hidden}.progress-track i{background:var(--gt-accent);border-radius:inherit;height:100%;transition:width .35s var(--gt-ease-out);display:block}.top-actions{justify-self:end;align-items:center;gap:12px;display:flex}.mode-badge{color:var(--gt-text-secondary);background:var(--gt-surface-accent);border:1px solid var(--gt-border);border-radius:var(--gt-radius-pill);padding:7px 12px;font-size:.85rem}.quiet{min-height:44px;color:var(--gt-text-secondary);border-radius:var(--gt-radius-control);background:0 0;border:0;padding:0 12px}.quiet:hover{color:var(--gt-text);background:var(--gt-surface)}.workspace{background:var(--gt-border);grid-template-columns:220px minmax(480px,1fr) 310px;gap:1px;min-height:0;display:grid}.parts-panel,.lesson-panel{background:var(--gt-surface);padding:22px;overflow:auto}.parts-list{margin-top:16px}.part-row{width:100%;min-height:46px;color:var(--gt-text-muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;align-items:center;gap:11px;padding:0 8px;font-size:.94rem;display:flex}.part-row.active{color:var(--gt-text);background:var(--gt-surface-raised);border-left-color:var(--gt-accent);border-radius:0 10px 10px 0;font-weight:650}.part-row.done{color:var(--gt-success)}.part-row:disabled{cursor:default;opacity:.78}.part-row:focus-visible{outline-offset:2px;outline:3px solid #ff6a3d57}.part-icon{width:28px;height:28px;color:var(--gt-text-secondary);background:var(--gt-background-soft);border:1px solid var(--gt-border-strong);border-radius:50%;flex:0 0 28px;place-items:center;font:500 .68rem Geist Mono,monospace;display:grid}.part-row.active .part-icon{color:var(--gt-accent-ink);background:var(--gt-accent);border-color:var(--gt-accent)}.scene-panel{background:var(--gt-background-soft);min-height:0;position:relative;overflow:hidden}.scene-panel canvas{touch-action:none}.scene-label{z-index:1;color:#f4f7f8;border-radius:var(--gt-radius-control);background:#0d1a22f5;border:1px solid #ffffff29;flex-direction:column;padding:11px 14px;display:flex;position:absolute;top:18px;left:18px;box-shadow:0 14px 40px #1c313a2e}.scene-label span{font:600 .72rem Geist Mono,monospace}.scene-label small{color:#b7c2c8;margin-top:4px;font-size:.76rem}.scene-tools{z-index:1;gap:8px;display:flex;position:absolute;bottom:18px;right:18px}.scene-tools button,.hint-button{min-height:44px;color:var(--gt-text);background:var(--gt-surface);border:1px solid var(--gt-border-strong);border-radius:var(--gt-radius-control);transition:background-color .18s ease, transform .18s var(--gt-ease-out);padding:0 15px}.scene-tools button:hover,.hint-button:hover:not(:disabled){background:var(--gt-surface-accent);transform:translateY(-2px)}.step-kicker{color:var(--gt-accent);margin-top:32px;display:block}.lesson-panel h2{letter-spacing:-.055em;margin:10px 0 16px;font-size:2.05rem;font-weight:640;line-height:1.04}.instruction{color:var(--gt-text-secondary);font-size:1.06rem;line-height:1.6}.guided-note{color:var(--gt-text-secondary);border-radius:var(--gt-radius-control);background:#ff6a3d14;border:1px solid #ff6a3d3d;gap:10px;margin:18px 0 4px;padding:13px 14px;display:flex}.guided-note span{color:var(--gt-accent);filter:drop-shadow(0 0 7px #ff6a3db3)}.guided-note p{margin:0;font-size:.86rem;line-height:1.45}.lesson-panel dl{margin:26px 0}.lesson-panel dl div{border-top:1px solid var(--gt-border);padding:15px 0}.lesson-panel dt{color:var(--gt-text-muted);margin-bottom:6px;font:500 .7rem Geist Mono,monospace}.lesson-panel dd{color:var(--gt-text-secondary);margin:0;line-height:1.55}.hint{border-radius:var(--gt-radius-control);background:#ff6a3d14;border:1px solid #ff6a3d40;margin:16px 0;padding:15px}.hint strong{color:var(--gt-accent);font-size:.82rem}.hint p{color:var(--gt-text-secondary);margin:6px 0 0;line-height:1.5}.hint-button{width:100%}.hint-button:disabled{cursor:not-allowed;opacity:.45}.actionbar{color:var(--gt-text);background:var(--gt-surface-raised);border-top:1px solid var(--gt-border);grid-template-columns:1fr auto auto;align-items:center;gap:24px;padding:0 22px;display:grid}.feedback{align-items:center;gap:12px;display:flex}.feedback>span{width:32px;height:32px;color:var(--gt-accent);border:1px solid var(--gt-border-strong);border-radius:50%;flex:0 0 32px;place-items:center;font-family:Geist Mono,monospace;display:grid}.feedback small{color:var(--gt-text-muted);font:500 .66rem Geist Mono,monospace}.feedback p{color:var(--gt-text-secondary);margin:3px 0 0;font-size:.94rem}.keyboard-note{color:var(--gt-text-muted);font-size:.78rem}.keyboard-note kbd{color:var(--gt-text);background:var(--gt-background);border:1px solid var(--gt-border-strong);border-radius:5px;padding:3px 6px;font-family:Geist Mono,monospace}.primary-action,.result-actions button{min-height:50px;color:var(--gt-accent-ink);background:var(--gt-accent);border-radius:var(--gt-radius-pill);white-space:nowrap;transition:background-color .18s ease, transform .18s var(--gt-ease-out);border:1px solid #0000;padding:0 22px;font-weight:680}.primary-action{justify-content:space-between;align-items:center;min-width:220px;display:flex}.primary-action:hover,.result-actions button:hover{background:var(--gt-accent-hover);transform:translateY(-2px)}.primary-action:active,.result-actions button:active{transform:scale(.98)}.result{text-align:center;background:radial-gradient(circle at 50% 35%, #ff6a3d14, transparent 34%), var(--gt-background);place-content:center;justify-items:center;min-height:calc(100dvh - 84px);padding:48px 20px;display:grid}.result .eyebrow{color:var(--gt-success)}.result h1{letter-spacing:-.065em;max-width:850px;margin:18px 0;font-size:clamp(3rem,7vw,6.4rem);font-weight:650;line-height:.98}.score{color:var(--gt-accent);font:600 clamp(5.5rem,11vw,8rem) Geist Mono,monospace}.score span{color:var(--gt-text-muted);font-size:1.35rem}.result>p:not(.eyebrow){color:var(--gt-text-secondary)}.result-actions{gap:10px;margin-top:28px;display:flex}.result-actions .secondary{color:var(--gt-text);border-color:var(--gt-border-strong);background:0 0}.result-actions .secondary:hover{background:var(--gt-surface)}.brand-footer{color:#f4f7f8;background:#07251f;border-top:1px solid #ffffff1a;place-items:center;min-height:84px;padding:20px;display:grid}.brand-footer p{text-align:center;margin:0;font-size:1rem;font-weight:560}.brand-footer a{color:var(--gt-accent);font-weight:680;text-decoration:none}.brand-footer a:hover{color:var(--gt-accent-hover);text-underline-offset:4px;text-decoration:underline}.brand-footer a span{transition:transform .18s var(--gt-ease-out);display:inline-block}.brand-footer a:hover span{transform:translate(2px,-2px)}@media (width<=1100px){.workspace{grid-template-columns:170px minmax(400px,1fr) 270px}.topbar{grid-template-columns:180px 1fr 200px}.parts-panel,.lesson-panel{padding:16px}.keyboard-note{display:none}}@media (width<=900px){.welcome-shell{grid-template-columns:1fr;min-height:auto}.welcome-copy{padding:72px 20px}.welcome-object{border-top:1px solid var(--gt-border);border-left:0;min-height:520px}.blueprint-case{width:min(70vw,390px)}.workshop{grid-template-rows:auto auto auto auto;height:auto;min-height:100dvh;overflow:visible}.topbar{grid-template-columns:1fr auto;padding:12px 16px}.step-progress{grid-area:2/1/auto/-1;width:100%;margin-top:10px}.progress-track{flex:1;width:auto}.workspace{grid-template-columns:1fr}.parts-panel{order:2}.parts-list{gap:8px;display:flex;overflow:auto}.part-row{min-width:126px}.scene-panel{height:54dvh;min-height:420px}.lesson-panel{order:3}.actionbar{grid-template-columns:1fr;padding:12px 16px;position:static}.primary-action{width:100%}.feedback,.top-actions .mode-badge{display:none}}@media (width<=600px){.welcome-copy h1{font-size:clamp(2.8rem,14vw,4.4rem)}.mode-row{grid-template-columns:38px 1fr 20px;min-height:104px;padding-block:12px}.welcome-object{min-height:430px;padding:32px 16px}.scene-tools{bottom:12px;left:12px;right:12px}.scene-tools button{flex:1;padding-inline:10px}.result-actions{flex-direction:column;width:100%}.result-actions button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-transparency:reduce){.topbar{background:var(--gt-background);-webkit-backdrop-filter:none;backdrop-filter:none}.scene-label{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0d1a22}}.home-v3 main{overflow:hidden}.lab-hero{border-bottom:1px solid var(--gt-border);grid-template-columns:minmax(0,1.16fr) minmax(400px,.84fr);min-height:min(860px,92dvh);display:grid}.lab-hero-copy{align-self:center;padding:clamp(64px,8vw,126px)}.lab-hero-copy .eyebrow,.module-index .eyebrow,.learning-route .eyebrow{color:var(--gt-accent)}.lab-hero-copy h1{letter-spacing:-.075em;max-width:920px;margin:25px 0;font-size:clamp(3.7rem,7vw,7rem);font-weight:650;line-height:.91}.lab-hero-copy h1 em{color:var(--gt-accent);font-style:normal}.resume-action{width:min(100%,520px);min-height:78px;color:var(--gt-accent-ink);text-align:left;background:var(--gt-accent);border-radius:var(--gt-radius-control);transition:transform .18s var(--gt-ease-out), background .18s ease;border:0;grid-template-columns:1fr auto;align-items:center;margin-top:38px;padding:14px 20px;display:grid}.resume-action:hover{background:var(--gt-accent-hover);transform:translateY(-3px)}.resume-action span{font-size:1.05rem;font-weight:720}.resume-action small{color:#071116ad;grid-row:2}.resume-action b{grid-area:1/2/span 2;font-size:1.4rem}.lab-hero-object{background-color:var(--gt-background-soft);background-image:linear-gradient(var(--gt-border) 1px, transparent 1px), linear-gradient(90deg, var(--gt-border) 1px, transparent 1px);border-left:1px solid var(--gt-border);background-size:38px 38px;place-items:center;padding:clamp(28px,5vw,76px);display:grid;position:relative;overflow:hidden}.lab-hero-object:before{content:"";aspect-ratio:1;filter:blur(70px);background:#ff6a3d1c;border-radius:50%;width:70%;position:absolute}.hero-brand-logo{z-index:1;object-fit:contain;width:min(100%,560px);height:auto;display:block;position:relative}.module-index{background:#09161c;padding:clamp(72px,9vw,128px) clamp(24px,8vw,124px)}.section-heading{grid-template-columns:1.15fr .85fr;align-items:end;gap:30px;margin-bottom:54px;display:grid}.section-heading .eyebrow{grid-column:1/-1}.section-heading h2{letter-spacing:-.06em;margin:0;font-size:clamp(2.7rem,5vw,5rem);line-height:.95}.section-heading>p:last-child{max-width:430px;color:var(--gt-text-secondary);margin:0 0 8px;font-size:1.08rem;line-height:1.6}.module-list{border-top:1px solid var(--gt-border-strong)}.module-row{--module-accent:var(--gt-accent);width:100%;min-height:112px;color:var(--gt-text);text-align:left;border:0;border-bottom:1px solid var(--gt-border);transition:background .18s ease, transform .18s var(--gt-ease-out);background:0 0;grid-template-columns:64px 1fr auto 36px;align-items:center;gap:20px;padding:20px 10px;display:grid}.module-row:hover{background:var(--gt-surface);transform:translate(5px)}.module-row:hover .module-arrow,.module-row:hover .module-copy strong{color:var(--module-accent)}.module-index-number{color:var(--module-accent);font:560 .78rem Geist Mono,monospace}.module-copy strong{font-size:clamp(1.25rem,2vw,1.75rem);transition:color .18s;display:block}.module-copy small{max-width:650px;color:var(--gt-text-muted);margin-top:7px;font-size:.96rem;line-height:1.45;display:block}.module-status{color:var(--gt-text-muted);border:1px solid var(--gt-border-strong);border-radius:var(--gt-radius-pill);padding:7px 11px;font:500 .7rem Geist Mono,monospace}.module-status.complete{color:var(--gt-success)}.module-arrow{font-size:1.35rem;transition:color .18s}.learning-route{background:var(--gt-background);padding:clamp(72px,9vw,128px) clamp(24px,8vw,124px)}.learning-route h2{letter-spacing:-.055em;margin:22px 0 58px;font-size:clamp(2.6rem,4.5vw,4.6rem);line-height:.98}.learning-route ol{background:var(--gt-border);grid-template-columns:repeat(6,1fr);gap:1px;padding:0;list-style:none;display:grid}.learning-route li{background:var(--gt-surface);flex-direction:column;justify-content:space-between;min-height:140px;padding:20px;display:flex}.learning-route li span{color:var(--gt-accent);font:500 .7rem Geist Mono,monospace}.learning-route li strong{font-size:1rem}.difficulty-shell{grid-template-columns:minmax(0,.95fr) minmax(480px,1.05fr);align-items:center;gap:clamp(40px,7vw,120px);min-height:calc(100dvh - 84px);padding:clamp(40px,7vw,100px);display:grid}.back-link{min-height:44px;color:var(--gt-text-secondary);background:0 0;border:0;padding:0;position:absolute;top:30px;left:clamp(24px,7vw,100px)}.back-link:hover,.difficulty-intro .eyebrow{color:var(--gt-accent)}.difficulty-intro h1{letter-spacing:-.07em;margin:20px 0;font-size:clamp(3.2rem,6vw,6rem);line-height:.92}.difficulty-intro>p{max-width:580px;color:var(--gt-text-secondary);font-size:1.15rem;line-height:1.65}.outcome{border-left:2px solid var(--gt-accent);flex-direction:column;gap:7px;margin-top:34px;padding-left:16px;display:flex}.outcome span{color:var(--gt-text-muted);font:500 .7rem Geist Mono,monospace}.outcome strong{color:var(--gt-text-secondary);font-size:.98rem}.difficulty-options{border-top:1px solid var(--gt-border-strong)}.difficulty-options>.panel-label{padding:0 8px 16px}.difficulty-row{width:100%;min-height:116px;color:var(--gt-text);text-align:left;border:0;border-bottom:1px solid var(--gt-border);transition:color .18s ease, background .18s ease, transform .18s var(--gt-ease-out);background:0 0;grid-template-columns:50px 1fr 24px;align-items:center;gap:18px;padding:12px 8px;display:grid}.difficulty-row:hover{color:var(--gt-accent);background:var(--gt-surface);transform:translate(5px)}.difficulty-row>span{color:var(--gt-accent);font:500 .75rem Geist Mono,monospace}.difficulty-row strong{font-size:1.3rem;display:block}.difficulty-row small{color:var(--gt-text-muted);margin-top:7px;font-size:.94rem;line-height:1.45;display:block}.lab-grid{grid-template-columns:210px minmax(520px,1fr) 310px}.lab-scene{background-color:#e7edef;background-image:linear-gradient(#5b757f24 1px,#0000 1px),linear-gradient(90deg,#5b757f24 1px,#0000 1px);background-size:34px 34px;place-items:center;padding:86px 34px 34px;display:grid}.task-diagram{grid-template-columns:minmax(180px,.7fr) 110px minmax(280px,1.3fr);align-items:center;gap:22px;width:min(100%,900px);display:grid}.subject-object{color:#eef4f5;background:#17303a;border:1px solid #415863;border-radius:18px 18px 42px;flex-direction:column;justify-content:center;min-height:220px;padding:28px;display:flex;position:relative;box-shadow:0 22px 50px #1e333c2e}.subject-object>span{color:#ff9b78;letter-spacing:.1em;font:600 .66rem Geist Mono,monospace}.subject-object strong{margin-top:16px;font-size:clamp(1.25rem,2.4vw,2rem);line-height:1.06}.subject-object small{color:#b9c9cf;margin-top:12px;line-height:1.5}.connector-pins{gap:5px;margin-top:24px;display:flex}.connector-pins i{background:#d3ad57;border-radius:2px;width:9px;height:17px}.signal-path{color:#67767e;text-align:center;flex-direction:column;align-items:center;gap:9px;font:500 .62rem Geist Mono,monospace;display:flex}.signal-path i{background:repeating-linear-gradient(90deg,#ff6a3d 0 8px,#0000 8px 14px);width:100%;height:2px;display:block}.target-bank{gap:10px;display:grid}.target-bank button{color:#40515a;text-align:left;min-height:88px;transition:border-color .16s ease, background .16s ease, transform .16s var(--gt-ease-out);background:#ffffffeb;border:1px solid #07111629;border-radius:12px;grid-template-columns:54px 1fr;align-items:center;padding:13px 16px;display:grid}.target-bank button:hover{border-color:#ff6a3d;transform:translate(4px)}.target-bank button.selected{color:#071116;background:#fff4ef;border:2px solid #ff6a3d;box-shadow:inset 4px 0 #ff6a3d}.target-bank button strong,.target-bank button small{grid-column:2}.target-bank button small{color:#67767e;margin-top:3px}.port-shape{border:3px solid #334950;border-radius:5px;grid-row:1/span 2;justify-content:center;align-items:center;gap:3px;width:40px;height:28px;display:flex}.port-shape i{background:#bd9344;width:3px;height:7px}.primary-action:disabled{cursor:not-allowed;opacity:.45;transform:none}.result-v3{align-content:center}.result-metrics{background:var(--gt-border);grid-template-columns:repeat(3,minmax(110px,1fr));gap:1px;width:min(100%,520px);margin:28px 0;display:grid}.result-metrics div{background:var(--gt-surface);flex-direction:column;gap:8px;padding:18px;display:flex}.result-metrics span{color:var(--gt-text-muted);font:500 .68rem Geist Mono,monospace}.result-metrics strong{font-size:1.45rem}.competency-result{color:var(--gt-text-secondary)}.assessment-review{width:min(100%,620px);color:var(--gt-text-secondary);text-align:left;background:var(--gt-surface);border:1px solid var(--gt-border);border-radius:var(--gt-radius-control);margin:20px 0;padding:16px}.assessment-review summary{color:var(--gt-text);cursor:pointer;font-weight:650}.assessment-review p{border-top:1px solid var(--gt-border);padding-top:10px}@media (width<=1050px){.lab-hero{grid-template-columns:1fr}.lab-hero-object{border-top:1px solid var(--gt-border);border-left:0;min-height:440px}.hero-brand-logo{width:min(76vw,560px)}.learning-route ol{grid-template-columns:repeat(3,1fr)}.difficulty-shell{grid-template-columns:1fr;padding-top:110px}.lab-grid{grid-template-columns:170px minmax(420px,1fr) 270px}.task-diagram{grid-template-columns:1fr}.signal-path{display:none}.subject-object{min-height:150px}.target-bank{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.section-heading{grid-template-columns:1fr}.module-row{grid-template-columns:50px 1fr 28px}.module-status{grid-column:2;justify-self:start}.lab-grid{grid-template-columns:1fr}.lab-scene{min-height:620px}.task-diagram{max-width:650px}.target-bank{grid-template-columns:1fr 1fr}}@media (width<=620px){.lab-hero-copy{padding-inline:22px}.lab-hero-copy h1{font-size:clamp(3rem,15vw,4.5rem)}.lab-hero-object{min-height:340px;padding-inline:22px}.hero-brand-logo{width:min(86vw,440px)}.module-index,.learning-route{padding-inline:20px}.module-row{grid-template-columns:38px 1fr 24px}.module-copy small{font-size:.86rem}.module-status{display:none}.learning-route ol{grid-template-columns:1fr 1fr}.difficulty-shell{padding-inline:22px}.back-link{left:22px}.lab-scene{padding-inline:14px}.target-bank,.result-metrics{grid-template-columns:1fr}.result-actions{flex-direction:column;width:100%}.result-actions button{width:100%}}.inspect-button{width:100%;min-height:44px;color:var(--gt-text);border:1px solid var(--gt-border-strong);border-radius:var(--gt-radius-control);background:0 0;margin:0 0 10px}.inspect-button:hover{color:var(--gt-accent-strong);background:var(--gt-surface-accent)}.inspector-overlay{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#040c10c7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.inspector-modal{color:#071116;background:#f4f7f8;border:1px solid #fff3;border-radius:20px;grid-template-rows:auto 1fr;width:min(1060px,100%);height:min(720px,100dvh - 48px);display:grid;overflow:hidden;box-shadow:0 30px 110px #0000008c}.inspector-modal>header{background:#fff;border-bottom:1px solid #0711161f;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.inspector-modal h2{letter-spacing:-.04em;margin:5px 0 0;font-size:1.65rem}.inspector-modal header button{color:#40515a;background:#e7edef;border:1px solid #07111624;border-radius:12px;min-height:42px;padding:0 14px}.inspector-body{grid-template-columns:minmax(0,1fr) 280px;min-height:0;display:grid}.inspector-canvas{min-height:0}.inspector-body aside{background:#fff;border-left:1px solid #0711161f;padding:28px;overflow:auto}.inspector-body aside>p{color:#40515a;line-height:1.6}.inspector-body ol{background:#0711161a;gap:1px;margin:28px 0;padding:0;list-style:none;display:grid}.inspector-body li{background:#f4f7f8;grid-template-columns:32px 1fr;align-items:center;min-height:58px;padding:8px 12px;display:grid}.inspector-body li span{color:#ff6a3d;font:600 .72rem Geist Mono,monospace}.inspector-body li strong{font-size:.9rem}.inspector-tip{color:#67767e;font:500 .7rem Geist Mono,monospace}@media (width<=720px){.inspector-body{grid-template-rows:minmax(300px,1fr) auto;grid-template-columns:1fr}.inspector-body aside{border-top:1px solid #0711161f;border-left:0;max-height:260px}}.hardware-visual{color:#334950;background:#edf3f4;border:1px solid #3349502e;border-radius:9px;place-items:center;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffffe6}.hardware-visual svg{width:100%;height:100%}.hardware-visual--subject{background-color:#f5f8f8;background-image:linear-gradient(#33495014 1px,#0000 1px),linear-gradient(90deg,#33495014 1px,#0000 1px);background-size:12px 12px;border-color:#dbebee59;width:100%;height:104px;margin:18px 0 2px}.hardware-visual--option{background-color:#f4f7f8;background-image:radial-gradient(circle,#33495021 1px,#0000 1.2px);background-size:8px 8px;grid-row:1;width:90px;height:64px}.hv-shell,.hv-board,.hv-cavity,.hv-contact,.hv-chip,.hv-tongue,.hv-hole,.hv-fan{vector-effect:non-scaling-stroke}.hv-shell{fill:#dce6e9;stroke:#334950;stroke-width:2.4px;stroke-linejoin:round}.hv-board{fill:#477568;stroke:#254a43;stroke-width:2.2px}.hv-cavity{fill:#17303a;stroke:#334950;stroke-width:1.7px}.hv-contact{fill:#c79b43;stroke:#76591f;stroke-width:.7px}.hv-chip{fill:#17303a;stroke:#071116;stroke-width:1.2px}.hv-hole{fill:#edf3f4;stroke:#c79b43;stroke-width:2px}.hv-fan{fill:#263b43;stroke:#071116;stroke-width:2px}.hv-latch,.hv-bracket{fill:#83969d;stroke:#334950;stroke-width:1.8px;stroke-linejoin:round}.hv-divider,.hv-guide,.hv-key,.hv-contact-line,.hv-tongue-line,.hv-antenna,.hv-state-line,.hv-trace{fill:none;stroke:#334950;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.hv-contact-line{stroke:#c79b43;stroke-width:4px;stroke-dasharray:3 3}.hv-tongue{fill:#4e7180;stroke:#334950;stroke-width:1.2px}.hv-tongue-line{stroke:#c79b43;stroke-width:3px}.hv-led{fill:#80a978;stroke:#365f3b;stroke-width:1px}.target-bank button{grid-template-columns:90px minmax(0,1fr);gap:16px;min-height:116px;padding:12px 16px 12px 12px}.target-bank button .option-copy{flex-direction:column;grid-column:2;gap:5px;min-width:0;display:flex}.target-bank button .option-copy strong,.target-bank button .option-copy small{grid-column:auto}.target-bank button .option-copy strong{color:#263b43;font-size:1rem;line-height:1.2}.target-bank button .option-copy small{color:#65777f;margin:0;font-size:.82rem;line-height:1.35}.target-bank button.selected .hardware-visual{border-color:#ff6a3d;box-shadow:0 0 0 2px #ff6a3d29,inset 0 1px #ffffffe6}.target-bank button:focus-visible{outline-offset:3px;outline:3px solid #ff6a3d}@media (width<=1050px){.hardware-visual--subject{height:124px}.target-bank button{grid-template-columns:78px minmax(0,1fr)}.hardware-visual--option{width:78px;height:58px}}@media (width<=620px){.hardware-visual--subject{height:112px}.target-bank button{grid-template-columns:76px minmax(0,1fr);gap:12px;min-height:104px}.hardware-visual--option{width:76px;height:56px}}@media (prefers-reduced-motion:reduce){.target-bank button:hover{transform:none}}
