:root{--board-tray-bg: #f8ffe9;--board-tray-border: #315f4c;color:#14211d;background:#fff2c4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(90deg,rgba(20,33,29,.07) 1px,transparent 1px) 0 0 / 34px 34px,linear-gradient(180deg,rgba(20,33,29,.06) 1px,transparent 1px) 0 0 / 34px 34px,linear-gradient(180deg,#fff7dc,#e9ffe8)}button{font:inherit}.app-shell{min-height:100vh;padding:clamp(16px,3vw,28px)}.game-surface{position:relative;width:min(1180px,100%);margin:0 auto;border:2px solid #14211d;border-radius:8px;background:linear-gradient(180deg,#fffdf4,#f3ffe8);padding:0 clamp(12px,2vw,20px) clamp(12px,2vw,20px);box-shadow:0 22px #14211d17,0 30px 70px #14211d29}.sticky-hud{position:sticky;top:0;z-index:20;display:grid;gap:12px;padding:16px 0 14px;border-bottom:2px solid rgba(20,33,29,.12);background:linear-gradient(180deg,#fffdf4,#f3ffe8);transition:padding .16s ease,gap .16s ease,box-shadow .16s ease}.sticky-hud.hud-compact{gap:6px;padding:8px 0;box-shadow:0 10px 24px #14211d14}.hud-compact .eyebrow,.hud-compact .intro{display:none}.hud-compact .game-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.hud-compact h1{font-size:1.55rem;line-height:1}.hud-compact .controls{gap:6px;justify-content:flex-end}.hud-compact .controls button{min-height:34px;padding:6px 9px;box-shadow:0 2px #14211d2e}.hud-compact .control-toggle{min-height:32px;font-size:.78rem}.hud-compact .scoreboard{gap:6px}.hud-compact .score-card{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;box-shadow:none}.hud-compact .score-label{font-size:.62rem}.hud-compact .score-card strong{margin-top:0;font-size:1rem;text-align:right}.hud-compact .digit-strip{display:none}.hud-compact .status-failed strong{font-size:.86rem}.hud-compact .feedback{min-height:30px;margin-bottom:4px;border-left-width:6px;padding:6px 8px;font-size:.85rem}.game-status-in-progress .status-in-progress,.game-status-in-progress .feedback{border-top-color:#f0b429;border-right-color:#f0b429;border-bottom-color:#f0b429}.game-status-won .status-won,.game-status-won .feedback{border-top-color:#8bc3a4;border-right-color:#8bc3a4;border-bottom-color:#8bc3a4}.game-status-failed .status-failed,.game-status-failed .feedback{border-top-color:#d9b495;border-right-color:#d9b495;border-bottom-color:#d9b495}.game-header{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.eyebrow{margin:0 0 8px;color:#315f4c;font-size:.78rem;font-weight:850;letter-spacing:0;text-transform:uppercase}h1{margin:0;font-size:4rem;line-height:.95;letter-spacing:0}.intro{max-width:none;margin:12px 0 0;color:#3f564c;line-height:1.5;white-space:nowrap}.controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-start;align-items:center}.header-actions{display:flex;justify-content:flex-start}.header-actions .secondary-action,.home-action,.screen-actions button,.victory-actions button{min-height:44px;border:2px solid #14211d;border-radius:8px;padding:10px 14px;font-weight:850;cursor:pointer;box-shadow:0 4px #14211d33}.controls button{min-height:44px;border:2px solid #14211d;border-radius:8px;padding:10px 14px;font-weight:850;cursor:pointer;box-shadow:0 4px #14211d33;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.primary-action{background:#ffd43b;color:#14211d}.secondary-action{background:#fff;color:#14211d}.home-screen,.leaderboard-screen{width:min(980px,100%);min-height:calc(100vh - clamp(32px,6vw,56px));margin:0 auto;border:2px solid #14211d;border-radius:8px;background:linear-gradient(90deg,rgba(49,95,76,.1) 1px,transparent 1px) 0 0 / 42px 42px,linear-gradient(180deg,#fffdf4,#f3ffe8);box-shadow:0 22px #14211d17,0 30px 70px #14211d29}.home-screen{display:grid;align-items:center;padding:clamp(22px,5vw,56px)}.home-panel{max-width:620px}.home-panel h1,.screen-header h1{font-size:clamp(3.2rem,9vw,7rem)}.home-copy{max-width:520px;margin:16px 0 0;color:#3f564c;font-size:clamp(1.05rem,2.2vw,1.4rem);font-weight:750;line-height:1.45}.home-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.home-meta{margin:18px 0 0;color:#4f5e57;font-weight:800}.leaderboard-screen{padding:clamp(18px,4vw,34px)}.screen-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:2px solid rgba(20,33,29,.12);padding-bottom:18px}.screen-actions,.victory-actions{display:flex;flex-wrap:wrap;gap:10px}.empty-state{border:2px dashed rgba(20,33,29,.28);border-radius:8px;background:#ffffffc2;padding:18px;color:#4f5e57;font-weight:800}.leaderboard-list{display:grid;gap:10px;margin:22px 0 0;padding:0;list-style:none}.leaderboard-entry{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;border:2px solid #14211d;border-radius:8px;background:#ffffffdb;padding:12px;box-shadow:0 7px #14211d14}.leaderboard-rank{display:inline-grid;place-items:center;min-width:42px;min-height:42px;border-radius:999px;background:#ffd43b;color:#14211d;font-weight:950}.victory-overlay{position:fixed;top:50%;left:50%;z-index:60;width:min(520px,calc(100% - 32px));border:2px solid #14211d;border-radius:8px;background:#fffdf4;padding:clamp(18px,4vw,28px);box-shadow:0 28px 90px #14211d57;text-align:center;transform:translate(-50%,-50%)}.victory-overlay:before{position:fixed;inset:-100vh -100vw;z-index:-1;background:#14211d75;content:""}.victory-overlay h2{margin:0;font-size:clamp(2.4rem,8vw,4.8rem);line-height:.95}.victory-placement{margin:10px 0 0;color:#14794d;font-size:1.15rem;font-weight:900}.victory-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}.victory-stats div{border:2px solid rgba(20,33,29,.18);border-radius:8px;background:#d8fbdfb8;padding:10px}.victory-stats dt{color:#4f5e57;font-size:.72rem;font-weight:850;text-transform:uppercase}.victory-stats dd{margin:6px 0 0;font-weight:900}.victory-actions{justify-content:center}.victory-burst{position:absolute;inset:0;overflow:hidden;pointer-events:none}.victory-burst span{position:absolute;width:12px;height:42px;border-radius:999px;background:#ffd43b}.victory-burst span:nth-child(1){top:18px;left:12%;transform:rotate(-28deg)}.victory-burst span:nth-child(2){top:12px;right:18%;background:#12a86b;transform:rotate(24deg)}.victory-burst span:nth-child(3){bottom:20px;left:20%;background:#3478f6;transform:rotate(42deg)}.victory-burst span:nth-child(4){right:14%;bottom:24px;background:#ff8a3d;transform:rotate(-44deg)}.zoom-controls{display:inline-flex;gap:4px}.zoom-action{min-width:44px;padding-inline:10px}.controls button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px #14211d38}.controls button:disabled,.digit-cell:disabled{cursor:not-allowed;opacity:.48;box-shadow:none}.scoreboard{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.score-card{min-height:78px;border:2px solid #14211d;border-radius:8px;background:#ffffffe0;padding:12px;box-shadow:0 8px #14211d14}.score-card:nth-child(1){background:#fff3b0}.score-card:nth-child(2){background:#d8fbdf}.score-card:nth-child(3){background:#dce8ff}.score-card:nth-child(4){background:#ffe0ce}.score-card:nth-child(5){background:#ecdcff}.score-label{display:block;color:#4f5e57;font-size:.72rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.score-card strong{display:block;margin-top:8px;font-size:clamp(1.25rem,2vw,2rem);line-height:1}.digit-progress-card{min-width:0}.digit-strip{display:flex;gap:3px;margin-top:8px}.digit-token{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid rgba(20,33,29,.42);border-radius:999px;background:#fff;color:#14211d;font-size:.68rem;font-weight:900;line-height:1}.digit-token-cleared{border-color:#14794d;background:#14794d;color:#fff;text-decoration:line-through}.status-won strong{color:#14794d}.status-failed strong{color:#a2472d}.feedback{min-height:44px;margin:0 0 12px;border:2px solid #14211d;border-left:8px solid #ff8a3d;border-radius:8px;background:#fff6c8;padding:10px 12px;color:#26362f;font-weight:750}.feedback-won{border-left-color:#14794d}.feedback-failed{border-left-color:#a2472d}.board-section{--board-scale: 1;--cell-base: clamp(40px, 8vw, 104px);--cell-size: calc(var(--cell-base) * var(--board-scale));--board-gap: calc(clamp(6px, .65vw, 10px) * var(--board-scale));--board-pad: calc(clamp(8px, .85vw, 14px) * var(--board-scale));overflow-x:auto;padding:16px 0 4px;overscroll-behavior-x:contain}.board-grid{display:grid;gap:var(--board-gap);width:max-content;min-width:0;border:2px solid var(--board-tray-border);border-radius:8px;background:var(--board-tray-bg);padding:var(--board-pad);box-shadow:inset 0 0 0 1px #315f4c29,0 16px #14211d14}.board-row{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(9,var(--cell-size));gap:var(--board-gap);contain:layout paint;contain-intrinsic-size:calc(var(--cell-size) + 6px)}.board-row.row-clearing{border-radius:8px;background:#ffd43b3d}.board-row.row-clearing:before,.board-row.row-clearing:after{position:absolute;pointer-events:none;content:""}.board-row.row-clearing:before{inset:calc(var(--board-gap) * -.7);z-index:4;border-radius:8px;background:radial-gradient(circle at 16% 45%,rgba(255,212,59,.72) 0 7%,transparent 8%),radial-gradient(circle at 34% 52%,rgba(255,138,61,.62) 0 8%,transparent 9%),radial-gradient(circle at 55% 42%,rgba(18,168,107,.54) 0 8%,transparent 9%),radial-gradient(circle at 76% 55%,rgba(49,87,255,.48) 0 7%,transparent 8%),linear-gradient(90deg,#ffd43b00,#ffd43bb8,#ff8a3d00);mix-blend-mode:screen}.board-row.row-clearing:after{top:50%;left:50%;z-index:5;display:grid;place-items:center;min-width:calc(var(--cell-size) * 2.1);min-height:calc(var(--cell-size) * .72);border:max(2px,calc(var(--cell-size) * .025)) solid #14211d;border-radius:999px;background:#ffd43b;box-shadow:0 calc(var(--cell-size) * .08) 0 #14211d38;color:#14211d;content:"BOOM";font-size:calc(var(--cell-size) * .28);font-weight:950;letter-spacing:0;transform:translate(-50%,-50%)}.control-toggle{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-weight:800}.control-toggle input{accent-color:#12a86b}.digit-cell{position:relative;--tile-bg: #fffdf6;--tile-accent: #ffd43b;aspect-ratio:1;width:var(--cell-size);min-width:var(--cell-size);min-height:var(--cell-size);border:max(2px,calc(var(--cell-size) * .024)) solid #14211d;border-radius:calc(var(--cell-size) * .1);background:linear-gradient(180deg,var(--tile-bg) 0%,#fffefb 100%);color:#14211d;cursor:pointer;box-shadow:inset 0 calc(var(--cell-size) * -.06) 0 #14211d29,0 2px #ffffff57}.digit-cell:before{position:absolute;top:calc(var(--cell-size) * .06);left:calc(var(--cell-size) * .07);right:calc(var(--cell-size) * .07);height:calc(var(--cell-size) * .055);border-radius:999px;background:var(--tile-accent);content:""}.digit-1{--tile-bg: #fff1a6;--tile-accent: #ffbf00}.digit-2{--tile-bg: #d7fbe1;--tile-accent: #12a86b}.digit-3{--tile-bg: #ffd9cc;--tile-accent: #ff6b4a}.digit-4{--tile-bg: #dbe9ff;--tile-accent: #3478f6}.digit-5{--tile-bg: #e2ffd0;--tile-accent: #75b900}.digit-6{--tile-bg: #ffe5bb;--tile-accent: #ff8a00}.digit-7{--tile-bg: #d7fbf4;--tile-accent: #00a3a3}.digit-8{--tile-bg: #ffe0ef;--tile-accent: #ef4f8f}.digit-9{--tile-bg: #eeffd8;--tile-accent: #92c83e}.seed-color-single .digit-cell{--tile-bg: #f8ffe9;--tile-accent: #315f4c}.seed-color-single .digit-cell.selected{--tile-bg: #cffff0;--tile-accent: #12a86b}.seed-color-single .digit-cell.invalid{--tile-bg: #ffe0d8;--tile-accent: #c73030}.seed-color-single .digit-cell.hinted{--tile-bg: #dce5ff;--tile-accent: #3157ff}.seed-color-single .digit-cell.removed{--tile-bg: #e8ece3;--tile-accent: #9aa39e}.digit-cell:focus-visible{outline:4px solid rgba(20,121,77,.28);outline-offset:2px;border-color:#12a86b}.digit-cell:hover:not(:disabled){border-color:#12a86b;transform:translateY(-1px)}.digit-cell.selected{border-color:#12a86b;background:#cffff0;box-shadow:0 0 0 4px #12a86b38,inset 0 -5px #14211d24}.digit-cell.invalid{border-color:#c73030;background:#ffe0d8;box-shadow:0 0 0 4px #c730302e,inset 0 -5px #14211d24}.digit-cell.hinted{border-color:#3157ff;background:#dce5ff;box-shadow:0 0 0 4px #3157ff38,inset 0 -5px #3157ff1f}.digit-cell.removed{color:#66736c;background:#e8ece3;border-color:#85918a;border-style:dashed;cursor:default;opacity:.72}.digit-cell.removed:before{background:#9aa39e}.digit-cell.removed.cell-celebrating{border-color:#ff8a3d;background:#fff4bb;opacity:1;z-index:2}.digit-value{display:grid;place-items:center;width:100%;height:100%;font-size:calc(var(--cell-size) * .34);font-weight:900;font-variant-numeric:tabular-nums}.invalid-mark{position:absolute;top:calc(var(--cell-size) * .05);right:calc(var(--cell-size) * .05);display:inline-flex;align-items:center;justify-content:center;width:calc(var(--cell-size) * .26);height:calc(var(--cell-size) * .26);border-radius:999px;background:#c73030;color:#fff;font-size:calc(var(--cell-size) * .16);font-weight:800;line-height:1}.hint-mark{position:absolute;right:calc(var(--cell-size) * .05);bottom:calc(var(--cell-size) * .05);display:inline-flex;align-items:center;justify-content:center;min-width:calc(var(--cell-size) * .48);min-height:calc(var(--cell-size) * .28);border-radius:999px;background:#3157ff;color:#fff;font-size:calc(var(--cell-size) * .12);font-weight:850;line-height:1}.removed-mark{position:absolute;inset:50% 10%;height:max(2px,calc(var(--cell-size) * .035));border-radius:999px;background:#c73030;transform:rotate(-16deg)}.help-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#14211d7a}.settings-backdrop{position:fixed;inset:0;z-index:52;display:grid;place-items:center;padding:20px;background:#14211d7a}.help-dialog{width:min(760px,100%);max-height:min(820px,92vh);overflow:auto;border:2px solid #14211d;border-radius:8px;background:#fffdf4;padding:20px;box-shadow:0 24px 70px #14211d47}.settings-dialog{width:min(720px,100%);max-height:min(820px,92vh);overflow:auto;border:2px solid #14211d;border-radius:8px;background:#fffdf4;padding:20px;box-shadow:0 24px 70px #14211d47}.help-header,.settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.help-header .secondary-action,.settings-header .secondary-action,.settings-dialog .secondary-action{min-height:38px;border:2px solid #14211d;border-radius:8px;padding:7px 12px;font-weight:850;box-shadow:0 3px #14211d29;cursor:pointer}.settings-dialog .secondary-action:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.danger-action{background:#fff0e8;color:#8c351f}.help-header h2,.settings-header h2{margin:0;font-size:2.4rem}.settings-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.settings-group{border:2px solid rgba(20,33,29,.2);border-radius:8px;background:#ffffffbd;padding:14px}.settings-group h3{margin:0 0 12px;font-size:1.1rem}.settings-toggle,.settings-option{display:flex;align-items:center;gap:8px;min-height:34px;font-weight:800}.settings-toggle input,.settings-option input{accent-color:#12a86b}.settings-fieldset{display:grid;gap:4px;margin:0;border:0;padding:0}.settings-fieldset legend{margin-bottom:6px;color:#4f5e57;font-size:.78rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.settings-note{margin:0 0 12px;color:#4f5e57;font-weight:750}.help-rules{margin:20px 0;padding-left:1.4rem}.help-rules li+li{margin-top:8px}.help-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.help-figures figure{margin:0}.help-figures img{width:100%;aspect-ratio:16 / 10;object-fit:cover;border:1px solid rgba(23,36,32,.18);border-radius:8px;background:#edf0ea}.help-figures figcaption{margin-top:6px;color:#56615d;font-size:.86rem;font-weight:750}@media(min-width:1180px){.game-surface-side-hud{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);align-items:start;gap:clamp(16px,2vw,24px);width:min(1500px,100%);padding:clamp(16px,2vw,22px)}.game-surface-side-hud .sticky-hud{top:clamp(16px,3vw,28px);align-self:start;max-height:calc(100vh - clamp(32px,6vw,56px));overflow-y:auto;padding:0 clamp(14px,1.6vw,22px) 0 0;border-right:2px solid rgba(20,33,29,.12);border-bottom:0;background:transparent;box-shadow:none;transition:none}.game-surface-side-hud .game-header{grid-template-columns:1fr}.game-surface-side-hud h1{font-size:clamp(2.4rem,3vw,3rem)}.game-surface-side-hud .intro{white-space:normal}.game-surface-side-hud .controls{align-items:stretch}.game-surface-side-hud .controls button,.game-surface-side-hud .control-toggle,.game-surface-side-hud .zoom-controls{width:100%}.game-surface-side-hud .zoom-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.game-surface-side-hud .scoreboard{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.game-surface-side-hud .score-card{min-height:58px;padding:8px}.game-surface-side-hud .score-card strong{font-size:1.35rem}.game-surface-side-hud .status-in-progress strong,.game-surface-side-hud .status-won strong,.game-surface-side-hud .status-failed strong{font-size:1.1rem}.game-surface-side-hud .digit-progress-card{grid-column:1 / -1}.game-surface-side-hud .digit-strip{flex-wrap:wrap}.game-surface-side-hud .feedback{margin-bottom:0}.game-surface-side-hud .board-section{--cell-base: clamp(40px, 7vw, 98px);min-width:0;padding:0 0 4px}}@media(max-width:760px){.app-shell{padding:12px}.game-surface{padding:0 10px calc(108px + env(safe-area-inset-bottom))}.game-header,.hud-compact .game-header{grid-template-columns:1fr}.sticky-hud.hud-compact{gap:5px;padding:6px 0}.hud-compact h1,.hud-compact .feedback,.hud-compact .restart-action,.hud-compact .score-card:nth-child(1),.hud-compact .score-card:nth-child(2),.hud-compact .score-card:nth-child(4){display:none}.hud-compact .controls{gap:5px}.hud-compact .controls button{min-height:54px;padding:8px 6px;font-size:.78rem}.hud-compact .control-toggle{min-height:28px;font-size:.72rem}.hud-compact .scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:2.7rem}.controls{position:fixed;right:0;bottom:0;left:0;z-index:45;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:10px 10px calc(10px + env(safe-area-inset-bottom));border-top:2px solid #14211d;background:#fffdf4f5;box-shadow:0 -10px 28px #14211d29}.controls button{width:100%;min-height:54px;padding:8px 6px;font-size:.78rem;line-height:1.05}.scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}.score-card strong{font-size:1.55rem}.intro{white-space:normal}.help-header h2,.settings-header h2{font-size:1.9rem}.settings-groups,.help-figures{grid-template-columns:1fr}.home-screen,.leaderboard-screen{min-height:calc(100vh - 24px)}.home-actions,.screen-header,.screen-actions,.victory-actions{display:grid;grid-template-columns:1fr}.leaderboard-entry{grid-template-columns:auto minmax(0,1fr)}.leaderboard-entry span:nth-last-child(-n+2){grid-column:2}.victory-stats{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){.digit-cell{transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.digit-cell.cell-celebrating{animation:pair-pop .9s cubic-bezier(.2,.85,.24,1)}.board-row.row-clearing{animation:row-clear .9s ease}.board-row.row-clearing:before{animation:row-boom-burst .9s ease}.board-row.row-clearing:after{animation:row-boom-label .9s cubic-bezier(.2,.85,.24,1)}}@keyframes pair-pop{0%{transform:scale(1)}30%{transform:scale(1.12) rotate(-2deg);box-shadow:0 0 0 6px #ff8a3d3d,inset 0 -5px #14211d1f}62%{transform:scale(.96) rotate(1deg)}to{transform:scale(1)}}@keyframes row-clear{0%{transform:translate(0);background:#ffd43b00}34%{transform:translate(6px);background:#ffd43b57}68%{transform:translate(-3px);background:#12a86b3d}to{transform:translate(0);background:#ffd43b00}}@keyframes row-boom-burst{0%{opacity:0;transform:scaleX(.88) scaleY(.6)}25%{opacity:1;transform:scaleX(1.03) scaleY(1.12)}72%{opacity:.68;transform:scaleX(1.08) scaleY(1.04)}to{opacity:0;transform:scaleX(1.12) scaleY(.88)}}@keyframes row-boom-label{0%{opacity:0;transform:translate(-50%,-50%) scale(.72) rotate(-4deg)}26%{opacity:1;transform:translate(-50%,-50%) scale(1.14) rotate(2deg)}62%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-1deg)}to{opacity:0;transform:translate(-50%,-50%) scale(.86) rotate(0)}}
