:root{font-synthesis:none;text-rendering:optimizelegibility;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}.tbm-app{--bg:#030b16;--bg-glow:#0b2236;--surface:#091827;--surface-raised:#10243a;--surface-soft:#0d1e30;--ink:#f3f5f7;--muted:#aebdca;--subtle:#7890a3;--line:#52718e;--line-soft:#28445f;--accent:#17c7ef;--accent-ink:#031018;--focus:#8bddff;--danger:#ff7485;--success:#73e7b0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 47% -18%, var(--bg-glow), var(--bg) 54%);container-type:inline-size}.tbm-app[data-theme=light]{--bg:#fbfcfe;--bg-glow:#e7f2f8;--surface:#fff;--surface-raised:#f4f8fb;--surface-soft:#edf4f8;--ink:#08172e;--muted:#455b70;--subtle:#536f88;--line:#6c829a;--line-soft:#b8c7d4;--accent:#08749a;--accent-ink:#fff;--focus:#005f83;--danger:#a51f39;--success:#187a4a}button,input{font:inherit}button{min-height:42px;color:var(--accent-ink);background:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:0 17px;font-weight:800}button:hover{filter:brightness(1.12)}button:disabled{cursor:not-allowed;opacity:.58;filter:none}button.secondary{color:var(--ink);border-color:var(--line);background:0 0}button.text-link,.text-link{min-height:auto;color:var(--ink);text-align:left;background:0 0;border:0;border-bottom:1px solid;border-radius:0;padding:4px 0;font-weight:700}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,.game-canvas:focus-visible,.game-canvas:focus{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2{text-wrap:balance}h1{letter-spacing:-.07em;font-family:Georgia,Times New Roman,serif;font-size:clamp(48px,7.4vw,116px);font-weight:500;line-height:.82}h2{letter-spacing:-.035em;font-size:clamp(19px,2vw,28px);line-height:1.1}code,kbd{font-family:SFMono-Regular,Consolas,monospace}kbd{border:1px solid var(--line);color:var(--ink);background:var(--surface-soft);border-bottom-width:2px;border-radius:3px;padding:2px 5px;font-size:.78em}.app-shell{width:min(1400px,100% - 64px);min-height:100vh;margin:0 auto;padding:22px 0 16px}.site-header{justify-content:space-between;align-items:center;gap:24px;min-height:48px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-button{min-height:0;color:var(--ink);text-align:left;background:0 0;border:0;padding:0}.brand-mark{width:33px;height:33px;color:var(--accent-ink);background:var(--accent);letter-spacing:-.08em;border-radius:5px;place-items:center;font-size:11px;font-weight:950;display:grid}.brand strong,.brand small{display:block}.brand strong{letter-spacing:-.02em;font-size:13px}.brand small{color:var(--subtle);letter-spacing:.12em;text-transform:uppercase;margin-top:2px;font-size:9px;font-weight:700}.site-nav,.header-tools,.theme-controls{align-items:center;gap:13px;display:flex}.nav-link,.icon-button{min-height:34px;color:var(--ink);background:0 0;border:0;padding:4px 7px;font-size:12px}.icon-button{border:1px solid #0000;align-items:center;gap:5px;display:inline-flex}.icon-button:hover{border-color:var(--line)}.eyebrow{color:var(--subtle);letter-spacing:.14em;text-transform:uppercase;font:800 10px/1.25 SFMono-Regular,Consolas,monospace}.accent-copy{color:var(--accent)}.surface-card,.future-panel{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface) 93%, transparent)}.home-shell{grid-template-rows:auto 1fr auto;gap:44px;display:grid}.home-hero{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) minmax(285px,340px);align-items:center;gap:clamp(36px,9vw,148px);min-height:min(700px,100vh - 170px);padding:32px 5.5vw 52px;display:grid}.hero-copy{justify-items:start;gap:25px;display:grid}.hero-copy em{color:var(--accent);font-style:normal}.hero-description{max-width:39ch;color:var(--muted);font-size:clamp(16px,1.4vw,20px);line-height:1.55}.hero-actions{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.hero-actions button:first-child{justify-content:space-between;align-items:center;min-width:154px;min-height:52px;display:inline-flex}.input-note{color:var(--subtle);font-size:12px}.ranking-preview{align-self:center;gap:25px;padding:24px;display:grid}.panel-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.availability-chip,.ruleset-chip,.locked-chip{color:var(--subtle);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:5px 7px;font:700 10px/1 SFMono-Regular,Consolas,monospace}.ranking-unavailable{color:var(--muted);font-size:14px;line-height:1.55}.ranking-tabs{gap:7px;display:flex}.ranking-tabs button{min-height:30px;color:var(--muted);border-color:var(--line);background:0 0;padding:0 9px;font-size:11px}.ranking-tabs button.selected{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.ranking-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.ranking-list li{border-top:1px solid var(--line-soft);grid-template-columns:1fr auto;gap:3px 8px;padding-top:8px;font-size:12px;display:grid}.ranking-list li span,.ranking-list li small,.ranking-privacy{color:var(--muted)}.ranking-list li small{grid-area:1/2;font-size:10px}.ranking-privacy{font-size:11px;line-height:1.45}.home-lower{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.mode-card{align-content:start;gap:12px;min-height:174px;padding:21px;display:grid}.mode-card h2{font-size:19px}.mode-card>p:last-of-type{color:var(--muted);font-size:13px;line-height:1.45}.ranked-card{grid-template-rows:auto auto 1fr auto}.ranked-card button{justify-self:start}.local-tools{color:var(--subtle);grid-column:1/-1;justify-content:end;align-items:center;gap:8px;display:flex}.local-tools .eyebrow{margin-right:auto}.local-tools button{min-height:32px;padding:0 9px;font-size:11px}.site-footer{min-height:32px;color:var(--subtle);justify-content:space-between;align-items:center;gap:16px;font-size:11px;display:flex}.game-shell{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:15px;min-width:0;height:100vh;min-height:0;display:grid}.game-shell>*{min-width:0}.game-header{border-bottom:1px solid var(--line-soft);padding-bottom:13px}.run-status{min-width:0;color:var(--muted);flex:1;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.run-status>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.status-dot{background:var(--subtle);border-radius:50%;width:8px;height:8px}.status-running{background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb, var(--success) 18%, transparent)}.status-game-over{background:var(--danger)}.game-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,.92fr);gap:18px;min-width:0;height:100%;min-height:0;display:grid}.board-column{grid-template-rows:auto minmax(0,1fr) auto;gap:10px;min-width:0;height:100%;min-height:0;display:grid}.metrics-strip{border:1px solid var(--line-soft);background:var(--surface);grid-template-columns:repeat(5,1fr);display:grid}.metrics-strip.has-multiplier{grid-template-columns:repeat(6,1fr)}.metrics-strip div{border-right:1px solid var(--line-soft);min-width:0;padding:10px 12px}.metrics-strip div:last-child{border-right:0}.metrics-strip span{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;font:700 9px/1.1 SFMono-Regular,Consolas,monospace;display:block}.metrics-strip strong{margin-top:6px;font:800 clamp(15px,1.75vw,22px)/1 SFMono-Regular,Consolas,monospace;display:block}.metrics-strip .multiplier-metric strong{color:var(--accent)}.board-playfield{grid-template-columns:minmax(0,1fr) clamp(78px,8.5vw,112px);gap:10px;min-width:0;min-height:0;display:grid}.board-stage{border:1px solid var(--line);background:var(--surface);min-height:0;position:relative;overflow:hidden}.game-canvas{width:100%;height:100%;min-height:0;display:block}.pause-button{min-height:32px;color:var(--ink);background:color-mix(in srgb, var(--surface) 88%, transparent);border-color:var(--line);padding:0 8px;font-size:11px;position:absolute;top:12px;right:12px}.board-meta{color:var(--subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 18px;font-size:11px;display:flex}.board-meta strong,.board-meta code{color:var(--ink)}.ranked-warning{width:100%;color:var(--muted);border-left:3px solid var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface));padding:8px 10px;line-height:1.35}.ranked-warning strong{color:var(--ink)}.game-side{grid-template-rows:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;min-width:0;height:100%;min-height:0;display:grid}.game-side.math-open:not(.mines-open){grid-template-rows:minmax(190px,1.3fr) minmax(100px,.7fr) auto}.game-side.mines-open{grid-template-rows:minmax(170px,.8fr) minmax(min-content,1.2fr) auto}.next-panel{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface) 93%, transparent);grid-template-rows:auto minmax(0,1fr);align-content:start;min-width:0;min-height:0;padding:10px;display:grid}.next-list{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:1fr;gap:8px;min-height:0;margin-top:9px;display:grid}.mini-piece{aspect-ratio:1;border:1px solid var(--line-soft);background:var(--surface-soft);grid-template-columns:repeat(4,1fr);align-self:start;min-height:0;padding:7px;display:grid}.mini-piece:first-child{border-color:var(--accent)}.mini-piece span{border-radius:1px;margin:1px}.mini-piece .filled{background:#17c7ef;box-shadow:inset 0 2px #ffffff40}.piece-o .filled{background:#ffd84a}.piece-t .filled{background:#b878ff}.piece-j .filled{background:#5f8cff}.piece-l .filled{background:#ff9b45}.piece-s .filled{background:#65e39a}.piece-z .filled{background:#ff6478}.future-panel{align-content:start;gap:12px;padding:16px;display:grid}.future-panel h2{margin-top:4px;font-size:21px}.locked-panel{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--surface) 94%, transparent) 0 12px, color-mix(in srgb, var(--surface-soft) 94%, transparent) 12px 24px)}.locked-panel>p{color:var(--muted);font-size:13px;line-height:1.45}.math-active,.mines-active{border-color:var(--line);background:var(--surface)}.math-active{gap:5px;padding:10px}.mines-active{gap:11px}.math-active h2{margin-top:2px;font-size:18px}.math-active .eyebrow{font-size:8px}.math-heading,.mines-title-row,.mines-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.math-heading strong{font:800 clamp(22px,2.4vw,28px)/1 SFMono-Regular,Consolas,monospace}.math-heading span{color:var(--accent);border:1px solid var(--line);padding:5px 7px;font:700 11px/1 SFMono-Regular,Consolas,monospace}.task-reward-preview{color:var(--accent);font:800 10px/1.2 SFMono-Regular,Consolas,monospace}.math-answers{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.math-answers button{place-items:center;min-width:0;min-height:64px;padding:8px 25px 8px 8px;display:grid;position:relative}.math-answer-value{letter-spacing:-.06em;font:900 clamp(25px,3vw,38px)/1 SFMono-Regular,Consolas,monospace}.math-answer-key{border-color:color-mix(in srgb, var(--accent-ink) 45%, transparent);color:inherit;opacity:.72;background:0 0;padding:2px 4px;font-size:9px;font-weight:700;line-height:1;position:absolute;top:5px;right:5px}.math-feedback span,.math-feedback small,.mines-feedback span{color:var(--muted);font-size:11px;line-height:1.4}.math-feedback .bank-change,.mines-feedback .bank-change{color:var(--ink)}.math-active .support-meter{font-size:9px}.math-feedback,.mines-feedback{gap:6px;display:grid}.math-feedback strong,.mines-feedback strong{color:var(--success);font-size:12px}.support-meter{color:var(--subtle);justify-content:space-between;gap:8px;font:700 10px/1.3 SFMono-Regular,Consolas,monospace;display:flex}.flag-mode{min-height:31px;color:var(--ink);border-color:var(--line);background:0 0;padding:0 8px;font-size:10px}.flag-mode.selected{color:#181204;background:#ffd76a;border-color:#ffd76a}.mines-heading{color:var(--subtle);font:700 10px/1 SFMono-Regular,Consolas,monospace}.mines-heading strong{color:var(--accent)}.mines-grid{place-self:center;gap:3px;width:min(100%,140px);display:grid}.mines-cell{aspect-ratio:1;min-width:0;min-height:0;color:var(--ink);background:var(--surface-soft);border-color:var(--line);border-radius:2px;place-items:center;padding:0;font:800 12px/1 SFMono-Regular,Consolas,monospace;display:grid}.mines-cell:hover{background:color-mix(in srgb, var(--accent) 18%, var(--surface-soft))}.mines-cell.cell-revealed{color:var(--accent);background:var(--bg);border-color:var(--line-soft)}.mines-cell.cell-flagged{color:#7a5200;background:#ffd76a}.mines-cell.cell-mine{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, var(--surface))}.controls-card{grid-template-columns:1fr 1fr;gap:8px 14px;padding:13px;display:grid}.controls-card>.eyebrow{grid-column:1/-1}.key-row{color:var(--muted);align-items:center;gap:4px;font-size:11px;display:flex}.game-help{border-top:1px solid var(--line-soft);grid-column:1/-1;padding-top:7px}.game-help summary{width:fit-content;color:var(--ink);cursor:pointer;font-size:11px;font-weight:800}.game-help-copy{max-height:120px;color:var(--muted);gap:7px;margin-top:8px;font-size:10px;line-height:1.35;display:grid;overflow-y:auto}.game-help:not([open]) .game-help-copy{display:none}.game-help-copy strong{color:var(--ink)}.game-footer{border-top:1px solid var(--line-soft);padding-top:12px}.dialog-backdrop{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000812b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dialog-card{width:min(500px,100%);color:var(--ink);border:1px solid var(--line);background:var(--surface);gap:18px;padding:28px;display:grid;box-shadow:0 18px 60px #00000052}.dialog-card>p:not(.eyebrow){color:var(--muted);line-height:1.55}.instruction-copy{color:var(--muted);gap:12px;line-height:1.5;display:grid}.dialog-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.results-dialog{width:min(580px,100%)}.results-stats{border:1px solid var(--line-soft);grid-template-columns:repeat(3,1fr);margin:0;display:grid}.results-stats div{border-right:1px solid var(--line-soft);padding:13px}.results-stats div:last-child{border-right:0}.results-stats dt{color:var(--subtle);text-transform:uppercase;font-size:10px}.results-stats dd{margin:6px 0 0;font:800 25px/1 SFMono-Regular,Consolas,monospace}.save-status{border:1px solid var(--line-soft);background:var(--surface-soft);gap:8px;padding:14px;display:grid}.save-status>p:last-of-type{color:var(--muted);font-size:13px;line-height:1.45}.save-status button{justify-self:start;font-size:11px}@media (width<=1120px){.app-shell{width:min(1024px,100% - 32px)}.game-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:12px}}@media (width<=1120px),(height<=850px){.game-side{gap:8px}.game-side.math-open:not(.mines-open){grid-template-rows:minmax(165px,1.3fr) minmax(90px,.7fr) auto}.game-side.mines-open{grid-template-rows:minmax(165px,.8fr) minmax(min-content,1.2fr) auto}.board-playfield{grid-template-columns:minmax(0,1fr) clamp(74px,8.5vw,94px);gap:7px}.next-panel{padding:7px}.next-list{gap:5px;margin-top:5px}.mini-piece{padding:5px}.future-panel{gap:6px;padding:10px}.math-active{gap:3px;padding:8px}.math-answers button{min-height:56px}.math-answer-value{font-size:clamp(24px,3vw,32px)}.mines-grid{gap:2px;width:min(100%,120px)}.mines-feedback span{font-size:9px}.controls-card{gap:4px 10px;padding:8px}.game-help{padding-top:5px}.game-help-copy{max-height:64px}.key-row{font-size:10px}}@media (width<=760px){.app-shell{width:min(620px,100% - 28px);padding-top:14px}.site-header{gap:10px}.button-label{display:none}.home-shell{gap:25px}.home-hero{grid-template-columns:1fr;gap:38px;min-height:auto;padding:32px 0}.hero-copy{gap:21px}.home-lower{grid-template-columns:1fr}.local-tools{flex-wrap:wrap;grid-column:auto;justify-content:start}.local-tools .eyebrow{width:100%}.site-footer{flex-wrap:wrap;justify-content:start}.run-status,.ruleset-chip{display:none}}@container (width<=900px){.game-shell{height:auto;min-height:100vh}.game-header,.game-footer{flex-wrap:wrap}.game-layout{grid-template-columns:minmax(0,1fr);height:auto}.board-column{height:auto;min-height:620px}.board-playfield{grid-template-columns:minmax(0,1fr) 88px}.game-side,.game-side.math-open:not(.mines-open),.game-side.mines-open{grid-template-rows:auto;height:auto}.game-side{padding-top:12px}.game-footer{margin-top:12px}}body[style*=zoom] .game-shell{width:64%}@media (width<=390px){h1{font-size:52px}.site-nav{gap:4px}.nav-link{font-size:11px}.hero-actions{gap:14px}.dialog-card{padding:21px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
