:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-0:#07090d;--bg-1:#0d1017;--bg-2:#151a24;--bg-3:#1e2532;--bg-4:#2a3346;--line:#2b3548;--line-soft:#1e2634;--text:#e9edf5;--text-dim:#a6b0c4;--text-faint:#7a859b;--c-line:#2f9bff;--c-lowac:#3fd6e6;--c-vdc:#ffb21f;--c-ground:#2fc35a;--c-dead:#c3cbd8;--c-changed:#ff4fd8;--purple:#b266ff;--purple-deep:#6a2fc2;--accent:#6aa8ff;--accent-deep:#2f6fe0;--focus:#9ccbff;--radius:14px;--radius-sm:10px;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--topbar-h:52px;--shadow:0 10px 30px #00000073;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;height:100%}body{min-height:100%;font-family:var(--font);color:var(--text);background:radial-gradient(1200px 700px at 70% -10%, #19202f 0%, transparent 60%), linear-gradient(180deg, var(--bg-1), var(--bg-0));-webkit-tap-highlight-color:transparent;background-attachment:fixed;margin:0;font-size:16px;line-height:1.45;overflow-x:hidden}#app{min-height:100dvh}h1,h2,h3,p{margin:0}a{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon{flex:none}.btn{min-height:40px;font:600 .9rem/1 var(--font);color:var(--text);background:linear-gradient(180deg, var(--bg-3), var(--bg-2));border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;justify-content:center;align-items:center;gap:8px;padding:0 14px;text-decoration:none;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover:not(:disabled){background:linear-gradient(#283145,#1d2433);border-color:#3b4862}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:default}.btn-primary{color:#fff;background:linear-gradient(180deg, #3d86ff, var(--accent-deep));border-color:#6aa8ff;box-shadow:0 6px 22px #2f6fe059}.btn-primary:hover:not(:disabled){background:linear-gradient(#5a9bff,#3a7af0);border-color:#8dbcff}.btn-lg{border-radius:14px;min-height:54px;padding:0 34px;font-size:1.1rem}.btn-sm{min-height:32px;padding:0 10px;font-size:.8rem}.btn-toggle[aria-pressed=true] .icon{color:var(--c-ground)}.btn-toggle[aria-pressed=false]{color:var(--text-dim)}.topbar{min-height:var(--topbar-h);padding:6px max(16px, env(safe-area-inset-right)) 6px max(16px, env(safe-area-inset-left));border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d1017cc;align-items:center;gap:14px;display:flex}.brand{letter-spacing:.02em;white-space:nowrap;align-items:center;gap:8px;font-weight:700;display:inline-flex}.brand-dot{background:conic-gradient(var(--c-line) 0 50%, var(--c-vdc) 0);border-radius:50%;width:12px;height:12px;box-shadow:0 0 10px #6aa8ff80}.bar-title{min-width:0;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:1rem;font-weight:600;overflow:hidden}.bar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.screen{min-height:100dvh}.screen-enter{animation:screen-in .35s var(--ease) both}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.screen-center{place-items:center;padding:24px 16px;display:grid}.title{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(16px,4vw,64px);max-width:1280px;margin:0 auto;padding:clamp(16px,4vw,56px);display:grid}.title-hero{order:2}.title-copy{flex-direction:column;order:1;gap:16px;display:flex}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-size:.8rem;font-weight:700}.title-name{letter-spacing:-.03em;background:linear-gradient(90deg,#cfe3ff 0%,#fff 45%,#ffe0a8 100%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,6.5vw,4.6rem);font-weight:800;line-height:1.02}.title-sub{max-width:30ch;color:var(--text-dim);font-size:clamp(1.05rem,2vw,1.35rem)}.title-actions{align-items:center;gap:18px;margin-top:10px;display:flex}.version{color:var(--text-faint);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:600}.hero{--cycle:10s;width:100%;height:auto;max-height:72dvh;display:block;overflow:visible}.hero-label{font:700 12px var(--font);letter-spacing:.22em;text-anchor:middle;fill:var(--text-faint)}.hero-wire,.hero-live{fill:none;stroke-linecap:round;stroke-linejoin:round}.hero-wire{stroke:var(--c-dead);stroke-opacity:.4;stroke-width:4px}.hero-live{stroke-width:5px;stroke-dasharray:.1 13;opacity:0}.hero-live-vdc{stroke:var(--c-vdc);animation:hero-dash .9s linear infinite, hero-energized var(--cycle) ease-in-out infinite}.hero-live-gnd{stroke:var(--c-ground);animation:hero-dash .9s linear infinite, hero-energized var(--cycle) ease-in-out infinite}.hero-live-line{stroke:var(--c-line);opacity:1;animation:.9s linear infinite hero-dash}.hero-live-lamp{stroke:var(--c-line);animation:hero-dash .9s linear infinite, hero-closed var(--cycle) ease-in-out infinite}.hero-live-gnd2{stroke:var(--c-ground);animation:hero-dash .9s linear infinite, hero-closed var(--cycle) ease-in-out infinite}.hero-coil{fill:none;stroke:var(--c-dead);stroke-width:4px;stroke-linecap:round;animation:hero-coil var(--cycle) ease-in-out infinite}.hero-coil-glow{fill:var(--c-vdc);opacity:0;filter:blur(14px);animation:hero-coil-glow var(--cycle) ease-in-out infinite}.hero-ground path{fill:none;stroke:var(--c-dead);stroke-opacity:.55;stroke-width:3.5px;stroke-linecap:round}.hero-live-gnd-sym path{animation:hero-ground var(--cycle) ease-in-out infinite}.hero-live-gnd2-sym path{animation:hero-ground2 var(--cycle) ease-in-out infinite}.hero-link{fill:none;stroke:var(--text-faint);stroke-width:2.5px;stroke-dasharray:3 9;stroke-linecap:round}.hero-term{fill:#0f141d;stroke:#8793ab;stroke-width:3px}.hero-blade{stroke:var(--c-line);stroke-width:6px;stroke-linecap:round;transform-origin:410px 150px;animation:hero-blade var(--cycle) ease-in-out infinite;transform:rotate(-26deg)}.hero-lamp-glow{fill:#ffd76a;opacity:0;filter:blur(16px);animation:hero-lamp-glow var(--cycle) ease-in-out infinite}.hero-lamp-body{fill:#0f141d;stroke:#8793ab;stroke-width:3px;animation:hero-lamp var(--cycle) ease-in-out infinite}.hero-lamp-x{fill:none;stroke:#8793ab;stroke-width:3px;stroke-linecap:round;animation:hero-lamp-x var(--cycle) ease-in-out infinite}@keyframes hero-dash{to{stroke-dashoffset:-13.1px}}@keyframes hero-energized{0%,14%{opacity:0}20%,62%{opacity:1}68%,to{opacity:0}}@keyframes hero-closed{0%,29%{opacity:0}34%,62%{opacity:1}66%,to{opacity:0}}@keyframes hero-coil{0%,14%{stroke:var(--c-dead)}20%,62%{stroke:var(--c-vdc)}68%,to{stroke:var(--c-dead)}}@keyframes hero-coil-glow{0%,14%{opacity:0}20%,62%{opacity:.4}68%,to{opacity:0}}@keyframes hero-ground{0%,14%{stroke:var(--c-dead);stroke-opacity:.55}20%,62%{stroke:var(--c-ground);stroke-opacity:1}68%,to{stroke:var(--c-dead);stroke-opacity:.55}}@keyframes hero-ground2{0%,29%{stroke:var(--c-dead);stroke-opacity:.55}34%,62%{stroke:var(--c-ground);stroke-opacity:1}66%,to{stroke:var(--c-dead);stroke-opacity:.55}}@keyframes hero-blade{0%,22%{transform:rotate(-26deg)}30%,62%{transform:rotate(0)}70%,to{transform:rotate(-26deg)}}@keyframes hero-lamp{0%,29%{fill:#0f141d;stroke:#8793ab}34%,62%{fill:#ffd76a;stroke:#ffe9a8}66%,to{fill:#0f141d;stroke:#8793ab}}@keyframes hero-lamp-glow{0%,29%{opacity:0}34%,62%{opacity:.55}66%,to{opacity:0}}@keyframes hero-lamp-x{0%,29%{stroke:#8793ab}34%,62%{stroke:#3a2a00}66%,to{stroke:#8793ab}}.notice-card{text-align:center;width:min(520px,100%);box-shadow:var(--shadow), 0 0 0 1px #f5b4001f inset, 0 0 60px #f5b40012;background:linear-gradient(#1a2030,#121722);border:1px solid #4a3d12;border-radius:20px;flex-direction:column;align-items:center;gap:14px;padding:clamp(24px,5vw,44px);display:flex}.notice-icon svg{filter:drop-shadow(0 4px 14px #f5b40059);display:block}.notice-card h1{letter-spacing:-.01em;color:#ffd45c;font-size:clamp(1.5rem,4vw,2.1rem);font-weight:800;line-height:1.15}.notice-text{max-width:34ch;color:var(--text-dim);margin-bottom:8px;font-size:1.1rem}.menu{flex-direction:column;display:flex}.menu-cards{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;gap:clamp(14px,2.4vw,30px);width:min(1180px,100%);margin:0 auto;padding:clamp(16px,4vw,48px) 20px;display:grid}.chap-card{border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .2s var(--ease), border-color .2s, box-shadow .2s;background:linear-gradient(#1a2130,#121722);border-radius:22px;flex-direction:column;gap:16px;padding:clamp(16px,2vw,26px);text-decoration:none;display:flex;position:relative}.chap-card:hover,.chap-card:focus-visible{border-color:var(--purple);box-shadow:var(--shadow), 0 0 36px #b266ff33;transform:translateY(-3px)}.chap-card.is-done{border-color:#2a5a3c}.chap-art{border:1px solid var(--line-soft);background:#0b0e14;border-radius:14px;place-items:center;padding:10px;display:grid}.mini{width:min(260px,100%);height:auto;max-height:22dvh}.mini>*{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.mini-line{stroke:var(--c-line)}.mini-lowac{stroke:var(--c-lowac)}.mini-vdc{stroke:var(--c-vdc)}.mini-gnd{stroke:var(--c-ground)}.mini-ink{stroke:#dfe5ee}.mini-core{stroke:#8793ab;stroke-width:2.5px}.mini-box{stroke:#5d6b82;stroke-dasharray:4 6;stroke-width:2px;fill:#5d6b821a}.mini-link{stroke:var(--text-faint);stroke-dasharray:3 8;stroke-width:2.5px}.mini-term{fill:#0b0e14;stroke:#dfe5ee;stroke-width:2.5px}.mini-blade{stroke:#dfe5ee;stroke-width:4.5px}.mini-pivot{fill:#e9edf5;stroke:none}.mini-hot{fill:#151a24;stroke:var(--purple);stroke-width:2.5px}.mini-handle{stroke-width:5px}.mini-coil-glow{fill:var(--c-vdc);stroke:none;opacity:.22;filter:blur(8px)}.mini-lamp{fill:#1a2030;stroke:#8793ab}.mini-lamp-on{fill:#ffd76a;stroke:#ffe9a8}.mini-lamp-on+.mini-ink{stroke:#3a2a00}.mini-vdc-t,.mini-gnd-t{font:800 18px var(--font);stroke:none}.mini-vdc-t{fill:var(--c-vdc)}.mini-gnd-t{fill:var(--c-ground)}.chap-num{letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);font-size:.75rem;font-weight:700}.chap-title{letter-spacing:-.01em;margin-top:2px;font-size:clamp(1.25rem,2vw,1.6rem);font-weight:800}.chap-desc{color:var(--text-dim);margin-top:8px;font-size:.95rem}.chap-go{color:#fff;background:linear-gradient(180deg, #8a46e6, var(--purple-deep));border-radius:999px;align-self:flex-start;margin-top:auto;padding:8px 18px;font-size:.9rem;font-weight:700}.chap-card.is-done .chap-go{background:var(--bg-4)}.chap-tick{color:#06210f;background:#4ade80;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:14px;right:14px;box-shadow:0 0 14px #4ade8073}.chap-tick .icon{stroke-width:3px;width:18px;height:18px}.menu-hint{text-align:center;color:var(--text-faint);padding:0 20px 22px;font-size:.9rem}@media (width<=900px){.menu-cards{grid-template-columns:1fr;align-content:start}.chap-card{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:center;display:grid}.chap-art{grid-row:span 2}.chap-go{grid-column:2}}@media (width<=860px){.title{text-align:center;grid-template-columns:1fr;align-content:center}.title-hero{order:1;width:100%;max-width:460px;margin:0 auto}.title-copy{order:2;align-items:center}.title-sub{margin-inline:auto}.hero{max-height:38dvh}}@media (width<=560px){.chap-card{display:flex}.mini{max-height:14dvh}}@media (height<=560px) and (orientation:landscape){.title{text-align:left;grid-template-columns:1fr 1fr;padding:12px 24px}.title-hero{order:2;max-width:none}.title-copy{order:1;align-items:flex-start;gap:8px}.title-sub{margin-inline:0}.hero{max-height:78dvh}.title-name{font-size:clamp(1.9rem,6vw,3rem)}.menu-cards{grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;padding-block:8px}.chap-card{gap:8px;padding:12px;display:flex}.chap-art{display:none}.chap-desc{font-size:.85rem}.chap-go{padding:6px 14px}.menu-hint{padding-bottom:8px}}@media (width<=620px){.topbar .btn .btn-label{display:none}.topbar .btn{padding:0 12px}.topbar{gap:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.hero *{animation:none!important}.hero-live-vdc,.hero-live-gnd,.hero-live-lamp,.hero-live-gnd2{opacity:1}.hero-coil{stroke:var(--c-vdc)}.hero-coil-glow{opacity:.4}.hero-live-gnd-sym path,.hero-live-gnd2-sym path{stroke:var(--c-ground);stroke-opacity:1}.hero-blade{transform:none}.hero-lamp-body{fill:#ffd76a;stroke:#ffe9a8}.hero-lamp-glow{opacity:.55}.hero-lamp-x{stroke:#3a2a00}}.player{--pad:12px;--rail-h:28px;--stage-h:clamp(230px, 42dvh, 520px);--panel-w:clamp(260px, 30vw, 400px);--cut-w:clamp(150px, min(24vw, 42dvh), 320px);flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.rotate-hint{color:#ffd45c;background:#231d08;border-bottom:1px solid #4a3d12;justify-content:center;align-items:center;gap:8px;padding:6px 12px;font-size:.8rem;font-weight:600;display:none}.play-body{flex-direction:column;flex:1;min-height:0;display:flex}.stage-col{min-width:0;min-height:0;height:var(--stage-h);flex:none;display:flex}.stage-main{min-width:0;min-height:0;padding:var(--pad) var(--pad) 0;flex-direction:column;flex:1;display:flex}.circuit-host{border:1px solid var(--line-soft);min-height:0;box-shadow:var(--shadow);background:#0e131c;border-radius:12px;flex:1;position:relative;overflow:hidden}.circuit-host>svg{position:absolute;inset:0}.cut-card{border:1px solid var(--line-soft);box-shadow:var(--shadow);background:#0e131c;border-radius:12px;flex-direction:column;gap:8px;margin:0;padding:10px 12px 12px;display:flex}.cut-title{letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);font-size:.72rem;font-weight:700}.legend{color:var(--text-dim);flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 14px;margin:0;padding:8px 8px 10px;font-size:.76rem;font-weight:600;list-style:none;display:flex}.legend-item{align-items:center;gap:7px;display:inline-flex}.legend-swatch{background:currentColor;border-radius:3px;width:20px;height:5px}.legend-line .legend-swatch{color:var(--c-line)}.legend-lowac .legend-swatch{color:var(--c-lowac)}.legend-vdc .legend-swatch{color:var(--c-vdc)}.legend-ground .legend-swatch{color:var(--c-ground)}.legend-dead .legend-swatch{color:var(--c-dead);opacity:.55}.panel{min-width:0;min-height:0;padding:var(--pad) max(var(--pad), env(safe-area-inset-right)) max(var(--pad), env(safe-area-inset-bottom));overscroll-behavior:contain;flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.rail-wrap{flex-direction:column;flex:0 auto;min-height:0;display:flex}.cap-stack{flex-direction:column;gap:10px;min-height:0;display:flex}.caption{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;font-size:.92rem;line-height:1.45;overflow-y:auto}.cap-step{letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);font-size:.7rem;font-weight:700}.cap-title{letter-spacing:-.005em;margin:2px 0 6px;font-size:1.05rem;font-weight:800}.caption-text{color:var(--text)}.caption-enter{animation:card-in .3s var(--ease) both}.tap-play{color:#ffd45c;border-color:#6a5614;margin-top:10px}.done-card{border-radius:var(--radius);animation:card-in .4s var(--ease) both;background:linear-gradient(#1b2a22,#131d19);border:1px solid #2a5a3c;gap:10px;padding:12px 14px;display:grid}.done-msg{align-items:center;gap:10px;font-size:1.1rem;font-weight:800;line-height:1.25;display:flex}.done-tick{color:#06210f;background:#4ade80;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;display:grid}.done-tick .icon{stroke-width:3px;width:16px;height:16px}.done-actions{flex-wrap:wrap;gap:8px;display:flex}.controls{z-index:2;background:linear-gradient(#0d101700, var(--bg-1) 14px);grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);gap:8px;margin-top:auto;padding-top:8px;display:grid;position:sticky;bottom:0}.controls .btn{white-space:nowrap;gap:6px;padding:0 6px}.btn-next.is-ready{color:#fff;background:linear-gradient(180deg, #8a46e6, var(--purple-deep));border-color:var(--purple)}.btn-next.is-ready:hover:not(:disabled){border-color:var(--purple);background:linear-gradient(#9a5cf0,#7a3bd4)}.rail{overscroll-behavior:contain;flex-direction:column;gap:3px;min-height:96px;margin:0;padding:3px;list-style:none;display:flex;position:relative;overflow-y:auto}.rail-btn{width:100%;min-height:var(--rail-h);font:700 .84rem/1.15 var(--font);text-align:left;color:#f4f7fc;cursor:pointer;touch-action:manipulation;background:linear-gradient(#3c4456,#252b38);border:1px solid #596480;border-radius:8px;align-items:center;gap:10px;padding:3px 10px 3px 6px;transition:opacity .25s,box-shadow .25s,border-color .25s;display:flex}.rail-btn[aria-disabled=true]{cursor:default}.rail-btn:focus-visible{outline-offset:2px;outline:3px solid #fff}.rail-badge{background:#00000059;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:.7rem;font-weight:800;display:grid}.rail-badge .icon{stroke-width:3px;width:13px;height:13px}.rail-title{min-width:0}.rail-item.is-later .rail-btn,.rail-item.is-next .rail-btn{opacity:.45}.rail-item.is-done .rail-btn{opacity:1}.rail-item.is-done .rail-badge{color:#06210f;background:#4ade80}.rail-item.is-current .rail-btn{opacity:1;border-color:#fff;box-shadow:0 0 0 1px #ffffff80}.rail-item.is-busy .rail-btn{color:#fff;border-color:color-mix(in srgb, var(--purple) 70%, #fff);background:linear-gradient(#5b3496,#3b1f6b);position:relative;overflow:hidden;box-shadow:0 0 0 1px #b266ff73}.rail-item.is-busy .rail-btn:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 30%,#ffffff38 50%,#0000 70%);animation:1.6s ease-in-out infinite rail-busy;position:absolute;inset:0;transform:translate(-100%)}@keyframes rail-busy{to{transform:translate(100%)}}.rail-item.glow-purple .rail-btn{opacity:1;color:#fff;background:linear-gradient(180deg, #8a46e6, var(--purple-deep));border-color:var(--purple);animation:1.5s ease-in-out infinite glow-purple}@keyframes glow-purple{0%,to{box-shadow:0 0 6px 1px #b266ff8c,0 0 #b266ff4d}50%{box-shadow:0 0 18px 4px #b266fff2,0 0 0 4px #b266ff40}}@media (aspect-ratio>=5/4){.play-body{grid-template-columns:minmax(0, 1fr) var(--panel-w);grid-template-rows:minmax(0,1fr);display:grid}.stage-col{flex:1;height:auto}.stage-main{padding-bottom:0}.cut-card{width:var(--cut-w);margin:var(--pad) var(--pad) var(--pad) 0;flex:none;align-self:center}.panel{border-left:1px solid var(--line-soft);background:#0d10178c;overflow:hidden}.rail{overflow-y:auto}.cap-stack{flex:none;max-height:58%;overflow-y:auto}.controls{background:0 0;padding-top:0;position:static}}@media not all and (aspect-ratio>=5/4){.rotate-hint{display:none}.panel>.cap-stack{flex:none;order:1}.panel>.cut-card{flex:none;order:2;align-self:center;width:min(100%,360px)}.panel>.cut-card .cutaway{max-height:210px}.panel>.rail-wrap{flex:none;order:3}.panel>.controls{order:4}.rail{min-height:0;overflow:visible}.lab .circuit-host{aspect-ratio:1200/700;flex:none}.lab .stage-col{height:auto}}@media (orientation:portrait) and (width<=640px){.rotate-hint{display:flex}.player{--stage-h:clamp(220px, 36dvh, 420px)}.legend{gap:2px 12px;padding:6px 4px 8px;font-size:.7rem}.legend-swatch{width:14px}.controls .btn{min-height:44px}.controls .btn-label{font-size:.85rem}.rail-btn{min-height:34px}}@media (aspect-ratio>=5/4) and (height<=520px){.player{--pad:8px;--rail-h:24px;--panel-w:clamp(250px, 32vw, 330px)}.topbar{min-height:44px;padding-block:3px}.topbar .btn{min-height:34px}.topbar .btn .btn-label{display:none}.topbar .btn{padding:0 10px}.legend{gap:2px 12px;padding:4px 4px 6px;font-size:.7rem}.legend-swatch{width:14px}.panel{gap:6px}.rail{min-height:72px}.rail-btn{gap:8px;padding-block:1px;font-size:.76rem}.rail-badge{width:17px;height:17px;font-size:.64rem}.caption{padding:8px 10px;font-size:.8rem;line-height:1.35}.is-done .rail-wrap{display:none}.is-done .cap-stack{max-height:none}.cap-step{display:none}.cap-title{margin:0 0 3px;font-size:.9rem}.controls .btn{min-height:34px}.controls .btn:not(.btn-next) .btn-label{display:none}.cut-card{gap:4px;padding:6px 8px 8px}.cut-title{font-size:.62rem}.done-card{gap:6px;padding:8px 10px}.done-msg{font-size:.95rem}}@media (aspect-ratio>=5/4) and (height<=800px){.player{--rail-h:26px}.rail-btn{padding-block:2px}}@media (prefers-reduced-motion:reduce){.rail-item.is-busy .rail-btn:after{background:#ffffff14;animation:none;transform:none}.rail-item.glow-purple .rail-btn{animation:none;box-shadow:0 0 14px 3px #b266ffe6}}.lab-instructions{color:#e6d6ff;background:color-mix(in srgb, var(--purple) 14%, var(--bg-2));border:1px solid color-mix(in srgb, var(--purple) 55%, transparent);border-radius:var(--radius);align-items:center;padding:10px 14px;font-size:.9rem;font-weight:600;display:flex}.lab-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.lab-stat{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:4px;min-width:0;padding:8px 10px;display:flex}.lab-stat-name{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-size:.68rem;font-weight:700}.lab-pill{color:var(--text-dim);overflow-wrap:anywhere;font-size:.88rem;font-weight:800}.lab-pill.is-on{color:var(--c-vdc)}.controls-lab{grid-template-columns:minmax(0,1fr)}@media (height<=520px){.lab-instructions{padding:6px 10px;font-size:.78rem}.lab-stat{gap:1px;padding:4px 6px}.lab-stat-name{letter-spacing:.06em;font-size:.58rem}.lab-pill{font-size:.74rem}}.circuit{--feed-line:#2f9bff;--feed-lowac:#3fd6e6;--feed-vdc:#ffb21f;--feed-ground:#2fc35a;--dead:#c3cbd8;--ink:#dfe5ee;--sheet:#0e131c;--box:#5d6b82;--changed:#ff4fd8;--lamp:#ffd76a;--w:3px;--fade:.6s;background:var(--sheet);width:100%;height:100%;color:var(--ink);shape-rendering:geometricprecision;-webkit-user-select:none;user-select:none;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;display:block}.circuit .sheet{fill:var(--sheet)}.circuit .wire{fill:none;stroke:var(--dead);stroke-opacity:.55;stroke-width:var(--w);stroke-linejoin:round;stroke-linecap:round}.circuit .feed{--c:var(--dead);fill:none;stroke-linejoin:round;stroke-linecap:round;opacity:0;pointer-events:none;transition:opacity var(--fade) ease}.circuit .feed[data-feed=line]{--c:var(--feed-line)}.circuit .feed[data-feed=lowac]{--c:var(--feed-lowac)}.circuit .feed[data-feed=vdc]{--c:var(--feed-vdc)}.circuit .feed[data-feed=ground]{--c:var(--feed-ground)}.circuit .feed:not([data-feed=dead]){opacity:1;transition-duration:.15s}.circuit .feed .halo,.circuit .feed .band,.circuit .feed .flow{fill:none;stroke:var(--c)}.circuit .feed .halo{stroke-width:14px;stroke-opacity:.22}.circuit .feed .band{stroke-width:5px}.circuit .feed .flow{stroke:color-mix(in srgb, var(--c) 30%, #fff);stroke-width:2px;stroke-dasharray:5 15;animation:1.8s linear infinite circuit-flow}.circuit .feed.rev .flow{animation-direction:reverse}.circuit .feed[data-feed=dead] .flow,.circuit .feed.bridge .flow{animation:none}.circuit .feed.dotfeed .band{stroke:none;fill:var(--c)}@keyframes circuit-flow{to{stroke-dashoffset:-20px}}.circuit .ln,.circuit .winding,.circuit .core,.circuit .ground,.circuit .contact .plate,.circuit .contact .slash,.circuit .contact .lead{fill:none;stroke:var(--ink);stroke-width:var(--w);stroke-linecap:round;stroke-linejoin:round}.circuit .core{stroke-width:2.5px}.circuit .diode{fill:var(--ink);stroke:none}.circuit .box{fill:color-mix(in srgb, var(--box) 10%, transparent);stroke:var(--box);stroke-width:2px;stroke-dasharray:4 6}.circuit .dot{fill:var(--ink)}.circuit .term{fill:var(--sheet);stroke:var(--ink);stroke-width:2.5px}.circuit .switch .blade{stroke:var(--ink);stroke-width:4px;stroke-linecap:round;transition:transform .35s cubic-bezier(.3,1.4,.5,1);transform:rotate(-28deg)}.circuit .switch.on .blade{transform:rotate(0)}.circuit .switch .pivot{fill:var(--sheet);stroke:var(--ink);stroke-width:2.5px}.circuit .changed-ring{fill:color-mix(in srgb, var(--changed) 12%, transparent);stroke:var(--changed);stroke-width:3px;opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity .26s,transform .26s;transform:scale(.6)}.circuit .contact.changed .changed-ring{opacity:1;transform:scale(1)}.circuit .changed-slash{fill:none;stroke:var(--changed);stroke-width:4px;stroke-linecap:round;opacity:0;stroke-dasharray:80;stroke-dashoffset:80px;transition:opacity .2s,stroke-dashoffset .3s}.circuit .contact.changed .changed-slash{opacity:1;stroke-dashoffset:0}.circuit .contact.pulse-on .changed-ring,.circuit .contact.pulse-off .changed-ring{animation:mark-pulse-ring var(--pulse-cycle,.8s) ease-in-out 3}.circuit .contact.pulse-on .changed-slash,.circuit .contact.pulse-off .changed-slash{animation:mark-pulse-slash var(--pulse-cycle,.8s) ease-in-out 3}@keyframes mark-pulse-ring{0%,to{opacity:1;transform:scale(1)}50%{opacity:.15;transform:scale(1.35)}}@keyframes mark-pulse-slash{0%,to{opacity:1;stroke-dashoffset:0;stroke-width:4px}50%{opacity:.15;stroke-dashoffset:0;stroke-width:8px}}.circuit .coil-glow{fill:none;stroke:var(--feed-vdc);stroke-width:16px;stroke-opacity:0;transition:stroke-opacity var(--fade) ease}.circuit .coil-load.on .coil-glow{stroke-opacity:.35;transition-delay:var(--on-delay,0s)}.circuit .coil-load .winding{transition:stroke var(--fade) ease}.circuit .coil-load.on .winding{stroke:var(--feed-vdc);transition-delay:var(--on-delay,0s)}.circuit .lamp-body{fill:var(--sheet);stroke:var(--ink);stroke-width:var(--w);transition:fill var(--fade) ease}.circuit .lamp-glow{fill:var(--lamp);opacity:0;filter:blur(14px);transition:opacity var(--fade) ease}.circuit .lamp.on .lamp-body{fill:var(--lamp);transition-delay:var(--on-delay,0s)}.circuit .lamp.on .lamp-glow{opacity:.55;transition-delay:var(--on-delay,0s)}.circuit .lamp.on .ln{stroke:#3a2a00}.circuit .lbl{fill:var(--ink);pointer-events:none;font-size:15px;font-weight:600}.circuit .lbl-big{font-size:20px;font-weight:700}.circuit .lbl-small{fill:color-mix(in srgb, var(--ink) 80%, transparent);font-size:13px}.circuit .lbl-vdc{fill:var(--feed-vdc)}.circuit .art-placeholder{fill:none;stroke:var(--box);stroke-dasharray:2 4}.circuit .dim{fill:#05080d;opacity:0;pointer-events:none;transition:opacity .5s}.circuit.spot .dim{opacity:.72}.circuit .spot-ring{fill:none;stroke:#fff;stroke-opacity:.55;stroke-width:2px}.circuit .hotspot{cursor:pointer;outline:none}.circuit .hotspot .hot-ring{fill:#0000;stroke:#b48cff;stroke-width:2.5px;stroke-opacity:0;transition:stroke-opacity .2s}.circuit .hotspot[data-live] .hot-ring{stroke-opacity:.8;animation:2.4s ease-in-out infinite hot-glow}.circuit .hotspot:hover .hot-ring{stroke-opacity:1}.circuit .hotspot:focus-visible .hot-ring{stroke:#fff;stroke-opacity:1;stroke-width:3.5px;animation:none}@keyframes hot-glow{0%,to{stroke-opacity:.8}50%{stroke-opacity:.35}}@media (prefers-reduced-motion:reduce){.circuit .feed .flow,.circuit .hotspot[data-live] .hot-ring,.circuit .contact.pulse-on .changed-ring,.circuit .contact.pulse-off .changed-ring,.circuit .contact.pulse-on .changed-slash,.circuit .contact.pulse-off .changed-slash{animation:none}.circuit .feed,.circuit .switch .blade,.circuit .changed-ring,.circuit .changed-slash{transition:none}}.circuit .art{pointer-events:none}.circuit .art-gloss{fill:none;stroke:#fff;stroke-opacity:.35;stroke-width:1.6px;stroke-linecap:round}.circuit .art-screw{fill:#3a4458;stroke:#1c2230;stroke-width:.8px}.circuit .art-disc .art-steel{stroke:#2a3243;stroke-width:1.5px}.circuit .art-disc .art-door{stroke:#38425a;stroke-width:1.2px}.circuit .art-disc .art-seam{fill:none;stroke:#fff;stroke-opacity:.28;stroke-width:1.2px}.circuit .art-disc .art-slot{stroke:#0b0e15;stroke-width:1px}.circuit .art-disc .art-hinge{stroke:#11151e;stroke-width:.8px}.circuit .art-disc .art-label-bg{fill:#e9edf3;stroke:#1a1d25;stroke-width:1px}.circuit .art-disc .art-label-bar{fill:#7a859b}.circuit .art-disc .art-plate{fill:#c9d0dc;stroke:#3c465c;stroke-width:.8px}.circuit .art-disc .art-plate+.art-label-bar,.circuit .art-disc .art-plate+.art-label-bar+.art-label-bar{fill:#4a5470}.circuit .art-disc .art-window{stroke:#0b0e15;stroke-width:1px}.circuit .art-disc .art-ind{letter-spacing:.04em;opacity:0;font:800 15px/1 Inter,system-ui,-apple-system,Segoe UI,sans-serif;transition:opacity .2s}.circuit .art-disc .art-ind-on{fill:#4ade80}.circuit .art-disc .art-ind-off{fill:#ff6b5e;opacity:1}.circuit[data-disc=on] .art-disc .art-ind-on{opacity:1}.circuit[data-disc=on] .art-disc .art-ind-off{opacity:0}.circuit .art-disc .art-handle{transform-box:view-box;transform-origin:0 0;transition:transform .38s cubic-bezier(.3,1.35,.5,1);transform:rotate(180deg)}.circuit[data-disc=on] .art-disc .art-handle{transform:rotate(0)}.circuit .art-disc .art-cap{fill:#3a4458;stroke:#171c27;stroke-width:1.2px}.circuit .art-disc .art-cap-dot{fill:#9aa7bb}.circuit .art-tgl1 .art-panel{stroke:#11151e;stroke-width:1.2px}.circuit .art-tgl1 .art-nut{stroke:#2a3243;stroke-width:1.2px;stroke-linejoin:round}.circuit .art-tgl1 .art-bezel{stroke:#2a3243;stroke-width:1px}.circuit .art-tgl1 .art-bore{stroke:#0b0e15;stroke-width:1px}.circuit .art-tgl1 .art-collar{fill:#566178;stroke:#1c2230;stroke-width:1px}.circuit .art-tgl1 .art-bat{stroke:#3a4458;stroke-width:.8px;stroke-linejoin:round}.circuit .art-tgl1 .art-ball{stroke:#4a566b;stroke-width:.8px}.circuit .art-tgl1 .art-lever{transform-box:view-box;transform-origin:0 0;transition:transform .3s cubic-bezier(.3,1.5,.5,1);transform:rotate(-30deg)}.circuit[data-tgl1=on] .art-tgl1 .art-lever{transform:rotate(30deg)}.circuit .art-ds1 .art-glass,.circuit .art-ds2 .art-glass{fill:#9fb4d4;fill-opacity:.1;stroke:#c6d2e6;stroke-opacity:.7;stroke-width:1.6px;stroke-linejoin:round}.circuit .art-glass-lit{opacity:0;stroke:none;transition:opacity .25s}.circuit .art-support{fill:none;stroke:#8a94a8;stroke-width:1.3px;stroke-linecap:round}.circuit .art-filament{fill:none;stroke:#8a94a8;stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round;transition:stroke .25s,filter .25s}.circuit .art-base{stroke:#2f2a1f;stroke-width:1px}.circuit .art-thread{fill:none;stroke:#2f2a1f;stroke-opacity:.6;stroke-width:1.2px}.circuit .art-tip{fill:#4a4436;stroke:#2f2a1f;stroke-width:.8px;stroke-linejoin:round}.circuit .art-halo{opacity:0;transition:opacity .25s}.circuit .lamp .art-gloss{stroke-opacity:.45}.circuit .lamp.on .art-glass-lit,.circuit .lamp.on .art-halo{opacity:1;transition:opacity var(--fade,.6s) ease var(--on-delay,0s)}.circuit .lamp.on .art-halo{opacity:.9}.circuit .lamp.on .art-filament{stroke:#fff7d6;filter:drop-shadow(0 0 2px #fff1b0)drop-shadow(0 0 4px #ffb21f);transition:stroke var(--fade,.6s) ease var(--on-delay,0s), filter var(--fade,.6s) ease var(--on-delay,0s)}.circuit .lamp.on .art-support{stroke:#fff3c4;transition:stroke var(--fade,.6s) ease var(--on-delay,0s)}.circuit .lamp.on .art-glass{stroke:#ffe7a1;transition:stroke var(--fade,.6s) ease var(--on-delay,0s)}.cutaway{--cut-ink:#dfe5ee;--cut-dim:#a6b0c4;--cut-field:#4fb0ff;--cut-hl:#b48cff;--cut-copper:#d98a4e;shape-rendering:geometricprecision;-webkit-user-select:none;user-select:none;width:100%;height:auto;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;display:block}.cutaway .cut-case{fill:#9fb4d4;fill-opacity:.06;stroke:#6d7b93;stroke-width:2.5px}.cutaway .cut-base{stroke:#1c2230;stroke-width:1.2px}.cutaway .cut-pin{stroke:#4a4436;stroke-width:.8px}.cutaway .cut-steel{stroke:#2a3243;stroke-width:1.2px;stroke-linejoin:round}.cutaway .cut-copper-rim{fill:none;stroke:#6b3a1a;stroke-width:1px}.cutaway .cut-flange{fill:#2d3547;stroke:#151a24;stroke-width:1px}.cutaway .cut-winding-glow{fill:#ffb21f;opacity:0;filter:blur(7px);transition:opacity .4s}.cutaway.coil-on .cut-winding-glow{opacity:.38}.cutaway .cut-contact-metal{stroke:#3b4152;stroke-width:.8px}.cutaway .cut-pad{fill:#eef2f8;stroke:#6c7890;stroke-width:.8px}.cutaway .cut-lead{fill:none}.cutaway .cut-spring{fill:none;stroke:#c9d2e1;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.cutaway .cut-hingepin{fill:#2a3243;stroke:#9aa7bb;stroke-width:1.2px}.cutaway .cut-leader{fill:none;stroke:var(--cut-dim);stroke-opacity:.7;stroke-width:1px}.cutaway .cut-leader-dot{fill:var(--cut-dim)}.cutaway .cut-label{fill:var(--cut-ink);font-size:13px;font-weight:600}.cutaway .cut-label-small{fill:var(--cut-dim);text-anchor:middle;font-size:11px;font-weight:600}.cutaway .cut-mover{transform-box:view-box;transform-origin:var(--hx) var(--hy);transform:rotate(var(--rest));transition:transform .52s cubic-bezier(.3,1.45,.5,1)}.cutaway .cut-stretch{transform-box:view-box;transform-origin:var(--sx) var(--sy);transform:scaleY(var(--s-rest));transition:transform .52s cubic-bezier(.3,1.45,.5,1)}.cutaway.energized .cut-mover{transition-duration:.24s;transition-timing-function:cubic-bezier(.5,0,.8,.6);transform:rotate(0)}.cutaway.energized .cut-stretch{transition-duration:.24s;transition-timing-function:cubic-bezier(.5,0,.8,.6);transform:scaleY(1)}.cutaway .cut-touch{fill:#ffd76a;opacity:0;filter:blur(2.5px);transition:opacity .16s}.cutaway:not(.energized) .cut-touch-nc{opacity:.9;transition-delay:.4s}.cutaway.energized .cut-touch-no{opacity:.9;transition-delay:.22s}.cutaway .cut-field{fill:none;stroke:var(--cut-field);stroke-width:2px;stroke-linecap:round;stroke-dasharray:7 6;opacity:0;transition:opacity .32s}.cutaway.coil-on .cut-field{opacity:.85;animation:1.2s linear infinite cut-field-flow}.cutaway.coil-on .cut-field-2{opacity:.6}.cutaway.coil-on .cut-field-3{opacity:.38}@keyframes cut-field-flow{to{stroke-dashoffset:-26px}}.cutaway .cut-core-glow{fill:var(--cut-field);opacity:0;filter:blur(6px);transition:opacity .32s}.cutaway.coil-on .cut-core-glow{opacity:.4}.cutaway [data-part]{transition:opacity .25s,filter .25s}.cutaway[data-hl=coil] [data-part]:not([data-part=coil]),.cutaway[data-hl=contacts] [data-part]:not([data-part=contacts]),.cutaway[data-hl=armature] [data-part]:not([data-part=armature]){opacity:.32}.cutaway[data-hl=coil] [data-part=coil],.cutaway[data-hl=contacts] [data-part=contacts],.cutaway[data-hl=armature] [data-part=armature]{filter:brightness(1.18) drop-shadow(0 0 1.5px var(--cut-hl)) drop-shadow(0 0 5px var(--cut-hl))}@media (prefers-reduced-motion:reduce){.circuit .art-disc .art-handle,.circuit .art-disc .art-ind,.circuit .art-tgl1 .art-lever,.circuit .art-glass-lit,.circuit .art-halo,.circuit .art-filament,.circuit .art-glass,.circuit .lamp.on .art-glass-lit,.circuit .lamp.on .art-halo,.circuit .lamp.on .art-filament,.circuit .lamp.on .art-support,.circuit .art-support,.circuit .lamp.on .art-glass,.cutaway .cut-mover,.cutaway .cut-stretch,.cutaway .cut-touch,.cutaway .cut-field,.cutaway .cut-core-glow,.cutaway .cut-winding-glow,.cutaway [data-part]{transition:none!important}.cutaway.coil-on .cut-field{animation:none}}
