:root{--bg: #0a0a14;--bg-2: #0e0e1e;--panel: #14142b;--panel-2: #1b1b38;--border: #2a2a52;--text: #e8e8ff;--text-dim: #9a9ac8;--neon-cyan: #22e0ff;--neon-magenta: #ff2d95;--neon-lime: #b6ff3b;--neon-purple: #b46bff;--neon-yellow: #ffd23b;--html: var(--neon-magenta);--css: var(--neon-cyan);--js: var(--neon-lime);--glow-soft: 0 0 8px;--glow: 0 0 14px;--radius: 10px;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 80% -10%,rgba(180,107,255,.12),transparent),radial-gradient(1000px 500px at 0% 110%,rgba(34,224,255,.1),transparent),var(--bg)}button{font-family:inherit;cursor:pointer}code,pre,textarea.editor{font-family:JetBrains Mono,Fira Code,ui-monospace,Courier New,monospace}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:linear-gradient(90deg,var(--bg-2),var(--panel));border-bottom:1px solid var(--border)}.topbar .logo{font-weight:800;font-size:20px;letter-spacing:.5px;color:var(--neon-cyan);text-shadow:var(--glow) rgba(34,224,255,.7)}.topbar .logo span{color:var(--neon-magenta);text-shadow:var(--glow) rgba(255,45,149,.7)}.topbar .spacer{flex:1}.topbar .player{color:var(--text-dim);font-size:14px}.topbar .player b{color:var(--text)}.star-counter{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--neon-yellow);font-weight:700;text-shadow:var(--glow-soft) rgba(255,210,59,.6)}.ghost-btn{background:transparent;color:var(--text-dim);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:13px;transition:all .15s}.ghost-btn:hover{color:var(--neon-magenta);border-color:var(--neon-magenta);box-shadow:var(--glow-soft) #ff2d9580}.layout{flex:1;display:grid;grid-template-columns:240px 1fr 300px;gap:14px;padding:14px;min-height:0}.column{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:0;overflow:hidden}.column-title{padding:12px 14px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);border-bottom:1px solid var(--border)}.column-body{padding:12px;overflow-y:auto;flex:1;min-height:0}.legend{display:flex;flex-wrap:wrap;gap:6px 12px;padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid var(--border)}.legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-dim)}.legend-item .swatch{width:11px;height:11px;border-radius:3px;background:currentColor}.block-group{margin-bottom:14px}.block-group-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);margin-bottom:6px}.block-row{display:flex;flex-wrap:wrap;gap:7px}.sblock{font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:13px;font-weight:600;padding:6px 11px;border-radius:8px;border:1.5px solid currentColor;background:var(--panel-2);cursor:grab;transition:transform .1s,box-shadow .1s,background .1s;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sblock:active{cursor:grabbing}.sblock:hover{transform:translateY(-2px);box-shadow:var(--glow) currentColor;background:#232347}.center{display:flex;flex-direction:column;min-height:0}.assignment{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.assignment h2{margin:0 0 6px;font-size:17px;color:var(--neon-purple);text-shadow:var(--glow-soft) rgba(180,107,255,.6)}.assignment p{margin:0;color:var(--text);line-height:1.5;font-size:14px}.level-badge{display:inline-block;font-size:11px;font-weight:700;color:var(--bg);background:var(--neon-purple);padding:2px 8px;border-radius:999px;margin-bottom:8px}.monster-stage{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:12px}.monster-holder{flex:none}.speech{position:relative;flex:1;background:var(--panel-2);border:1.5px solid var(--border);border-radius:14px;padding:12px 16px;transition:border-color .15s,box-shadow .15s}.speech:before{content:"";position:absolute;left:-11px;top:28px;border:10px solid transparent;border-right-color:var(--panel-2)}.speech p{margin:4px 0 0;font-size:16px;line-height:1.45;color:var(--text);font-weight:500}.speech.oops{border-color:var(--neon-yellow);box-shadow:var(--glow-soft) #ffd23b66;animation:pop .2s ease-out}.speech.oops p{color:var(--neon-yellow)}.speech.check{border-color:var(--neon-cyan);box-shadow:var(--glow-soft) #22e0ff66;animation:pop .2s ease-out}.speech.check p{color:var(--neon-cyan)}.monster{display:block;filter:drop-shadow(0 0 14px rgba(180,107,255,.55));animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.monster .eyes{transform-box:fill-box;transform-origin:center;animation:blink 4.5s infinite}@keyframes blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}.monster .mouth-happy,.monster .mouth-oops,.monster .eyes-oops,.monster .magnifier{display:none}.monster.mood-check .magnifier{display:block;transform-box:fill-box;transform-origin:center;animation:magnify 1.1s ease-in-out infinite}@keyframes magnify{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-10px,-6px) rotate(-8deg)}}.monster.mood-check{filter:drop-shadow(0 0 14px rgba(34,224,255,.6))}.monster.mood-happy .mouth-smile{display:none}.monster.mood-happy .mouth-happy{display:block}.monster.mood-oops .mouth-smile{display:none}.monster.mood-oops .mouth-oops{display:block}.monster.mood-oops .eyes{display:none}.monster.mood-oops .eyes-oops{display:block}.monster.mood-oops{animation:wobble .5s ease-in-out infinite;filter:drop-shadow(0 0 14px rgba(255,210,59,.6))}@keyframes wobble{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}.monster.mood-happy{animation:bounce .6s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px) scale(1.03)}}.auto-note{font-size:12px;color:var(--text-dim)}.celebrate-monster{text-align:center;margin-bottom:2px}.celebrate-monster .monster{margin:0 auto}.preview-tab{margin-left:8px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;color:var(--text);background:var(--panel);padding:3px 12px;border-radius:7px 7px 0 0;border:1px solid var(--border);border-bottom:none}.work-area{flex:1;position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,42%);gap:12px;min-height:0}.scan-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;border-radius:var(--radius);overflow:hidden;box-shadow:inset 0 0 0 2.5px var(--neon-cyan),inset 0 0 36px #22e0ff4d;animation:scanpulse 1s ease-in-out infinite}.scan-line{position:absolute;left:0;right:0;height:70px;top:-70px;background:linear-gradient(to bottom,transparent,rgba(34,224,255,.12),rgba(34,224,255,.4),rgba(34,224,255,.12),transparent);box-shadow:0 0 26px #22e0ffcc;animation:scan 1.5s ease-in-out infinite}@keyframes scan{0%{top:-70px}to{top:100%}}@keyframes scanpulse{0%,to{opacity:.8}50%{opacity:1}}.scan-badge{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:7px 16px;border-radius:999px;background:#0a0a16e0;border:1px solid var(--neon-cyan);color:var(--neon-cyan);font-weight:700;font-size:13px;white-space:nowrap;box-shadow:var(--glow) #22e0ff80;text-shadow:var(--glow-soft) var(--neon-cyan);animation:badgepop .3s ease-out}@keyframes badgepop{0%{transform:translate(-50%) translateY(-8px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.editor-card{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg-2)}.tab{padding:10px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font-size:13px;font-weight:600;transition:all .15s}.tab.html.active{color:var(--html);border-bottom-color:var(--html);text-shadow:var(--glow-soft) var(--html)}.tab.css.active{color:var(--css);border-bottom-color:var(--css);text-shadow:var(--glow-soft) var(--css)}.tab.js.active{color:var(--js);border-bottom-color:var(--js);text-shadow:var(--glow-soft) var(--js)}.tab.browser.active{color:var(--neon-yellow);border-bottom-color:var(--neon-yellow);text-shadow:var(--glow-soft) var(--neon-yellow)}.tab:hover{color:var(--text)}.scaffold-area{position:relative;flex:1;min-height:0;overflow:hidden;background:#0c0c1a}.scaffold-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.scaffold{margin:0;padding:18px;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:16px;line-height:2;white-space:pre-wrap;word-break:break-word;color:#cdd6f4}.scaffold code{font:inherit}.slot{display:inline-block;min-width:64px;margin:0 1px;padding:1px 8px;border-radius:7px;border:1.5px dashed #3a3a6a;background:#ffffff08;text-align:center;vertical-align:baseline;cursor:pointer;transition:all .12s}.slot .slot-ph{color:#6b6ba0;font-style:italic;font-size:13px}.slot.filled{border-style:solid;border-color:#3a3a6a;background:#ffffff0f}.slot.filled>span{cursor:grab}.slot.filled>span:active{cursor:grabbing}.slot.filled:hover{border-color:var(--neon-magenta);box-shadow:var(--glow-soft) #ff2d9566}.slot.over{border-color:var(--neon-cyan);background:#22e0ff24;box-shadow:var(--glow) #22e0ff80}.slot.reject{border-color:var(--neon-magenta);background:#ff2d9526;animation:shake .4s}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.tok-tag,.c-tag{color:#ff6ec7}.tok-attr,.c-attr{color:#ffd23b}.tok-str,.c-str{color:#9be84a}.c-text{color:#e8e8ff}.c-sel{color:#ff9d5c}.tok-prop,.c-prop{color:#22e0ff}.c-val{color:#ffd23b}.tok-kw,.c-kw{color:#22e0ff;font-weight:700}.c-var{color:#b46bff}.c-num,.tok-num{color:#ff9d5c}.tok-punct,.c-punct{color:#8aa0c8}.tok-fn,.c-call{color:#b46bff}.tok-com{color:#6a6a98;font-style:italic}.preview-pane{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.preview-head{display:flex;align-items:center;gap:7px;padding:9px 12px;background:var(--bg-2);border-bottom:1px solid var(--border)}.preview-head .dot{width:11px;height:11px;border-radius:50%}.preview-head .dot.r{background:#ff5f56}.preview-head .dot.y{background:#ffbd2e}.preview-head .dot.g{background:#27c93f}.preview-head .preview-title{margin-left:8px;font-size:12px;font-weight:600;color:var(--text-dim)}.preview-frame{flex:1;width:100%;border:none;background:#fff}.console{flex:none;border-top:1px solid var(--border);background:#0a0a16;height:110px;overflow-y:auto;padding:8px 12px;font-family:ui-monospace,monospace;font-size:12px;color:var(--neon-lime)}.console .empty{color:var(--text-dim)}.action-bar{display:flex;gap:10px;align-items:center;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}.btn{border:none;border-radius:8px;padding:10px 18px;font-weight:700;font-size:14px;transition:transform .12s,box-shadow .12s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--neon-lime);color:#0a0a14;box-shadow:var(--glow) #b6ff3b80}.btn-primary:hover{box-shadow:0 0 22px #b6ff3bcc}.btn-hint{background:transparent;color:var(--neon-yellow);border:1px solid var(--neon-yellow)}.btn-hint:hover{box-shadow:var(--glow-soft) #ffd23b99}.action-bar .spacer{flex:1}.feedback{font-size:13px;color:var(--text-dim)}.feedback.ok{color:var(--neon-lime);text-shadow:var(--glow-soft) rgba(182,255,59,.6)}.feedback.fail{color:var(--neon-magenta)}.hint-bubble{margin:10px 12px 0;padding:10px 12px;border:1px dashed var(--neon-yellow);border-radius:8px;color:var(--neon-yellow);font-size:13px;background:#ffd23b0f}.level-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:11px 12px;margin-bottom:8px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);transition:all .15s}.level-item:hover{border-color:var(--neon-purple);box-shadow:var(--glow-soft) #b46bff66}.level-item.active{border-color:var(--neon-purple);box-shadow:var(--glow) #b46bff80;background:#221a3a}.level-item .num{width:24px;height:24px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:999px;font-size:12px;font-weight:700;background:var(--bg);border:1px solid var(--border)}.level-item.done .num{background:var(--neon-lime);color:var(--bg);border-color:var(--neon-lime);box-shadow:var(--glow-soft) var(--neon-lime)}.level-item .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.level-item .info .t{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.level-item .info .s{font-size:11px;color:var(--text-dim)}.stars{display:inline-flex;gap:2px}.stars .star{font-size:14px;color:#33335c}.stars .star.on{color:var(--neon-yellow);text-shadow:var(--glow-soft) rgba(255,210,59,.8)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#05050ccc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{width:100%;max-width:460px;background:var(--panel);border:1px solid var(--neon-cyan);border-radius:14px;box-shadow:0 0 40px #22e0ff4d;padding:26px;animation:pop .2s ease-out}@keyframes pop{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}.modal h2{margin:0 0 6px;color:var(--neon-cyan);text-shadow:var(--glow) rgba(34,224,255,.6)}.modal p{color:var(--text);line-height:1.55;font-size:14px}.modal .concept{border-left:3px solid var(--neon-purple);padding:4px 0 4px 12px;margin:14px 0}.modal .concept h3{margin:0 0 4px;font-size:15px;color:var(--neon-purple)}.modal .concept pre{margin:8px 0 0;padding:10px;background:#0c0c1a;border-radius:8px;color:var(--neon-lime);font-size:12.5px;overflow-x:auto}.modal input{width:100%;margin:14px 0;padding:12px 14px;background:#0c0c1a;border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:15px;outline:none}.modal input:focus{border-color:var(--neon-cyan);box-shadow:var(--glow-soft) #22e0ff80}.modal .modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.celebrate h2{color:var(--neon-lime);text-shadow:var(--glow) rgba(182,255,59,.7)}.celebrate .big-stars{text-align:center;margin:16px 0}.celebrate .big-stars .star{font-size:46px;margin:0 4px;color:#33335c;display:inline-block}.celebrate .big-stars .star.on{color:var(--neon-yellow);text-shadow:0 0 20px rgba(255,210,59,.9);animation:starpop .4s ease-out both}.celebrate .big-stars .star.on:nth-child(2){animation-delay:.12s}.celebrate .big-stars .star.on:nth-child(3){animation-delay:.24s}@keyframes starpop{0%{transform:scale(0) rotate(-30deg)}70%{transform:scale(1.3) rotate(8deg)}to{transform:scale(1) rotate(0)}}.loading-screen{height:100%;display:flex;align-items:center;justify-content:center;color:var(--neon-cyan);font-size:18px;text-shadow:var(--glow) rgba(34,224,255,.6)}.audio-controls{display:inline-flex;gap:6px}.audio-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:15px;transition:all .15s}.audio-btn:hover{border-color:var(--neon-cyan);box-shadow:var(--glow-soft) #22e0ff66}.audio-btn.off{opacity:.5;filter:grayscale(.7)}.audio-btn .audio-label{font-size:10px;font-weight:700;color:var(--text-dim)}.evil-monster{display:block;filter:drop-shadow(0 0 12px rgba(255,45,85,.55))}.evil-monster .evil-eyes{animation:evilglow 1.6s ease-in-out infinite}@keyframes evilglow{0%,to{opacity:1}50%{opacity:.55}}.evil-monster .code-bits{animation:bitsfloat 3s ease-in-out infinite}@keyframes bitsfloat{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}.evil-monster.lurking{animation:lurk 3.2s ease-in-out infinite}@keyframes lurk{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-5px) rotate(-3deg)}}.glitch-peek{flex:none;align-self:flex-end;margin-left:4px}.monster-stage{animation:stageIn .5s ease both}@keyframes stageIn{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}.work-area{animation:workIn .5s .08s ease both}@keyframes workIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.map-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(900px 500px at 80% 10%,rgba(123,47,247,.25),transparent),radial-gradient(700px 500px at 10% 90%,rgba(255,45,85,.18),transparent),#05040cf5;animation:pop .25s ease-out}.map-stage{position:relative;width:min(960px,96vw);height:min(560px,80vh);border:1px solid var(--border);border-radius:18px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 40px),repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0 1px,transparent 1px 40px),linear-gradient(160deg,#160e2e,#0b0818);box-shadow:0 0 50px #7b2ff74d;overflow:hidden}.map-banner{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:3;padding:8px 18px;border-radius:999px;background:#0a0a16d9;border:1px solid var(--neon-purple);color:var(--neon-purple);font-weight:800;font-size:15px;text-shadow:var(--glow-soft) rgba(180,107,255,.7)}.map-path{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.7}.map-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;z-index:2}.map-node-num{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--panel-2);border:2px solid var(--border);color:var(--text);font-weight:800;font-size:17px}.map-node.done .map-node-num{background:var(--neon-lime);color:var(--bg);border-color:var(--neon-lime);box-shadow:var(--glow) var(--neon-lime)}.map-node.target .map-node-num{border-color:var(--neon-cyan);box-shadow:var(--glow) var(--neon-cyan);animation:targetpulse 1s ease-in-out infinite}@keyframes targetpulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.map-node-stars{font-size:11px}.map-lair{position:absolute;right:2%;top:8%;z-index:2;display:flex;flex-direction:column;align-items:center}.lair-label{margin-top:2px;font-size:11px;font-weight:700;color:var(--neon-magenta);text-shadow:var(--glow-soft) rgba(255,45,149,.6)}.map-walker{position:absolute;transform:translate(-50%,-75%);z-index:4;transition:left 2.2s ease-in-out,top 2.2s ease-in-out;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}.map-walker .monster{animation:walkbob .4s ease-in-out infinite}@keyframes walkbob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}.set-group{margin-bottom:14px}.set-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 2px;margin-bottom:6px;border-bottom:1px solid var(--border);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim)}.set-group.current .set-name{color:var(--neon-purple);text-shadow:var(--glow-soft) rgba(180,107,255,.6)}.set-progress{flex:none;color:var(--neon-lime);font-weight:800}.cutscene-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:24px;background:radial-gradient(800px 500px at 22% 80%,rgba(34,224,255,.16),transparent),radial-gradient(800px 500px at 78% 20%,rgba(255,45,85,.18),transparent),#04030af7;animation:pop .25s ease-out}.cutscene-skip{position:absolute;top:18px;right:18px}.cutscene-title{font-size:14px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--neon-purple);text-shadow:var(--glow-soft) rgba(180,107,255,.6);margin-bottom:18px}.cutscene-stage{display:flex;align-items:flex-end;justify-content:center;gap:24px;width:min(900px,96vw)}.cs-char{position:relative;display:flex;flex-direction:column;align-items:center;transition:transform .25s,opacity .25s,filter .25s;flex:1}.cs-char.speaking{transform:translateY(-6px) scale(1.06)}.cs-char.dim{opacity:.55;filter:grayscale(.5) brightness(.8)}.cs-name{margin-top:4px;font-weight:800;font-size:13px}.blip-name{color:var(--neon-cyan);text-shadow:var(--glow-soft) rgba(34,224,255,.6)}.glitch-name{color:var(--neon-magenta);text-shadow:var(--glow-soft) rgba(255,45,85,.6)}.cs-vs{font-size:30px;align-self:center;filter:drop-shadow(0 0 10px rgba(255,210,59,.8));animation:float 2.4s ease-in-out infinite}.cs-bubble{position:absolute;bottom:100%;margin-bottom:12px;width:260px;padding:12px 15px;border-radius:14px;background:var(--panel);font-size:14.5px;line-height:1.4;color:var(--text);animation:bubbleIn .25s ease-out}.cs-bubble:after{content:"";position:absolute;top:100%;border:10px solid transparent}.cs-bubble.blip{left:10%;border:1.5px solid var(--neon-cyan);box-shadow:var(--glow) #22e0ff4d}.cs-bubble.blip:after{left:30px;border-top-color:var(--neon-cyan)}.cs-bubble.glitch{right:10%;border:1.5px solid var(--neon-magenta);box-shadow:var(--glow) #ff2d554d}.cs-bubble.glitch:after{right:30px;border-top-color:var(--neon-magenta)}@keyframes bubbleIn{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.cutscene-hint{display:flex;align-items:center;gap:12px;margin-top:26px;font-size:13px;color:var(--text-dim)}.cs-dots{display:inline-flex;gap:5px}.cs-dot{width:7px;height:7px;border-radius:50%;background:#3a3a6a}.cs-dot.on{background:var(--neon-purple);box-shadow:var(--glow-soft) var(--neon-purple)}.evil-monster.talking{animation:lurk .5s ease-in-out infinite}.icon{vertical-align:-.18em;flex:none}.btn,.ghost-btn,.topbar-btn,.icon-btn,.modal h2,.star-counter,.stat,.set-progress,.preview-tab,.scan-badge,.map-banner,.hint-bubble,.btn-hint,.cutscene-skip,.overview-title{display:inline-flex;align-items:center;gap:8px}.layout{grid-template-columns:280px 1fr;gap:18px;padding:18px}.topbar{padding:14px 24px;gap:14px}.topbar .logo{font-size:24px}.topbar .player{font-size:15px}.star-counter{font-size:16px;padding:8px 14px}.topbar-btn{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:9px 14px;font-size:14px;font-weight:600;transition:all .15s}.topbar-btn:hover{border-color:var(--neon-cyan);color:var(--neon-cyan);box-shadow:var(--glow-soft) #22e0ff66}.icon-btn{justify-content:center;width:42px;height:42px;padding:0;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);transition:all .15s}.icon-btn:hover{border-color:var(--neon-cyan);color:var(--neon-cyan);box-shadow:var(--glow-soft) #22e0ff66}.icon-btn.off{opacity:.5}.column-title{font-size:13px;padding:14px 16px}.legend-item{font-size:12px}.block-group-title{font-size:11px}.sblock{font-size:15px;padding:8px 13px;border-radius:9px}.level-badge{font-size:13px;padding:3px 11px}.speech p{font-size:18px;line-height:1.5}.monster-stage{padding:16px 18px;gap:18px}.scaffold{font-size:18px;line-height:2.1;padding:22px}.slot{min-width:72px;padding:2px 10px;border-radius:8px}.slot .slot-ph{font-size:14px}.tab{padding:12px 20px;font-size:15px}.btn{padding:13px 22px;font-size:16px;border-radius:10px}.btn-hint{padding:12px 18px;font-size:15px}.ghost-btn{padding:9px 16px;font-size:14px}.ghost-btn.lg{padding:13px 22px;font-size:16px}.action-bar{padding:14px}.console{font-size:13px;height:120px}.preview-tab{font-size:13px}.modal{max-width:520px;padding:30px}.modal h2{font-size:24px}.modal p{font-size:15.5px}.modal .concept h3{font-size:17px}.modal .concept pre{font-size:13.5px}.modal input{font-size:16px;padding:14px 16px}.modal.confirm{max-width:460px}.stars .star{color:#33335c;display:inline-flex}.stars .star.on{color:var(--neon-yellow)}.big-stars .star{color:#33335c}.big-stars .star.on{color:var(--neon-yellow)}.overview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;display:flex;align-items:center;justify-content:center;padding:24px;background:#04030ae6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:pop .2s ease-out}.overview-panel{width:min(1100px,96vw);height:min(820px,92vh);display:flex;flex-direction:column;background:radial-gradient(800px 400px at 90% 0%,rgba(255,45,85,.1),transparent),linear-gradient(160deg,#16102e,#0b0818);border:1px solid var(--neon-purple);border-radius:16px;box-shadow:0 0 50px #7b2ff759;overflow:hidden}.overview-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border);background:#0a0a1680}.overview-title{font-size:20px;font-weight:800;color:var(--neon-cyan);text-shadow:var(--glow-soft) rgba(34,224,255,.5)}.overview-stats{display:inline-flex;align-items:center;gap:16px}.overview-stats .stat{font-size:16px;font-weight:700;color:var(--neon-lime)}.overview-stats .stat.gold{color:var(--neon-yellow)}.overview-body{flex:1;overflow-y:auto;padding:18px 22px}.ov-set{margin-bottom:18px;padding:12px 14px;border-radius:12px;border:1px solid transparent}.ov-set.current{border-color:var(--neon-purple);background:#7b2ff714}.ov-set-label{display:flex;align-items:center;gap:10px;margin-bottom:10px}.ov-set-num{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--neon-purple);color:var(--bg);font-weight:800;font-size:14px}.ov-set-name{font-size:15px;font-weight:700;color:var(--text)}.ov-row{position:relative;display:flex;align-items:center;gap:16px;padding-left:6px}.ov-track{position:absolute;left:28px;right:28px;top:50%;height:3px;background:repeating-linear-gradient(90deg,#3a2a6a 0 8px,transparent 8px 14px);z-index:0}.ov-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:5px;width:64px;padding:6px 0;background:transparent;border:none;color:var(--text)}.ov-node-num{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--panel-2);border:2px solid var(--border);font-weight:800;font-size:16px;transition:all .15s}.ov-node:hover .ov-node-num{border-color:var(--neon-cyan);box-shadow:var(--glow) #22e0ff66}.ov-node.done .ov-node-num{background:var(--neon-lime);color:var(--bg);border-color:var(--neon-lime)}.ov-node.current .ov-node-num{border-color:var(--neon-cyan);box-shadow:var(--glow) var(--neon-cyan)}.ov-here{position:absolute;bottom:100%;margin-bottom:-6px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}.ov-lair{margin-left:auto;padding-left:10px}.preview-viewport{position:relative;flex:1;min-height:0}.preview-viewport>.preview-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;flex:none}.preview-problem{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.problem-box{position:absolute;border:2.5px dashed var(--neon-magenta);border-radius:8px;box-shadow:0 0 18px #ff2d558c,inset 0 0 18px #ff2d552e;animation:problemPulse 1.1s ease-in-out infinite}@keyframes problemPulse{0%,to{box-shadow:0 0 14px #ff2d5573,inset 0 0 14px #ff2d5524}50%{box-shadow:0 0 26px #ff2d55cc,inset 0 0 22px #ff2d5538}}.problem-label{position:absolute;left:6px;top:0;transform:translateY(-115%);background:var(--neon-magenta);color:#0a0a14;font-weight:800;font-size:12px;padding:3px 9px;border-radius:6px;white-space:nowrap;box-shadow:0 2px 8px #0006}.problem-monster{position:absolute;right:-20px;top:0;transform:translateY(-55%);filter:drop-shadow(0 3px 6px rgba(0,0,0,.5))}.timer-bar{display:flex;align-items:center;gap:10px;padding:9px 16px;background:var(--bg-2);border-bottom:1px solid var(--border);color:var(--text-dim);font-weight:800}.timer-track{flex:1;height:10px;border-radius:999px;background:#1b1b38;overflow:hidden;box-shadow:inset 0 0 0 1px var(--border)}.timer-fill{height:100%;background:linear-gradient(90deg,var(--neon-lime),var(--neon-cyan));transition:width 1s linear}.timer-secs{min-width:42px;text-align:right;font-variant-numeric:tabular-nums}.timer-bar.low{color:var(--neon-magenta)}.timer-bar.low .timer-fill{background:linear-gradient(90deg,var(--neon-yellow),var(--neon-magenta))}.timer-bar.low .timer-secs{animation:pulseRed .8s ease-in-out infinite}@keyframes pulseRed{0%,to{opacity:1}50%{opacity:.35}}.editor-danger{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;transition:opacity .8s linear}.editor-danger:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 70px #ff2d5559,inset 0 0 25px #ff2d5540}.danger-glitch{position:absolute;transform:translate(-50%);transition:left 1s linear,bottom 1s linear;filter:drop-shadow(0 4px 8px rgba(0,0,0,.55))}.scaffold-wrap.eating .slot.filled{border-color:var(--neon-magenta);animation:eatenShake .35s ease-in-out infinite}@keyframes eatenShake{0%,to{transform:translate(0)}25%{transform:translate(-2px) rotate(-2deg)}75%{transform:translate(2px) rotate(2deg)}}.modal.timeout{max-width:480px;text-align:center;border-color:var(--neon-magenta);box-shadow:0 0 44px #ff2d5559}.modal.timeout h2{color:var(--neon-magenta);justify-content:center}.timeout-monster{margin-bottom:4px}.timeout-monster .evil-monster{margin:0 auto}.timeout-stars{margin:12px 0}.modal.timeout .modal-actions{justify-content:center}.preview-pane.has-goal .preview-head{display:none}.goal-pane{flex:0 0 42%;display:flex;flex-direction:column;min-height:0}.goal-frame{flex:1;width:100%;border:none;background:#fff}.pane-label{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12.5px;font-weight:800;letter-spacing:.3px;background:var(--bg-2);flex:none}.pane-label.goal{color:var(--neon-lime);border-bottom:1px solid var(--border)}.pane-label.live{color:var(--neon-cyan);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.title-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;padding:28px 24px;overflow-y:auto;background:radial-gradient(900px 500px at 20% 0%,rgba(34,224,255,.12),transparent),radial-gradient(900px 500px at 85% 100%,rgba(255,45,85,.14),transparent),#06050efa;animation:pop .25s ease-out}.title-mascots{display:flex;gap:60px;align-items:flex-end}.title-logo{margin:6px 0 22px;font-size:52px;font-weight:900;letter-spacing:1px;color:var(--neon-cyan);text-shadow:var(--glow) rgba(34,224,255,.7);text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.title-sub{font-size:16px;font-weight:600;letter-spacing:.5px;color:var(--neon-magenta);text-shadow:var(--glow-soft) rgba(255,45,149,.6);text-transform:uppercase}.title-main{display:grid;grid-template-columns:minmax(320px,420px) minmax(280px,360px);gap:22px;width:min(900px,96vw)}.title-credit{margin-top:26px;display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:#ffffff08;color:var(--text-dim);font-size:13px;text-decoration:none;transition:all .15s}.title-credit:hover{color:var(--text);border-color:var(--neon-cyan);box-shadow:var(--glow-soft) #22e0ff66}.title-credit-logo{height:20px;width:auto;display:block}.title-menu{display:flex;flex-direction:column;gap:12px}.title-greet{color:var(--text-dim);font-size:15px;line-height:1.5;margin-bottom:6px}.menu-btn{display:flex;align-items:center;gap:12px;padding:16px 20px;font-size:18px;font-weight:700;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--text);transition:all .15s}.menu-btn:hover:not(:disabled){transform:translateY(-2px);border-color:var(--neon-cyan);color:var(--neon-cyan);box-shadow:var(--glow) #22e0ff59}.menu-btn.primary{background:var(--neon-cyan);color:#06121a;border-color:var(--neon-cyan)}.menu-btn.primary:hover{color:#06121a;box-shadow:var(--glow) #22e0ff99}.menu-btn.danger:hover:not(:disabled){border-color:var(--neon-magenta);color:var(--neon-magenta);box-shadow:var(--glow) #ff2d9559}.menu-btn:disabled{opacity:.45;cursor:not-allowed}.menu-note{margin-left:auto;font-size:12px;font-weight:600;color:var(--text-dim)}.title-audio{display:flex;align-items:center;gap:12px;margin-top:6px;color:var(--text-dim);font-size:14px}.title-side{display:flex;flex-direction:column;gap:16px}.side-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.side-title{display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid var(--border)}.side-count{margin-left:auto;color:var(--neon-lime)}.side-body{padding:10px 14px;max-height:220px;overflow-y:auto}.side-empty{color:var(--text-dim);font-size:13px;margin:4px 0;line-height:1.4}.online-row,.leader-row{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:14px}.online-dot{width:9px;height:9px;border-radius:50%;background:var(--neon-lime);box-shadow:var(--glow-soft) var(--neon-lime)}.online-name{font-weight:600}.online-status{margin-left:auto;font-size:12px;color:var(--text-dim)}.leader-rank{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--panel-2);font-size:12px;font-weight:800}.leader-name{font-weight:600}.leader-wins{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--neon-yellow);font-weight:700}.modal.lobby{max-width:460px}.lobby-countdown{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px 0;color:var(--neon-cyan)}.lobby-secs{font-size:38px;font-weight:900;font-variant-numeric:tabular-nums;text-shadow:var(--glow) rgba(34,224,255,.6)}.lobby-secs-label{color:var(--text-dim);font-size:14px}.lobby-members{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:12px 0}.lobby-members-title{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px}.lobby-member{display:flex;align-items:center;gap:8px;padding:5px 0;font-weight:600}.lobby-host-tag{margin-left:auto;font-size:11px;font-weight:700;color:var(--bg);background:var(--neon-purple);padding:1px 7px;border-radius:999px}.invite-toast{position:fixed;right:22px;bottom:22px;z-index:75;display:flex;align-items:center;gap:14px;max-width:420px;padding:14px 16px;border-radius:14px;background:var(--panel);border:1px solid var(--neon-magenta);box-shadow:0 8px 30px #00000080,var(--glow) #ff2d9559;animation:bubbleIn .25s ease-out}.invite-icon{color:var(--neon-magenta);filter:drop-shadow(0 0 8px rgba(255,45,149,.6))}.invite-title{font-weight:800;font-size:15px}.invite-sub{font-size:13px;color:var(--text-dim)}.invite-actions{display:flex;gap:8px;margin-left:auto}.duet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;background:radial-gradient(900px 500px at 80% 0%,rgba(255,45,85,.12),transparent),#06050efc}.duet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid var(--border);background:var(--bg-2)}.duet-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;color:var(--neon-magenta)}.duet-meta{display:flex;align-items:center;gap:18px;font-size:14px;color:var(--text-dim)}.duet-diff{color:var(--neon-yellow);font-weight:700}.duet-opp{display:inline-flex;align-items:center;gap:6px}.duet-layout{flex:1;display:grid;grid-template-columns:280px 1fr;gap:18px;padding:18px;min-height:0}.duet-layout .column{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.duet-center{display:flex;flex-direction:column;min-height:0}.modal.duet-result{max-width:460px;text-align:center}.modal.duet-result.won{border-color:var(--neon-lime);box-shadow:0 0 44px #b6ff3b59}.modal.duet-result.won h2{color:var(--neon-lime);justify-content:center}.modal.duet-result.lost h2{color:var(--neon-magenta);justify-content:center}.duet-result-monster{margin-bottom:6px}.duet-result-monster .monster,.duet-result-monster .evil-monster{margin:0 auto}.modal.duet-result .modal-actions{justify-content:center}.duet-loading{align-items:center;justify-content:center}.duet-loading-box{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--neon-magenta)}.duet-loading-box .icon{animation:float 1.4s ease-in-out infinite;filter:drop-shadow(0 0 12px rgba(255,45,149,.6))}.duet-loading-text{font-size:18px;font-weight:700;color:var(--text)}.duet-quit{margin-left:6px}.duet-quit:hover{color:var(--neon-magenta);border-color:var(--neon-magenta)}.lobby-waiting{display:flex;align-items:center;gap:12px;margin:16px 0;padding:14px;border-radius:10px;background:var(--bg-2);border:1px solid var(--border);color:var(--text-dim);font-size:14px;line-height:1.4}.lobby-spinner{flex:none;width:18px;height:18px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--neon-cyan);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lobby-hint{font-size:13px;color:var(--text-dim);text-align:center;margin:4px 0 0}.invite-toast{z-index:95}.online-row{width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;padding:7px 8px;color:var(--text);transition:all .12s}.online-row:hover:not(:disabled){background:var(--panel-2);border-color:var(--neon-magenta)}.online-row:disabled{cursor:default;opacity:.6}.online-challenge{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--neon-magenta)}.concept-modal{max-width:580px;max-height:88vh;overflow-y:auto}.mnemonic{display:flex;gap:14px;align-items:flex-start;margin:12px 0;padding:12px 14px;border-radius:12px;background:var(--bg-2);border:1px solid var(--border)}.mnem-draw{flex:none;width:76px;height:76px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#22e0ff14;color:var(--neon-cyan)}.mnem-art{filter:drop-shadow(0 0 6px rgba(34,224,255,.45))}.mnem-text{flex:1;min-width:0}.mnem-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:4px}.mnem-tag{font-family:JetBrains Mono,ui-monospace,monospace;font-size:16px;font-weight:800;color:var(--neon-magenta);background:var(--panel-2);padding:2px 9px;border-radius:6px}.mnem-word{font-weight:700;color:var(--text)}.mnem-meaning{color:var(--text-dim);font-weight:500}.mnem-looks,.mnem-remember{display:flex;gap:7px;align-items:flex-start;font-size:13.5px;line-height:1.45;margin-top:5px}.mnem-looks{color:var(--neon-cyan)}.mnem-remember{color:var(--neon-yellow)}.mnem-looks .icon,.mnem-remember .icon{flex:none;margin-top:2px}.race-board{display:flex;flex-direction:column;gap:10px;padding:14px 22px;background:var(--bg-2);border-bottom:1px solid var(--border);max-height:38vh;overflow-y:auto}.race-lane{display:flex;flex-direction:column;gap:4px}.race-label{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;font-weight:700}.race-name{color:var(--text)}.race-lane.me .race-name{color:var(--neon-cyan)}.race-you{color:var(--neon-cyan);font-weight:600;font-size:12px}.race-count{color:var(--neon-yellow);font-variant-numeric:tabular-nums}.race-track{position:relative;height:42px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border)}.race-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,#ff2d5533,#ff2d5566);transition:width .35s ease}.race-lane.me .race-fill{background:linear-gradient(90deg,#22e0ff40,#22e0ff80)}.race-runner{position:absolute;top:50%;transform:translate(-50%,-50%);transition:left .35s ease;z-index:2;filter:drop-shadow(0 2px 5px rgba(0,0,0,.55))}.race-flag{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--neon-yellow);opacity:.65}.duet-round{color:var(--neon-yellow);font-weight:700}.duet-instruction{display:flex;align-items:center;gap:8px;padding:9px 22px;font-size:14px;font-weight:600;color:var(--neon-yellow);background:#ffd23b12;border-bottom:1px solid var(--border)}.duet-instruction .icon{flex:none}.name-warning{color:var(--neon-yellow);font-weight:600}.layout-special{grid-template-columns:1fr}.quiz-view{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:18px;overflow-y:auto;min-height:0}.quiz-code{margin:0;background:#0b0b1c;border:1px solid var(--border);border-left:3px solid var(--neon-cyan);border-radius:var(--radius);padding:16px 18px;font-size:15px;line-height:1.6;color:#d7e8ff;white-space:pre-wrap;overflow-x:auto}.quiz-question{font-size:19px;font-weight:700;color:var(--text)}.quiz-options{display:flex;flex-direction:column;gap:12px}.quiz-option{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:16px;cursor:pointer;transition:border-color .12s,transform .08s,background .12s}.quiz-option:hover:not(:disabled){border-color:var(--neon-purple);transform:translateY(-1px)}.quiz-option:disabled{cursor:default}.quiz-bullet{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#0b0b1c;border:1px solid var(--border);font-weight:800;font-size:14px;color:var(--text-dim)}.quiz-text{flex:1}.quiz-option.good{border-color:var(--neon-lime);background:#b6ff3b1a;color:#eafbd0}.quiz-option.good .quiz-bullet{background:var(--neon-lime);color:#0a0a14;border-color:var(--neon-lime)}.quiz-option.bad{border-color:var(--neon-magenta);background:#ff2d951a}.quiz-option.bad .quiz-bullet{background:var(--neon-magenta);color:#fff;border-color:var(--neon-magenta)}.quiz-feedback{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.quiz-feedback.good{color:var(--neon-lime)}.quiz-feedback.bad{color:var(--neon-magenta)}.fix-view{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;min-height:0;display:flex;flex-direction:column}.fix-panes{display:grid;grid-template-columns:1fr 1fr;gap:14px;flex:1;min-height:0}.fix-edit,.fix-preview{display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-2)}.fix-edit-head,.fix-preview-head{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:700;color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--panel)}.fix-edit-hint{margin-left:auto;font-weight:500;font-size:12px;opacity:.8}.fix-textarea{flex:1;resize:none;border:none;outline:none;background:#0b0b1c;color:#d7e8ff;padding:14px;font-size:14px;line-height:1.6;min-height:240px;-moz-tab-size:2;tab-size:2;font-family:JetBrains Mono,Fira Code,ui-monospace,Courier New,monospace}.fix-textarea.problem{box-shadow:inset 0 0 0 2px #ff2d9580}.fix-status{display:flex;align-items:center;gap:8px;padding:9px 12px;font-size:13px;color:var(--text-dim);border-top:1px solid var(--border);background:var(--panel)}.fix-status.bad{color:var(--neon-magenta)}.fix-frame{flex:1;width:100%;border:none;background:#fff;min-height:240px}@media (max-width: 900px){.fix-panes{grid-template-columns:1fr}}.online-row.bot .online-dot{background:var(--neon-purple);box-shadow:0 0 8px var(--neon-purple)}.online-bot-tag{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:6px;margin-left:6px;background:#b46bff2e;color:var(--neon-purple);border:1px solid rgba(180,107,255,.4)}.duet-lobby-screen{display:grid;place-items:center}.botlobby{width:min(560px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:26px 28px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;gap:20px}.botlobby-title{margin:0;display:flex;align-items:center;gap:10px;font-size:24px;color:var(--neon-cyan);text-shadow:var(--glow-soft) rgba(34,224,255,.6)}.botlobby-vs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}.botlobby-player{display:flex;flex-direction:column;align-items:center;gap:4px}.botlobby-name{font-weight:800;font-size:17px}.botlobby-role{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}.botlobby-vs-badge{font-weight:900;font-size:20px;color:var(--neon-magenta);text-shadow:var(--glow-soft) rgba(255,45,149,.6)}.botlobby-countdown{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:12px;color:var(--neon-yellow)}.botlobby-secs{font-size:30px;font-weight:900;min-width:36px;text-align:center;text-shadow:var(--glow-soft) rgba(255,210,59,.6)}.botlobby-secs-label{color:var(--text-dim);font-size:14px}.botlobby-rules{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.botlobby-rules-title{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--neon-lime);margin-bottom:8px}.botlobby-rules ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;color:var(--text);font-size:14px;line-height:1.5}.botlobby-actions{display:flex;gap:12px;justify-content:center}.name-edit-btn{display:inline-flex;align-items:center;gap:4px;margin-left:4px;padding:2px 8px;font-size:12px;font-weight:600;color:var(--neon-cyan);background:transparent;border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:border-color .12s,color .12s}.name-edit-btn:hover{border-color:var(--neon-cyan)}.sblock,.slot-block,.slot{-webkit-user-select:none;user-select:none}.slot.filled{cursor:grab}.slot.filled:active{cursor:grabbing}.quiz-stars-note{font-weight:600;color:var(--text-dim);font-size:13px}.celebrate-improve{color:var(--text-dim);font-size:14px;margin-top:-4px}.ov-node{position:relative}.ov-node-type{position:absolute;top:-7px;left:-7px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);z-index:3}.ov-node-type.quiz{color:var(--neon-yellow);border-color:#ffd23b80}.ov-node-type.fix{color:var(--neon-cyan);border-color:#22e0ff80}.ov-node-type.game{color:var(--neon-lime);border-color:#b6ff3b80}.overview-legend{display:flex;gap:18px;flex-wrap:wrap;padding:10px 20px 0;color:var(--text-dim);font-size:13px}.lg-item{display:inline-flex;align-items:center;gap:6px}*{scrollbar-width:thin;scrollbar-color:var(--neon-purple) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:#14142b80;border-radius:999px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--neon-purple),var(--neon-cyan));border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--neon-magenta),var(--neon-cyan))}::-webkit-scrollbar-corner{background:transparent}@media (max-width: 820px){html,body,#root,.app{height:auto;min-height:100%}.topbar{position:sticky;top:0;z-index:30;gap:8px;padding:8px 12px;flex-wrap:wrap}.topbar .logo{font-size:17px}.topbar .player{display:none}.topbar-btn{padding:9px 12px}.layout{display:flex;flex-direction:column;gap:10px;padding:10px;min-height:0}.layout>.column{max-height:32vh}.column-body{overflow-y:auto}.block-row{gap:8px}.sblock{padding:10px 13px;font-size:15px;line-height:1.2}.center{gap:10px}.monster-stage{padding:8px 6px}.monster-stage .monster{width:72px;height:72px}.glitch-peek{display:none}.work-area{display:flex;flex-direction:column;gap:10px}.editor-card{min-height:46vh}.preview-pane{min-height:40vh}.preview-frame{min-height:36vh}.fix-panes{grid-template-columns:1fr}.fix-textarea{min-height:200px;font-size:15px}.fix-frame{min-height:40vh}.overview-panel,.map-stage,.side-card{width:min(96vw,620px);max-height:92vh;overflow-y:auto}.cutscene-overlay{overflow-y:auto}.cutscene-stage{position:relative;width:min(96vw,620px);gap:10px;margin-top:130px}.cs-char{position:static}.cs-char.speaking{transform:none}.cutscene-stage .monster,.cutscene-stage .evil-monster{width:96px;height:96px}.cs-vs{font-size:22px}.cs-bubble{width:min(88vw,440px);margin-bottom:14px;font-size:15px}.cs-bubble.blip,.cs-bubble.glitch{left:50%;right:auto;transform:translate(-50%)}.cs-bubble.blip:after,.cs-bubble.glitch:after{left:50%;right:auto;transform:translate(-50%)}.overview-overlay,.modal-overlay,.duet-overlay,.title-overlay,.map-overlay{padding:12px}.title-overlay{padding:16px 12px}.title-mascots{gap:24px}.title-mascots .monster,.title-mascots .evil-monster{width:84px;height:84px}.title-logo{font-size:38px;margin:4px 0 16px}.title-main{grid-template-columns:1fr;width:100%;gap:14px}.duet-overlay{overflow-y:auto}.duet-layout{grid-template-columns:1fr;flex:0 0 auto}.duet-layout .column{max-height:34vh}.duet-center{min-height:0}.duet-head{flex-wrap:wrap;gap:8px}.race-board{position:sticky;top:0;z-index:6;max-height:none;overflow:visible;padding:8px 12px;gap:6px}.race-track{height:28px}.race-runner .monster,.race-runner .evil-monster{width:24px;height:24px}.race-flag .icon{width:16px;height:16px}}@media (max-width: 520px){.topbar .star-counter{padding:5px 9px}.editor-card{min-height:42vh}.sblock{font-size:14px}.monster-stage{flex-direction:column;text-align:center}}.slot-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#06050e9e;display:flex;align-items:center;justify-content:center;padding:16px;animation:pop .15s ease-out}.slot-picker{width:min(560px,100%);max-height:70vh;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px 18px;box-shadow:0 20px 60px #00000080}.slot-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;color:var(--text-dim);font-size:14px;font-weight:600}.slot-picker-close{background:transparent;border:none;color:var(--text-dim);display:inline-flex;padding:4px;border-radius:8px;cursor:pointer}.slot-picker-close:hover{color:var(--neon-magenta)}.slot-picker-blocks{display:flex;flex-wrap:wrap;gap:10px}.slot-picker-empty{color:var(--text-dim);font-size:14px}@media (max-width: 820px){.slot-picker-backdrop{align-items:flex-end;padding:0}.slot-picker{width:100%;max-height:60vh;border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.slot-picker-blocks .sblock{font-size:16px;padding:12px 15px}}
