:root,[data-theme=graphite-glow]{--bg-primary: #0b0f14;--bg-secondary: #121a24;--bg-tertiary: #1a2533;--text-primary: #eaf2ff;--text-secondary: #b9c6d9;--border-color: #2a3a4f;--accent-primary: #4cc9f0;--accent-secondary: #4361ee;--board-grid: #2a3a4f;--board-border: #4cc9f0;--board-texture: none;--board-texture-size: 320px 320px;--board-texture-blend: normal;--cell-empty: #16202e;--cell-empty-alt: #1b2738;--cell-filled: #4cc9f0;--cell-texture-empty: none;--cell-texture-empty-size: 200px 200px;--cell-texture-empty-blend: normal;--cell-texture-filled: none;--cell-texture-filled-size: 200px 200px;--cell-texture-filled-blend: normal;--piece-texture: none;--piece-texture-size: 200px 200px;--piece-texture-blend: normal;--preview-valid: rgba(76, 201, 240, .35);--preview-invalid: rgba(248, 81, 73, .38);--preview-clear: rgba(76, 201, 240, .24);--preview-clear-strong: rgba(76, 201, 240, .48);--preview-clear-outline: rgba(76, 201, 240, .86);--clear-animation: pulse;--clear-duration: .4s;--clear-ease: cubic-bezier(.22, .61, .36, 1);--clear-color-strong: #ffffff;--clear-color-soft: rgba(255, 255, 255, .7)}[data-fx=classic-pulse]{--clear-animation: pulse;--clear-duration: .4s}[data-fx=sweep-highlight]{--clear-animation: sweep;--clear-duration: .5s}[data-fx=minimal-fade]{--clear-animation: fade;--clear-duration: .3s}[data-fx=ripple-out] .cell.clearing{position:relative;overflow:hidden}[data-fx=ripple-out] .cell.clearing:after{content:"";position:absolute;inset:20%;border-radius:50%;border:2px solid var(--clear-color-soft);animation:fx-ripple-out var(--clear-duration, .4s) var(--clear-ease, ease-out) forwards}[data-fx=line-flash] .cell.clearing{animation:fx-line-flash var(--clear-duration, .4s) linear forwards}[data-fx=grid-crackle] .cell.clearing{animation:fx-grid-crackle .28s steps(3,end) forwards}[data-fx=dissolve-pixels] .cell.clearing{animation:fx-dissolve-pixels .35s var(--clear-ease, ease-out) forwards}[data-fx=soft-bloom] .cell.clearing{animation:fx-soft-bloom .3s var(--clear-ease, ease-out) forwards}[data-fx=vapor-sweep] .cell.clearing{position:relative;overflow:hidden}[data-fx=vapor-sweep] .cell.clearing:after{content:"";position:absolute;left:-50%;top:0;width:50%;height:100%;background:linear-gradient(to right,transparent,rgba(255,255,255,.4),transparent);animation:fx-vapor-sweep .4s linear forwards}[data-fx=pulse-grid] .cell.clearing{animation:fx-pulse-grid .25s ease-out forwards}[data-fx=flip-tile] .cell.clearing{transform-origin:center;animation:fx-flip-tile .28s var(--clear-ease, ease-out) forwards}[data-fx=ember-fade] .cell.clearing{position:relative}[data-fx=ember-fade] .cell.clearing:after{content:"";position:absolute;inset:35%;border-radius:50%;background:radial-gradient(circle,#ffeb9a,#ff7b3a 60%,transparent);animation:fx-ember-fade .35s ease-out forwards}[data-fx=shatter-plate] .cell.clearing{position:relative}[data-fx=shatter-plate] .cell.clearing:after{content:"";position:absolute;inset:0;background-image:linear-gradient(45deg,rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(-45deg,rgba(255,255,255,.4) 1px,transparent 1px);background-size:8px 8px;mix-blend-mode:screen;animation:fx-shatter-plate .25s ease-out forwards}[data-fx=supernova-burst] .cell.clearing{position:relative}[data-fx=supernova-burst] .cell.clearing:before{content:"";position:absolute;inset:0;background:radial-gradient(circle,#ffffff,transparent 70%);animation:fx-supernova-flash .08s ease-out forwards}[data-fx=supernova-burst] .cell.clearing:after{content:"";position:absolute;inset:20%;border-radius:50%;border:2px solid #ffd166;box-shadow:0 0 10px #6fcfffcc;animation:fx-supernova-ring .35s ease-out forwards}[data-fx=crt-implosion] .cell.clearing{position:relative;overflow:hidden;background:none!important}[data-fx=crt-implosion] .cell.clearing:before{content:"";position:absolute;left:0;right:0;top:45%;height:10%;background:var(--clear-color-strong, #ffffff);animation:fx-crt-line .18s ease-out forwards}[data-fx=crt-implosion] .cell.clearing:after{content:"";position:absolute;left:50%;top:50%;width:2px;height:2px;border-radius:50%;background:var(--clear-color-strong, #ffffff);box-shadow:-6px 0 0 0 var(--clear-color-soft, rgba(255, 255, 255, .7)),6px 0 0 0 var(--clear-color-soft, rgba(255, 255, 255, .7)),0 -6px 0 0 var(--clear-color-soft, rgba(255, 255, 255, .7)),0 6px 0 0 var(--clear-color-soft, rgba(255, 255, 255, .7));opacity:0;animation:fx-crt-point .18s ease-out .18s forwards}[data-fx=neon-wireframe] .cell.clearing{position:relative}[data-fx=neon-wireframe] .cell.clearing:before{content:"";position:absolute;inset:1px;border:2px solid #00f5ff;box-shadow:0 0 8px #00f5ffe6;animation:fx-neon-wireframe .4s ease-out forwards}[data-fx=score-harvest] .cell.clearing{animation:fx-harvest-condense var(--clear-duration, .4s) var(--clear-ease, ease-out) forwards}@keyframes fx-harvest-condense{0%{transform:scale(1);filter:brightness(1);opacity:1}to{transform:scale(.3);filter:brightness(1.35);opacity:.2}}.harvest-layer,.emberfall-canvas{position:fixed;inset:0;pointer-events:none;z-index:950}.harvest-mote{position:fixed;left:0;top:0;width:var(--h-size, 8px);height:var(--h-size, 8px);border-radius:999px;opacity:0;box-shadow:var(--h-glow, none);will-change:transform,opacity;animation:harvest-mote-fly var(--h-dur, .65s) cubic-bezier(.35,0,.65,1) var(--h-delay, 0ms) forwards}@keyframes harvest-mote-fly{0%{transform:translate3d(var(--h-x0),var(--h-y0),0) scale(1);opacity:1}60%{transform:translate3d(var(--h-xm),var(--h-ym),0) scale(.6);opacity:1}to{transform:translate3d(var(--h-x1),var(--h-y1),0) scale(.32);opacity:.85}}.score-bump{display:inline-block;animation:score-harvest-bump .14s ease-out}@keyframes score-harvest-bump{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.harvest-mote{display:none}.score-bump{animation:none}}[data-fx=fuse-burn]{--clear-duration: .3s}[data-fx=fuse-burn] .cell.clearing{position:relative;animation:fx-fuse-flare var(--clear-duration, .3s) ease-out var(--fx-delay, 0ms) forwards}[data-fx=fuse-burn] .cell.clearing:after{content:"";position:absolute;inset:30%;border-radius:50%;background:radial-gradient(circle,#fff7d6,#ffb13d 55%,transparent);opacity:0;animation:fx-fuse-spark var(--clear-duration, .3s) ease-out var(--fx-delay, 0ms) forwards}@keyframes fx-fuse-flare{0%{transform:scale(1);filter:brightness(1);opacity:1}35%{transform:scale(1.06);filter:brightness(1.6);opacity:1}to{transform:scale(.92);filter:brightness(.9);opacity:0}}@keyframes fx-fuse-spark{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}[data-fx=note-cascade] .cell.clearing{animation:fx-cascade-hold var(--clear-duration, .4s) ease-in-out forwards}@keyframes fx-cascade-hold{0%{filter:brightness(1)}50%{filter:brightness(1.18)}to{filter:brightness(1.08);opacity:1}}.cascade-layer{display:contents}.cascade-ghost{pointer-events:none;border-radius:3px;filter:brightness(1.08)}.cascade-ghost.departing{animation:fx-cascade-depart var(--cascade-depart, .38s) ease-out forwards}@keyframes fx-cascade-depart{0%{transform:scale(1);filter:brightness(1.08);opacity:1}30%{transform:scale(1.07);filter:brightness(1.5);opacity:1}to{transform:scale(.85);filter:brightness(1.2);opacity:0}}@keyframes fx-ripple-out{0%{transform:scale(.3);opacity:1}to{transform:scale(1.4);opacity:0}}@keyframes fx-line-flash{0%{box-shadow:inset 0 0 0 0 var(--clear-color-soft)}50%{box-shadow:inset 0 0 0 999px var(--clear-color-soft)}to{box-shadow:inset 0 0 0 0 transparent;opacity:0}}@keyframes fx-grid-crackle{0%{opacity:1;filter:brightness(1)}33%{opacity:.5;filter:brightness(1.6)}66%{opacity:.8;filter:brightness(.8)}to{opacity:0;filter:brightness(1)}}@keyframes fx-dissolve-pixels{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-2px,-2px);filter:blur(1px)}}@keyframes fx-soft-bloom{0%{box-shadow:0 0 #ffffffb3}to{box-shadow:0 0 18px 8px #fff0;opacity:0}}@keyframes fx-vapor-sweep{0%{transform:translate(0);opacity:1}to{transform:translate(200%);opacity:0}}@keyframes fx-pulse-grid{0%{box-shadow:0 0 0 0 var(--clear-color-soft)}to{box-shadow:0 0 0 1px transparent;opacity:0}}@keyframes fx-flip-tile{0%{transform:rotateY(0);opacity:1}50%{transform:rotateY(90deg);opacity:.6}to{transform:rotateY(180deg);opacity:0}}@keyframes fx-ember-fade{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.4)}}@keyframes fx-shatter-plate{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}@keyframes fx-supernova-flash{0%{opacity:1}to{opacity:0}}@keyframes fx-supernova-ring{0%{transform:scale(.3);opacity:1}to{transform:scale(1.7);opacity:0}}@keyframes fx-crt-line{0%{transform:scaleX(1);opacity:1}to{transform:scaleX(0);opacity:0}}@keyframes fx-crt-point{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.4)}}@keyframes fx-neon-wireframe{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.2) translateY(-2px)}}[data-fx=cascade-down] .cell.clearing{animation:cascade-down .6s ease-in forwards}[data-fx=spiral-out] .cell.clearing{animation:spiral-out .7s ease-in-out forwards}[data-fx=ripple-wave] .cell.clearing{animation:ripple-wave .5s ease-out forwards}[data-fx=particle-burst] .cell.clearing{animation:particle-burst .6s ease-out forwards}[data-fx=flip-fade] .cell.clearing{animation:flip-fade .5s ease-in-out forwards;transform-style:preserve-3d}[data-fx=shimmer-flash] .cell.clearing{animation:shimmer-flash .4s ease-in-out forwards}[data-fx=collapse-inward] .cell.clearing{animation:collapse-inward .45s ease-in forwards}[data-fx=edge-glow] .cell.clearing{animation:edge-glow .6s ease-out forwards;color:var(--cell-filled, var(--accent-primary))}[data-fx=pixel-dissolve] .cell.clearing{animation:pixel-dissolve .55s ease-in forwards}[data-fx=rainbow-shift] .cell.clearing{animation:rainbow-shift .7s linear forwards}[data-fx=black-hole] .cell.clearing{animation:black-hole 1s ease-in forwards}[data-fx=matrix-rain] .cell.clearing{color:var(--accent-primary, currentColor);animation:matrix-rain .95s ease-in forwards}@keyframes cascade-down{0%{transform:translateY(0);opacity:1}to{transform:translateY(100px);opacity:0}}@keyframes spiral-out{0%{transform:rotate(0) scale(1);opacity:1}to{transform:rotate(360deg) scale(0);opacity:0}}@keyframes ripple-wave{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.6}to{transform:scale(1);opacity:0}}@keyframes particle-burst{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx, 0),var(--dy, 0)) scale(0);opacity:0}}@keyframes flip-fade{0%{transform:rotateY(0);opacity:1}50%{transform:rotateY(90deg);opacity:.5}to{transform:rotateY(180deg);opacity:0}}@keyframes shimmer-flash{0%,to{opacity:1;box-shadow:0 0 #fff0}50%{opacity:.5;box-shadow:0 0 20px #fffc}}@keyframes collapse-inward{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:0}}@keyframes edge-glow{0%{box-shadow:inset 0 0 0 0 currentColor;opacity:1}50%{box-shadow:inset 0 0 20px 5px currentColor}to{box-shadow:inset 0 0 30px 10px currentColor;opacity:0}}@keyframes pixel-dissolve{0%{opacity:1;filter:blur(0)}50%{filter:blur(3px)}to{opacity:0;filter:blur(8px)}}@keyframes rainbow-shift{0%{filter:hue-rotate(0deg);opacity:1}25%{filter:hue-rotate(90deg)}50%{filter:hue-rotate(180deg)}75%{filter:hue-rotate(270deg)}to{filter:hue-rotate(360deg);opacity:0}}@keyframes black-hole{0%{transform:scale(1) rotate(0);opacity:1;border-radius:3px}20%{transform:scale(.95) rotate(-45deg);filter:brightness(.7)}40%{transform:scale(.7) rotate(-180deg);border-radius:50%;box-shadow:inset 0 0 20px #000000e6}60%{transform:scale(.4) rotate(-360deg);filter:brightness(.3)}80%{transform:scale(.1) rotate(-540deg);opacity:.5}to{transform:scale(0) rotate(-720deg);opacity:0;box-shadow:inset 0 0 40px #000}}@keyframes matrix-rain{0%{opacity:1;transform:translateY(0);filter:hue-rotate(0deg)}20%{opacity:1;box-shadow:0 5px 0 0 currentColor,0 10px 0 0 currentColor,0 15px 0 0 currentColor;filter:hue-rotate(120deg)}40%{opacity:.8;transform:translateY(20px);box-shadow:0 8px 0 -2px currentColor,0 16px 0 -2px currentColor,0 24px 0 -2px currentColor,0 32px 0 -4px currentColor}60%{opacity:.5;transform:translateY(50px);filter:hue-rotate(240deg) brightness(.7)}80%{opacity:.2;transform:translateY(80px);filter:brightness(.3)}to{opacity:0;transform:translateY(120px);filter:brightness(0)}}[data-fx=stardust]{--clear-duration: .62s}[data-fx=stardust][data-family=light]{--clear-color-strong: rgba(34, 44, 64, .92);--clear-color-soft: rgba(34, 44, 64, .55)}[data-fx=stardust] .cell.clearing{position:relative;animation:fx-stardust-cell var(--clear-duration, .62s) ease-out forwards}[data-fx=stardust] .cell.clearing:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 18% 18%,var(--clear-color-strong) 1.5px,transparent 2.5px),radial-gradient(circle at 50% 10%,var(--clear-color-strong) 1px,transparent 2px),radial-gradient(circle at 82% 20%,var(--clear-color-strong) 1.5px,transparent 2.5px),radial-gradient(circle at 10% 50%,var(--clear-color-soft) 1px,transparent 2px),radial-gradient(circle at 90% 50%,var(--clear-color-soft) 1px,transparent 2px),radial-gradient(circle at 18% 82%,var(--clear-color-strong) 1.5px,transparent 2.5px),radial-gradient(circle at 50% 90%,var(--clear-color-strong) 1px,transparent 2px),radial-gradient(circle at 82% 80%,var(--clear-color-strong) 1.5px,transparent 2.5px),radial-gradient(circle at 50% 50%,var(--clear-color-soft) 2px,transparent 3px),radial-gradient(circle at 33% 33%,var(--clear-color-soft) 1px,transparent 2px),radial-gradient(circle at 67% 67%,var(--clear-color-soft) 1px,transparent 2px),radial-gradient(circle at 67% 33%,var(--clear-color-soft) 1px,transparent 2px),radial-gradient(circle at 33% 67%,var(--clear-color-soft) 1px,transparent 2px);animation:fx-stardust-texture var(--clear-duration, .62s) ease-out forwards}@keyframes fx-stardust-cell{0%{opacity:1;transform:scale(1)}22%{opacity:.75}to{opacity:0;transform:scale(1.2)}}@keyframes fx-stardust-texture{0%{opacity:0;transform:scale(.82)}14%{opacity:1;transform:scale(1)}52%{opacity:.6;transform:scale(1.06)}to{opacity:0;transform:scale(1.38)}}[data-fx=depth-sink]{--clear-duration: .41s}[data-fx=depth-sink] .board{perspective:480px}[data-fx=depth-sink] .cell.clearing{transform-origin:center 75%;animation:fx-depth-sink var(--clear-duration, .41s) cubic-bezier(.5,0,.88,.5) forwards}@keyframes fx-depth-sink{0%{transform:rotateX(0) translateY(0) scale(1);opacity:1}14%{transform:rotateX(6deg) translateY(2px) scale(.97);opacity:1}to{transform:rotateX(82deg) translateY(10px) scale(.3);opacity:0}}[data-fx=page-turn]{--clear-duration: .7s}[data-fx=page-turn] .board{perspective:900px}[data-fx=page-turn] .cell.clearing{transform-style:preserve-3d;backface-visibility:hidden;animation:fx-page-flip-y .4s ease-in forwards;animation-delay:var(--cell-flip-delay, 0ms)}[data-fx=page-turn] .cell.clearing.flip-x{animation-name:fx-page-flip-x}@keyframes fx-page-flip-y{0%{transform:rotateY(0);opacity:1}50%{transform:rotateY(-90deg);opacity:.85}to{transform:rotateY(-180deg);opacity:0}}@keyframes fx-page-flip-x{0%{transform:rotateX(0);opacity:1}50%{transform:rotateX(-90deg);opacity:.85}to{transform:rotateX(-180deg);opacity:0}}[data-fx=emberfall] .cell.clearing{animation:fx-emberfall-burn .3s ease-in forwards}@keyframes fx-emberfall-burn{0%{opacity:1;filter:brightness(1)}38%{opacity:.85;filter:brightness(1.7)}to{opacity:0;transform:scale(.7)}}:root{--mist-tint: #e6eef7}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-tap-highlight-color:transparent}button,[role=button],[role=radio],summary,.toggle,.toggle-slider,.palette-slider,.suggestion-item{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--page-gradient, none) var(--bg-primary);color:var(--text-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden;line-height:1.4}#app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;max-width:1200px;margin:0 auto;padding:.5rem;padding-top:calc(.5rem + env(safe-area-inset-top))}body[data-page=game]{overflow-y:hidden}body[data-page=game] #app{height:100vh;height:100dvh;overflow:hidden;padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}body[data-page=game] .main-content{min-height:0;overflow:hidden;padding:.4rem;gap:.75rem}body[data-page=game] .game-column{gap:.75rem}body[data-page=game] .board-section{gap:.375rem}body[data-page=game] .board-wrap{flex:1 1 auto;max-height:var(--board-max);margin-top:auto}body[data-page=game] .status-line{height:2rem;overflow:hidden;line-height:1rem;margin-block:auto;font-style:italic}body[data-page=game] .tray-section{gap:.4rem;margin-bottom:auto}body[data-page=game] .tray{padding:.625rem;min-height:7.5rem}body[data-page=game]{--gap-toggle-height: 1.25rem}@media(max-height:680px){body[data-page=game]{--ad-banner-height: 30px}body[data-page=game] .ad-placeholder{margin-top:.25rem}body[data-page=game] .tray{min-height:6.5rem;padding:.5rem}}@media(min-width:600px)and (min-height:600px){body[data-page=game]{--ad-banner-height: 90px}}.score-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;flex-shrink:0;height:3rem;position:relative}.score-bar-left{display:flex;align-items:center;gap:.25rem;min-width:0;flex:1}.score-bar-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.score-bar-mode{font-size:.625rem;font-weight:600;color:var(--text-secondary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-bar-scores{font-size:1.25rem;font-weight:700;color:var(--accent-primary);min-width:0}[data-family=dark] .score-bar-scores{color:var(--mist-tint)}.score-bar-solo{display:block}.score-bar-big-number{font-size:1.875rem;font-weight:700;color:var(--accent-primary);line-height:1;font-variant-numeric:tabular-nums}[data-family=dark] .score-bar-big-number{color:var(--mist-tint)}.score-bar-vs{display:flex;flex-direction:column;gap:0}.score-bar-vs-numbers{display:inline-flex;align-items:baseline;gap:.3em}.score-bar-vs-player{font-size:1.625rem;font-weight:700;color:var(--accent-primary);line-height:1;font-variant-numeric:tabular-nums}[data-family=dark] .score-bar-vs-player{color:var(--mist-tint)}.score-bar-vs-sep{font-size:.8125rem;font-weight:600;color:var(--text-secondary);line-height:1}.score-bar-vs-bot{font-size:1.375rem;font-weight:600;color:var(--text-secondary);line-height:1}.streak-pip-cluster{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex-shrink:0;opacity:0;transform:translateY(2px);transition:opacity .26s ease,transform .26s ease;pointer-events:none}.streak-pip-cluster.streak-active{opacity:1;transform:none}.streak-caption{font-size:8px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1;color:var(--text-secondary);opacity:.6;white-space:nowrap}.streak-pip-columns{display:flex;align-items:flex-end;gap:3px}.streak-pip-column{display:flex;flex-direction:column-reverse;gap:3px}.streak-pip{width:9px;height:9px;border-radius:50%;background:linear-gradient(180deg,var(--pip-hi, rgb(150, 150, 150)),var(--pip-base, rgb(128, 128, 128)) 62%,var(--pip-sh, rgb(105, 105, 105)));box-shadow:inset 0 1px #ffffff2e,inset 0 -1.5px 1px #00000038;transition:background .3s ease}.streak-pip.streak-pip-bloom{animation:streak-pip-bloom .36s var(--clear-ease, ease-out)}.streak-pip.streak-pip-dropping{opacity:0;filter:grayscale(.7);transition:opacity .48s ease-out,filter .48s ease-out}@keyframes streak-pip-bloom{0%{transform:scale(.55);opacity:0}60%{transform:scale(1.16);opacity:1}to{transform:scale(1);opacity:1}}.undo-row{display:flex;justify-content:flex-end;align-items:center;padding:0;flex-shrink:0;width:var(--undo-row-width, min(100%, var(--board-max)));margin-inline:auto}.undo-row.hidden{display:flex!important;visibility:hidden;pointer-events:none}.undo-btn{width:2.75rem;height:2.75rem;min-width:auto;min-height:auto;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;border:none;background:none;color:var(--text-secondary);cursor:pointer;flex-shrink:0;opacity:1;transition:opacity .15s}.undo-btn:disabled{opacity:1;cursor:default}.undo-stack{display:flex;flex-direction:column;align-items:center;gap:5px}.undo-gauge{display:flex;gap:3px;align-items:center;pointer-events:none}.undo-gauge-block{position:relative;width:9px;height:9px;border-radius:2px;flex:0 0 auto;pointer-events:none}.undo-gauge-block:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(145deg,color-mix(in srgb,var(--piece-hero-highlight, rgb(150, 150, 150)) 76%,#fff),var(--piece-hero-base, rgb(128, 128, 128)) 55%,var(--piece-hero-shadow, rgb(105, 105, 105)));box-shadow:inset 0 1px #ffffff73,inset 0 -1px 1px #00000047,inset 0 0 0 .5px #ffffff29;opacity:1;pointer-events:none}.undo-gauge-block.empty:before{opacity:0}[data-family=dark] .undo-gauge-block{background:#0000006b;box-shadow:inset 0 1px 2px #0009,inset 0 0 0 .5px #ffffff1a}[data-family=light] .undo-gauge-block{background:#0000001a;box-shadow:inset 0 1px 2px #00000042,inset 0 0 0 .5px #00000024}.undo-gauge-block.spending:before{animation:undo-gauge-spend .2s ease-in forwards}@keyframes undo-gauge-spend{0%{opacity:1;transform:scale(1);filter:saturate(1)}to{opacity:0;transform:scale(.4);filter:saturate(.15)}}.btn{font-family:inherit;font-size:.875rem;font-weight:500;padding:.5rem .75rem;border:1px solid var(--pill-border, var(--border-color));border-radius:.375rem;background:var(--pill-surface, var(--bg-secondary));color:var(--text-primary);cursor:pointer;transition:background .15s,opacity .15s;touch-action:manipulation}.btn:hover:not(:disabled){background:var(--bg-tertiary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary)}.btn-primary:hover:not(:disabled){background:var(--accent-secondary);border-color:var(--accent-secondary)}.btn-small{font-size:.75rem;padding:.25rem .5rem}.btn-icon{min-width:2.5rem}body[data-page=settings] .main-content{display:none}body[data-page=settings] #app{height:100vh;height:100dvh;overflow:hidden}body[data-page=game] #settings-view{display:none}body[data-page=home] .home-view{display:flex}body[data-page=home] .main-content,body[data-page=home] #settings-view{display:none}body[data-page=home] #app{height:100vh;height:100dvh;overflow:hidden}body[data-page=game] .home-view,body[data-page=settings] .home-view,body[data-page=sounds] .home-view,body[data-page=help] .home-view,body[data-page=scores] .home-view,body[data-page=sounds] .main-content,body[data-page=sounds] #settings-view{display:none}body[data-page=sounds] #app{height:100vh;height:100dvh;overflow:hidden}body[data-page=game] .sounds-view,body[data-page=settings] .sounds-view,body[data-page=home] .sounds-view,body[data-page=help] .sounds-view,body[data-page=scores] .sounds-view,body[data-page=help] .main-content,body[data-page=help] #settings-view{display:none}body[data-page=help] .help-view{display:flex}body[data-page=help] #app{height:100vh;height:100dvh;overflow:hidden}body[data-page=game] .help-view,body[data-page=settings] .help-view,body[data-page=home] .help-view,body[data-page=sounds] .help-view,body[data-page=scores] .help-view{display:none}body[data-page=scores] .scores-view{display:flex;flex-direction:column}body[data-page=scores] .main-content,body[data-page=scores] #settings-view{display:none}body[data-page=scores] #app{height:100vh;height:100dvh;overflow:hidden}body[data-page=game] .scores-view,body[data-page=settings] .scores-view,body[data-page=home] .scores-view,body[data-page=sounds] .scores-view,body[data-page=help] .scores-view{display:none}.card-chevron{font-size:1.5rem;color:var(--text-secondary);margin-left:auto;padding-left:.5rem}.dropdown{font-family:inherit;font-size:.875rem;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:.375rem;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;touch-action:manipulation}.main-content{display:flex;flex-direction:column;flex:1;min-height:0;gap:1rem;padding:.5rem}.game-column{display:flex;flex-direction:column;gap:1rem;flex:1;min-height:0}.board-section{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.375rem;flex:1;min-height:0;--board-max: 560px}.score-display{font-size:1.5rem;font-weight:700;color:var(--accent-primary)}.board{width:100%;max-width:var(--board-size);max-height:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:2px;padding:7px;border-radius:8px;border:none;contain:size;touch-action:none}.board-wrap{container-type:size;width:100%;flex:1 1 0;min-height:0;display:grid;place-items:center;position:relative;z-index:1;--board-size: min(100%, var(--board-max))}@media(max-width:767px){.board-section{--board-max: min(90vw, 400px)}}@media(min-width:768px){.board-section{--board-max: 500px}}@media(min-width:1024px){.board-section{--board-max: 560px}}@media(min-width:1280px){.board-section{--board-max: 620px}}@supports (width: 1cqmin){.board-wrap{--board-size: min(100cqmin, var(--board-max))}.board{width:var(--board-size);height:var(--board-size);max-width:none;max-height:none}}:root,[data-theme]{--ad-banner-height: 50px;--cell-empty-alt-strong: var(--cell-empty-alt);--cell-empty-alt-strong-light: var(--cell-empty-alt);--cell-empty-alt-strong-dark: var(--cell-empty-alt)}@supports (background: color-mix(in oklab,black,white)){:root,[data-theme]{--cell-empty-alt-strong-light: color-mix(in oklab, var(--cell-empty) 70%, var(--text-primary) 30%);--cell-empty-alt-strong-dark: color-mix(in oklab, var(--cell-empty) 80%, var(--bg-primary) 20%);--cell-empty-alt-strong: var(--cell-empty-alt-strong-light);--ghost-step-1-bg: rgba(123, 199, 255, .35);--ghost-step-1-border: rgba(123, 199, 255, .85);--ghost-step-2-bg: rgba(255, 196, 120, .35);--ghost-step-2-border: rgba(255, 196, 120, .85);--ghost-step-3-bg: rgba(144, 226, 165, .35);--ghost-step-3-border: rgba(144, 226, 165, .85)}}.cell{border-radius:3px;transition:background .15s,box-shadow .15s}.cell[data-box="1"],.cell[data-box="3"],.cell[data-box="5"],.cell[data-box="7"]{background-color:var(--cell-empty-alt-strong)}.cell.preview-valid{background-color:var(--preview-valid)}.cell.preview-invalid{background-color:var(--preview-invalid)}.cell.clear-preview{background-color:var(--preview-clear);box-shadow:inset 0 0 0 2px var(--preview-clear-outline, transparent)}.cell.preview-valid.clear-preview{background-color:var(--preview-clear-strong, var(--preview-clear))}.cell.preview-valid,.cell.preview-invalid,.cell.clear-preview,.cell.preview-valid.clear-preview{background-image:none;background-blend-mode:normal}.ghost-plan-layer{display:contents}.ghost-cell{background:var(--ghost-bg, var(--ghost-step-1-bg));border:1px dashed var(--ghost-border, var(--ghost-step-1-border));border-radius:.35rem;box-shadow:inset 0 0 0 1px #ffffff1f}.ghost-label{align-self:start;justify-self:start;background:var(--ghost-border, var(--bg-secondary));color:var(--bg-primary);padding:.18rem .5rem;border-radius:999px;font-size:.7rem;font-weight:700;box-shadow:0 2px 6px #00000029}.ghost-step-0{--ghost-bg: var(--ghost-step-1-bg);--ghost-border: var(--ghost-step-1-border)}.ghost-step-1{--ghost-bg: var(--ghost-step-2-bg);--ghost-border: var(--ghost-step-2-border)}.ghost-step-2{--ghost-bg: var(--ghost-step-3-bg);--ghost-border: var(--ghost-step-3-border)}.cell.clearing{animation:var(--clear-animation, pulse) var(--clear-duration, .4s) ease-out}.status-line{display:flex;align-items:center;justify-content:center;font-size:.875rem;color:var(--text-secondary);text-align:center;min-height:1.25rem;width:100%;max-width:100%;flex-shrink:0}.status-insights-legend{display:inline-flex;align-items:center;gap:.3em}.status-insights-dot{width:var(--insights-chip-size, 8px);height:var(--insights-chip-size, 8px);border-radius:50%;flex-shrink:0}.status-nudge{text-align:center}.status-nudge-link{display:inline;white-space:nowrap;appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:var(--piece-hero-base, #4cc9f0);text-decoration:underline;text-underline-offset:2px;cursor:pointer;touch-action:manipulation}[data-family=dark] .status-nudge-link{color:var(--mist-tint)}.status-nudge-link:focus-visible{outline:2px solid currentcolor;outline-offset:2px;border-radius:2px}.tray-section{display:flex;flex-direction:column;gap:.5rem;flex-shrink:0;width:100%;position:relative}.insights-gap-toggle,.undo-gap-toggle{position:absolute;bottom:calc(100% + 3px);width:33vw;height:var(--gap-toggle-height, 1.25rem);box-sizing:border-box;margin:0;padding:0;border:0;line-height:1;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.insights-gap-toggle{left:calc(50% - 50vw)}.undo-gap-toggle{right:calc(50% - 50vw)}.insights-gap-toggle:focus,.undo-gap-toggle:focus{outline:none}.tray-section,.tray-section .tray,.tray-section .tray-slot{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.tray{position:relative;display:flex;justify-content:space-between;gap:1rem;padding:.75rem;background:transparent;border-radius:.5rem;min-height:7.5rem}.tray.locked{pointer-events:none}.tray.locked .tray-piece{cursor:default}@keyframes tray-thinking{0%,to{transform:scale(1);filter:drop-shadow(0 8px 16px rgba(0,0,0,.3)) brightness(1)}50%{transform:scale(.965);filter:drop-shadow(0 8px 16px rgba(0,0,0,.3)) brightness(1.13)}}.tray.thinking .tray-piece:not(.dragging):not(.disabled){animation:tray-thinking 1.3s ease-in-out infinite}.tray-slot{flex:1 1 0;display:flex;position:relative;justify-content:center;align-items:center;min-width:0;padding-bottom:calc(var(--insights-chip-gap, 28px) + .3rem)}.tray-piece{display:grid;gap:3px;padding:0;background:transparent;cursor:grab;touch-action:none;transition:opacity .15s,transform .1s;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;filter:drop-shadow(0 8px 16px rgba(0,0,0,.3))}.tray-piece .piece-cell{width:var(--cell-size, 1rem);height:var(--cell-size, 1rem);border-radius:3px}.tray-piece .piece-cell.empty{background:transparent}.drag-proxy .piece-cell{border-radius:3px}.drag-proxy .piece-cell.empty{background:transparent}.tray-piece:active{cursor:grabbing}.tray-piece.disabled{opacity:.4;cursor:not-allowed}@keyframes tray-shake{0%,to{transform:translate(0) rotate(0)}15%{transform:translate(-3px) rotate(-2deg)}30%{transform:translate(3px) rotate(2deg)}45%{transform:translate(-2px) rotate(-1.5deg)}60%{transform:translate(2px) rotate(1.5deg)}75%{transform:translate(-1px) rotate(-.5deg)}90%{transform:translate(1px) rotate(.5deg)}}.tray-piece.shaking{animation:tray-shake .8s ease-in-out}.tray-piece.shake-exit{opacity:0;transform:scale(.85);transition:opacity .35s ease-out,transform .35s ease-out}.tray-piece.dragging{visibility:hidden}.drag-proxy{position:fixed;pointer-events:none;z-index:1000;display:grid;filter:drop-shadow(0 8px 16px rgba(0,0,0,.3))}.drag-proxy.dragging{filter:none}.drag-proxy.animating{will-change:transform;filter:none}.drag-proxy.hidden{display:none}.settings-view{display:flex;flex-direction:column;flex:1;min-height:0;max-width:600px;margin:0 auto;width:100%}.settings-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.5rem 0;margin-bottom:.5rem}.settings-back-btn{min-width:44px;min-height:44px;background:none;border:none;cursor:pointer;font-size:1.5rem;color:var(--text-primary);padding:0;display:flex;align-items:center;justify-content:center}.settings-pill{display:inline-flex;align-items:center;gap:.25rem;background:var(--accent-primary, #2563eb);color:#fff;border:none;border-radius:16px;padding:6px 14px;font-size:.78rem;font-weight:600;min-height:44px;cursor:pointer;touch-action:manipulation;box-shadow:0 1px 3px #00000026;white-space:nowrap}.settings-pill:active{filter:brightness(.9)}.settings-pill:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.settings-pill-icon{font-size:.65rem;line-height:1}.sounds-nav .settings-pill{margin-left:.25rem}.settings-content>.settings-row{border-bottom:1px solid var(--border-color);padding:.75rem 0}.settings-content>.settings-row:last-of-type{border-bottom:none}.settings-title{text-align:center;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.settings-content{overflow-y:auto;display:flex;flex-direction:column;gap:.25rem;overscroll-behavior:contain;flex:1;scrollbar-width:none}.settings-content>.settings-section-title{margin-top:.25rem;margin-bottom:.5rem;padding-left:.25rem}.settings-content::-webkit-scrollbar{display:none}.settings-primary-action{width:100%;justify-content:center}.settings-section{border:1px solid var(--border-color);border-radius:.75rem;padding:.75rem;display:flex;flex-direction:column;gap:.75rem}.settings-section-nav{padding-block:0}body[data-page=settings] .settings-section.settings-section-about{gap:.375rem}.settings-section-title{font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);margin:0}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.settings-section[hidden],.settings-row[hidden]{display:none}.settings-row label{font-size:.875rem;font-weight:600;color:var(--text-primary)}.settings-row-text{display:flex;flex-direction:column;gap:.125rem;flex:1}.settings-row-label{font-size:.875rem;font-weight:600;color:var(--text-primary)}.settings-row-help{font-size:.75rem;line-height:1.3;color:var(--text-secondary)}.settings-link{text-align:center;text-decoration:none;display:block}.settings-about-text{font-size:.875rem;color:var(--text-secondary);text-align:center}.settings-row-value{font-size:.8125rem;color:var(--text-secondary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-row-link{cursor:pointer;touch-action:manipulation;min-height:2.75rem}.settings-row-link:active{opacity:.7}.settings-row-link:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:4px}.settings-row-link.is-disabled{pointer-events:none;opacity:.5;cursor:default}.settings-row-action{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.settings-coming-soon{font-size:.75rem;color:var(--text-secondary);font-style:italic;opacity:.7}.settings-how-to-play-text{font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.settings-actions{display:flex;gap:.5rem;flex-wrap:wrap}.settings-actions .btn{flex:0 0 auto}.settings-section-debug{border:1px dashed var(--border-color);opacity:.95;display:none}body.debug-enabled .settings-section-debug{display:flex}#score-breakdown-panel{display:none}body.debug-enabled #score-breakdown-panel.visible{display:block;position:absolute;top:4px;left:4px;z-index:30;pointer-events:none;padding:6px 8px;border-radius:6px;background:#000000b8;color:#eee;font:11px/1.45 ui-monospace,monospace;white-space:nowrap}#score-breakdown-panel .sbp-player{font-weight:700;opacity:.85}#score-breakdown-panel .sbp-row{display:flex;gap:8px;justify-content:space-between}#score-breakdown-panel .sbp-formula{opacity:.65}#score-breakdown-panel .sbp-amount{font-variant-numeric:tabular-nums}#score-breakdown-panel .sbp-total{margin-top:3px;border-top:1px solid rgba(255,255,255,.25);font-weight:700}body.debug-clipping:after{content:"";position:fixed;left:0;right:0;bottom:0;height:2px;background:#00f7ff;box-shadow:0 0 6px #00f7ff99;pointer-events:none;z-index:9999}.card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem}.card-header{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.toggle{position:relative;display:inline-block;width:2.5rem;height:1.375rem}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:var(--bg-tertiary);border-radius:1rem;cursor:pointer;transition:background .2s}.toggle-slider:before{content:"";position:absolute;left:2px;top:2px;width:1rem;height:1rem;background:var(--text-primary);border-radius:50%;transition:transform .2s}.toggle input:checked+.toggle-slider{background:var(--accent-primary)}.toggle input:checked+.toggle-slider:before{transform:translate(1.125rem)}.toggle input:disabled+.toggle-slider{opacity:.55;cursor:not-allowed}.settings-row--disabled{opacity:.5;position:relative}.settings-row--disabled .toggle{cursor:not-allowed}.settings-row--disabled:after{content:"Multi-piece lookahead is only available in solo mode";position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:#000000e6;color:#fff;padding:.5rem .75rem;border-radius:.25rem;font-size:.75rem;z-index:1000;pointer-events:none;line-height:1.4;text-align:center;opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s}.settings-row--disabled:hover:after{opacity:1;visibility:visible}.settings-row--disabled:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#000000e6;z-index:1000;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s}.settings-row--disabled:hover:before{opacity:1;visibility:visible}.suggestions-list{list-style:none;display:flex;flex-direction:column;gap:.375rem}.suggestion-item{font-size:.75rem;padding:.375rem .5rem;background:var(--bg-tertiary);border-radius:.25rem;cursor:pointer;transition:background .1s}.suggestion-header{display:flex;align-items:center;gap:.35rem;justify-content:space-between;margin-bottom:.2rem}.suggestion-piece{font-weight:700}.suggestion-item--mini .suggestion-header{justify-content:flex-start;gap:.4rem}.suggestion-piece .hint-mini-piece{gap:var(--hint-cell-gap, .1rem);filter:none;cursor:inherit;touch-action:auto;transition:none}.suggestion-piece .hint-mini-piece .piece-cell{width:var(--hint-cell-size, .6rem);height:var(--hint-cell-size, .6rem)}.hint-mini-piece--xs{--hint-cell-size: .5rem;--hint-cell-gap: .08rem}.hint-mini-piece--sm{--hint-cell-size: .6rem;--hint-cell-gap: .1rem}.hint-mini-piece--md{--hint-cell-size: .7rem;--hint-cell-gap: .12rem}.suggestion-meta{display:flex;flex-wrap:wrap;gap:.5rem;color:var(--text-secondary)}.suggestion-step{background:var(--pill-surface, var(--bg-secondary));color:var(--text-secondary);padding:.15rem .5rem;border-radius:999px;font-size:.65rem;font-weight:700}.suggestion-item:hover{background:var(--accent-primary);color:var(--bg-primary)}@keyframes score-delta-float{0%{opacity:1;transform:translate(-50%)}60%{opacity:1;transform:translate(-50%,-1rem)}to{opacity:0;transform:translate(-50%,-1.75rem)}}.score-delta{position:absolute;font-size:.875rem;font-weight:700;color:var(--accent-primary);animation:score-delta-float 1.4s ease-out forwards;pointer-events:none;white-space:nowrap;transform:translate(-50%)}.cell.game-over-dimmed{position:relative}.cell.game-over-dimmed:after{content:"";position:absolute;inset:0;background:var(--empty-cell, var(--bg-primary));opacity:0;pointer-events:none;z-index:0;border-radius:inherit;transition:opacity .4s ease}.cell.game-over-dimmed.dim-active:after{opacity:.85}.cell.game-over-letter-cell{position:relative}.game-over-letter-floor{position:absolute;inset:0;background-color:var(--game-over-letter-floor, var(--empty-cell, var(--bg-primary)));pointer-events:none;z-index:0;border-radius:inherit}.cell.has-subcells{display:grid;grid-template:1fr 1fr / 1fr 1fr;padding:0;gap:0;overflow:hidden}.sub-cell{position:relative;z-index:1;border-radius:1px}.sub-cell-lit{border-radius:2px}.cell.has-subcells:has(.sub-cell-nudge-left){overflow:visible}.sub-cell-nudge-left{transform:translate(-50%)}#game-over-panel{display:none;flex-direction:column;align-items:center;width:100%;position:absolute;top:100%;left:0;right:0}#game-over-panel.visible{display:flex}#game-over-panel.no-hero{margin-top:0;padding-top:0}#game-over-panel.has-hero{margin-top:0;padding-top:16px}.game-over-hero{text-align:center}.game-over-headline{font-size:22px;font-weight:800;letter-spacing:-.2px;color:var(--text-primary);margin:0}.game-over-subtitle{font-size:13px;margin-top:5px;margin-bottom:0}.game-over-subtitle.italic{font-style:italic;color:var(--text-secondary)}.game-over-subtitle.accent-bold{font-weight:700;color:var(--accent-primary)}.game-over-actions{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:14px}@media(prefers-reduced-motion:reduce){.score-delta{animation:none;opacity:0}.streak-pip-cluster,.streak-pip{transition:none}.streak-pip.streak-pip-bloom{animation:none}.streak-pip.streak-pip-dropping{transition:none}.undo-gauge-block.spending:before{animation:none}.cell.game-over-dimmed:after{transition:none}.tray-piece.shaking{animation:none}.tray-piece.shake-exit{transition:none}.tray.thinking .tray-piece{animation:none}.tray.thinking{box-shadow:inset 0 0 0 2px var(--accent-primary)}:root{--clear-duration: 0ms !important}.cell.clearing,.cell.clearing:before,.cell.clearing:after{animation:none!important;opacity:0!important}}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.8}to{transform:scale(1);opacity:0;background:var(--cell-empty)}}@keyframes sweep{0%{clip-path:inset(0 100% 0 0);background:var(--accent-primary)}50%{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 0 100%);background:var(--cell-empty)}}@keyframes fade{0%{opacity:1}to{opacity:0;background:var(--cell-empty)}}@keyframes board-ripple{0%{transform:scale(1) translateY(0)}35%{transform:scale(.96) translateY(.4px)}to{transform:scale(1) translateY(0)}}.cell.rippling{animation:board-ripple var(--ripple-duration, .28s) ease-out both}@media(prefers-reduced-motion:reduce){.cell.rippling{animation:none}}.slot-stats{position:absolute;bottom:.3rem;left:0;right:0;opacity:0;transition:opacity .15s ease;display:flex;align-items:center;justify-content:center;gap:.4rem;white-space:nowrap;pointer-events:none}.stats-enabled .slot-stats{opacity:1}.slot-stats.no-stats{visibility:hidden}.stat-chip{display:inline-flex;align-items:center;gap:0;line-height:1}.chip-clears{width:var(--insights-chip-size, 8px);height:var(--insights-chip-size, 8px);border-radius:50%}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(min-width:768px){#app{padding:1.5rem;max-width:1400px}.main-content{align-items:center;gap:1.25rem}.game-column{width:min(560px,100%)}.tray{justify-content:center;width:100%}}@media(min-width:1024px){#app{padding:2rem}.main-content{gap:3rem}.game-column{max-width:560px}.tray{gap:1.5rem}}@media(min-width:1280px){.game-column{max-width:620px}}@media(orientation:portrait)and (min-width:600px){body[data-page=game] .game-column{width:min(88vw,880px);max-width:none}body[data-page=game] .board-section{--board-max: min(82vw, 790px)}body[data-page=game]{--tray-cell-max: 22px;--insights-chip-size: clamp(8px, 1.35vw, 11px)}body[data-page=game] .main-content{padding-top:clamp(.4rem,2.5vw,1.5rem)}body[data-page=game] .game-column{gap:clamp(.75rem,2vw,1.5rem)}body[data-page=game] .score-bar{height:clamp(3rem,7.45vw,4rem)}body[data-page=game] .score-bar-text{gap:clamp(4px,.7vw,6px)}body[data-page=game] .score-bar-big-number{font-size:clamp(1.875rem,4.5vw,2.4rem)}body[data-page=game] .score-bar-scores{font-size:clamp(1.25rem,3vw,1.6rem)}body[data-page=game] .score-bar-vs-player{font-size:clamp(1.625rem,3.9vw,2.08rem)}body[data-page=game] .score-bar-vs-bot{font-size:clamp(1.375rem,3.3vw,1.76rem)}body[data-page=game] .score-bar-vs-sep{font-size:clamp(.8125rem,1.95vw,1.04rem)}body[data-page=game] .score-bar-mode{font-size:clamp(.625rem,1.5vw,.8rem)}body[data-page=game] .status-line{height:clamp(2rem,4.7vw,2.5rem);line-height:clamp(1rem,2.35vw,1.25rem);font-size:clamp(.875rem,1.95vw,1.05rem)}body[data-page=game] .tray{min-height:clamp(7.5rem,17.7vw,9.5rem);padding:clamp(.625rem,1.6vw,.85rem)}body[data-page=game] .undo-btn{width:clamp(2.75rem,6.05vw,3.25rem);height:clamp(2.75rem,6.05vw,3.25rem)}body[data-page=game] .undo-gauge-block{width:clamp(9px,2vw,11px);height:clamp(9px,2vw,11px)}@supports (width: 1cqmin){.board{gap:.55cqmin;padding:1.9cqmin;border-radius:2.2cqmin}}body[data-page=game] .game-over-headline{font-size:clamp(22px,3.3vw,28px)}body[data-page=game] .game-over-subtitle{font-size:clamp(13px,1.95vw,16.5px);margin-top:clamp(5px,.75vw,6.5px)}body[data-page=game] .game-over-actions{gap:clamp(10px,1.5vw,13px);margin-top:clamp(14px,2.1vw,18px)}#game-over-panel .btn{font-size:clamp(.875rem,2vw,1.05rem);padding:clamp(.5rem,1.2vw,.65rem) clamp(.75rem,1.8vw,1rem)}body[data-page=settings] .settings-pill,body[data-page=scores] .settings-pill,body[data-page=sounds] .settings-pill,body[data-page=help] .settings-pill{padding:clamp(6px,.91vw,7.8px) clamp(14px,2.12vw,18.2px);font-size:clamp(.78rem,1.89vw,1.014rem);min-height:clamp(44px,6.65vw,57.2px);border-radius:clamp(16px,2.42vw,20.8px)}body[data-page=settings] .settings-pill-icon,body[data-page=scores] .settings-pill-icon,body[data-page=sounds] .settings-pill-icon,body[data-page=help] .settings-pill-icon{font-size:clamp(.65rem,1.57vw,.845rem)}body[data-page=settings] .settings-nav{gap:clamp(.75rem,1.81vw,.975rem)}body[data-page=settings] .settings-back-btn{min-width:clamp(44px,6.65vw,57.2px);min-height:clamp(44px,6.65vw,57.2px);font-size:clamp(1.5rem,3.63vw,1.95rem)}body[data-page=settings] .settings-title{font-size:clamp(1.25rem,3.02vw,1.625rem)}body[data-page=settings] .settings-section{padding:clamp(.75rem,1.81vw,.975rem);gap:clamp(.75rem,1.81vw,.975rem);border-radius:clamp(.75rem,1.81vw,.975rem)}body[data-page=settings] .settings-section-title{font-size:clamp(.75rem,1.81vw,.975rem)}body[data-page=settings] .settings-content>.settings-row{padding-block:clamp(.75rem,1.81vw,.975rem)}body[data-page=settings] .settings-row{gap:clamp(.75rem,1.81vw,.975rem)}body[data-page=settings] .settings-row label,body[data-page=settings] .settings-row-label{font-size:clamp(.875rem,2.12vw,1.1375rem)}body[data-page=settings] .settings-row-help{font-size:clamp(.75rem,1.81vw,.975rem)}body[data-page=settings] .settings-row-value{font-size:clamp(.8125rem,1.97vw,1.05625rem)}body[data-page=settings] .settings-about-text{font-size:clamp(.875rem,2.12vw,1.1375rem)}body[data-page=settings] .settings-how-to-play-text{font-size:clamp(.8125rem,1.97vw,1.05625rem)}body[data-page=settings] .settings-row-link{min-height:clamp(2.75rem,6.65vw,3.575rem)}body[data-page=settings] .dropdown{font-size:clamp(.875rem,2.12vw,1.1375rem);padding:clamp(.5rem,1.21vw,.65rem) clamp(.75rem,1.81vw,.975rem);min-height:clamp(2.5rem,6.05vw,3.25rem)}body[data-page=settings] .toggle,body[data-page=sounds] .toggle{width:clamp(2.875rem,6.95vw,3.7375rem);height:clamp(1.5rem,3.63vw,1.95rem)}body[data-page=settings] .toggle-slider:before,body[data-page=sounds] .toggle-slider:before{width:clamp(1.125rem,2.72vw,1.4625rem);height:clamp(1.125rem,2.72vw,1.4625rem);left:clamp(.1875rem,.45vw,.24375rem);top:clamp(.1875rem,.45vw,.24375rem)}body[data-page=settings] .toggle input:checked+.toggle-slider:before,body[data-page=sounds] .toggle input:checked+.toggle-slider:before{transform:translate(clamp(1.375rem,3.33vw,1.7875rem))}}.observe-overlay,.observe-badge{display:none}@media(min-width:1024px){.observe-overlay{display:flex;flex-direction:column;gap:.2rem;position:fixed;right:1rem;top:3.25rem;z-index:9999;width:200px;font-size:.72rem;font-family:monospace;background:#000000d1;color:#ccc;border-radius:.5rem;padding:.45rem .65rem;pointer-events:auto;line-height:1.5;box-shadow:0 2px 8px #0006}}@media(max-width:1023px){.observe-badge{display:flex;align-items:center;gap:.4rem;position:fixed;bottom:5rem;right:.5rem;z-index:9999;background:#000000b8;color:#fff;font-size:.68rem;font-family:monospace;border-radius:1rem;padding:.2rem .55rem;min-height:44px;min-width:44px;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.observe-badge .ob-badge-stats,.observe-badge .ob-badge-btn{display:none}.observe-badge.expanded{border-radius:.5rem;padding:.35rem .55rem}.observe-badge.expanded .ob-badge-stats{display:inline}.observe-badge.expanded .ob-badge-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:.25rem;padding:.1rem .35rem;font-size:.62rem;font-family:monospace;cursor:pointer;min-width:28px;min-height:28px}.observe-badge .ob-toggle-glyph{opacity:.6}.observe-badge.ob-running .ob-toggle-glyph{opacity:1}.observe-badge.ob-has-errors .ob-toggle-glyph{color:#ef9a9a}}.observe-overlay .ob-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem;padding-bottom:.2rem;border-bottom:1px solid rgba(255,255,255,.12)}.observe-overlay .ob-label{font-weight:700;color:#90caf9;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.observe-overlay .ob-stop-btn{background:none;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:.25rem;padding:.05rem .3rem;cursor:pointer;font-size:.62rem;line-height:1.4}.observe-overlay .ob-stop-btn:hover{background:#ffffff1a}.observe-overlay .ob-status{color:#90caf9;font-style:italic;font-size:.68rem}.observe-overlay .ob-errors{color:#ef9a9a}.observe-overlay .ob-last-error{color:#ef9a9a;font-size:.66rem;opacity:.85;word-break:break-word}.ad-placeholder{height:var(--ad-banner-height, 50px);width:100%;flex-shrink:0;margin-top:.5rem}body.debug-enabled:not(.ads-native) .ad-placeholder{background:var(--bg-secondary, #1a2533);border:1px dashed var(--border-color, #2a3a4a);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary, #556677);font-size:.75rem}.board-overlay{width:100%;max-width:var(--board-size);max-height:100%;aspect-ratio:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;overflow:hidden;border-radius:.5rem;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:1px;padding:2px;box-sizing:border-box}@supports (width: 1cqmin){.board-overlay{width:var(--board-size);height:var(--board-size);max-width:none;max-height:none}}.tb-firework-particle{position:absolute;left:0;top:0;width:var(--p-size, 6px);height:var(--p-size, 6px);border-radius:999px;opacity:0;transform:translate(var(--x, 0px),var(--y, 0px));background:hsl(var(--hue, 40) var(--sat, 90%) var(--light, 65%));box-shadow:0 0 10px hsl(var(--hue, 40) var(--sat, 90%) calc(var(--light, 65%) + 5%) / .65),0 0 2px hsl(var(--hue, 40) var(--sat, 90%) calc(var(--light, 65%) + 5%) / .75);animation:tb-firework-burst var(--p-duration, .64s) ease-out forwards;animation-delay:var(--p-delay, 0ms)}@keyframes tb-firework-burst{0%{opacity:0;transform:translate(var(--x, 0px),var(--y, 0px)) scale(.8);filter:blur(.2px)}12%{opacity:1}to{opacity:0;transform:translate(calc(var(--x, 0px) + var(--dx, 0px)),calc(var(--y, 0px) + var(--dy, -20px))) scale(.7);filter:blur(.6px)}}.tb-firework-particle.arc{animation-name:tb-firework-arc;animation-timing-function:cubic-bezier(.2,.6,.3,1)}@keyframes tb-firework-arc{0%{opacity:0;transform:translate(var(--x, 0px),var(--y, 0px)) scale(.7)}14%{opacity:1}45%{transform:translate(calc(var(--x, 0px) + var(--dx, 0px) * .5),calc(var(--y, 0px) - var(--rise, 40px))) scale(1.05)}to{opacity:0;transform:translate(calc(var(--x, 0px) + var(--dx, 0px)),calc(var(--y, 0px) - var(--rise, 40px) + var(--fall, 80px))) scale(.55)}}.tb-wheel-hub{position:absolute;left:0;top:0;width:9px;height:9px;border-radius:999px;transform:translate(-50%,-50%);background:radial-gradient(circle,hsla(46,90%,92%,.95) 0%,hsla(42,95%,70%,.5) 55%,transparent 75%)}.tb-wheel-hub.solo{animation:tb-hub-pulse var(--spin-ms, .9s) ease-out forwards}@keyframes tb-hub-pulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}to{opacity:0;transform:translate(-50%,-50%) scale(.7)}}.confetti-burst{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti-burst.active:before,.confetti-burst.active:after{content:"";position:absolute;width:8px;height:8px;border-radius:2px;animation:confetti-fall 1.5s ease-out forwards}.confetti-burst.active:before{background:var(--accent-primary);left:20%;top:-10px;animation-delay:0s}.confetti-burst.active:after{background:var(--accent-secondary, var(--accent-primary));right:25%;top:-10px;animation-delay:.15s}.confetti-burst.active{animation:confetti-shower 1.5s ease-out forwards}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0) scale(1)}to{opacity:0;transform:translateY(120px) rotate(720deg) scale(.5)}}@keyframes confetti-shower{0%{box-shadow:40px 0 0 4px var(--accent-primary),20px 0 0 3px var(--accent-secondary, var(--accent-primary)),60px 0 0 3px var(--text-secondary),150px 0 0 4px var(--accent-primary),170px 0 0 3px var(--accent-secondary, var(--accent-primary)),130px 0 0 3px var(--text-secondary)}to{box-shadow:30px 100px 0 2px transparent,10px 80px 0 1px transparent,55px 110px 0 1px transparent,155px 90px 0 2px transparent,175px 105px 0 1px transparent,125px 95px 0 1px transparent}}@media(prefers-reduced-motion:reduce){.tb-firework-particle,.tb-wheel-hub{animation:none;opacity:0}.confetti-burst.active,.confetti-burst.active:before,.confetti-burst.active:after{animation:none}}[data-family=dark] .cell:not(.filled){background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.1) 100%),var(--empty-cell);box-shadow:inset 0 1px #ffffff08,inset 0 -1px #00000024;border-radius:3px}[data-family=dark] .cell:not(.filled)[data-box="1"],[data-family=dark] .cell:not(.filled)[data-box="3"],[data-family=dark] .cell:not(.filled)[data-box="5"],[data-family=dark] .cell:not(.filled)[data-box="7"]{background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.1) 100%),var(--empty-cell-alt)}[data-family=light] .cell:not(.filled){background:var(--empty-cell);box-shadow:inset 0 1px #ffffff2e,inset 0 -1px #0000000a;border-radius:3px}[data-family=light] .cell:not(.filled)[data-box="1"],[data-family=light] .cell:not(.filled)[data-box="3"],[data-family=light] .cell:not(.filled)[data-box="5"],[data-family=light] .cell:not(.filled)[data-box="7"]{background:var(--empty-cell-alt)}#board[data-family=dark]{box-shadow:0 8px 28px #0006}#board[data-family=light]{box-shadow:0 4px 16px #00000014}.boundary-tone .cell:not(.filled):not(.preview-valid):not(.preview-invalid):not(.clear-preview):not(.game-over-letter-cell){filter:brightness(var(--bt-cell-brightness, 1.07)) saturate(var(--bt-cell-saturate, 1.03))}.boundary-tone .cell:not(.filled):not(.preview-valid):not(.preview-invalid):not(.clear-preview):not(.game-over-letter-cell)[data-box="1"],.boundary-tone .cell:not(.filled):not(.preview-valid):not(.preview-invalid):not(.clear-preview):not(.game-over-letter-cell)[data-box="3"],.boundary-tone .cell:not(.filled):not(.preview-valid):not(.preview-invalid):not(.clear-preview):not(.game-over-letter-cell)[data-box="5"],.boundary-tone .cell:not(.filled):not(.preview-valid):not(.preview-invalid):not(.clear-preview):not(.game-over-letter-cell)[data-box="7"]{filter:brightness(var(--bt-alt-brightness, .84)) saturate(var(--bt-alt-saturate, 1.08))}.cell.filled{position:relative}.cell.preview-valid{background:var(--preview-valid)!important;box-shadow:none!important;border-radius:3px!important}.cell.preview-invalid{background:var(--preview-invalid)!important;box-shadow:none!important;border-radius:3px!important}.cell.clear-preview{background:var(--preview-clear)!important;box-shadow:inset 0 0 0 2px var(--preview-clear-outline, transparent)!important;border-radius:3px!important}.cell.preview-valid.clear-preview{background:var(--preview-clear-strong, var(--preview-clear))!important}.palette-settings{padding:8px 0 0}.palette-slider-wrap{margin-bottom:14px;position:relative}.palette-slider-stops{position:absolute;top:0;left:11px;right:11px;height:36px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.palette-slider-stop{width:5px;height:5px;border-radius:50%;background:#0000009e;box-shadow:0 0 0 1.25px #ffffffd9}.palette-slider-stop[data-excluded]{visibility:hidden}.palette-slider{-webkit-appearance:none;appearance:none;width:100%;height:36px;background:none;cursor:pointer;position:relative}.palette-slider::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:var(--slider-gradient, linear-gradient(to right, #0e1a2a, #dce0e6));box-shadow:inset 0 1px 2px #00000026}.palette-slider::-moz-range-track{height:8px;border-radius:4px;background:var(--slider-gradient, linear-gradient(to right, #0e1a2a, #dce0e6));box-shadow:inset 0 1px 2px #00000026;border:none}.palette-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0000004d,0 0 0 1px #00000014;margin-top:-7px;cursor:grab}.palette-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0000004d,0 0 0 1px #00000014;border:none;cursor:grab}.palette-slider:active::-webkit-slider-thumb{cursor:grabbing}.palette-slider:active::-moz-range-thumb{cursor:grabbing}.palette-slider-labels{display:flex;justify-content:space-between;font-size:10px;opacity:.35;margin-top:2px}.palette-toggles{display:flex;gap:10px;margin-bottom:12px}.palette-toggle-group{display:flex;flex:1}.palette-toggle-btn{flex:1;height:36px;border:1px solid var(--board-border, #c7d2e0);background:transparent;color:var(--text-secondary, #8a94a6);font-size:.85rem;font-weight:500;cursor:pointer;transition:background-color .15s,color .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-toggle-btn:first-child{border-radius:10px 0 0 10px}.palette-toggle-btn+.palette-toggle-btn{border-left:none}.palette-toggle-btn:last-child{border-radius:0 10px 10px 0}.palette-toggle-btn[aria-checked=true]{background:var(--board-border, #c7d2e0);color:var(--text-primary, #1a1a2e);font-weight:600}.palette-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:6px 2px;margin-bottom:12px}.palette-chip{flex-shrink:0;display:flex;flex-direction:column;gap:1.5px;padding:6px 5px;border-radius:8px;border:2px solid transparent;cursor:pointer;background:transparent;transition:border-color .2s,background .2s;min-width:44px;min-height:44px;align-items:center;justify-content:center}.palette-chip[aria-checked=true]{border-color:var(--text-secondary, #8a94a6);background:#8080801a}.palette-chip-bar{width:32px;border-radius:2px}.palette-chip-bar.multi-bar{height:8px}.palette-chip-bar.mono-bar{height:42px}.palette-preview-wrap{margin-top:4px}.palette-preview-board{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:2px;padding:5px;border-radius:8px;aspect-ratio:1;width:100%;max-width:210px;margin:0 auto;transition:background .3s}.palette-preview-board .cell{aspect-ratio:1;border-radius:3px}.palette-summary-right{display:flex;align-items:center;gap:.5rem;margin-left:auto}.palette-mini-chip{width:28px;height:28px;border-radius:6px;border:1px solid var(--border-color);overflow:hidden;display:flex;flex-direction:column}.palette-mini-chip .mini-bar{flex:1}.palette-chevron{transition:transform .3s ease}.palette-summary-row[aria-expanded=true] .palette-chevron{transform:rotate(90deg)}.palette-detail{overflow:hidden;max-height:0;transition:max-height .4s ease}.palette-detail[hidden]{display:block;max-height:0}.palette-detail.expanded{max-height:600px}@media(prefers-reduced-motion:reduce){.palette-detail,.palette-chevron{transition:none}}@media(orientation:portrait)and (min-width:600px){body[data-page=settings] .palette-slider{height:clamp(36px,5.44vw,46.8px)}body[data-page=settings] .palette-slider::-webkit-slider-runnable-track{height:clamp(8px,1.21vw,10.4px);border-radius:clamp(4px,.6vw,5.2px)}body[data-page=settings] .palette-slider::-moz-range-track{height:clamp(8px,1.21vw,10.4px);border-radius:clamp(4px,.6vw,5.2px)}body[data-page=settings] .palette-slider::-webkit-slider-thumb{width:clamp(22px,3.33vw,28.6px);height:clamp(22px,3.33vw,28.6px);margin-top:clamp(-9.1px,-1.06vw,-7px)}body[data-page=settings] .palette-slider::-moz-range-thumb{width:clamp(22px,3.33vw,28.6px);height:clamp(22px,3.33vw,28.6px)}body[data-page=settings] .palette-slider-stops{height:clamp(36px,5.44vw,46.8px);left:clamp(11px,1.66vw,14.3px);right:clamp(11px,1.66vw,14.3px)}body[data-page=settings] .palette-slider-stop{width:clamp(5px,.76vw,6.5px);height:clamp(5px,.76vw,6.5px)}body[data-page=settings] .palette-slider-wrap{margin-bottom:clamp(14px,2.12vw,18.2px)}body[data-page=settings] .palette-slider-labels{font-size:clamp(10px,1.51vw,13px)}body[data-page=settings] .palette-toggles{gap:clamp(10px,1.51vw,13px);margin-bottom:clamp(12px,1.81vw,15.6px)}body[data-page=settings] .palette-toggle-btn{height:clamp(36px,5.44vw,46.8px);font-size:clamp(.85rem,2.06vw,1.105rem)}body[data-page=settings] .palette-toggle-btn:first-child{border-radius:clamp(10px,1.51vw,13px) 0 0 clamp(10px,1.51vw,13px)}body[data-page=settings] .palette-toggle-btn:last-child{border-radius:0 clamp(10px,1.51vw,13px) clamp(10px,1.51vw,13px) 0}body[data-page=settings] .palette-strip{gap:clamp(8px,1.21vw,10.4px);padding:clamp(6px,.91vw,7.8px) clamp(2px,.3vw,2.6px);margin-bottom:clamp(12px,1.81vw,15.6px)}body[data-page=settings] .palette-chip{min-width:clamp(44px,6.65vw,57.2px);min-height:clamp(44px,6.65vw,57.2px);padding:clamp(6px,.91vw,7.8px) clamp(5px,.76vw,6.5px);border-radius:clamp(8px,1.21vw,10.4px)}body[data-page=settings] .palette-chip-bar{width:clamp(32px,4.84vw,41.6px)}body[data-page=settings] .palette-chip-bar.multi-bar{height:clamp(8px,1.21vw,10.4px)}body[data-page=settings] .palette-chip-bar.mono-bar{height:clamp(42px,6.35vw,54.6px)}body[data-page=settings] .palette-preview-board{max-width:clamp(210px,31.7vw,273px);gap:clamp(2px,.3vw,2.6px);padding:clamp(5px,.76vw,6.5px);border-radius:clamp(8px,1.21vw,10.4px)}body[data-page=settings] .palette-mini-chip{width:clamp(28px,4.23vw,36.4px);height:clamp(28px,4.23vw,36.4px);border-radius:clamp(6px,.91vw,7.8px)}body[data-page=settings] .palette-summary-right{gap:clamp(.5rem,1.21vw,.65rem)}}
