:root{--bg:#1f2435;--bg2:#262b3d;--panel:#323a52;--panel2:#3b4460;--line:#1b1f2e;--steel:#93a5c2;--steel-hi:#b4c3da;--steel-lo:#55617c;--text:#e8eef9;--muted:#9aa7c2;--cyan:#4fd2ff;--lime:#7ee35b;--amber:#f2c14e;--danger:#e5484d;--radius:12px;--hazard:repeating-linear-gradient(135deg, #e8b33a 0 8px, #1b1f2e 8px 16px);--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);overscroll-behavior:none;height:100%;margin:0}body{-webkit-text-size-adjust:100%;font-size:16px}button,input,select{font:inherit;color:inherit}#app{flex-direction:column;height:100dvh;display:flex}[hidden]{display:none!important}#screen{padding:calc(16px + var(--safe-t)) calc(16px + var(--safe-r)) calc(16px + var(--safe-b)) calc(16px + var(--safe-l));background:linear-gradient(#1b1f2e8c 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(90deg, #1b1f2e8c 1px, transparent 1px) 0 0 / 32px 32px, radial-gradient(circle at 25% 10%, #34405e, var(--bg) 65%);flex:1;justify-content:center;align-items:flex-start;display:flex;overflow:auto}#screen.overlay{z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f121cc7;position:fixed;top:0;bottom:0;left:0;right:0}.panel{background:var(--panel);border:4px solid var(--steel);width:min(980px,100%);box-shadow:0 0 0 4px var(--line), 0 10px 0 4px var(--line), 0 24px 50px #00000073;border-radius:18px;margin:auto;padding:24px;position:relative}.panel:before{content:"";background:var(--hazard);opacity:.9;border-radius:0 0 4px 4px;height:6px;position:absolute;top:-4px;left:24px;right:24px}.panel.narrow{max-width:520px}.landing{text-align:center;max-width:560px}.logo{letter-spacing:3px;color:var(--lime);text-shadow:0 0 12px #7ee35b73, 3px 3px 0 var(--line);margin:10px 0 0;font-size:clamp(2rem,6vw,3.2rem);font-weight:900}.tagline{color:var(--muted);margin-top:4px}.char-strip{justify-content:center;gap:6px;margin-top:10px;display:flex}.char-strip canvas{background:var(--bg2);border:2px solid var(--line);border-radius:8px;padding:2px}.stack{gap:12px;margin-top:20px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}.row.tight{gap:8px;margin-top:8px}.row.center{justify-content:center}.top-actions{z-index:2;position:absolute;top:12px;right:12px}h2{color:var(--steel-hi);margin:0 0 12px}h3{color:var(--cyan);letter-spacing:.5px;margin:18px 0 8px;font-size:1.05rem}.portrait{image-rendering:pixelated;border:3px solid var(--steel);box-shadow:0 0 0 3px var(--line), 0 0 14px #4fd2ff59;background:#38404f;border-radius:10px;flex:none}.landing .portrait{margin:8px auto 0;display:block}.btn{border:3px solid var(--line);background:var(--panel2);min-height:44px;color:var(--text);cursor:pointer;box-shadow:inset 0 2px 0 #ffffff1f, 0 4px 0 var(--line);touch-action:manipulation;border-radius:10px;padding:10px 18px;font-weight:800;transition:transform 60ms}.btn:hover{background:#465070}.btn:active{box-shadow:inset 0 2px 0 #ffffff1f, 0 1px 0 var(--line);transform:translateY(3px)}.btn.primary{background:var(--lime);color:#14260f}.btn.primary:hover{background:#95f074}.btn.big{min-height:56px;padding:12px 24px;font-size:1.1rem}.btn.small{min-height:44px;padding:6px 12px;font-size:.9rem}.btn.ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000;text-decoration:underline}.btn.danger{background:var(--danger);color:#fff}.btn[disabled]{opacity:.4;cursor:not-allowed}.icon-btn{border:3px solid var(--line);background:var(--panel2);cursor:pointer;min-width:44px;min-height:44px;color:var(--text);border-radius:10px;font-size:1.2rem}.input{border:3px solid var(--line);background:var(--bg2);min-height:48px;color:var(--text);border-radius:10px;width:100%;padding:8px 12px;font-size:16px}.input:focus{outline:3px solid var(--cyan);outline-offset:0}.input.code{letter-spacing:8px;text-transform:uppercase;text-align:center;color:var(--cyan);font-size:1.8rem;font-weight:800}select.input option{background:var(--bg2)}.field{gap:6px;margin-top:14px;display:grid}.field>span{color:var(--steel-hi);font-weight:800}.error{color:#ff8f8f;min-height:1.2em;font-weight:700}.note{border:2px dashed var(--amber);color:#ffe2a0;background:#f2c14e1f;border-radius:10px;padding:8px 12px;font-size:.9rem}.small-text{color:var(--muted);font-size:.9rem}.band-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.band-card{border:3px solid var(--line);border-radius:var(--radius);background:var(--bg2);cursor:pointer;min-height:44px;padding:14px}.band-card.selected{border-color:var(--cyan);box-shadow:0 0 0 2px var(--line), 0 0 16px #4fd2ff59;background:#2c3654}.band-title{font-size:1.25rem;font-weight:900}.band-grades{color:var(--muted)}.band-sample{color:var(--lime);margin:8px 0;font-size:1.3rem;font-weight:700}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:2px solid var(--line);background:var(--panel2);cursor:pointer;border-radius:999px;min-height:44px;padding:4px 12px;font-size:.9rem;font-weight:800}.chip.on{background:var(--cyan);color:#0f2433}.chip[disabled]{opacity:.4;cursor:not-allowed}.lobby{padding-top:64px}.lobby-grid{grid-template-columns:240px 1fr;gap:20px;display:grid}@media (max-width:720px){.lobby-grid{grid-template-columns:1fr}}.join-card{text-align:center;background:var(--bg2);border:3px solid var(--line);border-radius:var(--radius);align-self:start;padding:14px}.join-card .label{color:var(--muted);font-weight:800}.room-code{letter-spacing:6px;color:var(--cyan);text-shadow:0 0 10px #4fd2ff80;font-size:2.3rem;font-weight:900}.qr{width:180px;height:180px;image-rendering:pixelated;background:#fff;border:4px solid #fff;border-radius:8px;margin:6px auto;display:block}.level-box{background:var(--bg2);border:3px solid var(--line);border-left:8px solid var(--cyan);border-radius:var(--radius);gap:8px;padding:12px;display:grid}.level-main{color:var(--cyan);font-size:1.3rem;font-weight:900}.picker h3{margin-bottom:2px}.char-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:8px;display:grid}.char-card{border:3px solid var(--line);background:var(--bg2);cursor:pointer;min-height:120px;box-shadow:0 4px 0 var(--line);border-radius:12px;justify-items:center;gap:2px;padding:10px 6px;display:grid}.char-card canvas{image-rendering:pixelated;border:2px solid var(--line);background:#2f3650;border-radius:8px}.char-card:hover:not([disabled]){border-color:var(--c)}.char-card.mine{border-color:var(--c);box-shadow:0 0 0 2px var(--line), 0 0 16px var(--c);background:#2c3654}.char-card.taken{opacity:.45;cursor:not-allowed}.char-grid.locked .char-card:not(.mine){opacity:.35}.char-name{font-weight:900}.char-sub{color:var(--muted);text-align:center;font-size:.75rem}.players{gap:6px;margin:0;padding:0;list-style:none;display:grid}.player{background:var(--bg2);border:2px solid var(--line);border-radius:10px;align-items:center;gap:8px;min-height:48px;padding:6px 12px;display:flex}.player canvas{image-rendering:pixelated}.player.off{opacity:.55}.player.empty{border-style:dashed;border-color:var(--steel-lo);color:var(--muted);justify-content:center}.pname{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:800;overflow:hidden}.dot{border:2px solid var(--line);border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.badge{background:var(--cyan);color:#0f2433;border-radius:6px;padding:2px 6px;font-size:.8rem;font-weight:800}.badge.warn{background:var(--danger);color:#fff}.ready{color:var(--muted);font-size:.9rem}.ready.yes{color:var(--lime);font-weight:900}.tutorial{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;display:grid}@media (max-width:720px){.tutorial{grid-template-columns:1fr}}.tut{background:var(--bg2);border:2px solid var(--line);border-radius:var(--radius);text-align:center;padding:12px}.tut p{color:var(--muted);margin:8px 0 0;font-size:.95rem}.tut-icon{font-size:2rem}.tut-math{min-height:2.2rem;color:var(--lime);font-size:1.4rem;font-weight:800}.env-demo{border:3px solid var(--line);color:#fff;border-radius:6px;place-items:center;width:56px;height:40px;margin:0 auto;font-size:1.2rem;display:grid}.env-demo.big{width:84px;height:60px;margin-bottom:8px;font-size:1.8rem}.rotate-hint{text-align:center;color:var(--muted);display:none}@media (orientation:portrait) and (max-width:900px){.rotate-hint{display:block}}#game{background:var(--bg2);min-height:0;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);flex-direction:column;flex:1;display:flex;position:relative}#stage{touch-action:none;flex:1;min-height:0;position:relative;overflow:hidden}#stage canvas{image-rendering:pixelated}.hud{background:var(--panel);border-bottom:4px solid var(--steel);box-shadow:0 4px 0 var(--line);z-index:2;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 10px;display:flex;position:relative}.hud-sci{flex:200px;align-items:center;gap:8px;min-width:0;display:flex}.sci-line{color:#bfefff;border:2px solid var(--cyan);background:#16303f;border-radius:8px;max-width:270px;padding:6px 10px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.9rem;font-weight:700;box-shadow:0 0 10px #4fd2ff40}.hud-center{align-items:center;gap:12px;display:flex}.timer{font-variant-numeric:tabular-nums;text-align:center;min-width:4.2ch;color:var(--lime);text-shadow:0 0 10px #7ee35b80;background:var(--line);border-radius:8px;padding:0 10px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:2rem;font-weight:900}.timer.urgent{color:#ff8f8f;text-shadow:0 0 10px #e5484d99}.towers-wrap{justify-items:center;gap:2px;display:grid}.tower-cells{gap:4px;display:flex}.cell{border:3px solid var(--line);background:var(--steel-lo);color:#fff;border-radius:8px;grid-template-rows:1fr auto;place-items:center;width:34px;height:40px;font-weight:900;display:grid;position:relative}.cell .glyph{font-size:.95rem;line-height:1}.cell .lbl{font-size:.7rem}.cell .st{background:var(--line);border-radius:6px;padding:0 3px;font-size:.75rem;position:absolute;top:-8px;right:-8px}.cell.active{background:var(--c);opacity:.9}.cell.unlocked{background:var(--c);box-shadow:0 0 0 2px #fff inset, 0 0 10px var(--c)}.cell.mine{outline:3px solid var(--lime);animation:1s infinite alternate pulse}.tower-count{color:var(--muted);font-size:.8rem;font-weight:800}.hud-right{flex-wrap:wrap;flex:260px;justify-content:flex-end;align-items:center;gap:10px;display:flex}.code-wrap{text-align:center}.tiny{color:var(--muted);font-size:.7rem}.code-pad{gap:3px;display:flex}.digit{background:var(--line);width:26px;height:32px;color:var(--lime);border:2px solid var(--steel-lo);border-radius:6px;place-items:center;font-family:ui-monospace,Consolas,monospace;font-size:1.15rem;font-weight:900;display:grid}.digit.empty{color:var(--steel-lo)}.team{flex-wrap:wrap;gap:6px;display:flex}.mate{background:var(--bg2);border:2px solid var(--line);border-radius:999px;align-items:center;gap:4px;max-width:130px;padding:1px 8px 1px 3px;font-size:.85rem;display:inline-flex}.mate canvas{image-rendering:pixelated}.mate.me{border-color:var(--cyan)}.mate.off{opacity:.5}.mate.esc{border-color:var(--lime)}.mname{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hud-buttons{gap:6px;display:flex}.clue-btn{box-shadow:none}#actionbar{right:calc(12px + var(--safe-r));bottom:calc(12px + var(--safe-b));z-index:10;position:absolute}.action-btn{border:3px solid var(--line);background:var(--c);color:#fff;min-width:64px;min-height:64px;box-shadow:0 5px 0 var(--line), 0 0 18px var(--c);cursor:pointer;text-shadow:1px 1px #00000080;touch-action:manipulation;border-radius:14px;padding:10px 18px;font-size:1.1rem;font-weight:900;animation:1.2s ease-in-out infinite alternate bob}.action-btn kbd{background:#00000059;border-radius:4px;margin-left:8px;padding:0 5px;font-size:.8rem}@media (pointer:coarse){.action-btn kbd{display:none}}.conn-banner{top:calc(8px + var(--safe-t));background:var(--danger);color:#fff;z-index:60;border-radius:999px;padding:8px 16px;font-weight:800;transition:transform .2s;position:fixed;left:50%;transform:translate(-50%,-150%)}.conn-banner.show{transform:translate(-50%)}.countdown{color:var(--lime);z-index:25;text-shadow:0 0 30px #7ee35b99, 6px 6px 0 var(--line);pointer-events:none;place-items:center;font-family:ui-monospace,Consolas,monospace;font-size:9rem;font-weight:900;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.countdown.show{display:grid}.modal{z-index:40;padding:calc(10px + var(--safe-t)) calc(10px + var(--safe-r)) calc(10px + var(--safe-b)) calc(10px + var(--safe-l));background:#0c0e1699;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal-card{background:var(--panel);border:4px solid var(--accent,var(--steel));width:min(440px,100%);max-height:100%;box-shadow:0 0 0 4px var(--line), 0 8px 0 4px var(--line), 0 0 30px #00000080;border-radius:16px;padding:16px;overflow:auto}.modal-card.wide{width:min(720px,100%)}.modal-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.modal-head h2{color:var(--text);margin:0;font-size:1.15rem}.instruction{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:.85rem;font-weight:800}.math{text-align:center;font-variant-numeric:tabular-nums;margin:10px 0;font-size:1.9rem;font-weight:800;line-height:1.6}.math.prompt{border:2px solid var(--cyan);color:#e9fbff;background:#16303f;border-radius:12px;padding:8px;box-shadow:inset 0 0 18px #4fd2ff33}.math.small{text-align:left;margin:4px 0;font-size:1.15rem}.math b{color:var(--amber)}.math sup{font-size:.6em}.math .var{color:var(--lime);font-family:Georgia,serif}.math .unk{color:var(--lime)}.math .star{color:var(--amber);text-shadow:0 0 6px #f2c14eb3}.math .fr{vertical-align:middle;text-align:center;flex-direction:column;font-size:.7em;line-height:1.1;display:inline-flex}.math .fr>span:first-child{border-bottom:2px solid;padding:0 2px}.math .rad{border-top:2px solid;padding:0 2px}.prompt{font-size:clamp(1.3rem,4.5vw,2rem)}.star-note{border:2px dashed var(--amber);color:#ffe2a0;background:#f2c14e1f;border-radius:10px;margin-top:6px;padding:6px 10px;font-size:.95rem}.star-note.known{border-style:solid;font-weight:800}.answer-box,.pin-boxes{text-align:center;letter-spacing:6px;margin:8px 0;font-size:2.2rem;font-weight:900}.answer-box{background:var(--line);color:var(--lime);border:3px solid var(--steel-lo);border-radius:12px;min-height:60px;font-family:ui-monospace,Consolas,monospace}.pin-boxes{justify-content:center;gap:8px;display:flex}.pin-box{background:var(--line);width:52px;height:64px;color:var(--lime);border:3px solid var(--steel-lo);letter-spacing:0;border-radius:10px;place-items:center;font-family:ui-monospace,Consolas,monospace;display:grid}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;display:grid}.keypad.disabled{opacity:.4;pointer-events:none}.key{border:3px solid var(--line);background:var(--panel2);min-height:56px;color:var(--text);box-shadow:inset 0 2px 0 #ffffff1f, 0 4px 0 var(--line);cursor:pointer;touch-action:manipulation;border-radius:10px;font-size:1.5rem;font-weight:900}.key:active{box-shadow:0 1px 0 var(--line);transform:translateY(3px)}.key.alt{background:#4a3a52}.key.go{background:var(--lime);color:#14260f}.feedback{text-align:center;border-radius:8px;padding:6px;font-weight:800}.feedback.bad{color:#ff9c9c;border:2px solid var(--danger);background:#e5484d2e}.feedback.good{color:var(--lime);border:2px solid var(--lime);background:#7ee35b26}.big-ok{color:var(--lime);text-align:center;font-size:1.4rem;font-weight:900}.solved-by{border:3px solid var(--c);background:var(--bg2);border-radius:12px;justify-content:center;align-items:center;gap:12px;padding:8px;font-weight:800;display:flex}.solved-by canvas{image-rendering:pixelated}.hints{gap:6px;margin-top:10px;display:grid}.hint{background:var(--bg2);border-left:4px solid var(--cyan);border-radius:6px;padding:6px 10px;font-size:.95rem}.escape-list{color:var(--muted);gap:4px;margin:12px 0 0;padding:0;list-style:none;display:grid}.escape-list .done{color:var(--lime);font-weight:800}.clues{gap:8px;margin:0;padding:0;list-style:none;display:grid}.clue{background:var(--bg2);border:2px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.clue.star{border-color:var(--amber)}.clue-text{flex:1;min-width:160px}.tower-chip{color:#fff;border:2px solid var(--line);white-space:nowrap;border-radius:6px;padding:2px 8px;font-weight:900}.clue-card{text-align:center}.setting{border-bottom:1px solid var(--steel-lo);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.setting .input{width:auto}.howto ol{padding-left:20px;line-height:1.6}.shake{animation:.35s shake}.results.won h2{color:var(--lime)}.results.lost h2{color:#ff8f8f}.contrib{border-collapse:collapse;background:var(--bg2);border-radius:10px;width:100%;overflow:hidden}.contrib th,.contrib td{border-bottom:1px solid var(--steel-lo);text-align:center;padding:8px}.contrib th{color:var(--muted);font-size:.85rem}.contrib td:first-child{text-align:left;font-weight:800}.who{align-items:center;gap:6px;display:inline-flex}.who canvas{image-rendering:pixelated}.review{gap:8px;padding:0;list-style:none;display:grid}.review-item{background:var(--bg2);border:2px solid var(--line);border-radius:10px;padding:8px 12px}.review-item.mine{border-color:var(--cyan);box-shadow:0 0 10px #4fd2ff4d}.review-answer{color:var(--lime);font-weight:900}#toast{left:50%;bottom:calc(90px + var(--safe-b));background:var(--line);color:var(--text);border:2px solid var(--steel-lo);z-index:70;text-align:center;border-radius:999px;max-width:90vw;padding:10px 18px;font-weight:700;transition:transform .2s;position:fixed;transform:translate(-50%,200%)}#toast.show{transform:translate(-50%)}#toast.good{border-color:var(--lime);color:var(--lime)}#toast.bad{border-color:var(--danger);color:#ff9c9c}@keyframes pulse{0%{outline-color:var(--lime)}to{outline-color:#7ee35b40}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.reduced-motion *,.reduced-motion :before{transition:none!important;animation:none!important}@media (max-height:520px){.hud{gap:6px;padding:3px 8px}.timer{font-size:1.5rem}.cell{width:28px;height:34px}.hud .portrait{width:40px!important;height:40px!important}.sci-line{padding:3px 8px;font-size:.8rem}.modal-card{padding:10px}.key{min-height:46px}.math{margin:4px 0;font-size:1.4rem}}.view-controls{left:calc(10px + var(--safe-l));bottom:calc(12px + var(--safe-b));z-index:5;gap:6px;display:grid;position:absolute}.view-controls .icon-btn{box-shadow:0 3px 0 var(--line);font-weight:900}.fix{vertical-align:top;flex-direction:column;align-items:center;margin:0 1px;line-height:1.05;display:inline-flex}.fix-old{color:#9fb6c4;-webkit-text-decoration:line-through #ff3b3b;text-decoration:line-through #ff3b3b;text-decoration-thickness:3px}.fix-new{color:#ff5c5c;text-shadow:0 0 6px #ff3b3b80;font-size:.95em;font-weight:900;transform:rotate(-4deg)}.icon-btn.off{opacity:.55}.range-wrap{align-items:center;gap:8px;display:inline-flex}.range{width:140px;accent-color:var(--lime);min-height:44px}.range-val{text-align:right;min-width:3.5ch;color:var(--muted);font-variant-numeric:tabular-nums}.title-screen{z-index:100;background:#000;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.title-frame{background:#140f24;border:3px solid #a6ff7a;border-radius:6px;animation:6s step-end infinite px-neon;position:absolute;top:3.5%;bottom:3.5%;left:3.5%;right:3.5%;overflow:hidden;box-shadow:0 0 0 2px #2f7a1c,0 0 10px 2px #7ee35be6,0 0 28px 6px #7ee35b73,inset 0 0 12px 2px #7ee35b8c}.title-vignette{pointer-events:none;background:radial-gradient(75% 70% at 50% 45%,#0000 55%,#00000073 80%,#000000d9 100%);position:absolute;top:0;bottom:0;left:0;right:0}.title-art{image-rendering:pixelated;background:#140f24 -webkit-image-set(url(/img/title.webp) 1x type("image/webp"),url(/img/title.jpg) 1x type("image/jpeg")) 50% 22%/cover no-repeat;background:#140f24 image-set("/img/title.webp" 1x type("image/webp"),"/img/title.jpg" 1x type("image/jpeg")) 50% 22%/cover no-repeat;animation:6s steps(6,end) infinite alternate px-zoom;position:absolute;top:0;bottom:0;left:0;right:0}.title-scan{z-index:4;pointer-events:none;background:repeating-linear-gradient(#00000024 0 2px,#0000 2px 4px);position:absolute;top:0;bottom:0;left:0;right:0}.title-bottom{left:0;right:0;bottom:calc(2.5% + var(--safe-b));z-index:2;background:linear-gradient(#0a081400,#0a08148c);justify-items:center;gap:12px;padding-top:40px;display:grid;position:absolute}.start-btn{cursor:pointer;letter-spacing:8px;color:#fff;clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px));text-shadow:4px 4px #1b3a12;touch-action:manipulation;background:#7ee35b;border:0;align-items:center;gap:18px;min-height:64px;padding:16px 40px 14px;font:900 clamp(1.6rem,4.5vw,2.6rem)/1 ui-monospace,Cascadia Mono,Consolas,Courier New,monospace;animation:.8s step-end infinite px-bob;display:inline-flex;position:relative;box-shadow:inset 0 -8px #3f8f2f,inset 0 8px #b6ff8a,inset 8px 0 #9cf07a,inset -8px 0 #5cc23d}.start-btn:after{content:"";pointer-events:none;background:#fff0;position:absolute;top:0;bottom:0;left:0;right:0}.start-btn:focus-visible{filter:drop-shadow(0 0 #fff)drop-shadow(4px 0 #fff)drop-shadow(-4px 0 #fff)drop-shadow(0 4px #fff)drop-shadow(0 -4px #fff);outline:none}.start-btn:hover{background:#95f074}.start-label{animation:1.2s step-end infinite px-color}.start-arrow{color:#1b3a12;text-shadow:none;font-size:.7em;animation:.5s step-end infinite px-blink}.start-arrow.left{animation-name:px-blink,px-nudge-r;animation-duration:.5s,.5s}.start-arrow.right{animation-name:px-blink,px-nudge-l;animation-duration:.5s,.5s}.start-btn.pressed{animation:.3s steps(3,end) forwards px-press}.title-hint{color:#fff;letter-spacing:3px;text-shadow:2px 2px #000;margin:0;font:800 clamp(.8rem,2vw,1rem) ui-monospace,Consolas,monospace;animation:1s step-end infinite px-blink}.title-screen.flash:before{content:"";z-index:3;pointer-events:none;background:#fff;animation:.38s step-end forwards px-flash;position:absolute;top:0;bottom:0;left:0;right:0}.title-screen.calm .title-frame,.title-screen.calm .title-art,.title-screen.calm .start-btn,.title-screen.calm .start-label,.title-screen.calm .start-arrow,.title-screen.calm .title-hint{animation:none}.px-wipe{z-index:110;pointer-events:none;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.px-cell{opacity:0;background:#1b1f2e;animation:60ms step-end forwards px-in;box-shadow:inset 0 0 0 2px #2a2f45}.px-cell.out{opacity:1;animation:60ms step-end forwards px-out}@keyframes px-bob{0%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes px-color{0%{color:#fff}33%{color:#ffe066}66%{color:#d6ff9e}}@keyframes px-blink{0%{opacity:1}50%{opacity:0}}@keyframes px-nudge-r{0%{transform:translate(0)}50%{transform:translate(4px)}}@keyframes px-nudge-l{0%{transform:translate(0)}50%{transform:translate(-4px)}}@keyframes px-press{0%{transform:translateY(0)scale(1)}34%{transform:translateY(6px)scale(.96)}67%{transform:translateY(-8px)scale(1.06)}to{transform:translateY(0)scale(1.1)}}@keyframes px-flash{0%{opacity:.9}25%{opacity:0}50%{opacity:.7}75%{opacity:0}to{opacity:0}}@keyframes px-neon{0%,88%,91%,94%,to{filter:none;border-color:#a6ff7a}89%,92%{filter:brightness(.75);border-color:#5fae45}}@keyframes px-zoom{0%{transform:scale(1)}to{transform:scale(1.03)}}@keyframes px-in{to{opacity:1}}@keyframes px-out{to{opacity:0}}@media (max-height:640px){.start-btn{gap:12px;min-height:52px;padding:10px 28px 8px;font-size:1.5rem}.title-bottom{bottom:calc(1.5% + var(--safe-b));gap:6px;padding-top:24px}}
