@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500&display=swap";:root{--bg: #000;--text: #f0f0f0;--dim: #999;--accent: #f0f0f0;--danger: #c0392b;--gain: #8cdca6;--font: "IBM Plex Mono", monospace;--spacing: 1.8rem;--transition: .6s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9998;background:radial-gradient(ellipse at center,transparent 62%,rgba(0,0,0,.5) 100%)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;font-weight:300;letter-spacing:.08em;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none;transition:opacity .4s ease}a:hover{opacity:.6}button{background:none;border:1px solid rgba(240,240,240,.3);color:var(--text);font-family:var(--font);font-size:12px;font-weight:300;letter-spacing:.15em;padding:.75rem 2rem;cursor:pointer;transition:opacity .4s ease,border-color .4s ease}button:hover{opacity:1;border-color:#f0f0f08c;box-shadow:0 0 18px #f0f0f012,inset 0 0 12px #f0f0f00a}button:disabled{opacity:.15;cursor:not-allowed;box-shadow:none}input[type=text]{background:none;border:none;border-bottom:1px solid rgba(240,240,240,.15);color:var(--text);font-family:var(--font);font-size:16px;font-weight:300;letter-spacing:.12em;padding:.5rem 0;outline:none;width:100%;transition:border-color .6s ease}input[type=text]:focus{border-color:#f0f0f080;box-shadow:0 2px 12px -6px #f0f0f066}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}body{overflow:hidden;width:100vw;height:100vh;cursor:default;user-select:none;touch-action:none;-webkit-user-select:none}#hud{position:fixed;top:1.2rem;right:1.5rem;font-size:14px;font-weight:400;letter-spacing:.2em;color:#f0f0f0cc;z-index:10;display:flex;align-items:center;gap:1rem}#timer{font-variant-numeric:tabular-nums;transition:color .6s ease,text-shadow .6s ease,opacity .6s ease}#timer.warning{color:#c0392be6;opacity:1;text-shadow:0 0 12px rgba(192,57,43,.3);animation:timerPulse 1.5s ease-in-out infinite}#timer.gain{animation:timerGain 1s ease-out}#timer.loss{animation:timerLoss 1s ease-out}@keyframes timerGain{0%{color:#96ebaa;text-shadow:0 0 22px rgba(150,235,170,.7);transform:scale(1.28)}to{color:#f0f0f0cc;text-shadow:none;transform:scale(1)}}@keyframes timerLoss{0%{color:#d6453a;text-shadow:0 0 22px rgba(214,69,58,.7);transform:scale(1.28)}to{color:#f0f0f0cc;text-shadow:none;transform:scale(1)}}@keyframes timerPulse{0%,to{opacity:.7}50%{opacity:1}}#stage-dots{display:flex;gap:4px}.stage-dot{width:5px;height:5px;border-radius:50%;background:#f0f0f01a;transition:background .5s ease,box-shadow .5s ease}.stage-dot.done{background:#f0f0f0b3;box-shadow:0 0 6px #f0f0f033}#canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;background:#000}#drag-el{position:fixed;cursor:grab;display:none;z-index:5}#drag-el.active{cursor:grabbing}.seq-region{position:fixed;opacity:0}#stage-hint{position:fixed;bottom:2.5rem;left:0;right:0;text-align:center;font-size:16px;font-weight:400;letter-spacing:.2em;color:#f0f0f0b3;opacity:0;transform:translateY(10px);transition:opacity 1.2s ease,transform 1.2s ease;pointer-events:none;z-index:10;white-space:pre-line;text-shadow:0 0 20px rgba(0,0,0,.6);text-indent:.2em;padding:0 1.5rem}#stage-hint.visible{opacity:.75;transform:translateY(0)}#scene{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.scene-obj{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;border:1px solid rgba(240,240,240,.15);border-radius:3px;color:#f0f0f0b3;font-family:var(--font);font-size:16px;font-weight:300;letter-spacing:.06em;cursor:pointer;pointer-events:all;transition:border-color .3s ease,background .3s ease,transform .3s ease,color .3s ease;-webkit-user-select:none;user-select:none;opacity:.8}.scene-obj:hover{border-color:#f0f0f066;background:#f0f0f008;color:#f0f0f0e6;opacity:1;transform:translate(-50%,-50%) scale(1.03)}.scene-obj.revealed{border-color:#f0f0f059;color:#f0f0f0e6;opacity:1;cursor:default}.scene-obj.wrong{animation:scene-shake .3s ease}@keyframes scene-shake{0%,to{transform:translate(-50%,-50%)}25%{transform:translate(calc(-50% - 5px),-50%)}75%{transform:translate(calc(-50% + 5px),-50%)}}.letter-boxes{position:absolute;top:28%;left:50%;transform:translate(-50%,-50%);display:flex;gap:6px;pointer-events:none}.letter-box{width:clamp(36px,6vw,56px);height:clamp(42px,7vw,64px);display:flex;align-items:center;justify-content:center;border:1px solid rgba(240,240,240,.15);border-radius:2px;color:#f0f0f0cc;font-family:var(--font);font-size:clamp(16px,3vw,26px);font-weight:300;letter-spacing:0;opacity:.85}.keyboard-visual{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none}.keyboard-row{display:flex;gap:4px}.keyboard-key{width:clamp(28px,4vw,44px);height:clamp(28px,4vw,44px);display:flex;align-items:center;justify-content:center;border:1px solid rgba(240,240,240,.12);border-radius:2px;color:#f0f0f066;font-family:var(--font);font-size:clamp(10px,1.5vw,13px);font-weight:300;transition:border-color .25s ease,color .25s ease}.cards-slots-wrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2rem;pointer-events:all}.cards-slots{display:flex;gap:8px}.card-slot{width:clamp(44px,7vw,64px);height:clamp(60px,9vw,88px);display:flex;align-items:center;justify-content:center;border:1.5px dashed rgba(240,240,240,.32);border-radius:7px;background:#f0f0f00a;box-shadow:inset 0 0 16px #0006;font-size:clamp(20px,3.5vw,36px);transition:border-color .3s ease,background .3s ease,box-shadow .3s ease}.card-slot.filled{border-style:solid;border-color:#f0f0f080;background:linear-gradient(160deg,#ffffff12,#ffffff05);box-shadow:inset 0 0 14px #00000040,0 0 14px #f0f0f00f}.cards-drags{display:flex;gap:10px}.drag-suit{width:clamp(44px,7vw,64px);height:clamp(60px,9vw,88px);display:flex;align-items:center;justify-content:center;border:1px solid rgba(240,240,240,.28);border-radius:7px;background:linear-gradient(160deg,#ffffff12,#ffffff04);box-shadow:0 4px 12px #00000073;font-size:clamp(22px,3.5vw,36px);cursor:grab;transition:opacity .3s ease,transform .2s ease,border-color .3s ease,box-shadow .2s ease;user-select:none;touch-action:none;-webkit-user-select:none}.drag-suit:hover{transform:translateY(-3px) scale(1.06);border-color:#f0f0f080;box-shadow:0 8px 18px #00000080}.drag-suit.dragging{opacity:.8;cursor:grabbing;box-shadow:0 0 16px #f0f0f026;border-color:#f0f0f080}.periodic-table{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(18,1fr);grid-template-rows:repeat(10,1fr);gap:2px;padding:4rem 1rem 5.5rem;pointer-events:all}.pt-element{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(240,240,240,.08);border-radius:2px;cursor:pointer;transition:border-color .25s ease,background .25s ease;min-width:0;overflow:hidden}.pt-element:hover{border-color:#f0f0f059;background:#f0f0f008}.pt-element.correct{border-color:#2ecc7166;background:#2ecc710d}.pt-number{font-size:clamp(5px,.5vw,8px);color:#f0f0f059;line-height:1;font-family:var(--font)}.pt-symbol{font-size:clamp(14px,1.8vw,26px);color:#f0f0f0e6;font-weight:600;line-height:1.2;font-family:var(--font)}.pt-element.correct .pt-symbol{color:#2ecc71f2}@media(max-width:1024px){.periodic-table{padding:1rem .25rem 3rem;gap:1px}.pt-number{font-size:clamp(4px,.6vw,7px)}.pt-symbol{font-size:clamp(6px,1.2vw,13px)}}@media(max-width:768px){.periodic-table{padding:.5rem .1rem 2.5rem;gap:1px}.pt-element{border-radius:1px}.pt-number{display:none}.pt-symbol{font-size:clamp(5px,1.4vw,11px)}}.code-crack-wrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;pointer-events:all}.code-history{display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto}.code-guess-row{display:flex;gap:8px}.code-cell{width:48px;height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(240,240,240,.1);border-radius:3px;font:300 18px IBM Plex Mono,monospace;color:#f0f0f0b3;position:relative}.code-cell.correct{border-color:#2ecc7180;background:#2ecc710f}.code-cell.higher{border-color:#3498db59}.code-cell.lower{border-color:#e74c3c59}.code-arrow{font-size:11px;opacity:.7;margin-top:2px}.code-cell.correct .code-arrow{color:#2ecc71}.code-cell.higher .code-arrow{color:#3498db}.code-cell.lower .code-arrow{color:#e74c3c}.code-counter{font:300 11px IBM Plex Mono,monospace;color:#f0f0f040}.code-message{font:300 11px IBM Plex Mono,monospace;color:#e74c3c80}.code-input-row{display:flex;gap:8px}.code-digit{width:48px;height:52px;background:#f0f0f005;border:1px solid rgba(240,240,240,.15);border-radius:3px;color:var(--text);font:300 20px IBM Plex Mono,monospace;text-align:center;outline:none;-moz-appearance:textfield}.code-digit::-webkit-outer-spin-button,.code-digit::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.code-digit:focus{border-color:#f0f0f059;background:#f0f0f014}.code-submit{background:#f0f0f008;border:1px solid rgba(240,240,240,.15);border-radius:3px;color:#f0f0f0b3;font:300 12px IBM Plex Mono,monospace;letter-spacing:.12em;padding:8px 24px;cursor:pointer;transition:background .3s ease,border-color .3s ease}.code-submit:hover{background:#f0f0f00f;border-color:#f0f0f059}.memory-grid{display:grid;grid-template-columns:repeat(var(--cols, 12),1fr);grid-template-rows:repeat(var(--rows, 9),1fr);gap:2px;padding:.5rem;width:100%;height:100%;pointer-events:all}.memory-card{perspective:600px;cursor:pointer}.memory-card-inner{width:100%;height:100%;transition:transform .3s ease;transform-style:preserve-3d;position:relative}.memory-card.flipped .memory-card-inner,.memory-card.matched .memory-card-inner{transform:rotateY(180deg)}.memory-card-back,.memory-card-face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;backface-visibility:hidden;border:1px solid rgba(240,240,240,.08);border-radius:2px;font-family:var(--font)}.memory-card-back{background:#f0f0f004;color:#f0f0f00f;font-size:clamp(6px,1vw,12px)}.memory-card-face{transform:rotateY(180deg);background:var(--bg)}.memory-card.matched{pointer-events:none}.memory-card.matched .memory-card-inner{animation:match-glow .6s ease forwards}@keyframes match-glow{0%{box-shadow:0 0 #f0f0f000}50%{box-shadow:0 0 12px 2px #f0f0f026}to{box-shadow:none}}.memory-card:not(.flipped):not(.matched):hover .memory-card-back{border-color:#f0f0f040}@media(max-width:1024px){.memory-grid{gap:1px;padding:.25rem}.memory-card-back{font-size:clamp(5px,.8vw,10px)}.card-rank{font-size:clamp(14px,2.4vw,26px)}.card-suit{font-size:clamp(12px,2vw,22px)}}.memory-card-face{flex-direction:column;gap:0}.card-rank{color:#f0f0f0;font-size:clamp(20px,3.5vw,40px);font-weight:600;line-height:1}.card-suit{font-size:clamp(18px,3vw,36px);line-height:1;margin-top:2px}#touch-input{position:fixed;bottom:5rem;left:50%;transform:translate(-50%);width:clamp(180px,50vw,320px);padding:.7rem 1rem;background:#f0f0f005;border:1px solid rgba(240,240,240,.08);border-radius:3px;color:var(--text);font-family:var(--font);font-size:15px;font-weight:300;letter-spacing:.15em;text-align:center;outline:none;z-index:20;caret-color:#f0f0f040;display:none}#touch-input::placeholder{color:#f0f0f01a;letter-spacing:.2em}#touch-input:focus{border-color:#f0f0f059;background:#f0f0f00d}@media(max-width:768px){#hud{top:.6rem;right:.8rem;font-size:11px}#stage-hint{font-size:14px;bottom:1.5rem;letter-spacing:.15em}.letter-boxes{gap:4px}.letter-box{width:clamp(30px,10vw,48px);height:clamp(36px,12vw,56px)}.keyboard-key{width:clamp(24px,8vw,36px);height:clamp(24px,8vw,36px)}.cards-slots-wrap{gap:1.2rem}.card-slot,.drag-suit{width:clamp(38px,12vw,56px);height:clamp(52px,16vw,76px)}}.reverse-wrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1.5rem;pointer-events:all}.reverse-mirror-label{font-size:28px;color:#f0f0f026}.reverse-display{font-size:32px;font-weight:300;letter-spacing:.15em;color:#f0f0f0cc;min-height:40px;font-family:var(--font)}.reverse-input{width:240px;text-align:center;font-size:18px}.reverse-submit{font-size:11px;letter-spacing:.2em;padding:.5rem 1.5rem;border:1px solid rgba(240,240,240,.2);background:transparent;color:#f0f0f080;cursor:pointer;font-family:var(--font)}.reverse-submit:hover{border-color:#f0f0f066;color:#f0f0f0cc}.map-wrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1.2rem;pointer-events:all}.map-outline{width:200px;height:200px;display:flex;align-items:center;justify-content:center}.map-round{font-size:10px;color:#f0f0f04d;letter-spacing:.2em}.map-input{width:220px;text-align:center;font-size:16px;text-transform:capitalize}.map-submit{font-size:11px;letter-spacing:.2em;padding:.5rem 1.5rem;border:1px solid rgba(240,240,240,.2);background:transparent;color:#f0f0f080;cursor:pointer;font-family:var(--font)}.map-submit:hover{border-color:#f0f0f066}.binary-wrap{position:absolute;top:76px;bottom:88px;left:50%;transform:translate(-50%);width:min(600px,calc(100% - 32px));display:flex;flex-direction:column;align-items:center;gap:20px;overflow-y:auto;padding:12px 8px 24px;touch-action:pan-y;pointer-events:all}.binary-wrap>*{flex-shrink:0}.binary-reference{display:grid;grid-auto-flow:column;grid-template-rows:repeat(13,auto);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;width:100%;max-width:420px;border-top:1px solid #51433f;padding-top:20px;color:#c6c3c0;font:12px/1.5 var(--font);white-space:pre}body:has(.binary-wrap){touch-action:pan-y}.binary-display{width:100%;text-align:center;overflow-wrap:anywhere;font-size:clamp(14px,3vw,24px);font-weight:400;letter-spacing:.08em;color:#f0f0f0d9;font-family:var(--font);word-spacing:.5em}.binary-input{width:160px;text-align:center;font-size:24px;letter-spacing:.15em;text-transform:uppercase}.binary-submit{font-size:11px;letter-spacing:.2em;padding:.5rem 1.5rem;border:1px solid rgba(240,240,240,.2);background:transparent;color:#f0f0f080;cursor:pointer;font-family:var(--font)}.binary-submit:hover{border-color:#f0f0f066}#connection-status{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:100;max-width:90vw;padding:12px 18px;background:#191919;color:#f0f0f0;border:1px solid #555;font:13px/1.5 var(--font);text-align:center}.reverse-wrap{width:min(90vw,420px)}.reverse-mirror-label{color:#ccc;font-size:22px;text-align:center;line-height:1.5}#scene input,#scene button{color:#ddd}#scene input::placeholder{color:#999}#scene input:focus-visible,#scene button:focus-visible{outline:2px solid #ccc;outline-offset:4px}#scene input,#scene button{font-family:var(--font)}#scene input:focus-visible,#scene button:focus-visible{outline:2px solid #f0a69d!important;outline-offset:3px}#scene button{min-height:44px}.memory-grid{width:min(900px,94vw);height:min(650px,72vh);position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);gap:8px;padding:0}.memory-card{background:transparent;border:0;padding:0;color:inherit;min-width:0}.memory-card-back{background:#100b0a;border-color:#79534c;color:#bba8a3;font-size:18px}.memory-card-face{border-color:#7b6a65}.memory-card.matched{opacity:.65}@media(max-width:600px){.memory-grid{gap:6px}.card-rank{font-size:22px}.card-suit{font-size:20px}}.element-entry{position:absolute;z-index:2;top:68px;left:50%;transform:translate(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:min(360px,94vw);pointer-events:auto}.element-entry input,.element-entry button{min-height:44px;background:#100b0a;color:#eee;border:1px solid #79534c;padding:8px 12px;font-size:16px}.element-entry input{width:180px}.element-entry span{width:100%;text-align:center;color:#f0a69d;font-size:12px}.periodic-table{padding-top:135px}#scene .keyboard-visual{color:#c6c3c0}#scene .keyboard-key,#scene .letter-box{border-color:#65534d;color:#ded8d4}#scene input::placeholder{color:#aaa;opacity:1}#scene button:not(.memory-card){color:#e4dedb!important;border-color:#79534c!important}#touch-input{color:#eee;border-color:#79534c;background:#100b0a;caret-color:#eee;font-size:16px}#touch-input::placeholder{color:#bdb5b0}@media(max-width:600px){body:has(.periodic-table){touch-action:pan-y}.periodic-table{top:135px;right:12px;bottom:100px;left:12px;padding:0;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:52px;gap:6px;overflow-y:auto;align-content:start;touch-action:pan-y}.periodic-table .pt-element{grid-row:auto!important;grid-column:auto!important}.periodic-table .pt-symbol{font-size:18px}.periodic-table .pt-number{display:block;font-size:10px}}.memory-grid{grid-template-rows:repeat(var(--rows),minmax(64px,1fr));overflow-y:auto;align-content:start;touch-action:pan-y}body:has(.memory-grid){touch-action:pan-y}#stage-count{color:#ded8d5;font-size:12px;white-space:nowrap}#stage-dots{display:grid;grid-template-columns:repeat(18,5px);gap:4px}.stage-dot{background:#68615e;flex-shrink:0}body[data-stage-effect=clue-appear] #stage-hint{top:16%;bottom:auto}body[data-stage-effect=clue-appear] .keyboard-input-wrap{top:42%!important}@media(max-width:500px){body[data-page=play] #stage-dots{max-width:none;gap:3px;grid-template-columns:repeat(18,4px)}.stage-dot{width:4px;height:4px}body[data-stage-effect=simon-appear] #stage-hint{bottom:auto;top:28%}}body[data-stage-effect=reverse-appear] #stage-hint{top:16%;bottom:auto}body[data-stage-effect=reverse-appear] .reverse-wrap{top:48%;gap:12px}.element-entry{top:112px;flex-wrap:nowrap;align-items:center}#element-word{flex:1;min-width:0;box-sizing:border-box;min-height:44px;padding:6px 8px;border:1px solid #996052;background:#100b0a;overflow-wrap:anywhere;color:#eee;font:24px/1.3 var(--font);text-align:center}body[data-stage-effect=periodic-table-appear] #stage-hint{top:64px;bottom:auto;font-size:14px;line-height:1.4}@media(max-width:600px){body:has(.periodic-table) .periodic-table{top:174px;bottom:24px}}.memory-grid.memory-grid-compact{grid-template-rows:repeat(var(--rows),minmax(44px,1fr))}#qa-picker{position:fixed;right:12px;bottom:8px;z-index:150;min-width:44px;min-height:44px;color:#eee;background:#23110f;border:1px solid #b65346;font:14px var(--font)}.qa-dialog{margin:auto;max-height:90dvh;overflow:auto;width:min(90vw,420px);box-sizing:border-box;color:#eee;background:#130d0c;border:1px solid #b65346;padding:20px;font:16px/1.5 var(--font)}.qa-dialog::backdrop{background:#000c}.qa-dialog select,.qa-dialog button{box-sizing:border-box;width:100%;min-height:48px;margin-top:12px;color:#eee;background:#211714;border:1px solid #88615b;font:inherit}.radio-wrap{position:absolute;top:80px;right:20px;bottom:70px;left:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;pointer-events:auto}.radio-dot{width:4px;height:4px;border-radius:50%;background:#b86960;opacity:.45;animation:radio-drift 8s ease-in-out infinite alternate}@keyframes radio-drift{0%{transform:translate(-35px)}to{transform:translate(35px,8px)}}.radio-frequency{color:#a78e87;font:16px var(--font);letter-spacing:.3em}.radio-dial{--angle:-135deg;width:clamp(130px,40vw,210px);aspect-ratio:1;flex-shrink:0;border:2px solid #97574e;border-radius:50%;background:radial-gradient(circle,#241916,#080606);box-shadow:0 0 0 8px #17100f,inset 0 0 22px #000;touch-action:none;cursor:grab;position:relative}.radio-dial i{position:absolute;top:12px;right:12px;bottom:12px;left:12px;transform:rotate(var(--angle))}.radio-dial i:before{content:"";position:absolute;top:0;left:calc(50% - 2px);height:24px;width:4px;background:#e4c6bf}.radio-power,.radio-answer button{min-height:44px;padding:8px 18px;border:1px solid #88554d;background:#120d0b;font:14px var(--font);color:#ddd}.radio-answer{display:flex;gap:8px;max-width:100%}.radio-answer input{background:#120d0b;border:1px solid #88554d;color:#eee;width:130px;min-height:44px;font:18px var(--font);text-align:center}.radio-status{max-width:320px;font:12px/1.4 var(--font);color:#d7b0a7;text-align:center}@media(max-height:550px){.radio-wrap{top:55px;right:12px;bottom:45px;left:12px;gap:8px}.radio-dial{width:110px}.radio-status{margin:0}}@media(prefers-reduced-motion:reduce){.radio-dot{animation:none}}body[data-stage-effect=radio-appear] #stage-hint{top:64px;bottom:auto}@media(max-height:550px){.radio-wrap{top:100px;bottom:12px}}.still-wrap{position:absolute;top:80px;right:16px;bottom:60px;left:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;pointer-events:auto}.still-wrap h2{font:18px var(--font);color:#e0d2cd;letter-spacing:.12em;margin:0}.still-board{display:grid;grid-template-columns:repeat(4,1fr);width:min(360px,100%);gap:10px}.still-object{display:flex;align-items:center;justify-content:center;min-width:0}.still-board .still-object{aspect-ratio:1;background:#100c0b;border:1px solid #523d37}.still-object svg{width:70%;max-width:60px;fill:none;stroke:#d7b6a8;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.still-controls{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:min(360px,100%)}.still-controls button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;font:15px var(--font);color:#e6d8d2;border:1px solid #79534c;background:#1b110f}.still-controls button:only-child{grid-column:1/-1}.still-controls .still-object{width:32px;height:32px}.still-status{font:12px var(--font);color:#ce9487;text-align:center;margin:0}@media(max-height:600px){.still-wrap{top:60px;right:12px;bottom:50px;left:12px;gap:10px}.still-board{max-width:280px;gap:6px}}.puzzle-panel{position:absolute;top:76px;right:18px;bottom:54px;left:18px;pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;overflow:auto;color:#e8dcd7;font:14px/1.5 var(--font)}.puzzle-panel h2{max-width:580px;text-align:center;font:16px/1.7 var(--font);letter-spacing:.04em;margin:0}.puzzle-panel button,.puzzle-panel input{font:inherit;color:#e8dcd7;border:1px solid #90635a;background:#150f0d;border-radius:3px;min-height:46px;padding:10px 16px;box-sizing:border-box}.puzzle-panel button{cursor:pointer;touch-action:manipulation}.puzzle-panel button:focus-visible,.puzzle-panel input:focus-visible{outline:2px solid #e1a497;outline-offset:3px}.puzzle-panel button:hover{border-color:#dba193}.puzzle-panel [hidden]{display:none}.doors-panel{--door-accent:#e8c49a;gap:16px}.doors-panel .door-heading{font-size:clamp(20px,3vw,28px);letter-spacing:.08em}.door-clue{max-width:460px;margin:0;text-align:center;color:#bda69e;font-size:13px;text-wrap:balance}.door-row{display:flex;gap:clamp(16px,4vw,42px);width:min(620px,100%);justify-content:center;perspective:900px;padding:16px 4px;box-sizing:border-box;flex-shrink:0}.puzzle-panel .choice-door{position:relative;width:28%;max-width:160px;height:clamp(164px,30vw,256px);padding:0;border:1px solid #996258;background:radial-gradient(ellipse at center,#302016,#080605 75%);box-shadow:0 0 0 4px #211411,0 12px 30px #000;transition:opacity .4s,box-shadow .4s}.door-leaf{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid #886152;background:linear-gradient(110deg,#38231c,#160e0b);transform-origin:left;transition:transform .8s ease;z-index:1;font-style:normal}.door-leaf>span{position:absolute;top:16px;left:0;right:0;color:#e3c0a6;letter-spacing:.2em}.door-leaf:before{content:"";position:absolute;top:48px;right:12px;bottom:20px;left:12px;border:1px solid #775245;box-shadow:inset 0 0 0 3px #130d0b}.door-leaf b{position:absolute;right:9px;top:54%;width:6px;height:22px;border-radius:4px;background:#cfac77;box-shadow:0 0 8px #8c443c66}.choice-door .door-prize{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--door-accent);font-size:clamp(17px,3vw,30px);font-weight:600;font-variant-numeric:tabular-nums;opacity:0;transition:opacity .5s .3s}.choice-door.chosen .door-prize{opacity:1}.choice-door.chosen .door-leaf{transform:perspective(500px) rotateY(-105deg)}.choice-door:disabled:not(.chosen){opacity:.3}.choice-door.chosen{border-color:var(--door-accent);box-shadow:0 0 0 4px #211411,0 0 40px color-mix(in srgb,var(--door-accent) 22%,transparent)}.doors-panel[data-outcome=gain]{--door-accent:#b8e3bc}.doors-panel[data-outcome=loss]{--door-accent:#f3a396}.door-result{min-height:78px;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;color:#bda69e}.door-result strong{color:var(--door-accent);font-size:clamp(32px,5vw,44px);line-height:1.2;font-weight:500;font-variant-numeric:tabular-nums}.door-result span{font-size:14px}.doors-panel .door-continue{min-width:180px;border-color:var(--door-accent)}@media(max-height:660px){.doors-panel{justify-content:flex-start;gap:10px}.doors-panel .choice-door{height:140px}.door-row{padding-block:10px}.door-result{min-height:64px}}.morse-panel{gap:14px}.morse-beacon{flex-shrink:0;width:88px;height:88px;border-radius:50%;border:1px solid #89584f;background:radial-gradient(circle,#392019,#0e0908 65%);display:grid;place-items:center;box-shadow:0 0 0 6px #1e120f}.morse-beacon i{width:36px;height:36px;border-radius:50%;background:#543d36}.morse-beacon.lit i{background:#ffe2c8;box-shadow:0 0 18px #ffb99b,0 0 40px #ed784e88}.morse-slots{margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.morse-slot{display:grid;place-items:center;width:30px;height:34px;border:1px solid #62443d;border-radius:4px;color:#aa8980}.morse-slot.active{border-color:#df9c8e;background:#392019;color:#ffe2c8}.morse-slot.lit{background:#ffe2c8;color:#21110e;box-shadow:0 0 14px #ed784e88}.morse-tools,.morse-answer{display:flex;gap:8px;width:min(420px,100%)}.morse-tools button{flex:1;padding:8px;font-size:13px}.morse-answer input{width:0;flex:1;min-width:0;font-size:16px}#morse-chart{width:min(520px,100%);border:1px solid #62443d;padding:10px;box-sizing:border-box;background:#110c0b}#morse-chart>p{margin:0 0 8px;text-align:center;font-size:12px;color:#ccaaa0}.morse-key{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px 6px}.morse-key>div{display:grid;grid-template-columns:1ch 1fr;align-items:center;gap:6px;padding:1px 5px;border:1px solid #49312b;border-radius:3px;font:14px/1.1 monospace}.morse-key b{color:#df9c8e;font-weight:400}.morse-code{display:flex;align-items:center;gap:3px;min-height:14px}.morse-mark{display:inline-block;flex-shrink:0;background:#fff0db}.morse-dot{width:6px;height:6px;border-radius:50%}.morse-dash{width:12px;height:4px;border-radius:1px}.morse-legend,.morse-legend>span{display:flex;align-items:center;justify-content:center;gap:8px}.morse-legend{gap:24px}.morse-feedback{min-height:20px;margin:0;color:#e3a294;font-size:12px}@media(max-height:740px){.morse-panel{justify-content:flex-start;gap:10px}.morse-beacon{width:56px;height:56px;margin:6px}.morse-beacon i{width:28px;height:28px}}@media(min-width:900px){.morse-panel:has(#morse-chart:not([hidden])){padding-right:340px}#morse-chart{position:absolute;right:max(12px,calc(50% - 540px));width:300px}.morse-key{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){.door-leaf,.choice-door .door-prize,.puzzle-panel .choice-door{transition:none}}.element-wheel-panel{display:none}@media(max-width:600px){body[data-stage-effect=periodic-table-appear] .periodic-table{display:none}body[data-stage-effect=periodic-table-appear] #stage-hint{top:64px;padding:0 18px;box-sizing:border-box}body[data-stage-effect=periodic-table-appear] .element-entry{top:126px;gap:6px}body[data-stage-effect=periodic-table-appear] #element-word{font-size:22px}.element-entry button{min-width:48px;min-height:44px;padding:6px}.element-wheel-panel{position:absolute;top:188px;right:18px;bottom:58px;left:18px;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:auto;overflow:auto}.element-wheel-row{display:flex;align-items:center;justify-content:center;gap:24px;width:100%}.element-wheel{width:132px;height:240px;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;padding:80px 0;box-sizing:border-box;background:linear-gradient(#090606,#241410,#090606);border:1px solid #7e5147;touch-action:pan-y;flex-shrink:0}.element-wheel::-webkit-scrollbar{display:none}.wheel-element{height:80px;box-sizing:border-box;scroll-snap-align:center;position:relative;display:flex;align-items:center;justify-content:center;border:1px solid #714c42;margin:0 14px;color:#bda49b;background:#140d0b;transform:scale(.85);opacity:.5}.wheel-element small{position:absolute;top:4px;left:7px;font:12px var(--font)}.wheel-element strong{font:36px var(--font)}.wheel-element.selected{transform:scale(1);opacity:1;border-color:#df8c79;color:#fff0e8;box-shadow:inset 0 0 18px #95392326}.wheel-select,.element-alphabet button{min-height:44px;color:#eedbd2;background:#21110e;border:1px solid #996052;font:14px var(--font);touch-action:manipulation}.wheel-select{padding:12px 18px}.element-alphabet{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;width:100%;max-width:360px}.element-alphabet button{padding:0}}.scramble-keyboard{top:59%;gap:5px}.scramble-answer{display:block;width:min(420px,70vw);min-height:38px;max-height:76px;overflow:auto;overflow-wrap:anywhere;text-align:center;font:24px/1.4 var(--font);color:#fff0db;border-bottom:1px solid #79534c}.scramble-type-note{margin:2px 0 10px;color:#bdb5b0;font:12px var(--font)}.keyboard-key.keyboard-backspace{width:92px}#scene .keyboard-key.pressed{color:#21110e;background:#fff0db;border-color:#fff0db;box-shadow:0 0 12px #df9c8e66;transform:translateY(2px);transition:none}@media(pointer:coarse),(max-width:600px){.scramble-keyboard{display:none}}.scramble-keyboard .keyboard-key{pointer-events:auto;cursor:pointer;background:transparent;padding:0;box-sizing:border-box;touch-action:manipulation}.scramble-keyboard .keyboard-key:hover{border-color:#df9c8e}.scramble-keyboard .keyboard-key:focus-visible{outline:2px solid #df9c8e;outline-offset:2px}.memory-grid.memory-grid-intro{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(100%,400px);height:min(100%,calc(var(--rows) * 108px));gap:6px;box-sizing:border-box}@media(max-width:600px)and (max-height:620px){.element-wheel{height:160px;padding:40px 0}.element-wheel-panel{gap:8px}}.stage-completing #scene,.stage-completing #canvas,.stage-completing #touch-input{pointer-events:none}.stage-result-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#080b09;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;box-sizing:border-box}.stage-result-screen[hidden]{display:none}.stage-result-title{color:#b8f5c7;font-size:clamp(32px,8vw,64px);letter-spacing:.14em}.stage-result-timing{color:#f0f0f0;font-size:clamp(17px,4vw,22px)}.stage-result-progress{color:#aaa;font-size:13px}.stage-result-milestone{color:#b8f5c7;margin-top:12px;font-size:16px}#scene button:not(:disabled):active{filter:brightness(1.35);box-shadow:inset 0 0 0 2px #b8f5c7a6}#scene button:disabled{cursor:wait;opacity:.6}#scene input[aria-invalid=true]{border-color:#ed8e81}#scene input.confirmed-digit{border-color:#b8f5c7;color:#b8f5c7}.answer-feedback{color:#aaa;font-size:12px;line-height:1.5;min-height:18px;max-width:300px;text-align:center;margin:8px auto 0}.answer-feedback[data-state=error]{color:#ed8e81}@media(prefers-reduced-motion:reduce){#scene button,#scene input{transition:none!important}}.reverse-delete{min-height:44px;padding:8px 18px;border:1px solid #79534c;border-radius:4px;background:#150f0d;color:#eee;font:14px var(--font);cursor:pointer;touch-action:manipulation}.reverse-delete:focus-visible{outline:2px solid #df9c8e;outline-offset:3px}.keyboard-key.keyboard-backspace{min-width:128px;font-size:14px}.cards-slots-wrap{width:min(520px,calc(100% - 32px));max-height:calc(100% - 140px);overflow-y:auto;overflow-x:hidden;padding:8px;box-sizing:border-box;gap:24px}.cards-instruction{font:14px/1.6 var(--font);color:#ccc;text-align:center;max-width:360px}.cards-slots,.cards-drags{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;gap:10px}.cards-slots .card-slot,.cards-drags .drag-suit{width:100%;min-width:0;height:84px;box-sizing:border-box;border-radius:3px;padding:0;font-family:serif;font-size:32px}.cards-slots .card-slot:not(.filled){font:13px var(--font);color:#888;background:#080808;border:1px dashed #555;box-shadow:none}.cards-drags .drag-suit{background:#121212;box-shadow:none;touch-action:none}.cards-drags .drag-suit[aria-pressed=true]{border-color:#ddd;background:#2b2b2b;box-shadow:inset 0 0 0 1px #ddd;transform:none}.cards-selection{margin:0;min-height:40px;text-align:center;font:12px/1.6 var(--font);color:#aaa}@media(max-width:600px){.cards-slots-wrap{gap:18px}.cards-slots,.cards-drags{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cards-slots .card-slot,.cards-drags .drag-suit{height:64px}}
