*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--fd:'Orbitron',sans-serif;--fm:'Share Tech Mono',monospace;--accent:#2dd4bf}
html,body{height:100%;background:#070b10;color:#e6edf3;font-family:var(--fm);overflow:hidden;-webkit-tap-highlight-color:transparent}
.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;text-align:center;transition:opacity .4s ease,transform .4s ease}
.screen.hidden{opacity:0;pointer-events:none;transform:scale(.97)}
#intro{background:radial-gradient(ellipse at 50% 36%,#06302c 0%,#070b10 66%);gap:1.3rem}
.logo{font-family:var(--fd);font-size:clamp(2.2rem,8vw,4.4rem);font-weight:900;letter-spacing:.04em;color:#fff;line-height:1}
.logo span{color:var(--accent)}
.intro-sub{font-size:clamp(.65rem,2.2vw,.85rem);letter-spacing:.32em;text-transform:uppercase;color:#5a6b78}
.intro-tag{font-size:clamp(.86rem,2.4vw,1.02rem);color:#aebbc6;line-height:1.85;max-width:520px}
.bot{display:flex;align-items:center;gap:.7rem;background:rgba(45,212,191,.08);border:1px solid rgba(45,212,191,.25);border-radius:12px;padding:.7rem 1rem;max-width:520px;text-align:left}
.bot .face{font-size:1.8rem;flex-shrink:0}
.bot .line{font-size:.8rem;color:#9fb2bd;line-height:1.6;font-style:italic}
.intro-stats{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;font-size:.72rem;color:#4a5a66}
#egg{opacity:.08;cursor:pointer;transition:opacity .3s;user-select:none}#egg:hover{opacity:.6}
.btn{font-family:var(--fd);font-size:.82rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:.95rem 2.4rem;border:none;border-radius:6px;cursor:pointer;transition:transform .15s,filter .15s,box-shadow .15s;user-select:none}
.btn:active{transform:scale(.95)}
.btn-primary{background:linear-gradient(135deg,#0ea5a0,#2dd4bf);color:#04221f;box-shadow:0 4px 22px rgba(45,212,191,.35)}
.btn-primary:hover{filter:brightness(1.12);box-shadow:0 6px 30px rgba(45,212,191,.5)}
#timer-bar{position:fixed;top:0;left:0;right:0;z-index:100;display:none;align-items:center;justify-content:space-between;padding:.55rem 1.2rem;background:rgba(0,0,0,.72);backdrop-filter:blur(10px);border-bottom:1px solid #16202a}
#room-label{font-size:.62rem;letter-spacing:.18em;color:#5a6b78;text-transform:uppercase;max-width:150px}
#timer-display{font-family:var(--fd);font-size:1.3rem;font-weight:700;color:#fff;min-width:5ch;text-align:center;transition:color .3s}
#timer-display.warn{color:#f59e0b}#timer-display.danger{color:#ff3b3b;animation:blink .5s infinite alternate}
@keyframes blink{to{opacity:.45}}
.dots{display:flex;gap:5px;align-items:center;flex-wrap:wrap;max-width:46vw;justify-content:flex-end}
.dot{width:8px;height:8px;border-radius:50%;border:2px solid #2a3640;transition:all .3s}
.dot.active{border-color:var(--accent);background:var(--accent);box-shadow:0 0 6px var(--accent)}
.dot.done{border-color:#22c55e;background:#22c55e}
#game{padding-top:54px;overflow-y:auto}
.room{display:flex;flex-direction:column;align-items:center;width:100%;max-width:580px;gap:1rem;animation:slideIn .45s ease;margin:auto}
@keyframes slideIn{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:translateX(0)}}
.room-scene{font-size:clamp(1.7rem,5vw,2.8rem);letter-spacing:.4rem;padding:.8rem;border-radius:8px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);width:100%}
.room-title{font-family:var(--fd);font-size:clamp(1.1rem,3.8vw,1.7rem);font-weight:900;color:var(--accent);text-shadow:0 0 22px var(--accent)}
.room-loc{font-size:.7rem;letter-spacing:.22em;color:#5a6b78;text-transform:uppercase;margin-top:-.4rem}
.q-counter{font-size:.66rem;letter-spacing:.2em;color:#46545f;text-transform:uppercase}
.badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:#9fb2bd;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:.25rem .75rem}
.q-box{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1.3rem 1.4rem;width:100%;line-height:1.7;font-size:clamp(.85rem,2.3vw,1rem);color:#dde6ec}
.q-box.simpler{border-color:rgba(45,212,191,.3)}
@keyframes qin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.q-swap{animation:qin .35s ease}
.input-row{display:flex;gap:.6rem;width:100%}
.ans-input{flex:1;background:rgba(255,255,255,.05);border:2px solid #2a3640;border-radius:6px;padding:.82rem 1rem;color:#fff;font-family:var(--fm);font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s;min-width:0}
.ans-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(45,212,191,.12)}
.ans-input.shake{animation:shake .4s ease;border-color:#ff4444!important}
.ans-input.correct{border-color:#22c55e!important;background:rgba(34,197,94,.08)}
.ans-input:disabled{opacity:.7}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
.submit-btn{background:var(--accent);color:#04221f;font-family:var(--fd);font-size:1.1rem;font-weight:700;padding:.82rem 1.1rem;border:none;border-radius:6px;cursor:pointer;transition:transform .15s,filter .15s;flex-shrink:0}
.submit-btn:hover{filter:brightness(1.15)}.submit-btn:active{transform:scale(.93)}
.feedback{font-size:.82rem;min-height:1.1em}
.feedback.wrong{color:#ff6868}.feedback.right{color:#22c55e}
.assist{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}
.hint-btn{font-family:var(--fm);font-size:.72rem;color:#46545f;background:none;border:none;cursor:pointer;text-decoration:underline;transition:color .2s;padding:0}
.hint-btn:hover{color:#9fb2bd}
.hint-text{font-size:.78rem;color:#9fb2bd;font-style:italic;line-height:1.5;padding:.5rem .75rem;background:rgba(255,255,255,.04);border-radius:6px;width:100%;animation:qin .3s ease}
.fallback-btn{font-family:var(--fm);font-size:.74rem;color:var(--accent);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:.45rem 1.1rem;cursor:pointer;transition:background .2s}
.fallback-btn:hover{background:rgba(255,255,255,.1)}
.rc-overlay{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:rgba(0,0,0,.9);z-index:200;animation:fade .3s ease;text-align:center;padding:2rem}
@keyframes fade{from{opacity:0}to{opacity:1}}
.rc-badge{font-size:clamp(2rem,6vw,3rem)}
.rc-title{font-family:var(--fd);font-size:clamp(1.8rem,6vw,2.8rem);font-weight:900;color:#22c55e;text-shadow:0 0 24px #22c55e}
.rc-quip{font-size:.84rem;color:#9fb2bd;font-style:italic;max-width:440px;line-height:1.7}
.flash{position:fixed;inset:0;pointer-events:none;z-index:999;animation:fadeFl .45s ease forwards}
.flash.wrong{background:rgba(255,40,40,.13)}.flash.correct{background:rgba(34,197,94,.1)}
@keyframes fadeFl{from{opacity:1}to{opacity:0}}
.confetti{position:fixed;width:9px;height:9px;border-radius:2px;pointer-events:none;z-index:998;left:50%;top:50%;animation:cf 1.3s ease-out forwards}
@keyframes cf{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--tx),var(--ty)) rotate(720deg);opacity:0}}
#cinematic{position:fixed;inset:0;z-index:600;background:radial-gradient(ellipse at 50% 40%,#06302c 0%,#04080c 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;gap:1.6rem;transition:opacity .5s ease}
#cinematic.hidden{opacity:0;pointer-events:none;display:none}
.cin-face{font-size:3rem;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.cin-text{font-size:clamp(.95rem,2.7vw,1.2rem);color:#dde6ec;line-height:1.85;max-width:560px;min-height:7em}
.cin-skip{position:absolute;bottom:1.4rem;right:1.4rem;font-family:var(--fm);font-size:.7rem;color:#46545f;background:none;border:1px solid #2a3640;border-radius:20px;padding:.35rem .9rem;cursor:pointer}
.cin-skip:hover{color:#9fb2bd}
.cin-dots{display:flex;gap:6px}.cin-dots i{width:7px;height:7px;border-radius:50%;background:#2a3640}.cin-dots i.on{background:var(--accent)}
#win{background:radial-gradient(ellipse at 50% 38%,#062e1c 0%,#070b10 68%);gap:1.2rem}
#lose{background:radial-gradient(ellipse at 50% 38%,#2e0808 0%,#070b10 68%);gap:1.2rem}
.end-title{font-family:var(--fd);font-size:clamp(2rem,8vw,4rem);font-weight:900}
.end-title.win{color:#22c55e;text-shadow:0 0 30px #22c55e}.end-title.lose{color:#ff3b3b;text-shadow:0 0 30px #ff3b3b}
.time-badge{font-family:var(--fd);font-size:1.5rem;color:#22c55e}
.end-msg{font-size:clamp(.84rem,2.4vw,1rem);color:#9fb2bd;line-height:1.85;max-width:480px}
#snake-screen{background:#04080c;gap:.7rem}
.snake-h{font-family:var(--fd);font-size:1.3rem;color:#22c55e;letter-spacing:.16em}
.snake-sub{font-size:.7rem;color:#46545f}
.snake-sb{display:flex;gap:2.2rem;font-family:var(--fd);font-size:.82rem;color:#5a6b78}
.snake-val{color:#22c55e}
#snake-canvas{border:1px solid #16202a;border-radius:4px;image-rendering:pixelated}
.snake-hint{font-size:.66rem;color:#34424d}
.bot-img{width:46px;height:46px;border-radius:10px;background:rgba(45,212,191,.12);flex-shrink:0}
.cin-face .bot-img{width:76px;height:76px}
svg.lucide{width:1.05em;height:1.05em;vertical-align:-.16em}
.room-scene svg.lucide{width:2rem;height:2rem;margin:0 .5rem;color:var(--accent);vertical-align:middle}
.rc-badge svg.lucide{width:3rem;height:3rem;color:var(--accent)}
.intro-stats svg.lucide{margin-right:.2em}
.badge svg.lucide,.hint-btn svg.lucide,.fallback-btn svg.lucide,.snake-h svg.lucide{vertical-align:-.16em;margin-right:.2em}
