:root{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#09090c;font-family:VT323,monospace;font-weight:400;line-height:1.2}html{height:var(--app-height,100dvh)}body,#root{min-height:100%;overflow-x:hidden}body{overscroll-behavior-y:contain;background:#09090c;margin:0;position:relative}html.scroll-locked,body.scroll-locked{height:var(--app-height,100dvh);overscroll-behavior:none;overflow:hidden}body.scroll-locked{touch-action:none}body:after{content:"";z-index:10000;pointer-events:none;background:radial-gradient(circle,#0000 70%,#00000080 100%);width:100vw;height:100vh;position:fixed;top:0;left:0}@keyframes flicker{0%{opacity:.985}50%{opacity:.975}to{opacity:.985}}#root:before{content:" ";z-index:9998;pointer-events:none;background:linear-gradient(#12101000 50%,#0000001a 50%) 0 0/100% 3px,linear-gradient(90deg,#ff000005,#00ff0003,#0000ff05) 0 0/4px 100%;animation:1.6s ease-in-out infinite flicker;display:block;position:fixed;inset:0}#root{background:radial-gradient(circle,#17171d 0%,#09090c 100%);min-height:100dvh;position:relative}button,select,input,textarea{touch-action:manipulation}a{color:inherit}:root{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;image-rendering:pixelated;background:#000;font-family:"Jersey 10",monospace;font-weight:400;line-height:1.2}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;image-rendering:pixelated}html,body,#root{min-height:100%;overflow-x:hidden}body{overscroll-behavior-y:contain;background:#000;margin:0}#root{min-height:100dvh}[data-zone=flowers]{--zone-accent:#ff8ea1;--zone-accent-dim:#b65f7a;--zone-accent-glow:#ff8ea159;--zone-tile-a:#ffb3bd;--zone-tile-a-text:#7a1d2d;--zone-tile-b:#ffe58a;--zone-tile-b-text:#665000;--zone-tile-c:#b7ecff;--zone-tile-c-text:#0f4f66;--zone-tile-d:#b8f5a5;--zone-tile-d-text:#1f5d1f;--zone-bg:#1a1116;--zone-bg-alt:#120b10;--zone-border:#6c4858;--zone-msg-color:#ffd7a0;--zone-empty-border:#3f2a33}[data-zone=dungeon]{--zone-accent:#c9953d;--zone-accent-dim:#7b5725;--zone-accent-glow:#c9953d52;--zone-tile-a:#4e463e;--zone-tile-a-text:#f0dfc3;--zone-tile-b:#7a4717;--zone-tile-b-text:#f3d59e;--zone-tile-c:#2c2924;--zone-tile-c-text:#d7c9ad;--zone-tile-d:#a9781f;--zone-tile-d-text:#ffd86a;--zone-bg:#1a1611;--zone-bg-alt:#120f0b;--zone-border:#5d4b36;--zone-msg-color:#e3c085;--zone-empty-border:#352b1f}[data-zone=forest]{--zone-accent:#2d9e2d;--zone-accent-dim:#1a5a1a;--zone-accent-glow:#2d9e2d59;--zone-tile-a:#144236;--zone-tile-a-text:#7fff7f;--zone-tile-b:#2f6b55;--zone-tile-b-text:#cf8;--zone-tile-c:#241438;--zone-tile-c-text:#f3c2e6;--zone-tile-d:#4f6f9b;--zone-tile-d-text:#fd8;--zone-bg:#0a1a0a;--zone-bg-alt:#050f05;--zone-border:#2d5a1b;--zone-msg-color:#7fff7f;--zone-empty-border:#1a2a1a}[data-zone=ocean]{--zone-accent:#46d0e0;--zone-accent-dim:#1a7a94;--zone-accent-glow:#46d0e059;--zone-tile-a:#1d6a9e;--zone-tile-a-text:#e0f6ff;--zone-tile-b:#12808e;--zone-tile-b-text:#e2fff8;--zone-tile-c:#173f70;--zone-tile-c-text:#a8daff;--zone-tile-d:#0f5c56;--zone-tile-d-text:#b8ffe9;--zone-bg:#061527;--zone-bg-alt:#04101f;--zone-border:#1e5c7a;--zone-msg-color:#aee8ff;--zone-empty-border:#123248}[data-zone=volcano]{--zone-accent:#f40;--zone-accent-dim:#820;--zone-accent-glow:#ff440059;--zone-tile-a:#4d1100;--zone-tile-a-text:#fa4;--zone-tile-b:#6b2200;--zone-tile-b-text:#fd8;--zone-tile-c:#2a2a2a;--zone-tile-c-text:#ccc;--zone-tile-d:#1a0a00;--zone-tile-d-text:#864;--zone-bg:#140500;--zone-bg-alt:#0a0300;--zone-border:#520;--zone-msg-color:#fa4;--zone-empty-border:#2a1000}[data-zone=cosmos]{--zone-accent:#84f;--zone-accent-dim:#418;--zone-accent-glow:#8844ff59;--zone-tile-a:#0d0066;--zone-tile-a-text:#caf;--zone-tile-b:#001a4d;--zone-tile-b-text:#8df;--zone-tile-c:#1a0044;--zone-tile-c-text:#e8f;--zone-tile-d:#00010a;--zone-tile-d-text:#68a;--zone-bg:#00020f;--zone-bg-alt:#00010a;--zone-border:#214;--zone-msg-color:#caf;--zone-empty-border:#103}.app-shell{height:var(--app-height,100dvh);background:var(--zone-bg);transition:background .5s;position:relative;overflow:hidden}.app-shell.playing-mode{padding:0}[data-zone=dungeon] .app-shell{background:repeating-linear-gradient(90deg,#0000 0 31px,#92785821 31px 32px),repeating-linear-gradient(0deg,#0000 0 31px,#92785821 31px 32px),radial-gradient(at 50% 24%,#c9953d2b 0%,#0000 58%),radial-gradient(at 50% 110%,#46342047 0%,#0000 62%),#1a1611}[data-zone=flowers] .app-shell{background:radial-gradient(at 20% 15%,#ff8ea138 0%,#0000 55%),radial-gradient(at 82% 18%,#ffe58a33 0%,#0000 55%),radial-gradient(at 48% 88%,#b8f5a533 0%,#0000 50%),radial-gradient(at 72% 62%,#b7ecff2e 0%,#0000 46%),#1a1116}[data-zone=forest] .app-shell{background:radial-gradient(at 20% 0,#143c0a99 0%,#0000 50%),radial-gradient(at 80% 0,#0f320899 0%,#0000 50%),radial-gradient(at 50% 0,#0a280566 0%,#0000 40%),#0a1a0a}[data-zone=volcano] .app-shell{background:radial-gradient(at 50% 100%,#c8320040 0%,#0000 60%),radial-gradient(at 20% 100%,#ff500026 0%,#0000 40%),radial-gradient(at 80% 100%,#ff500026 0%,#0000 40%),#140500}[data-zone=cosmos] .app-shell{background-image:radial-gradient(1px 1px at 12% 18%, #ffffffe6 0%, transparent 100%), radial-gradient(1px 1px at 34% 7%, #fff9 0%, transparent 100%), radial-gradient(1px 1px at 67% 24%, #fffc 0%, transparent 100%), radial-gradient(1px 1px at 88% 43%, #ffffff80 0%, transparent 100%), radial-gradient(1px 1px at 45% 71%, #ffffffb3 0%, transparent 100%), radial-gradient(1px 1px at 93% 62%, #fff9 0%, transparent 100%), radial-gradient(1px 1px at 5% 55%, #fff6 0%, transparent 100%), radial-gradient(1px 1px at 78% 88%, #ffffffb3 0%, transparent 100%), #00020f}[data-zone=dungeon].zone-art-bg{background-image:url(/zones/dungeon.webp)}[data-zone=flowers].zone-art-bg{background-image:url(/zones/flowers.webp)}[data-zone=forest].zone-art-bg{background-image:url(/zones/forest.webp)}[data-zone=ocean].zone-art-bg{background-image:url(/zones/ocean.webp)}[data-zone=volcano].zone-art-bg{background-image:url(/zones/volcano.webp)}[data-zone=cosmos].zone-art-bg{background-image:url(/zones/cosmos.webp)}.zone-art-bg{background-position:50%;background-repeat:no-repeat;background-size:cover}.intro-screen{min-height:100%;padding:16px 20px calc(24px + env(safe-area-inset-bottom,0px));flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.intro-art{z-index:0;background:#060606 url(/title.webp) top/cover no-repeat;position:absolute;inset:0}.intro-art:after{content:"";pointer-events:none;background:linear-gradient(#0000001a 30%,#000000bf 100%);position:absolute;inset:0}.intro-highscores{top:calc(14px + constant(safe-area-inset-top));top:calc(14px + env(safe-area-inset-top,0px));border:1px solid color-mix(in srgb, var(--zone-accent) 50%, #fff 50%);z-index:2;background:#05050aa3;width:min(88vw,280px);padding:10px 10px 9px;transition:opacity 1.1s,transform 1s;position:absolute;right:14px;box-shadow:0 6px 16px #00000073}.intro-highscores.hidden{opacity:0;transform:translateY(10px)}.intro-highscores.visible{opacity:1;transform:translateY(0)}.intro-highscores-title{color:color-mix(in srgb, var(--zone-accent) 82%, #fff 18%);letter-spacing:1.2px;margin-bottom:7px;font-size:1.1rem}.intro-highscores-table{gap:3px;display:grid}.intro-highscores-row{background:#ffffff08;border-bottom:1px solid #ffffff29;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:5px 4px 6px;font-size:1.35rem;display:grid}.intro-highscores-row .rank{color:color-mix(in srgb, var(--zone-msg-color) 75%, #fff 25%)}.intro-highscores-row .initials{color:#fff;letter-spacing:1.4px;font-size:1.45rem}.intro-highscores-row .score{color:var(--zone-accent);text-shadow:0 0 8px color-mix(in srgb, var(--zone-accent) 50%, transparent 50%);font-size:1.8rem;line-height:1}.intro-highscores-empty{color:color-mix(in srgb, var(--zone-msg-color) 78%, #fff 22%);text-align:center;letter-spacing:1px;padding:8px 4px;font-size:1.25rem}.intro-lower{border:2px solid var(--zone-border);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:1;width:min(100%,560px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 40px);background:#08080c7a;flex-direction:column;gap:14px;margin:0 auto;padding:18px 22px 24px;display:flex;position:relative;overflow-y:auto;box-shadow:0 8px 24px #0000006b}.intro-lower.title-step{width:min(100%,500px);padding:18px 22px 22px}.intro-lower.setup-step{background:#08080cad;width:min(100%,620px)}.intro-zone-name{color:var(--zone-accent);letter-spacing:3px;text-align:center;font-size:.82rem}.intro-title{color:#fff;text-align:center;text-shadow:3px 3px 0 var(--zone-accent-dim);margin:0;font-size:4rem;line-height:1.1}.intro-subtitle{color:var(--zone-msg-color);text-align:center;margin:0;font-family:VT323,monospace;font-size:2.1rem;line-height:1.2}.intro-rules-note{color:#ffffffe0;text-align:center;margin:-2px 0 0;font-family:VT323,monospace;font-size:1.75rem;line-height:1.2}.intro-preview-row{opacity:.7;grid-template-columns:repeat(10,minmax(0,1fr));gap:2px;display:grid}.intro-preview-cell{border-width:1px;min-height:30px;font-size:clamp(.91rem,3.3cqw,1.19rem)}.intro-controls{flex-direction:column;gap:10px;display:flex}.control-group{color:var(--zone-msg-color);grid-template-columns:1fr auto;align-items:center;gap:14px;font-size:1.25rem;display:grid}.control-group select{border:2px solid var(--zone-border);color:#fff;background:#00000073;max-width:220px;min-height:40px;padding:8px 10px;font-family:"Jersey 10",monospace;font-size:1.1rem}.intro-start-btn{background:var(--zone-accent-dim);border:3px solid var(--zone-accent);color:#fff;cursor:pointer;letter-spacing:2px;width:100%;min-height:58px;padding:12px 14px;font-family:"Jersey 10",monospace;font-size:2.35rem;transition:none;box-shadow:4px 4px #00000080}.intro-actions{grid-template-columns:minmax(100px,.55fr) minmax(0,1fr);gap:10px;display:grid}.intro-back-btn{min-height:58px;padding:10px 12px}.intro-start-btn:hover{background:var(--zone-accent);transform:translate(2px,2px);box-shadow:2px 2px #00000080}.intro-start-label{animation:.35s step-end infinite pressStartBlink;display:inline-block}@keyframes pressStartBlink{0%,49%{opacity:1}50%,to{opacity:.3}}.intro-stats{gap:8px;display:flex}.intro-stat{border:2px solid var(--zone-border);text-align:center;background:#0006;flex:1;padding:6px}.intro-stat span{color:var(--zone-accent);margin-bottom:3px;font-size:.66rem;display:block}.intro-stat strong{font-size:1.32rem;display:block}.install-card{border:2px solid var(--zone-accent);color:var(--zone-msg-color);background:#0009;padding:10px;font-size:1.1rem;line-height:1.8}.game-screen{background:0 0;flex-direction:column;min-height:100%;display:flex;overflow:hidden}.game-hud{padding:6px 12px;padding-top:calc(6px + constant(safe-area-inset-top));padding-top:calc(6px + env(safe-area-inset-top,0px));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:3;background:linear-gradient(#00000080 0%,#0003 100%);border-bottom:1px solid #ffffff1a;align-items:center;gap:10px;display:flex;position:relative}.hud-lv{color:var(--zone-accent);white-space:nowrap;text-shadow:0 1px 3px #000c;min-width:3.5rem;font-size:1.5rem}.xp-container{flex-direction:column;flex:1;gap:3px;display:flex}.xp-label{display:none}.xp-bar-bg{background:#0006;border-radius:999px;height:5px;overflow:hidden}.xp-bar-fill{background:var(--zone-accent);border-radius:999px;height:100%;transition:width .3s ease-out}.hud-actions{gap:6px;display:flex}.icon-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000061;border:1px solid #ffffff29;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;padding:0;transition:background .15s;display:flex}.icon-btn:hover:not(:disabled){background:var(--zone-accent-dim);color:#fff}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.game-info-bar{z-index:3;background:0 0;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 12px 8px;display:flex;position:relative}.message-slot{color:var(--zone-msg-color);letter-spacing:.5px;-webkit-line-clamp:2;text-shadow:0 1px 3px #000000e6,0 0 10px #0009;-webkit-box-orient:vertical;flex:1;min-width:0;font-family:VT323,monospace;font-size:1.6rem;line-height:1.25;display:-webkit-box;overflow:hidden}.message-slot:before{content:"» ";color:var(--zone-accent)}.game-info-bar.invalid-feedback{animation:.32s steps(2,end) messageInvalidFlash}.game-info-bar.invalid-feedback .message-slot{color:#ffb3b3}.chain-meter{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;background:#00000052;border:1px solid #ffffff24;border-radius:10px;flex-shrink:0;min-width:132px;padding:5px 10px}.chain-meter-top,.chain-meter-bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}.chain-meter-top span,.chain-meter-bottom{color:var(--zone-msg-color)}.chain-meter-top span{letter-spacing:2px;text-transform:uppercase;font-size:.78rem}.chain-meter-top strong{color:var(--zone-accent);font-family:"Jersey 10",monospace;font-size:1.45rem;line-height:1}.chain-meter-track{background:#ffffff24;border:none;border-radius:999px;height:5px;margin:4px 0;overflow:hidden}.chain-meter-fill{background:var(--zone-accent);border-radius:999px;width:0;height:100%;transition:width .16s ease-out,background .16s ease-out}.chain-meter-bottom{font-family:VT323,monospace;font-size:1.1rem;line-height:1}.chain-meter-bottom span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chain-meter.is-ready{border-color:#4fa;box-shadow:0 0 12px #4fa3}.chain-meter.is-ready .chain-meter-fill{background:#4fa}.chain-meter.is-over{border-color:#ff5f5f}.chain-meter.is-over .chain-meter-fill{background:#ff5f5f}.board-stage{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex;position:relative;overflow:hidden}.board-wrap{z-index:2;justify-content:center;width:100%;padding:12px;display:flex;position:relative}.board-wrap.zone-reveal{animation:1.1s step-end both boardGate,.65s ease-out 1.1s both boardReveal}@keyframes boardGate{0%{visibility:hidden}to{visibility:visible}}@keyframes boardReveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.board{gap:6px;display:grid;position:relative;container-type:inline-size}.invalid-shake .board-wrap{animation:.3s steps(2,end) boardInvalidShake}.line-board{align-content:start}.board-shifting{animation:.35s ease-in-out boardShift}@keyframes boardShift{0%{transform:translateY(0)}50%{transform:translateY(2px)}to{transform:translateY(0)}}.guide-layer,.connection-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.guide-layer{z-index:5}.guide-layer line{stroke:#e6e6e6cc;stroke-width:2px;stroke-dasharray:6 7;stroke-linecap:round;filter:none}.connection-layer{z-index:15}.connection-layer line{stroke:var(--zone-accent);stroke-width:4px;stroke-linecap:square;filter:drop-shadow(0 0 4px var(--zone-accent-glow))}.connection-layer.is-clearing line{animation:.58s ease-out forwards lineClearCharge}.cell{cursor:pointer;color:inherit;aspect-ratio:1;z-index:10;background:0 0;border:1px solid;justify-content:center;align-items:center;min-height:42px;padding:0;font-family:Arial,Helvetica Neue,sans-serif;font-size:clamp(1.4rem,5cqw,4rem);font-weight:700;transition:none;display:flex;position:relative}.cell span{pointer-events:none}.cell.tile-a{background:color-mix(in srgb, var(--zone-tile-a) 90%, transparent);border-color:color-mix(in srgb, var(--zone-accent-dim) 55%, transparent);color:var(--zone-tile-a-text)}.cell.tile-b{background:color-mix(in srgb, var(--zone-tile-b) 90%, transparent);border-color:color-mix(in srgb, var(--zone-accent-dim) 55%, transparent);color:var(--zone-tile-b-text)}.cell.tile-c{background:color-mix(in srgb, var(--zone-tile-c) 90%, transparent);border-color:color-mix(in srgb, var(--zone-accent-dim) 55%, transparent);color:var(--zone-tile-c-text)}.cell.tile-d{background:color-mix(in srgb, var(--zone-tile-d) 90%, transparent);border-color:color-mix(in srgb, var(--zone-accent-dim) 55%, transparent);color:var(--zone-tile-d-text)}.cell.empty{border:1px dashed color-mix(in srgb, var(--zone-empty-border) 65%, transparent);cursor:default;background:#0000002e}.cell.selected{box-shadow:0 0 0 2px var(--zone-accent), inset 0 0 0 1px var(--zone-accent);z-index:20;animation:.12s linear infinite selectShake;color:#000!important;border-color:var(--zone-accent)!important;background:#fff!important}.cell.chain-ready{box-shadow:0 0 12px var(--zone-accent-glow), 0 0 24px var(--zone-accent-glow), inset 0 0 0 1px var(--zone-accent);animation:.4s ease-in-out infinite chainReadyPulse}.cell.clearing{animation:cellClearPop .5s cubic-bezier(.17, .84, .44, 1) var(--clear-delay,0s) forwards;box-shadow:0 0 14px var(--zone-accent-glow), 0 0 28px var(--zone-accent-glow);z-index:25;border-color:#fff!important}.cell.selected span{color:#000}.cell.hinted{box-shadow:0 0 6px var(--zone-accent-glow);animation:.8s ease-in-out infinite hintGlow;border-color:var(--zone-accent)!important}.cell.entering{animation:cellEnter .46s cubic-bezier(.2, .88, .28, 1.15) var(--enter-delay,0s) both}@keyframes cellEnter{0%{opacity:0;filter:brightness(1.5);transform:translateY(-42px)scale(.82)}68%{opacity:1;filter:brightness(1.18);transform:translateY(4px)scale(1.04)}to{opacity:1;filter:brightness();transform:translateY(0)scale(1)}}@keyframes selectShake{0%{transform:translate(1px)}to{transform:translate(-1px)}}@keyframes hintGlow{0%,to{opacity:1}50%{opacity:.55}}@keyframes chainReadyPulse{0%,to{box-shadow:0 0 8px var(--zone-accent-glow);transform:scale(1)}50%{box-shadow:0 0 20px var(--zone-accent-glow), 0 0 32px var(--zone-accent-glow);transform:scale(1.06)}}@keyframes cellClearPop{0%{opacity:1;filter:brightness();transform:scale(1)}22%{opacity:1;filter:brightness(1.65);transform:scale(1.08)}48%{opacity:1;filter:brightness(1.35);transform:scale(1.18)}to{opacity:0;filter:brightness(1.8);transform:scale(.18)rotate(3deg)}}@keyframes lineClearCharge{0%{stroke-width:4px;opacity:.85;filter:drop-shadow(0 0 3px var(--zone-accent-glow))}35%{stroke-width:7px;opacity:1;filter:drop-shadow(0 0 10px var(--zone-accent))}to{stroke-width:2px;opacity:0;filter:drop-shadow(0 0 14px var(--zone-accent))}}@keyframes boardInvalidShake{0%{transform:translate(0)}18%{transform:translate(-4px)}36%{transform:translate(4px)}54%{transform:translate(-3px)}72%{transform:translate(2px)}to{transform:translate(0)}}@keyframes messageInvalidFlash{0%{color:#ffb3b3}to{color:var(--zone-msg-color)}}.floating-layer{pointer-events:none;z-index:100;position:absolute;inset:0}.floating-text{border:3px solid var(--zone-border);text-transform:uppercase;pointer-events:none;background:#000000b8;padding:6px 10px;font-family:"Jersey 10",monospace;font-size:1.48rem;animation:1.2s ease-out forwards floatUp;position:absolute;box-shadow:4px 4px #000000b3}.floating-text.score{color:#fd4;border-color:var(--zone-accent)}.floating-text.combo{color:var(--zone-accent);border-color:#fff}.floating-text.success{color:#4fa;border-color:#fd4}@keyframes floatUp{0%{opacity:0;transform:translateY(20px)}20%{opacity:1}to{opacity:0;transform:translateY(-60px)}}.bottom-bar{padding:6px 10px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:3;background:linear-gradient(#0003 0%,#00000080 100%);border-top:1px solid #ffffff1a;gap:6px;display:flex;position:relative}.bottom-pill{text-align:center;background:0 0;border:1px solid #0000;border-radius:10px;flex:1;padding:2px 6px}.bottom-pill span{letter-spacing:2px;text-transform:uppercase;color:#ffffffb8;text-shadow:0 1px 2px #000c;margin-bottom:2px;font-size:.78rem;display:block}.bottom-pill strong{color:#fff;text-shadow:0 1px 3px #000c;font-family:"Jersey 10",monospace;font-size:1.7rem;display:block}.bottom-pill.pill-score{border-color:color-mix(in srgb, var(--zone-accent) 55%, transparent);background:#00000047}.bottom-pill.pill-score strong{color:var(--zone-accent)}.bottom-pill.combo-guard-ready{border-color:#4fa;box-shadow:inset 0 0 0 1px #44ffaa80,0 0 10px #44ffaa38}.bottom-pill.combo-guard-ready span:after{content:" GUARD";color:#4fa}.score-value-wrap{min-height:1.1em;position:relative;overflow:hidden}.score-value-wrap strong{z-index:2;position:relative}.score-value-wrap.is-spinning strong{text-shadow:0 0 8px var(--zone-accent-glow);animation:.24s steps(2,end) infinite scoreSpin}.score-combo-add{z-index:1;color:#ffe58f;letter-spacing:.6px;white-space:nowrap;opacity:0;text-shadow:0 0 8px #ffdd44b3;font-size:1.1rem;animation:.9s cubic-bezier(.17,.84,.4,1) forwards comboToScore;position:absolute;top:50%;right:-.4rem;transform:translate(120%,-50%)scale(.88)}@keyframes scoreSpin{0%{filter:blur();transform:translateY(0)}40%{filter:blur(1.6px);transform:translateY(-3px)}to{filter:blur();transform:translateY(0)}}@keyframes comboToScore{0%{opacity:0;transform:translate(120%,-50%)scale(.88)}20%{opacity:1}55%{opacity:1;transform:translateY(-50%)scale(1)}to{opacity:0;transform:translate(-58%,-50%)scale(.72)}}.level-up-toast{border:6px solid var(--zone-accent);text-align:center;z-index:5000;box-shadow:8px 8px 0 #000c, 0 0 40px var(--zone-accent-glow);background:#08080ce6;padding:32px 40px;animation:.35s ease-out levelUpPop;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.level-up-toast h1{color:var(--zone-accent);margin:0 0 12px;font-size:3.3rem}.level-up-toast p{color:var(--zone-msg-color);margin:6px 0;font-size:.99rem}@keyframes levelUpPop{0%{transform:translate(-50%,-50%)scale(.5)}to{transform:translate(-50%,-50%)scale(1)}}.gameover-banner{border:6px solid var(--zone-accent);text-align:center;z-index:2000;background:#08080ceb;width:min(90%,560px);max-height:calc(100dvh - 20px);padding:40px 48px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:10px 10px #000000e6}.gameover-banner.highscore-entry-active{top:calc(10px + env(safe-area-inset-top,0px));max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 20px);-webkit-overflow-scrolling:touch;left:50%;overflow-y:auto;transform:translate(-50%)}.gameover-banner h2{color:var(--zone-accent);margin:0 0 12px;font-size:3.96rem;animation:.9s linear infinite blink}.gameover-banner .grade-display{color:#fff;text-shadow:4px 4px 0 var(--zone-accent-dim);margin:16px 0;font-size:6.6rem;display:block}.gameover-banner strong{color:var(--zone-msg-color);margin-bottom:16px;font-size:3.3rem;display:block}@keyframes blink{0%{visibility:visible}to{visibility:hidden}}.options-backdrop{z-index:2001;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.options-modal{border:4px solid var(--zone-border);background:#08080ce6;width:min(90%,400px);padding:28px;box-shadow:8px 8px #000c}.highscore-modal{border:4px solid var(--zone-accent);text-align:center;background:#08080cf2;width:min(90%,420px);padding:26px;box-shadow:8px 8px #000c}.highscore-modal h3{color:var(--zone-accent);margin:0 0 10px;font-size:2rem}.highscore-modal p{color:var(--zone-msg-color);margin:0 0 14px;font-family:VT323,monospace;font-size:1.98rem}.highscore-input{text-align:center;text-transform:uppercase;letter-spacing:5px;color:#fff;border:3px solid var(--zone-border);background:#00000080;width:min(220px,100%);padding:12px 10px;font-family:"Jersey 10",monospace;font-size:2.4rem}.highscore-input:focus{border-color:var(--zone-accent);outline:none}.options-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.options-header h3{color:var(--zone-accent);margin:0;font-size:1.8rem}.options-panel{gap:4px;display:grid}.option-row{border-bottom:2px dashed var(--zone-border);color:var(--zone-msg-color);grid-template-columns:1fr auto;align-items:center;gap:16px;padding:10px 0;font-size:1.25rem;display:grid}.zone-skip-controls{align-items:center;gap:8px;display:flex}.zone-skip-label{text-align:center;color:#fff;min-width:78px;font-size:.82rem}.zone-skip-controls button.secondary{padding:8px 10px;font-size:.79rem}button.primary{background:var(--zone-accent-dim);border:3px solid var(--zone-accent);color:#fff;cursor:pointer;letter-spacing:1px;padding:12px 20px;font-family:"Jersey 10",monospace;font-size:1.4rem;box-shadow:4px 4px #00000080}button.primary:hover{background:var(--zone-accent);transform:translate(2px,2px);box-shadow:2px 2px #00000080}button.secondary{border:3px solid var(--zone-border);color:var(--zone-msg-color);cursor:pointer;background:0 0;padding:12px 20px;font-family:"Jersey 10",monospace;font-size:1.4rem}button.secondary:hover{border-color:var(--zone-accent);color:#fff}.button-row{justify-content:center;gap:12px;margin-top:16px;display:flex}.fever-mode .board{box-shadow:0 0 20px var(--zone-accent-glow)}@media (width>=1024px){#root{height:100dvh}.app-shell{width:min(100%,1120px);height:100%;min-height:0;max-height:var(--app-height,100dvh);margin:0 auto;overflow:hidden}.intro-screen,.game-screen{height:100%;min-height:0}.intro-screen{padding:20px 24px calc(28px + env(safe-area-inset-bottom,0px))}.intro-highscores{width:min(560px,100% - 80px);left:50%;right:auto;transform:translate(-50%)}.intro-highscores.hidden{transform:translate(-50%)translateY(10px)}.intro-highscores.visible{transform:translate(-50%)translateY(0)}.intro-highscores-title{font-size:1.06rem}.intro-highscores-row{font-size:1.29rem}.intro-highscores-row .initials{font-size:1.35rem}.intro-highscores-row .score{font-size:1.73rem}.intro-highscores-empty{font-size:1.12rem}.control-group{font-size:1.35rem}.control-group select{min-height:38px;padding:8px 10px;font-size:1.2rem}}@media (width<=640px){.intro-screen{padding:12px 12px calc(16px + env(safe-area-inset-bottom,0px))}.intro-lower{width:100%;padding:14px 14px 18px}.intro-lower.title-step{width:min(100%,430px);padding:14px 16px 18px}.intro-lower.setup-step{gap:10px;padding:12px 12px 16px}.game-screen{padding:0}.board-stage{justify-content:center}.message-slot{font-size:1.45rem}.game-info-bar{gap:8px}.chain-meter{min-width:118px;padding:4px 8px}.intro-title{font-size:3rem}.setup-step .intro-title{font-size:2.45rem}.intro-subtitle{font-size:1.75rem}.intro-rules-note{font-size:1.45rem}.control-group{grid-template-columns:1fr;gap:4px;font-size:1.1rem}.control-group select{width:100%;max-width:none;font-size:1.12rem}.intro-start-btn{min-height:54px;font-size:2rem}.intro-actions{grid-template-columns:1fr}.intro-back-btn{min-height:46px;font-size:1.25rem}.intro-highscores{width:auto;left:10px;right:10px}}
