@font-face{font-family:VT323;src:url(/fonts/VT323-Regular.woff2) format("woff2"),url(/fonts/VT323-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--phosphor: #4dff7c;--phosphor-dim: #2fae54;--phosphor-deep: #115c2c;--amber: #ffcc4d;--danger: #ff6b5e;--bg: #04140a;--bg-panel: rgba(10, 40, 22, .55);--glow: 0 0 4px rgba(77, 255, 124, .55), 0 0 12px rgba(77, 255, 124, .25)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--phosphor);font-family:VT323,Courier New,monospace;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{background:radial-gradient(ellipse at center,rgba(20,70,38,.35) 0%,var(--bg) 75%)}.crt-overlay{position:fixed;inset:0;pointer-events:none;z-index:9000;background:repeating-linear-gradient(to bottom,#0000 0px 2px,#00000038 3px 3px);box-shadow:inset 0 0 140px 30px #000000d9}.crt-flicker{position:fixed;inset:0;pointer-events:none;z-index:9001;background:#4dff7c05;animation:flicker 6s infinite steps(60);will-change:opacity}@keyframes flicker{0%,92%,to{opacity:.18}93%{opacity:.32}95%{opacity:.12}97%{opacity:.28}}@media (prefers-reduced-motion: reduce){.crt-flicker{animation:none;opacity:.18}}.glow{text-shadow:var(--glow)}.screen{position:relative;z-index:1;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:clamp(12px,3vw,32px);gap:18px}.terminal{width:min(820px,100%);background:var(--bg-panel);border:2px solid var(--phosphor-deep);border-radius:8px;box-shadow:0 0 0 1px #4dff7c26,0 0 30px #14462699 inset;padding:clamp(16px,3vw,28px);display:flex;flex-direction:column;gap:16px}.terminal__bar{display:flex;align-items:center;gap:8px;font-size:1.1rem;letter-spacing:1px;color:var(--phosphor-dim);border-bottom:1px dashed var(--phosphor-deep);padding-bottom:8px}.terminal__bar .dot{width:11px;height:11px;border-radius:50%;background:var(--phosphor-deep)}.terminal__bar .dot--live{background:var(--phosphor);box-shadow:var(--glow)}.terminal__title{margin-left:auto;font-size:1rem}h1,h2,h3{margin:0;font-weight:400;letter-spacing:1px;text-shadow:var(--glow)}h1{font-size:clamp(1.8rem,5vw,2.8rem)}h2{font-size:clamp(1.4rem,4vw,2rem)}.narrative{font-size:clamp(1.25rem,3.4vw,1.6rem);line-height:1.5;white-space:pre-wrap;min-height:2.2em}.cursor:after{content:"▋";animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.prompt{font-size:clamp(1.2rem,3.2vw,1.5rem);color:var(--amber);text-shadow:0 0 6px rgba(255,204,77,.4)}.btn{font-family:inherit;font-size:clamp(1.15rem,3vw,1.4rem);color:var(--phosphor);background:transparent;border:2px solid var(--phosphor-dim);border-radius:6px;padding:10px 18px;cursor:pointer;letter-spacing:1px;transition:background .12s,box-shadow .12s,transform .05s;touch-action:manipulation;min-height:48px}.btn:hover{background:#4dff7c1a;box-shadow:var(--glow)}.btn:active{transform:translateY(1px)}.btn--primary{border-color:var(--phosphor);text-shadow:var(--glow)}.btn--ghost{border-color:var(--phosphor-deep);color:var(--phosphor-dim)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.choices{display:flex;flex-direction:column;gap:10px}.choice{text-align:left;display:flex;gap:10px;align-items:center}.choice.selected{background:#4dff7c26;box-shadow:var(--glow)}.choice.correct{border-color:var(--phosphor);background:#4dff7c38}.choice.wrong{border-color:var(--danger);color:var(--danger)}.choice .marker{font-size:1.3rem}.drag-area{display:flex;flex-direction:column;gap:16px}.item-tray{display:flex;flex-wrap:wrap;gap:12px;padding:12px;border:1px dashed var(--phosphor-deep);border-radius:6px;min-height:84px;align-content:flex-start}.drag-item{display:inline-flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;border:2px solid var(--phosphor-dim);border-radius:6px;background:#0a2816b3;cursor:grab;user-select:none;touch-action:none;min-width:76px;text-align:center;font-size:1.1rem}.drag-item .sprite{font-size:2rem;line-height:1}.drag-item.dragging{opacity:.5}.drag-ghost{position:fixed;z-index:9500;pointer-events:none;transform:translate(-50%,-50%) scale(1.05);box-shadow:var(--glow);background:#0a2816f2;border:2px solid var(--phosphor);border-radius:6px;padding:10px 14px;display:inline-flex;flex-direction:column;align-items:center;gap:4px;font-size:1.1rem}.drag-ghost .sprite{font-size:2rem;line-height:1}.bins{display:flex;flex-wrap:wrap;gap:14px}.bin{flex:1 1 200px;min-height:130px;border:2px solid var(--phosphor-deep);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px}.bin__label{font-size:1.2rem;color:var(--phosphor-dim);border-bottom:1px dashed var(--phosphor-deep);padding-bottom:6px}.bin__drop{flex:1;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}.bin.drop-hover,.slot.drop-hover,.item-tray.drop-hover{background:#4dff7c24;box-shadow:var(--glow)}.slots{display:flex;flex-wrap:wrap;gap:14px}.slot{flex:1 1 160px;min-height:110px;border:2px dashed var(--phosphor-dim);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;text-align:center}.slot__label{font-size:1.05rem;color:var(--phosphor-dim)}.arrange-view{text-align:center;border:2px solid var(--phosphor-deep);border-radius:8px;padding:22px 12px}.arrange-view .visual{font-size:clamp(1.6rem,6vw,2.6rem);letter-spacing:6px;line-height:1.6;word-break:break-word}.arrange-view .caption{margin-top:10px;font-size:1.2rem;color:var(--amber)}.feedback{border-left:4px solid var(--phosphor-dim);padding:10px 14px;font-size:1.2rem;line-height:1.45;background:#0a281680;border-radius:0 6px 6px 0}.feedback.good{border-color:var(--phosphor);color:var(--phosphor)}.feedback.bad{border-color:var(--danger);color:var(--danger)}.feedback.hint{border-color:var(--amber);color:var(--amber)}.hud{width:min(820px,100%);display:flex;align-items:center;gap:14px;font-size:1.15rem;color:var(--phosphor-dim);flex-wrap:wrap}.hud .glow{color:var(--phosphor);font-size:1.25rem;letter-spacing:.5px;text-shadow:0 0 2px rgba(77,255,124,.6)}.hud .spacer{flex:1}.progress-dots{display:flex;gap:6px}.progress-dots .pd{width:14px;height:14px;border-radius:50%;border:2px solid var(--phosphor-deep)}.progress-dots .pd.done{background:var(--phosphor);border-color:var(--phosphor);box-shadow:var(--glow)}.progress-dots .pd.current{border-color:var(--phosphor)}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:1.15rem;color:var(--phosphor-dim)}.input,.select{font-family:inherit;font-size:1.3rem;color:var(--phosphor);background:#04140acc;border:2px solid var(--phosphor-dim);border-radius:6px;padding:10px 12px;min-height:48px}.input:focus,.select:focus{outline:none;border-color:var(--phosphor);box-shadow:var(--glow)}.tabs{display:flex;gap:8px;margin-bottom:4px}.tab{flex:1}.tab.active{border-color:var(--phosphor);background:#4dff7c1f}.muted{color:var(--phosphor-dim);font-size:1.05rem}.error{color:var(--danger);font-size:1.15rem}.level-grid{display:flex;flex-wrap:wrap;gap:16px}.level-card{flex:1 1 240px;border:2px solid var(--phosphor-deep);border-radius:8px;padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:box-shadow .12s,background .12s}.level-card:hover{box-shadow:var(--glow);background:#4dff7c14}.level-card .icon{font-size:2.6rem}.level-card .status{font-size:1.05rem;color:var(--amber)}.level-card.done .status{color:var(--phosphor)}.table-wrap{width:min(1000px,100%);overflow-x:auto}table.dash{width:100%;border-collapse:collapse;font-size:1.1rem}table.dash th,table.dash td{border:1px solid var(--phosphor-deep);padding:8px 10px;text-align:left;white-space:nowrap}table.dash th{color:var(--phosphor-dim);letter-spacing:1px}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:1rem;border:1px solid var(--phosphor-deep)}.badge.done{border-color:var(--phosphor);color:var(--phosphor)}.badge.todo{color:var(--phosphor-dim)}.center{text-align:center}.stack{display:flex;flex-direction:column;gap:12px}.schematic,.symbol-svg{color:var(--phosphor)}.schematic-board{display:flex;justify-content:center;padding:10px;border:2px solid var(--phosphor-deep);border-radius:8px;background:#04140a8c}.schematic{width:min(540px,100%);height:auto;display:block}.schematic line,.schematic path,.schematic circle,.schematic rect.box,.symbol-svg line,.symbol-svg path,.symbol-svg circle,.symbol-svg rect.box{stroke:currentColor;stroke-width:2.4;fill:none;stroke-linecap:round}.schematic .node,.symbol-svg .node{fill:currentColor;stroke:none}.schematic .plate-short,.symbol-svg .plate-short{stroke-width:5.5}.schematic .dome,.symbol-svg .dome{fill:currentColor;stroke:currentColor;stroke-linejoin:round}.schematic text,.symbol-svg text{fill:currentColor;stroke:none;font-family:inherit;font-size:18px}.schematic .sym-glyph{font-size:21px}.schematic .hit{fill:transparent;stroke:none}.schematic .switch-hit{cursor:pointer}.schematic .switch-hit:hover,.schematic .sym--lamp.lit{color:var(--amber)}.schematic .sym--lamp.lit .lamp-bulb{fill:#ffcc4d38}.sprite--symbol{display:inline-flex}.sprite--symbol .symbol-svg{width:72px;height:52px}.magnetbar{width:min(460px,100%);height:auto;display:block;color:var(--phosphor)}.magnetbar .iron{fill:#4dff7c0f;stroke:var(--phosphor-deep);stroke-width:2}.magnetbar .emag line{stroke:currentColor;stroke-width:2.4;fill:none}.magnetbar.magnetized{color:var(--amber)}.magnetbar.magnetized .iron{fill:#ffcc4d1a;stroke:var(--amber)}.magnetbar .pole{fill:var(--amber);stroke:none;font-family:inherit;font-size:26px}.circuit-status{text-align:center;font-size:1.25rem;margin-top:2px}.circuit-status.lit{color:var(--amber);text-shadow:0 0 6px rgba(255,204,77,.45)}.circuit-status.dark{color:var(--phosphor-dim)}
