:root{--paper: #f7f8f6;--paper-elevated: #ffffff;--ink: #0b1220;--ink-soft: #1c2738;--muted: #5c6b7a;--line: #d8dee6;--accent: #00a896;--accent-hover: #008f7f;--accent-soft: #d6f5f0;--success: #1b7f5a;--success-soft: #d8f3e7;--danger: #c23b4a;--danger-soft: #fce8eb;--warn: #9a6b16;--warn-soft: #fff4d6;--font-display: "Syne", sans-serif;--font-body: "Manrope", sans-serif;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px;--shadow-soft: 0 12px 40px rgba(11, 18, 32, .06);--ease-out: cubic-bezier(.22, 1, .36, 1);--container: 1180px;--rail: 56px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100vh;min-height:100dvh;overflow-x:clip;background:radial-gradient(1200px 600px at 85% -10%,rgba(0,168,150,.08),transparent 55%),radial-gradient(900px 500px at -10% 30%,rgba(11,18,32,.04),transparent 50%),var(--paper);color:var(--ink);font-family:var(--font-body);font-weight:500;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.35;background-image:linear-gradient(rgba(11,18,32,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(11,18,32,.03) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);mask-image:radial-gradient(ellipse at center,black 20%,transparent 75%);z-index:0}#app{position:relative;z-index:1;min-height:100vh}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer;border:0;background:none;-webkit-tap-highlight-color:transparent}a,button,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #f0b429;outline-offset:3px}img,svg{display:block}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.12;margin:0}p{margin:0}.icon{width:1.15em;height:1.15em;flex-shrink:0;stroke-width:1.85}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.reveal{opacity:0;transform:translateY(14px);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}.reveal.is-in{opacity:1;transform:none}.page-enter{animation:pageIn .32s var(--ease-out) both}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pulseNode{0%,to{box-shadow:0 0 #00a89659}50%{box-shadow:0 0 0 12px #00a89600}}@keyframes signalFlow{0%{stroke-dashoffset:48}to{stroke-dashoffset:0}}@keyframes popIn{0%{transform:scale(.82);opacity:0}70%{transform:scale(1.06)}to{transform:scale(1);opacity:1}}@keyframes shakeX{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.anim-pop{animation:popIn .42s var(--ease-out) both}.anim-shake{animation:shakeX .24s ease}.signal-node.is-active{animation:pulseNode 1.8s ease-in-out infinite}.signal-line.is-active path{stroke-dasharray:6 6;animation:signalFlow 1.2s linear infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.7rem 1.2rem;border-radius:var(--radius-sm);font-weight:800;letter-spacing:.01em;transition:transform .18s var(--ease-out),background .18s var(--ease-out),color .18s var(--ease-out),border-color .18s var(--ease-out)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-2px)}.btn-secondary{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}.btn-secondary:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}.btn-ghost{color:var(--accent);padding-inline:.4rem;font-weight:800}.btn-ghost:hover{color:var(--accent-hover)}.btn-soft{background:var(--accent-soft);color:var(--accent-hover);font-weight:800;border-radius:var(--radius-sm);padding:.65rem .95rem;min-height:42px}.btn-soft:hover{transform:translateY(-2px)}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,12px);background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;z-index:40;opacity:0;pointer-events:none;font-weight:700;font-size:14px;box-shadow:var(--shadow-soft)}.toast.is-on{opacity:1;animation:toastIn .28s var(--ease-out) both;pointer-events:auto}.tag{display:inline-flex;align-items:center;gap:.35rem;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-hover);background:var(--accent-soft);padding:.4rem .65rem;border-radius:6px}.notice{border:1px solid #efd9a0;background:var(--warn-soft);color:var(--warn);padding:14px 16px;border-radius:var(--radius-md);font-size:13px;line-height:1.6}.progress{height:8px;background:#e8edf2;border-radius:20px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:20px;transition:width .4s var(--ease-out)}.panel{background:var(--paper-elevated);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.35rem}.answer{display:block;width:100%;text-align:left;padding:14px 16px;margin:9px 0;background:#f4f7f9;border:1.5px solid var(--line);border-radius:12px;color:var(--ink);font-weight:650;transition:border-color .18s var(--ease-out),background .18s var(--ease-out)}.answer:hover{border-color:var(--accent)}.answer.correct{background:var(--success-soft);border-color:var(--success)}.answer.wrong{background:var(--danger-soft);border-color:var(--danger)}.feedback{padding:12px;border-radius:11px;background:var(--accent-soft);margin:12px 0;font-size:14px}.pill{display:inline-block;background:#eef2f5;color:var(--ink-soft);padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700;margin:0 6px 6px 0}.empty{padding:2.5rem;text-align:center;color:var(--muted)}.landing{overflow-x:clip}.land-top{display:flex;align-items:center;justify-content:space-between;max-width:var(--container);margin:0 auto;padding:1.1rem 1.4rem}.brand-lockup{display:flex;align-items:center;gap:.75rem}.brand-mark{width:42px;height:42px;border-radius:11px;background:var(--ink);color:var(--accent);display:grid;place-items:center}.brand-lockup strong{font-family:var(--font-display);font-size:1.15rem;font-weight:800;letter-spacing:-.02em;display:block;line-height:1}.brand-lockup small{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-top:4px}.land-top-meta{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.75rem}.land-top-meta .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.hero-lab{min-height:calc(100vh - 72px);max-width:var(--container);margin:0 auto;padding:1rem 1.4rem 3rem;display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center}.hero-copy{position:relative;padding-left:1rem}.hero-copy:before{content:"";position:absolute;left:0;top:.35rem;bottom:.35rem;width:3px;background:linear-gradient(var(--accent),transparent);border-radius:2px}.hero-coords{font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-hover);margin-bottom:1.25rem}.hero-brand{font-family:var(--font-display);font-weight:800;font-size:clamp(52px,9vw,92px);letter-spacing:-.045em;line-height:.92;margin:0 0 1rem;color:var(--ink)}.hero-brand span{color:var(--accent)}.hero-lead{font-size:clamp(17px,2vw,20px);color:var(--ink-soft);max-width:28ch;line-height:1.45;font-weight:650;margin-bottom:.85rem}.hero-sub{color:var(--muted);max-width:38ch;font-size:15px;margin-bottom:1.75rem}.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem}.signal-stage{position:relative;min-height:420px;border-radius:28px 8px;background:linear-gradient(145deg,#0b1220,#152033 55%,#0e1a28);color:#e8eef5;padding:2rem 1.75rem;overflow:hidden;isolation:isolate}.signal-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(0,168,150,.22),transparent 40%),repeating-linear-gradient(-18deg,transparent,transparent 18px,rgba(255,255,255,.02) 18px,rgba(255,255,255,.02) 19px);z-index:0}.signal-stage>*{position:relative;z-index:1}.signal-stage-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;opacity:.7;margin-bottom:1.75rem}.signal-chain{display:grid;gap:0}.signal-row{display:grid;grid-template-columns:48px 1fr;gap:1rem;align-items:stretch}.signal-col{display:flex;flex-direction:column;align-items:center}.signal-node{width:42px;height:42px;border-radius:50%;border:2px solid rgba(255,255,255,.2);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:14px;background:#ffffff0a;transition:background .3s var(--ease-out),border-color .3s var(--ease-out),color .3s var(--ease-out)}.signal-node.is-active{background:var(--accent);border-color:var(--accent);color:#04221e}.signal-stem{flex:1;width:2px;min-height:28px;background:#ffffff1f;margin:4px 0}.signal-stem.is-active{background:linear-gradient(var(--accent),rgba(0,168,150,.2))}.signal-body{padding:.35rem 0 1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}.signal-row:last-child .signal-body{border-bottom:0}.signal-body strong{display:block;font-family:var(--font-display);font-size:1.15rem;margin-bottom:.2rem}.signal-body span{font-size:13px;opacity:.65;line-height:1.45}.signal-live{margin-top:1.5rem;display:flex;align-items:center;gap:.5rem;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.signal-live i{width:8px;height:8px;border-radius:50%;background:var(--accent);display:block;animation:pulseNode 1.6s ease-in-out infinite}.land-section{max-width:var(--container);margin:0 auto;padding:4.5rem 1.4rem}.sec-index{font-family:var(--font-display);font-size:12px;font-weight:800;letter-spacing:.2em;color:var(--accent);margin-bottom:.75rem}.sec-title{font-size:clamp(28px,4vw,44px);font-weight:800;letter-spacing:-.03em;max-width:16ch;margin-bottom:.75rem}.sec-lead{color:var(--muted);max-width:48ch;margin-bottom:2rem}.what-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:2.5rem;align-items:end}.what-quote{font-family:var(--font-display);font-size:clamp(22px,3vw,32px);font-weight:700;line-height:1.25;letter-spacing:-.02em;border-left:3px solid var(--accent);padding-left:1.1rem}.what-aside{color:var(--ink-soft);font-size:15px}.pipeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.pipe-item{padding:1.5rem 1.15rem 1.5rem 0;border-right:1px solid var(--line);position:relative;transition:background .25s var(--ease-out)}.pipe-item:last-child{border-right:0;padding-right:0}.pipe-item:hover{background:#00a8960a}.pipe-num{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--accent);letter-spacing:-.04em;line-height:1;margin-bottom:.85rem}.pipe-item h3{font-size:1.05rem;margin-bottom:.45rem;display:flex;align-items:center;gap:.4rem}.pipe-item p{color:var(--muted);font-size:13.5px;padding-right:.5rem}.audience{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.audience-block{padding:1.75rem 0;border-top:2px solid var(--ink)}.audience-block h3{font-size:1.35rem;margin:.75rem 0 .5rem}.audience-block p{color:var(--muted);max-width:36ch}.cta-band{margin:1rem 1.4rem 4rem;max-width:var(--container);margin-inline:auto;background:var(--ink);color:#fff;border-radius:28px 8px;padding:clamp(2rem,5vw,3.5rem);display:grid;grid-template-columns:1.4fr auto;gap:1.5rem;align-items:center;position:relative;overflow:hidden}.cta-band:after{content:"";position:absolute;width:280px;height:280px;right:-80px;top:-100px;border:1px solid rgba(0,168,150,.35);border-radius:50%;box-shadow:0 0 0 28px #00a8960f,0 0 0 56px #00a8960a;pointer-events:none}.cta-band h2{font-size:clamp(28px,4vw,42px);letter-spacing:-.03em;margin-bottom:.5rem;position:relative;z-index:1}.cta-band p{color:#ffffffb3;max-width:40ch;position:relative;z-index:1}.cta-band .btn-primary{position:relative;z-index:1}.land-footer{max-width:var(--container);margin:0 auto;padding:1.5rem 1.4rem 2.5rem;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line)}@media(max-width:960px){.land-top{padding:.9rem 1.1rem}.hero-lab{grid-template-columns:1fr;min-height:auto;padding:1.25rem 1.1rem 2.25rem;gap:1.5rem}.hero-copy{padding-left:.85rem}.signal-stage{min-height:0;padding:1.5rem 1.25rem;border-radius:22px 8px}.signal-stage-label{margin-bottom:1.15rem}.land-section{padding:3.25rem 1.1rem}.pipeline{grid-template-columns:1fr 1fr}.pipe-item{padding:1.25rem 1rem 1.25rem 0}.pipe-item:nth-child(2){border-right:0;padding-right:0}.pipe-item:nth-child(1),.pipe-item:nth-child(2){border-bottom:1px solid var(--line)}.what-grid,.audience,.cta-band{grid-template-columns:1fr}.cta-band{margin:1rem 1.1rem 3rem;padding:1.75rem 1.35rem}.cta-band .btn-primary{width:100%;justify-self:stretch}.land-footer{padding:1.25rem 1.1rem 2rem}}@media(max-width:600px){.land-top{padding:.75rem .95rem}.brand-mark{width:38px;height:38px}.brand-lockup strong{font-size:1.05rem}.hero-lab{padding:1rem .95rem 1.75rem;gap:1.25rem}.hero-coords{font-size:11px;margin-bottom:.85rem}.hero-brand{font-size:clamp(42px,13vw,58px);margin-bottom:.75rem}.hero-lead{font-size:16px;max-width:none}.hero-sub{font-size:14px;max-width:none;margin-bottom:1.35rem}.hero-cta{gap:.6rem}.hero-cta .btn{flex:1 1 auto;min-width:min(100%,160px)}.signal-stage{padding:1.25rem 1rem}.signal-row{grid-template-columns:36px 1fr;gap:.75rem}.signal-node{width:36px;height:36px;font-size:12px}.signal-body strong{font-size:1.05rem}.signal-body span{font-size:12px}.pipeline{grid-template-columns:1fr}.pipe-item{border-right:0;border-bottom:1px solid var(--line);padding:1.15rem 0}.pipe-item:last-child{border-bottom:0}.pipe-item p{padding-right:0}.land-section{padding:2.75rem .95rem}.sec-title{max-width:none}.what-quote{font-size:clamp(20px,6vw,26px)}.cta-band{margin:.75rem .95rem 2.5rem;border-radius:22px 8px}.cta-band:after{width:180px;height:180px;right:-60px;top:-70px}.land-top-meta span:last-child{display:none}}.lab-shell{min-height:100vh;display:grid;grid-template-columns:88px 1fr;background:var(--paper)}.lab-shell.is-floor .lab-canvas{padding:0;overflow:hidden}.spine{position:sticky;top:0;height:100vh;background:var(--ink);color:#e8eef5;display:flex;flex-direction:column;align-items:stretch;padding:1rem .55rem;gap:.75rem;z-index:30}.spine-brand{display:grid;place-items:center;gap:.35rem;color:var(--accent);text-align:center;padding:.4rem 0 .8rem;border-bottom:1px solid rgba(255,255,255,.08)}.spine-brand .icon{width:22px;height:22px}.spine-brand span{font-family:var(--font-display);font-size:9px;font-weight:800;letter-spacing:.12em;line-height:1.15;color:#fff}.spine-primary{display:flex;flex-direction:column;gap:4px;flex:1}.spine-link{display:grid;grid-template-columns:1fr;justify-items:center;gap:2px;padding:.55rem .2rem;border-radius:12px;color:#ffffff8c;transition:background .2s var(--ease-out),color .2s var(--ease-out)}.spine-link:hover,.spine-link.is-active{background:#00a8962e;color:#fff}.spine-link.is-active{box-shadow:inset 3px 0 0 var(--accent)}.spine-code{font-family:var(--font-display);font-size:9px;letter-spacing:.08em;opacity:.55}.spine-ico .icon{width:18px;height:18px;margin:0 auto}.spine-label{font-size:10px;font-weight:750;letter-spacing:.02em}.spine-meter{position:relative;width:52px;height:52px;margin:.25rem auto}.spine-meter svg{width:100%;height:100%}.spine-meter b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-size:11px;font-weight:800;color:var(--accent)}.spine-more{border-top:1px solid rgba(255,255,255,.08);padding-top:.5rem;position:relative}.spine-more summary{list-style:none;cursor:pointer;display:grid;justify-items:center;gap:2px;color:#ffffff80;font-size:10px;font-weight:700;padding:.4rem}.spine-more summary::-webkit-details-marker{display:none}.spine-more-panel{position:absolute;left:calc(100% + 10px);bottom:0;background:var(--paper-elevated);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:.5rem;min-width:180px;box-shadow:var(--shadow-soft);display:grid;gap:2px;z-index:40}.spine-more-panel a{display:flex;align-items:center;gap:.5rem;padding:.55rem .65rem;border-radius:10px;font-size:13px;font-weight:700;color:var(--ink-soft)}.spine-more-panel a:hover,.spine-more-panel a.is-active{background:var(--accent-soft);color:var(--accent-hover)}.lab-stage{min-width:0;min-height:100vh;display:flex;flex-direction:column}.lab-strip{display:flex;justify-content:space-between;align-items:center;padding:.65rem 1.25rem;border-bottom:1px solid var(--line);background:#f7f8f6d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.lab-strip-id{font-family:var(--font-body);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.lab-strip-live{display:flex;align-items:center;gap:.4rem;flex-shrink:0;font-family:var(--font-body);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-hover)}.lab-strip-live i{width:7px;height:7px;border-radius:50%;background:var(--accent);display:block;animation:pulseNode 1.6s ease-in-out infinite}.lab-canvas{flex:1;padding:1.5rem 1.5rem 2.5rem;max-width:1100px;width:100%;margin:0 auto}.floor{position:relative;min-height:calc(100vh - 48px);background:radial-gradient(ellipse at 50% 45%,rgba(0,168,150,.07),transparent 55%),linear-gradient(180deg,#f3f5f2 0%,var(--paper) 100%);overflow:hidden}.floor-wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.55}.floor-wires .wire{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:6 8;animation:signalFlow 2.4s linear infinite;opacity:.45}.floor-wires .wire-core{fill:var(--accent);filter:drop-shadow(0 0 8px rgba(0,168,150,.6))}.floor-core{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;align-content:center;gap:2px;z-index:2;box-shadow:0 20px 50px #0b122033}.floor-core strong{font-family:var(--font-display);font-size:1.6rem;letter-spacing:-.04em;line-height:1}.floor-core span{font-size:9px;letter-spacing:.2em;color:var(--accent);font-weight:800}.floor-core-ring{position:absolute;inset:-14px;border:1px solid rgba(0,168,150,.35);border-radius:50%;animation:pulseNode 2.2s ease-in-out infinite}.floor-core-ring.delay{inset:-28px;animation-delay:.6s;opacity:.5}.station{position:absolute;z-index:3;width:min(240px,42vw);text-align:left;padding:1.1rem 1.15rem;background:#ffffffeb;border:1px solid var(--line);border-radius:18px 6px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .25s var(--ease-out),border-color .25s var(--ease-out),box-shadow .25s var(--ease-out);animation:stationIn .55s var(--ease-out) both;animation-delay:calc(var(--d, 0) * 80ms)}@keyframes stationIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}.station:hover{transform:translateY(-4px) scale(1.02);border-color:var(--accent);box-shadow:0 18px 40px #00a8961f}.station-code{font-family:var(--font-display);font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--accent);display:block;margin-bottom:.45rem}.station-ico{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent-hover);display:grid;place-items:center;margin-bottom:.55rem}.station-title{display:block;font-family:var(--font-display);font-size:1.15rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.25rem}.station-meta{display:block;font-size:12px;color:var(--muted);font-weight:600}.s-learn{top:12%;left:8%}.s-test{top:10%;right:7%}.s-play{bottom:18%;right:9%}.s-result{bottom:16%;left:10%}.floor-ping{position:absolute;z-index:4;left:50%;bottom:1.25rem;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;background:var(--ink);color:#fff;padding:.75rem 1rem;border-radius:999px;border:0;cursor:pointer;max-width:min(420px,92vw);box-shadow:0 12px 30px #0b122040;transition:transform .2s var(--ease-out)}.floor-ping:hover{transform:translate(-50%) translateY(-2px)}.ping-pulse{width:10px;height:10px;border-radius:50%;background:var(--accent);flex-shrink:0;box-shadow:0 0 #00a89680;animation:pulseNode 1.5s ease-in-out infinite}.floor-ping b{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.floor-ping p{margin:0;font-size:13px;opacity:.85;font-weight:600}.floor-hint{position:absolute;top:1rem;left:50%;transform:translate(-50%);font-size:12px;color:var(--muted);font-weight:650;letter-spacing:.04em;z-index:2;pointer-events:none}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.section-head h1,.section-head h2{font-size:clamp(22px,3vw,28px);letter-spacing:-.02em}.section-head p{color:var(--muted);font-size:13px;margin-top:.35rem}.chamber-title{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.35rem}.chamber-title .code{font-family:var(--font-display);color:var(--accent);font-size:.9rem;letter-spacing:.12em}.tape-wrap{margin:0 -1.5rem;padding:.5rem 1.5rem 1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}.tape{display:flex;gap:1rem;min-width:max-content;padding-bottom:.5rem}.tape-card{width:260px;scroll-snap-align:start;background:var(--paper-elevated);border:1px solid var(--line);border-radius:6px 22px;padding:1.15rem;text-align:left;display:flex;flex-direction:column;gap:.65rem;min-height:220px;transition:transform .2s var(--ease-out),border-color .2s var(--ease-out)}.tape-card:hover{transform:translateY(-4px);border-color:var(--accent)}.tape-card.is-done{border-color:var(--success);background:linear-gradient(180deg,var(--success-soft),#fff)}.tape-num{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--accent);letter-spacing:-.04em;line-height:1}.tape-card h3{font-size:1rem;font-family:var(--font-body);font-weight:800;line-height:1.3;flex:1}.tape-card p{font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.search{width:100%;max-width:420px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:.75rem}.lesson-body{line-height:1.8;color:var(--ink-soft);margin-top:1rem}.lesson-body h3{color:var(--ink);margin:1.25rem 0 .5rem;font-size:1.1rem}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.poly-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:auto auto;gap:1rem}.poly-pad{text-align:left;padding:1.5rem;background:var(--ink);color:#fff;border-radius:24px 8px;min-height:180px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .22s var(--ease-out)}.poly-pad:nth-child(2),.poly-pad:nth-child(3){background:var(--paper-elevated);color:var(--ink);border:1px solid var(--line)}.poly-pad:hover{transform:translateY(-4px)}.poly-pad .ico{width:44px;height:44px;border-radius:12px;background:#00a89633;color:var(--accent);display:grid;place-items:center;margin-bottom:.75rem}.poly-pad:nth-child(2) .ico,.poly-pad:nth-child(3) .ico{background:var(--accent-soft);color:var(--accent-hover)}.poly-pad h3{font-size:1.2rem;margin-bottom:.35rem}.poly-pad p{font-size:13px;opacity:.75;margin-bottom:1rem}.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.match-item{border:1px solid var(--line);border-radius:12px;background:#f4f7f9;padding:13px;min-height:55px;text-align:left;font-weight:700}.match-item.selected{border-color:var(--accent);background:var(--accent-soft)}.match-item.done{background:var(--success-soft);border-color:var(--success)}.word-grid{display:grid;grid-template-columns:repeat(8,minmax(28px,42px));gap:5px;justify-content:center;margin:20px 0}.letter{aspect-ratio:1;border-radius:8px;background:#eef2f5;color:var(--ink);font-weight:900;display:grid;place-items:center}.letter.selected{background:var(--accent-soft);outline:2px solid var(--accent)}.letter.found{background:var(--success-soft);color:var(--success)}.cross-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:12px 0;padding-bottom:2px}.cross-grid{display:grid;grid-template-columns:repeat(var(--cols, 10),minmax(28px,36px));gap:4px;justify-content:start;width:max-content;max-width:100%}.cross-grid input{width:100%;aspect-ratio:1;text-align:center;text-transform:uppercase;border:1px solid var(--line);border-radius:6px;font-weight:800;padding:0}.cross-grid input.ok{background:var(--success-soft);border-color:var(--success)}.material-row{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;padding:1.1rem 0;border-bottom:1px solid var(--line)}.material-row .ico{width:48px;height:48px;border-radius:14px;background:var(--accent-soft);color:var(--accent-hover);display:grid;place-items:center}.teacher-list{padding-left:1.1rem}.teacher-list li{margin:10px 0;line-height:1.6}.big-score{font-family:var(--font-display);font-size:48px;font-weight:800;color:var(--accent);margin:10px 0;letter-spacing:-.04em}.quiz-top{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;font-weight:700}.video-tabs{margin-bottom:1.25rem}.video-stage{margin-bottom:1.35rem;padding:1rem;border:1px solid var(--line);border-radius:18px 8px;background:var(--ink);color:#e8eef5}.video-stage[hidden]{display:none}.video-stage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.video-stage-head h3{margin-top:.45rem;font-size:clamp(1rem,2.5vw,1.25rem);letter-spacing:-.02em;max-width:42ch}.video-stage-head .btn-secondary{color:#fff;border-color:#ffffff59;flex-shrink:0}.video-stage-head .btn-secondary:hover{background:#fff;color:var(--ink)}.video-frame{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:#000}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:.25rem}.video-card{display:grid;gap:.7rem;text-align:left;padding:0;background:transparent;border-radius:14px;transition:transform .2s var(--ease-out)}.video-card:hover{transform:translateY(-3px)}.video-card.is-active .video-thumb{outline:2px solid var(--accent);outline-offset:2px}.video-thumb{position:relative;display:block;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:var(--ink);border:1px solid var(--line)}.video-thumb img{width:100%;height:100%;object-fit:cover;display:block}.video-play{position:absolute;inset:0;display:grid;place-items:center;background:#0b122047;color:#fff;transition:background .2s var(--ease-out)}.video-play .icon{width:42px;height:42px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.35))}.video-card:hover .video-play{background:#00a89659}.video-num{position:absolute;left:.55rem;top:.55rem;font-family:var(--font-display);font-size:11px;font-weight:800;letter-spacing:.08em;color:#fff;background:#0b1220b8;padding:.25rem .45rem;border-radius:6px}.video-meta{display:grid;gap:.25rem;padding:0 .15rem .35rem}.video-bob{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-hover)}.video-title{font-size:14px;font-weight:750;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.video-count{margin-top:1rem;font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.04em}.hud-strip{display:flex;flex-wrap:wrap;gap:1.25rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px dashed var(--line)}.hud-item{display:flex;flex-direction:column;gap:2px}.hud-item b{font-family:var(--font-display);font-size:1.5rem;letter-spacing:-.03em;color:var(--ink)}.hud-item span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:750}.lesson-list{display:grid;gap:0}@media(max-width:900px){.lab-shell{grid-template-columns:1fr}.lab-strip{padding:.55rem 1rem;gap:.5rem}.lab-strip-id{font-size:11px;letter-spacing:.04em}.strip-btn{padding:.35rem .55rem;font-size:11px}.lab-canvas{padding:1.15rem 1.1rem 2rem}.lab-shell.is-floor .lab-canvas{padding:0}.floor{min-height:auto;padding:1.15rem 1rem 1.5rem;display:grid;gap:.75rem;overflow:visible}.floor-wires,.floor-hint,.floor-core-ring{display:none}.floor-core{position:relative;left:auto;top:auto;transform:none;width:100%;height:auto;min-height:0;border-radius:18px 8px;padding:.95rem 1.15rem;display:flex;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:.55rem;box-shadow:var(--shadow-soft)}.floor-core strong{font-size:1.45rem}.floor-core span{font-size:11px;letter-spacing:.18em}.station{position:relative;inset:auto!important;width:100%;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:.85rem;row-gap:.1rem;align-items:center;min-height:72px;padding:.95rem 1.05rem}.station-code{grid-column:2;grid-row:1;margin-bottom:0}.station-ico{grid-column:1;grid-row:1 / span 3;margin-bottom:0;width:42px;height:42px}.station-title{grid-column:2;grid-row:2;margin-bottom:0;font-size:1.05rem}.station-meta{grid-column:2;grid-row:3;font-size:11px}.station:hover{transform:translateY(-2px) scale(1)}.floor-ping{position:relative;left:auto;bottom:auto;transform:none;width:100%;max-width:none;border-radius:16px;margin-top:.15rem;text-align:left}.floor-ping:hover{transform:translateY(-2px)}.poly-grid,.game-grid{grid-template-columns:1fr}.video-grid{grid-template-columns:1fr 1fr}.video-stage-head{flex-direction:column}.video-stage-head .btn-secondary{width:100%}.poly-pad{min-height:150px}.section-head{flex-direction:column;align-items:flex-start}.hud-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem 1rem}.cross-grid{grid-template-columns:repeat(var(--cols, 10),minmax(26px,34px))}}@media(max-width:600px){.video-grid,.match-grid{grid-template-columns:1fr}.word-grid{grid-template-columns:repeat(8,minmax(0,1fr));width:100%;gap:4px}.letter{font-size:12px;min-height:0}.lab-canvas{padding:1rem .9rem 1.75rem}.tape-wrap{margin:0 -.9rem;padding:.35rem .9rem 1.25rem}.tape-card{width:min(240px,78vw);min-height:200px}.poly-pad{padding:1.2rem;min-height:140px}.hud-item b{font-size:1.25rem}.big-score{font-size:40px}.lab-strip-actions .strip-btn{display:none}.cross-grid{grid-template-columns:repeat(var(--cols, 10),minmax(24px,1fr));width:100%;max-width:100%;gap:3px}.cross-grid input{font-size:12px}.material-row{grid-template-columns:1fr;gap:.65rem}.row .btn,.row .btn-primary,.row .btn-secondary,.row .btn-soft{flex:1 1 auto}}.boot-overlay{position:fixed;inset:0;z-index:100;background:#061018;color:#fff;display:grid;place-items:center;transition:opacity .35s var(--ease-out),visibility .35s}.boot-overlay.is-out{opacity:0;visibility:hidden;pointer-events:none}.boot-panel{text-align:center;width:min(360px,88vw)}.boot-mark{width:56px;height:56px;margin:0 auto 1rem;border-radius:14px;background:#00a89626;color:var(--accent);display:grid;place-items:center}.boot-brand{font-family:var(--font-display);font-size:2.4rem;font-weight:800;letter-spacing:-.04em}.boot-line{margin-top:.5rem;font-size:11px;letter-spacing:.2em;color:var(--accent);font-weight:800}.boot-bar{height:3px;background:#ffffff1f;border-radius:4px;margin:1.5rem 0 1.25rem;overflow:hidden}.boot-bar span{display:block;height:100%;width:0;background:var(--accent);animation:bootFill 2s var(--ease-out) forwards}@keyframes bootFill{to{width:100%}}.boot-steps{display:flex;justify-content:space-between;gap:.35rem;font-size:9px;letter-spacing:.08em;font-weight:800;color:#ffffff59}.boot-steps .is-on{color:var(--accent)}.spine-sound{display:grid;justify-items:center;gap:2px;color:#ffffff8c;font-size:9px;font-weight:800;letter-spacing:.08em;padding:.4rem;border-radius:10px}.spine-sound:hover{color:#fff;background:#ffffff0f}.spine-meter.is-flash{animation:popIn .45s var(--ease-out);filter:drop-shadow(0 0 12px rgba(0,168,150,.8))}.lab-strip-actions{display:flex;align-items:center;gap:.75rem}.strip-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:12px;font-weight:800;color:var(--ink-soft);padding:.4rem .65rem;border-radius:8px;border:1px solid var(--line);background:#fff}.strip-btn:hover{border-color:var(--accent);color:var(--accent-hover)}.dock,.dock-sheet{display:none}.floor-wires .wire.is-hot{stroke-width:3;opacity:1;stroke:var(--accent);filter:drop-shadow(0 0 6px rgba(0,168,150,.7));animation:signalFlow .8s linear infinite}.floor.is-hot .floor-core{box-shadow:0 0 0 6px #00a89626,0 20px 50px #0b122033}.scenario-tabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.scenario-tabs button{padding:.55rem .9rem;border-radius:999px;border:1px solid var(--line);background:#fff;font-weight:800;font-size:13px;color:var(--muted)}.scenario-tabs button.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}.mini-check{border-top:1px dashed var(--line);padding-top:.5rem}.signal-stage{will-change:transform;transition:transform .15s linear}@media(max-width:900px){.spine{display:none}.lab-shell{grid-template-columns:1fr}.dock{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--ink);padding:.4rem .25rem calc(.4rem + env(safe-area-inset-bottom,0px));justify-content:space-around;align-items:stretch;gap:2px;border-top:1px solid rgba(255,255,255,.08)}.dock-link{display:grid;justify-items:center;align-content:center;gap:2px;color:#ffffff73;font-size:9px;font-weight:750;padding:.4rem .2rem;min-width:0;flex:1;max-width:72px;min-height:48px;border-radius:10px}.dock-link .icon{width:18px;height:18px}.dock-link.is-active{color:#fff;background:#00a89638}.dock-more-btn{color:#ffffff73}.dock-sheet{display:block;position:fixed;inset:0;z-index:60}.dock-sheet[hidden]{display:none}.dock-sheet-backdrop{position:absolute;inset:0;background:#0b122073}.dock-sheet-panel{position:absolute;left:0;right:0;bottom:0;background:var(--paper-elevated);border-radius:22px 22px 0 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 40px #0b12202e;max-height:min(78vh,560px);overflow:auto;animation:dockSheetUp .28s var(--ease-out)}@keyframes dockSheetUp{0%{transform:translateY(18px);opacity:.7}to{transform:none;opacity:1}}.dock-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem}.dock-sheet-head strong{font-family:var(--font-display);font-size:1.15rem;letter-spacing:-.02em}.dock-sheet-close{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--paper);color:var(--ink);border:1px solid var(--line)}.dock-sheet-meter{display:flex;justify-content:space-between;align-items:center;padding:.75rem .9rem;border-radius:12px;background:var(--accent-soft);color:var(--accent-hover);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem}.dock-sheet-meter b{font-family:var(--font-display);font-size:1.1rem;letter-spacing:-.02em}.dock-sheet-links{display:grid;gap:4px;margin-bottom:.75rem}.dock-sheet-link{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.85rem .9rem;border-radius:12px;font-weight:750;color:var(--ink-soft);min-height:48px}.dock-sheet-link .icon:last-child{width:16px;height:16px;opacity:.35}.dock-sheet-link.is-active,.dock-sheet-link:hover{background:var(--accent-soft);color:var(--accent-hover)}.dock-sheet-tools{display:grid;gap:4px;border-top:1px solid var(--line);padding-top:.65rem}.dock-sheet-tool{display:flex;align-items:center;gap:.65rem;padding:.75rem .9rem;border-radius:12px;font-weight:750;font-size:14px;color:var(--ink-soft);text-align:left;min-height:48px}.dock-sheet-tool:hover{background:var(--paper)}body.dock-sheet-open{overflow:hidden}.lab-stage{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.toast{bottom:calc(78px + env(safe-area-inset-bottom,0px))}}@media(max-width:600px){.dock-link span{font-size:8px;letter-spacing:-.01em}}@media print{body:before,.spine,.dock,.lab-strip,.no-print,.boot-overlay{display:none!important}.lab-shell{display:block}.lab-canvas{max-width:none;padding:0}.print-block,.print-sheet{break-inside:avoid;box-shadow:none!important;border-color:#ccc!important}body{background:#fff!important}}
