:root{--bg:#07060f;--ink:#e9e6ff;--muted:#9a94c4;--magenta:#ff3fb4;--cyan:#3ff4ff;--red:#ff4a3d;--panel:#0c0a1edb;--thumb-zone:200px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}#app{justify-content:center;height:100dvh;display:flex}button{font:inherit;color:inherit}button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.neon-title{letter-spacing:.08em;color:#fff;text-shadow:0 0 6px var(--magenta), 0 0 18px var(--magenta), 0 0 38px var(--magenta);margin:0;font-family:Impact,Arial Narrow Bold,Helvetica Neue,sans-serif;font-weight:700}.neon-title.small{font-size:2rem}.neon-title.red{text-shadow:0 0 6px var(--red), 0 0 18px var(--red), 0 0 38px var(--red)}.big-button{border:2px solid var(--cyan);letter-spacing:.04em;cursor:pointer;background:#3ff4ff1f;border-radius:14px;min-height:56px;padding:0 28px;font-size:1.15rem;font-weight:700;box-shadow:0 0 18px #3ff4ff59}.big-button:active{background:#3ff4ff4d}.title-screen{width:min(100%,56.25dvh);padding:24px 20px calc(24px + env(safe-area-inset-bottom));text-align:center;background:radial-gradient(at 50% 35%,#2a1f4f 0%,#0b0a1f 60%,#07060f 100%);flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.title-screen .neon-title{font-size:clamp(2.4rem,13vw,4rem);line-height:1}.tagline{color:var(--muted);max-width:22em;margin:0 0 12px}.game{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:min(100%,56.25dvh);height:100dvh;position:relative;overflow:hidden}.stage{position:absolute;inset:0}.stage canvas{width:100%;height:100%;display:block}.hud{padding:max(10px, env(safe-area-inset-top)) 50px 0 14px;pointer-events:none;grid-template-columns:auto 1fr;align-items:center;gap:5px 12px;display:grid;position:absolute;top:0;left:0;right:0}.hud>*{transition:opacity .4s}.floor-label{letter-spacing:.12em;color:var(--cyan);text-shadow:0 0 8px #3ff4ff99;margin:0;font-size:.8rem;font-weight:800}.hp{gap:4px;display:flex}.pip{background:#2a2440;border:1px solid #4a4380;border-radius:3px;width:14px;height:14px}.pip.on{background:var(--cyan);box-shadow:0 0 8px var(--cyan);border-color:#fff}.goal{letter-spacing:.03em;color:var(--muted);text-shadow:0 1px 3px #000;grid-column:1/-1;margin:0;font-size:.8rem;font-weight:700}.goal.open{color:var(--cyan);text-shadow:0 0 8px #3ff4ffb3;animation:.9s ease-in-out infinite alternate beckon}@keyframes beckon{0%{opacity:.6}to{opacity:1}}.floor-label,.goal{white-space:nowrap}.tower{top:max(10px, env(safe-area-inset-top));flex-direction:column;align-items:center;gap:2px;transition:transform .7s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;right:14px}.tower-top{color:#fff;text-shadow:0 0 6px var(--magenta), 0 0 12px var(--magenta);margin-bottom:1px;font:700 .8rem/1 Impact,Arial Narrow Bold,sans-serif}.tower-floor{background:#151230;border:1px solid #4a4380;border-radius:2px;width:22px;height:6px}.tower-floor.file{border-color:var(--magenta);box-shadow:0 0 6px #ff3fb499}.tower-floor.done{background:#2d6f78;border-color:#3fb7c4}.tower-floor.here{background:var(--cyan);box-shadow:0 0 8px var(--cyan);border-color:#fff}.result .tower{margin:12px 0;position:static;transform:scale(1.6)}@media (width<=360px){.hud{column-gap:8px;padding-left:10px;padding-right:42px}.tower{right:10px}.floor-label{letter-spacing:.06em;font-size:.68rem}.goal{font-size:.72rem}.pip{width:11px;height:11px}}.brief{background:#07060fd1;transition:opacity .5s;position:absolute;inset:0}.brief.gone{opacity:0;pointer-events:none}.brief-lines{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:calc(26% + 116px);left:16px;right:16px}.brief p{opacity:0;margin:0;font-size:1.1rem;font-weight:700;animation:.5s ease-out forwards line-in}.brief p:nth-child(2){animation-delay:.8s}.brief p:nth-child(3){animation-delay:1.8s}.brief .climb{letter-spacing:.1em;color:#fff;text-shadow:0 0 6px var(--magenta), 0 0 18px var(--magenta);font-family:Impact,Arial Narrow Bold,sans-serif;font-size:2.2rem}@keyframes line-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.game.intro .tower{transform:translate(var(--tx,0px), var(--ty,0px)) scale(2.6)}.game.intro .hud>:not(.tower),.game.intro .hint{opacity:0}.caption{background:var(--panel);letter-spacing:.04em;text-align:center;opacity:0;pointer-events:none;border:1px solid #ff3fb480;border-radius:10px;width:max-content;max-width:calc(100% - 32px);margin:0;padding:8px 14px;font-weight:700;transition:opacity .25s;position:absolute;top:36%;left:50%;transform:translate(-50%)}.caption.on{opacity:1}.stick{pointer-events:none;border:2px solid #3ff4ff8c;border-radius:50%;width:96px;height:96px;display:none;position:absolute;top:-48px;left:-48px;box-shadow:0 0 14px #3ff4ff59}.stick.on{place-items:center;display:grid}.knob{width:40px;height:40px;box-shadow:0 0 12px var(--cyan);background:#3ff4ff73;border-radius:50%}.hint{bottom:calc(env(safe-area-inset-bottom) + var(--thumb-zone) / 2 - 1.2em);background:var(--panel);color:var(--muted);white-space:pre-line;pointer-events:none;border-radius:10px;margin:0;padding:6px 10px;font-size:.82rem;transition:opacity .4s;position:absolute}.hint-left{left:14px}.hint-right{text-align:right;right:14px}.hint.gone{opacity:0}.game.hurt:after{content:"";pointer-events:none;animation:.45s ease-out forwards hurt;position:absolute;inset:0;box-shadow:inset 0 0 90px #ff4a3db3}@keyframes hurt{0%{opacity:1}to{opacity:0}}.result{background:var(--panel);text-align:center;border:1px solid #3ff4ff66;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:22px 18px;display:flex;position:absolute;top:50%;left:16px;right:16px;transform:translateY(-50%);box-shadow:0 0 30px #0009}.memory{max-width:22em;margin:0;font-size:1.05rem}.muted{color:var(--muted);margin:0}.small{font-size:.85rem}@media (prefers-reduced-motion:reduce){.game.hurt:after{animation-duration:10ms}.caption,.hint,.tower,.brief,.hud>*{transition:none}.brief p{opacity:1;animation:none}.goal.open{animation:none}}
