:root{color:#eef1f4;font-synthesis:none;text-rendering:optimizelegibility;--accent:#e0a952;--surface:#1f232ee6;--surface-solid:#252a35;--ink:#eef1f4;--muted:#aeb5c0;--line:#eef1f41c;--table:#161924;--tray:#d8b583;--tray-dark:#b88e59;--board-top:#333b48;--board-bottom:#1a202b;--well-top:#141923;--well-bottom:#252c38;--board-edge:#0b1019;--rim-light:#ffffff21;--shadow:0 28px 90px #04070d6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#151820;font-family:Aptos,Segoe UI Variable,system-ui,sans-serif}:root[data-theme=light]{color:#252830;--surface:#f8f9fbf5;--surface-solid:#f8f9fb;--ink:#252830;--muted:#626a75;--line:#22273024;--table:#dde2e8;--board-top:#d8dfe7;--board-bottom:#b9c3cf;--well-top:#b7c2cf;--well-bottom:#e0e6ed;--board-edge:#9ba7b6;--rim-light:#ffffffd9;--shadow:0 18px 60px #2a323e29;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#edf0f4}*{box-sizing:border-box}body{min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button{font:inherit}button:focus-visible{outline-offset:3px;outline:3px solid #e0a95285}.app-shell{background:linear-gradient(#090b112e,#090b119e),radial-gradient(circle at 22% 14%,#49599a4d,#0000 33%),radial-gradient(circle at 82% 72%,#9e485b33,#0000 35%),#151820;place-items:center;min-height:100dvh;padding:22px 14px;display:grid;position:relative;overflow-x:hidden}.app-shell:before{z-index:0;content:"";pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:52px 52px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.city-glow{filter:blur(1px);opacity:.28;pointer-events:none;border-radius:50%;width:280px;height:280px;position:absolute}.glow-one{border:1px solid #9db1df38;top:12%;left:-170px;box-shadow:inset 0 0 80px #5167aa38}.glow-two{border:1px solid #e0a95226;bottom:7%;right:-170px;box-shadow:inset 0 0 90px #b4634d33}.game-card{z-index:1;background:var(--surface);width:min(100%,470px);box-shadow:var(--shadow), inset 0 1px 0 #ffffff17;-webkit-backdrop-filter:blur(24px)saturate(125%);border:1px solid #ffffff1f;border-radius:28px;flex-direction:column;padding:21px;display:flex;position:relative}.game-header,.brand-lockup,.unlock-row{align-items:center;display:flex}.game-header{justify-content:space-between;gap:16px}.brand-lockup{gap:12px}.brand-mark{border-radius:11px;flex:none;width:44px;height:44px;display:block}h1,h2,p{margin:0}h1{letter-spacing:-.045em;font-family:Bahnschrift,Aptos Display,Segoe UI Variable,sans-serif;font-size:20px;line-height:1.08}.brand-lockup p{color:var(--muted);margin-top:4px;font-size:11px}.header-actions{align-items:center;gap:10px;display:flex}.icon-button{color:#c7ccd3;cursor:pointer;background:#ffffff0b;border:0;border-radius:11px;flex:none;place-items:center;width:40px;height:40px;transition:color .18s,background .18s,transform .18s;display:grid}.icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.65px;width:19px;height:19px}.help-button{font-size:19px;font-weight:750}.header-actions{flex:none}.icon-button:hover{color:#fff;background:#ffffff17}.icon-button:active{transform:scale(.96)}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:17px 0 11px;display:grid}.stats>div{text-align:center;gap:2px;padding:10px 7px;display:grid}.stats>div+div{border-left:1px solid var(--line)}.stats span{color:var(--muted);font-size:10px}.stats strong{font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:18px}.unlock-row{justify-content:space-between;gap:10px;min-height:32px;margin-bottom:9px}.unlock-row>button{min-width:0;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:0;font-size:11px;display:flex}.unlock-swatches{display:flex}.unlock-swatches i{border:2px solid #282d38;border-radius:4px;width:14px;height:14px;margin-left:-3px}.unlock-swatches i:first-child{margin-left:0}.combo{color:#f0c984;flex:none;font-size:11px}.progress-meta{align-items:center;gap:8px;display:flex}.difficulty{color:#aeb5c0;font-size:10px;font-weight:700}.difficulty-1{color:#78b99b}.difficulty-2{color:#e2b35f}.difficulty-3{color:#e6787e}.table-wrap{background:linear-gradient(145deg, var(--board-top), var(--board-bottom));box-shadow:inset 0 2px 1px var(--rim-light), inset 0 -2px 1px #00000026, 0 4px 0 var(--board-edge), 0 6px 8px #06080d2e;border-radius:22px;padding:9px}.table-grid{aspect-ratio:1;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.table-cell{min-width:0;color:inherit;background:linear-gradient(160deg, var(--well-top), var(--well-bottom));box-shadow:inset 0 3px 4px #00000038, inset 0 -1px 0 var(--rim-light);border:1px solid #ffffff09;border-radius:14px;padding:5px;transition:transform .17s,border-color .17s,background .17s;position:relative;overflow:visible}.table-cell.is-valid{cursor:pointer;background:#e0a9521c;border-color:#e0a9528a}.table-cell.is-valid:hover{background:#e0a9522e;transform:translateY(-1px)}.table-cell.is-preview{background:#e0a95233;border-color:#f4c774d6;box-shadow:inset 0 0 0 1px #ffe4b21f,0 0 18px #b77b2b17}.table-cell:disabled{opacity:1}.empty-guide{opacity:.28;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(2,1fr);gap:.28rem;transition:opacity .17s,transform .17s;display:grid;position:absolute;inset:20%}.empty-guide i{background:#ffffff09;border:1px solid #bec7d22e;border-radius:.22rem}.table-cell.is-valid .empty-guide{opacity:.42}.table-cell.is-preview .empty-guide{opacity:.82;transform:scale(1.04)}.table-cell.is-preview .empty-guide i{background:#e0a9522b;border-color:#f4cc8473}.place-hint{color:#f0c984c2;place-items:center;font-size:25px;font-weight:300;display:grid;position:absolute;inset:0}.tray{background:linear-gradient(145deg,#f0d5a8 0%,#dbb681 45%,#c79a62 100%);border:1px solid #ffffff38;border-radius:11px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(2,1fr);gap:4px;width:100%;height:100%;padding:6px;display:grid;box-shadow:inset 0 2px #f8e5c5,inset 2px 0 #fff2d273,inset 0 -2px #ad7c45,0 3px #906335,0 5px 6px #04060a4d}.tray-slot{background:linear-gradient(155deg,#9d744a,#be9666);border-radius:5px;place-items:center;min-width:0;min-height:0;display:grid;position:relative;box-shadow:inset 0 2px 3px #44271266,inset 1px 0 1px #44271229,0 1px #ffe7b8a6}.tray-slot[class*=block-]{box-shadow:inset 0 -3px #0000004d,0 2px 2px #37211247}.tray-slot i{background:linear-gradient(155deg, #ffffff3d, transparent 48%, #0000000f), var(--block-color);pointer-events:none;border-radius:4px;position:absolute;inset:1px 1px 3px;transform:translateY(-1px);box-shadow:inset 0 2px #ffffff7a,inset 1px 0 #ffffff38,inset 0 -1px #0000001a}.block-berry{--block-color:#e96670;background:var(--block-color)!important}.block-citrus{--block-color:#00596e;background:var(--block-color)!important}.block-mint{--block-color:#57ad84;background:var(--block-color)!important}.block-violet{--block-color:#8974bd;background:var(--block-color)!important}.block-sunset{--block-color:#de7c50;background:var(--block-color)!important}.block-moon{--block-color:#4f83b4;background:var(--block-color)!important}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.play-area{display:contents}.tray-bar{margin-top:12px;padding:0 7px}.piece-row{grid-template-columns:repeat(3,calc(25% - 5.25px));justify-content:center;gap:14px;display:grid}.piece,.used-piece{aspect-ratio:1;width:100%;min-width:0;height:auto;color:inherit;background:#ffffff09;border:1px solid #ffffff14;border-radius:14px;place-items:center;padding:5px;display:grid;position:relative}.piece{cursor:grab;touch-action:none;transition:transform .18s cubic-bezier(.16,1,.3,1),filter .18s,opacity .12s}.piece:hover{filter:brightness(1.07);transform:translateY(-2px)}.piece:active{cursor:grabbing;transform:scale(.97)}.piece.is-selected{opacity:.24;filter:saturate(.7);transform:scale(.94)}.drag-ghost{z-index:30;width:var(--drag-size);height:var(--drag-size);pointer-events:none;contain:layout style;will-change:transform;padding:5px;position:fixed;top:0;left:0}.drag-ghost-content{border-radius:11px;width:100%;height:100%;transition:transform .14s cubic-bezier(.16,1,.3,1);transform:scale(1.06);box-shadow:0 8px 8px #06080d38}.drag-ghost.is-valid .drag-ghost-content{transform:scale(1)}.piece-stage{place-items:center;width:100%;height:100%;display:grid}.piece-grid{grid-template-columns:repeat(var(--piece-columns), minmax(0, 1fr));grid-template-rows:repeat(var(--piece-rows), minmax(0, 1fr));gap:2px;width:100%;height:100%;display:grid}.piece-cell{width:100%;min-width:0;height:100%;min-height:0;display:block}.tray.is-compact{border-radius:11px;gap:4px;padding:6px}.tray.is-compact .tray-slot{border-radius:5px}.tray.is-compact .tray-slot i{border-radius:4px;inset:1px 1px 3px}.used-piece{opacity:.34;pointer-events:none;border-style:dashed}.primary-button,.secondary-button{cursor:pointer;white-space:nowrap;border-radius:13px;min-height:42px;padding:0 17px;font-weight:750;transition:transform .16s,background .16s,box-shadow .16s,opacity .16s}.primary-button{color:#241b10;background:var(--accent);border:1px solid #bc8737;box-shadow:0 8px 18px #7a501940,inset 0 1px #ffffff52}.primary-button:hover{background:#e7b766;box-shadow:0 10px 22px #7a50194d}.primary-button:active,.secondary-button:active{transform:scale(.97)}.secondary-button{color:#d8dce1;background:#ffffff0f;border:1px solid #ffffff1f}.secondary-button:hover{background:#ffffff1a}.secondary-button:disabled{cursor:not-allowed;opacity:.35}.wide{width:100%;margin-top:22px}.clear-effect{z-index:3;pointer-events:none;border-radius:11px;place-items:center;display:grid;position:absolute;inset:5px}.clear-effect b{z-index:1;color:var(--ink);background:var(--surface-solid);border-radius:8px;padding:5px 9px;font-size:18px;font-weight:850;position:relative}.clear-effect[class*=block-],.clear-charge[class*=block-]{background:0 0!important}.clear-effect{contain:paint;inset:0;overflow:clip}.clear-core{background:radial-gradient(circle, var(--block-color) 0 20%, transparent 72%);opacity:0;border-radius:50%;position:absolute;inset:8%}.clear-charge{z-index:3;border:3px solid var(--block-color);box-shadow:inset 0 0 0 2px white, 0 0 8px var(--block-color);pointer-events:none;border-radius:11px;position:absolute;inset:3px}.clear-wave{border:6px solid var(--block-color);opacity:0;border-radius:50%;position:absolute;inset:12%;box-shadow:0 0 0 2px #fffc}.clear-wave.is-echo{border-width:3px;inset:19%}.clear-ray{opacity:0;position:absolute;inset:0}.clear-ray i{background:var(--block-color);width:11%;height:16%;transform:translate(-50%, -50%) rotate(var(--ray-turn));border-radius:2px;position:absolute;top:50%;left:50%;box-shadow:inset 0 2px #fffc}.table-wrap{position:relative}.table-cell.is-merge-source{outline:2px dashed var(--accent);outline-offset:-2px}.table-cell.is-merge-target{outline:3px solid var(--accent);outline-offset:-2px}.tray-slot.is-highlighted{outline-offset:-2px;outline:2px solid #ffffffe6}.tray-slot.is-in-flight{opacity:0}.merge-flight-layer{z-index:4;pointer-events:none;position:absolute;inset:0}.merge-flight{outline-offset:-2px;transform-origin:0 0;animation:merge-flight var(--flight-duration) cubic-bezier(.4, 0, .2, 1) both;border-radius:5px;outline:2px solid #fffc;position:absolute;box-shadow:inset 0 -3px #0000004d,0 4px 6px #00000040}.merge-flight:after{background:linear-gradient(155deg, #ffffff3d, transparent 48%, #0000000f), var(--block-color);content:"";border-radius:4px;position:absolute;inset:1px 1px 3px;transform:translateY(-1px);box-shadow:inset 0 2px #ffffff7a,inset 1px 0 #ffffff38}@keyframes merge-flight{0%{transform:translate(0)scale(1)}to{transform:translate(var(--flight-x), var(--flight-y)) scale(var(--flight-scale-x), var(--flight-scale-y))}}@keyframes tray-clear{0%{opacity:1;transform:scale(1.06)}18%{opacity:1;transform:scale(1.14)}48%,to{opacity:0;transform:scale(.2)}}@keyframes tray-charge{0%{transform:scale(1)}to{transform:scale(1.06)}}@keyframes clear-core{0%{opacity:0;transform:scale(.35)}22%{opacity:.45;transform:scale(1)}80%,to{opacity:0;transform:scale(1.4)}}@keyframes clear-charge{0%{opacity:.15;transform:scale(.94)}to{opacity:1;transform:scale(1.02)}}@keyframes clear-wave{0%{opacity:0;transform:scale(.25)}18%{opacity:1}65%{opacity:.7}to{opacity:0;transform:scale(1.55)}}@keyframes clear-ray{0%,12%{opacity:0;transform:translate(0)scale(.4)}24%{opacity:1}70%{opacity:.9}to{opacity:0;transform:translate(var(--ray-x), var(--ray-y)) scale(.55)}}@media (prefers-reduced-motion:no-preference){.drag-ghost-content{animation:.14s cubic-bezier(.16,1,.3,1) drag-lift}.table-cell.is-placed .tray{animation:.18s cubic-bezier(.16,1,.3,1) both tray-in}.table-cell.is-merged .tray{animation:.22s cubic-bezier(.16,1,.3,1) both tray-merge}.table-cell.is-clearing .tray{animation:tray-clear var(--clear-duration) ease-in-out both}.table-cell[data-charging] .tray{animation:.48s cubic-bezier(.22,1,.36,1) both tray-charge}.clear-core{animation:clear-core var(--clear-duration) cubic-bezier(.22, 1, .36, 1) both}.clear-charge{animation:clear-charge var(--charge-duration) ease-out both}.clear-effect b{animation:clear-pop var(--clear-duration) cubic-bezier(.22, 1, .36, 1) both}.clear-wave,.clear-ray{animation:clear-wave var(--clear-duration) cubic-bezier(.22, 1, .36, 1) both}.clear-wave.is-echo{animation-delay:65ms;animation-duration:calc(var(--clear-duration) - 65ms)}.clear-ray{animation-name:clear-ray}.combo{animation:.42s cubic-bezier(.16,1,.3,1) both combo-in}.modal{animation:.28s cubic-bezier(.16,1,.3,1) both modal-in}}@keyframes drag-lift{0%{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1.06)}}@keyframes tray-in{0%{opacity:0;transform:translateY(14px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tray-merge{0%{transform:scale(1)}45%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes clear-pop{0%{opacity:0;transform:translateY(6px)scale(.75)}25%,70%{opacity:1;transform:translateY(-4px)scale(1)}to{opacity:0;transform:translateY(-14px)scale(1)}}@media (prefers-reduced-motion:reduce){.clear-wave,.clear-ray,.clear-core{display:none}.clear-charge{box-shadow:none}}@keyframes combo-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width>=720px){.game-card{width:min(100%,470px);padding:18px}.game-header{margin-bottom:2px}}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(10px);background:#07090ea8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:var(--surface-solid);border:1px solid #ffffff1f;border-radius:24px;width:min(100%,410px);padding:27px;box-shadow:0 26px 70px #0204087a}.modal-kicker{color:#edc67d;margin-bottom:7px;font-size:11px;font-weight:780}.modal h2{letter-spacing:-.045em;font-size:26px;line-height:1.18}.share-modal{width:min(410px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);margin:auto;overflow-y:auto}.share-modal::backdrop{background:#07090ea8}.share-modal>p{color:var(--muted);margin-top:14px;font-size:13px;line-height:1.5}.share-link{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);background:var(--surface-solid);font:inherit;border-radius:8px;margin-top:18px;padding:10px;font-size:16px}.share-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.share-link{resize:none;line-height:1.5}.share-modal .share-feedback{min-height:20px;margin-top:8px}.share-modal .primary-button{margin-top:12px}.rule-list{gap:14px;margin-top:22px;display:grid}.rule-list>div{grid-template-columns:60px 1fr;align-items:baseline;gap:12px;display:grid}.rule-list b{font-size:13px}.rule-list p,.rule-note,.result-modal>p:not(.modal-kicker){color:var(--muted);font-size:12px;line-height:1.55}.rule-note{border-top:1px solid var(--line);margin-top:18px;padding-top:15px}.settings-row{margin-top:16px}.save-status{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.5}.settings-row .secondary-button{width:100%;min-height:42px}.setting-toggles{margin-top:20px}.setting-toggles label{cursor:pointer;justify-content:space-between;align-items:center;gap:18px;min-height:62px;display:flex}.setting-toggles span{gap:3px;display:grid}.setting-toggles b{font-size:13px}.setting-toggles small{color:var(--muted);font-size:11px}.setting-toggles input{appearance:none;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:999px;flex:none;width:60px;height:29px;transition:border-color .18s,background .18s;position:relative}.setting-toggles input:before{color:#aeb5c0;content:"OFF";letter-spacing:.03em;font-size:8px;font-weight:800;line-height:1;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.setting-toggles input:after{content:"";background:#c7cdd5;border-radius:50%;width:21px;height:21px;transition:transform .18s cubic-bezier(.16,1,.3,1),background .18s;position:absolute;top:3px;left:3px}.setting-toggles input:checked{background:#dca64f;border-color:#bc8737}.setting-toggles input:checked:before{color:#3b2a14;content:"ON";left:8px;right:auto}.setting-toggles input:checked:after{background:#241b10;transform:translate(32px)}.setting-toggles input:focus-visible{outline-offset:3px;outline:3px solid #e0a95285}.color-list{gap:7px;margin-top:21px;display:grid}.color-list>div{grid-template-columns:22px 1fr auto;align-items:center;gap:10px;min-height:35px;display:grid}.color-list i{border-radius:5px;width:18px;height:18px;box-shadow:inset 0 2px #ffffff40}.color-list span{font-size:12px}.color-list b{color:var(--muted);font-size:10px}.color-list .is-locked{opacity:.36;filter:grayscale()}.result-modal{text-align:center}.result-modal h2{margin-bottom:8px}.result-mark{background:linear-gradient(145deg,#dfbe8d,#c99f68);border-radius:18px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(2,1fr);gap:4px;width:78px;height:78px;margin:0 auto 18px;padding:10px;display:grid;box-shadow:0 12px 28px #03050959,inset 0 2px #fff3}.result-mark i{background:#e96670;border-radius:5px;box-shadow:inset 0 2px #ffffff40}@media (width<=560px){.app-shell{padding:max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom));place-items:start center}.game-card{border-radius:22px;width:100%;min-height:calc(100dvh - 16px);max-height:none;padding:15px 13px;overflow:visible}.brand-mark{width:39px;height:39px}h1{font-size:18px}.header-actions{gap:6px}.stats{margin-top:12px}.stats>div{padding:8px 5px}.unlock-row{min-height:26px;margin-bottom:6px}.table-wrap{border-radius:18px;padding:7px}.table-grid{gap:5px}.table-cell{border-radius:11px;padding:4px}.tray{border-radius:8px;gap:3px;padding:4px}.tray-slot{border-radius:4px}.tray-bar{padding:0 7px}.piece-row{grid-template-columns:repeat(3,calc(25% - 3.75px))}.piece,.used-piece{border-radius:11px}.tray.is-compact{border-radius:8px;gap:3px;padding:4px}.tray-bar{margin-top:auto}.primary-button,.secondary-button{min-height:39px;padding:0 14px;font-size:12px}}@media (width<=370px){.brand-lockup p{display:none}.stats strong{font-size:16px}.piece-row{gap:5px}.tray.is-compact{gap:4px;padding:7px}}:root[data-theme=light] .app-shell{background:radial-gradient(circle at 16% 12%,#6881be29,#0000 32%),radial-gradient(circle at 88% 82%,#d79a6024,#0000 34%),#edf0f4}:root[data-theme=light] .game-card{box-shadow:var(--shadow), inset 0 1px 0 #fffc;border-color:#262c3624}:root[data-theme=light] .icon-button{color:#4f5865;background:#2a303a12}:root[data-theme=light] .icon-button:hover{color:#252830;background:#2a303a1f}:root[data-theme=light] .unlock-swatches i{border-color:#f8f9fb}:root[data-theme=light] .difficulty{color:#5e6874}:root[data-theme=light] .difficulty-1{color:#327b5a}:root[data-theme=light] .difficulty-2{color:#9b650d}:root[data-theme=light] .difficulty-3{color:#b23f49}:root[data-theme=light] .table-cell{border-color:#3139441f}:root[data-theme=light] .empty-guide{opacity:.58}:root[data-theme=light] .empty-guide i{background:#3f48540f;border-color:#3a424e42}:root[data-theme=light] .piece,:root[data-theme=light] .used-piece{background:#fff6;border-color:#2d343e21}:root[data-theme=light] .modal-backdrop{background:#333a446b}:root[data-theme=light] .secondary-button{color:#343a44;background:#2d343e14;border-color:#2d343e29}:root[data-theme=light] .setting-toggles input{background:#2d343e1f;border-color:#2d343e33}:root[data-theme=light] .setting-toggles input:before{color:#5d6672}:root[data-theme=light] .setting-toggles input:after{background:#66707d}:root[data-theme=light] .setting-toggles input:checked{background:#dca64f;border-color:#bc8737}:root[data-theme=light] .setting-toggles input:checked:before{color:#3b2a14}:root[data-theme=light] .setting-toggles input:checked:after{background:#241b10}@media (width<=600px),(height<=600px) and (width<=1000px){:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}html,body,#root{overscroll-behavior:none;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden}.app-shell{height:100dvh;min-height:0;padding:0;overflow:clip}.app-shell:before,.city-glow{display:none}.app-shell .game-card{width:100%;height:100%;min-height:0;padding:max(10px, var(--safe-top)) max(12px, var(--safe-right)) max(10px, var(--safe-bottom)) max(12px, var(--safe-left));background:var(--surface-solid);box-shadow:none;-webkit-backdrop-filter:none;border:0;border-radius:0;grid-template-rows:auto auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);display:grid}.game-header{gap:8px;margin:0}.brand-lockup{gap:10px}.header-actions{gap:6px}.icon-button{width:44px;height:44px}.stats{margin:8px 0}.stats>div{padding:6px 5px}.unlock-row{min-height:26px;margin:0}.play-area{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--board-size,0px) var(--queue-cell-size,0px);align-content:center;justify-items:center;gap:16px;min-width:0;min-height:0;margin-top:12px;display:grid}.table-fit{width:100%;min-width:0;min-height:0;height:var(--board-size,0px);place-items:center;margin:0;display:grid;container-type:size}.table-wrap{border-radius:18px;width:min(100cqw,100cqh);height:min(100cqw,100cqh);padding:7px}.table-grid{gap:5px;width:100%;height:100%}.table-cell{border-radius:10px;min-height:0;padding:4px}.tray-bar{width:var(--board-size,100%);margin:0;padding:0}.piece-row{grid-template-columns:repeat(3,min(25% - 7.25px,14dvh,104px));gap:14px}.modal-backdrop{padding:max(12px, var(--safe-top)) max(12px, var(--safe-right)) max(12px, var(--safe-bottom)) max(12px, var(--safe-left))}.modal{overscroll-behavior:contain;max-height:100%;overflow-y:auto}}@media (width<=600px) and (height<=600px){.modal{padding:18px}.modal h2{font-size:22px}.modal-kicker{display:none}.rule-list{gap:10px;margin-top:14px}.rule-list>div{grid-template-columns:52px 1fr;gap:8px}.rule-note{margin-top:12px;padding-top:10px}.modal .wide{margin-top:14px}}@media (orientation:landscape) and (height<=600px) and (width<=1000px){.app-shell .game-card{grid-template-rows:auto auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(240px,.85fr);column-gap:16px}.play-area{display:contents}.table-fit{grid-area:1/1/-1;width:auto;height:auto;margin:0}.game-header{grid-area:1/2}.stats{grid-area:2/2}.unlock-row{grid-area:3/2}.tray-bar{grid-area:5/2;width:auto}.piece-row{grid-template-columns:repeat(3,min(33.3333% - 9.33333px,23dvh))}.brand-lockup p{display:none}.game-header .brand-mark{width:32px;height:32px}.game-header .brand-lockup{gap:6px}.game-header h1{font-size:16px}.game-header .header-actions{gap:4px}.modal{width:min(100%,540px);padding:16px}.modal h2{font-size:22px}.modal-kicker{display:none}.settings-modal{grid-template-columns:1fr 1fr;gap:12px;display:grid}.settings-modal h2,.settings-modal .save-status,.setting-toggles{grid-column:1/-1}.setting-toggles{margin:0}.setting-toggles label{min-height:44px}.settings-row,.settings-modal .wide{margin:0}.rule-list{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.rule-list>div{display:block}.rule-note{margin-top:12px;padding-top:10px}.modal .wide{margin-top:12px}.settings-modal .wide{margin-top:0}.color-list{grid-template-columns:1fr 1fr;column-gap:20px;margin-top:12px}.result-mark{display:none}}@media (prefers-reduced-transparency:reduce){.game-card{background:var(--surface-solid);-webkit-backdrop-filter:none}.modal-backdrop{-webkit-backdrop-filter:none}}.game-card .piece-row{grid-template-columns:repeat(3, var(--queue-cell-size,calc((100% - 29px) / 4)))}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
