/* Game materials and controls. The viewport/layout contract lives in immersive.css. */
body.immersive-game{--scene:#171a31;--scene-glow:#34345c;--ink:#f4f1ff;--soft-ink:#a9abc9;--key:#303552;--key-edge:#1b1c34;--key-top:#ffffff16;--accent:#bcb4ff;--accent-ink:#29224c;--paper:#fcf9f2;--body:ui-rounded,'Trebuchet MS',system-ui,sans-serif;--display:ui-rounded,'Arial Rounded MT Bold','Trebuchet MS',system-ui,sans-serif;color:var(--ink);background:var(--scene)}
body[data-game="2048"]{--scene:#f4eade;--scene-glow:#fdf8ef;--ink:#65503c;--soft-ink:#9e8770;--key:#fff9ef;--key-edge:#d5c3ad;--accent:#d98b50;--accent-ink:#fff8eb}
body[data-game=sudoku]{--scene:#edf3f5;--scene-glow:#fff;--ink:#2c4e66;--soft-ink:#7b96a5;--key:#fff;--key-edge:#ccdbe2;--accent:#4786ba;--accent-ink:#fff}
body[data-game=picross]{--scene:#f9eee6;--scene-glow:#fffaf3;--ink:#684d50;--soft-ink:#a58d88;--key:#fffaf5;--key-edge:#e0c8bd;--accent:#cd7b83;--accent-ink:#fff}
body[data-game=memory]{--scene:#f1e6f0;--scene-glow:#fff5ec;--ink:#775473;--soft-ink:#b18eac;--key:#fff7f4;--key-edge:#d9c0d3;--accent:#ac6d9e;--accent-ink:#fff}
body[data-game=snake]{--scene:#0b221e;--scene-glow:#224638;--ink:#d6f5c5;--soft-ink:#7ea68b;--key:#2c4e3b;--key-edge:#142e25;--accent:#b6df78;--accent-ink:#263c24}
body[data-game=breakout]{--scene:#121429;--scene-glow:#38305d;--accent:#ffa8cb;--accent-ink:#513248}
body[data-game=tetris]{--scene:#12192f;--scene-glow:#2c3a60;--key:#2b3a59;--key-edge:#142039;--accent:#9dc8ff;--accent-ink:#263a59}
body[data-game=bubble]{--scene:#211934;--scene-glow:#5e3d7d;--key:#4d365f;--key-edge:#2e203c;--accent:#efb7f0;--accent-ink:#683d74}
body[data-game=pinball]{--scene:#1a122b;--scene-glow:#482a60;--key:#483253;--key-edge:#291a36;--accent:#f8be73;--accent-ink:#573634}
body[data-game=minesweeper]{--scene:#1b2e48;--scene-glow:#344e70;--ink:#eaf2ff;--soft-ink:#94adc9;--key:#3c5679;--key-edge:#203754;--accent:#f0c87d;--accent-ink:#5a4624}
body[data-game=connect4]{--scene:#172c5c;--scene-glow:#3859a0;--key:#365b96;--key-edge:#142b56;--accent:#ffd16e;--accent-ink:#6d482b}
body[data-game=checkers]{--scene:#283b34;--scene-glow:#526451;--ink:#f4e4c9;--soft-ink:#b3b79b;--key:#63745b;--key-edge:#2a4234;--accent:#e1c08d;--accent-ink:#634a2c}
body[data-game=mahjong]{--scene:#123d38;--scene-glow:#307266;--ink:#f6ebcd;--soft-ink:#99c0aa;--key:#386e5d;--key-edge:#1b4a40;--accent:#edcd85;--accent-ink:#654b2f}
body[data-game=sokoban]{--scene:#293a34;--scene-glow:#5a6d50;--ink:#f3e6c5;--soft-ink:#acb899;--key:#5a6d50;--key-edge:#2c4434;--accent:#e8bb70;--accent-ink:#66502d}
body[data-game=solitaire]{--scene:#114b40;--scene-glow:#2c7960;--ink:#e8e8c8;--soft-ink:#9fc4aa;--key:#397259;--key-edge:#15503e;--accent:#e9ce8c;--accent-ink:#5e4b2b}
body[data-game=hoplite]{--scene:#19252c;--scene-glow:#3e4c44;--ink:#e9e9cd;--soft-ink:#9aac9c;--key:#3b5148;--key-edge:#22372e;--accent:#b6d8a4;--accent-ink:#35462c}
body.immersive-game:is([data-game="2048"],[data-game=sudoku],[data-game=picross],[data-game=memory]){color-scheme:light}
body.immersive-game :is(.casual-main,.mine-main,.solitaire-main,.game-main){isolation:isolate;position:relative;background:radial-gradient(ellipse at 50% 30%,var(--scene-glow),var(--scene) 80%)}
body.immersive-game :is(.casual-main,.mine-main,.solitaire-main)::before{content:'';position:absolute;inset:0;z-index:-1;opacity:.25;pointer-events:none;background-image:radial-gradient(#ffffff33 .7px,transparent .7px);background-size:19px 19px;mask-image:linear-gradient(transparent,#000 40%,transparent)}
body.immersive-game :is(.casual-panel,.mine-field){background:transparent;overflow:visible}
body.immersive-game .game-header .back-link{top:calc(env(safe-area-inset-top,0px) + 12px);left:calc(env(safe-area-inset-left,0px) + 10px);border:0;border-radius:50%;width:42px;height:42px;background:var(--key);color:var(--ink);box-shadow:0 3px 0 var(--key-edge),inset 0 1px 0 var(--key-top)}
body.immersive-game :is(.casual-stats,.mine-stats,.solitaire-score,.stats){min-height:76px;padding:9px 12px 10px 62px;gap:8px;background:transparent;align-items:center}
body.immersive-game :is(.casual-stats,.mine-stats,.solitaire-score)>div{display:flex;flex-direction:column-reverse;align-items:center;gap:3px;flex:1}
body.immersive-game :is(.casual-stats,.mine-stats,.solitaire-score)>div>span{color:var(--soft-ink);font:800 8px/1.2 var(--body);letter-spacing:1px}
body.immersive-game :is(.casual-stats,.mine-stats,.solitaire-score) b{color:var(--ink);font:900 26px/1 var(--display);letter-spacing:-1px;margin:0;text-shadow:0 2px 0 #0000000a}
body.immersive-game .casual-stats>div:first-child b{color:var(--accent)}
body.immersive-game:is([data-game="2048"],[data-game=sudoku],[data-game=picross],[data-game=memory]) .casual-stats>div:first-child b{color:var(--ink)}
body.immersive-game #casual-stage{padding:12px;overflow:visible}
body.immersive-game :is(.casual-controls,.mine-modes,.immersive-sol-dock,.action-bar){background:transparent;border:0;gap:7px;padding:12px 10px 16px}
body.immersive-game :is(.casual-controls,.mine-modes,.immersive-sol-dock) :is(button.button,.sol-tool,.game-menu-button),body.immersive-game .mine-modes>button,body.immersive-game .dpad button,body.immersive-game .tetris-controls button,body.immersive-game .flipper-buttons button{color:var(--ink);background:var(--key);border:0;border-radius:16px;min-height:48px;height:48px;box-shadow:0 4px 0 var(--key-edge),inset 0 1px 0 var(--key-top);font-weight:800;transition:transform .1s,box-shadow .1s,background .15s}
body.immersive-game :is(.casual-controls,.mine-modes,.immersive-sol-dock) button.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 4px 0 color-mix(in srgb,var(--accent) 60%,var(--key-edge)),inset 0 1px 0 #ffffff55}
body.immersive-game button[data-compact-icon]{border-radius:50%!important;min-width:44px;width:44px;max-width:52px}
body.immersive-game button[data-compact-icon]::before{content:'';display:block;margin:auto;width:23px;height:23px;background:currentColor;mask:var(--control-mask) center/contain no-repeat;-webkit-mask:var(--control-mask) center/contain no-repeat}
body.immersive-game .game-menu-button{font-size:0!important;border-radius:50%!important;width:44px;min-width:44px;max-width:44px}
body.immersive-game .game-menu-button::before{content:'';display:block;width:22px;height:22px;background:currentColor;mask:var(--control-mask) center/contain no-repeat;-webkit-mask:var(--control-mask) center/contain no-repeat}
body.immersive-game .dpad{gap:5px!important}
body.immersive-game .dpad button{font-size:0!important;width:44px}
body.immersive-game .dpad button::before{content:'';display:block;margin:auto;width:23px;height:23px;background:currentColor;mask:var(--control-mask) center/contain no-repeat;-webkit-mask:var(--control-mask) center/contain no-repeat}
body.immersive-game :is(.casual-controls,.mine-modes,.immersive-sol-dock,.action-bar) button:active,body.immersive-game :is(.casual-controls,.action-bar) button.pressed{transform:translateY(3px);box-shadow:0 1px 0 var(--key-edge),inset 0 2px 5px #0002}
body.immersive-game button:disabled{opacity:.3}
body.immersive-game :is(.casual-message,.mine-message,.sol-message,.game-message):not(.initial-game-message){position:absolute;z-index:25;bottom:calc(var(--dock-height,76px) + env(safe-area-inset-bottom,0px) + 10px);left:16px;right:16px;width:max-content;max-width:calc(100% - 32px);margin:auto;padding:9px 14px;max-height:54px;border-radius:16px;background:color-mix(in srgb,var(--scene) 90%,#fff);color:var(--ink);box-shadow:0 6px 22px #0002;font:600 11px/1.45 var(--body);pointer-events:none;text-wrap:pretty}
body.immersive-game :is(.collection-canvas,.arcade-canvas,.tetris-canvas){border:0;border-radius:18px;box-shadow:0 0 0 3px #ffffff0d,0 10px 0 #080d1d66,0 18px 35px #0003}
body.immersive-game :is(.arcade-hud,.canvas-overlay){background:linear-gradient(transparent,#101225e0 25%,#101225e0 70%,transparent);border-radius:18px;gap:8px;padding:20px}
body.immersive-game :is(.arcade-hud,.canvas-overlay)::before{content:'';display:block;width:48px;height:48px;border:2px solid var(--accent);border-radius:50%;background:var(--accent);mask:var(--play-mask) center/28px no-repeat;-webkit-mask:var(--play-mask) center/28px no-repeat;margin-bottom:2px}
body.immersive-game :is(.arcade-hud,.canvas-overlay) h2{font:900 clamp(23px,6vw,36px)/1.1 var(--display);letter-spacing:-1px;max-width:260px;text-shadow:0 3px #0003;color:#fff5df;margin:0}
body.immersive-game :is(.arcade-hud,.canvas-overlay) p{font:600 11px/1.6 var(--body);color:#c8c2db;max-width:220px}
body.immersive-game .native-start{pointer-events:auto;cursor:pointer;touch-action:manipulation;transition:background .2s}
body.immersive-game .native-start:active::before{transform:scale(.88)}
body.immersive-game .native-start:focus-visible{outline:3px solid var(--accent);outline-offset:-5px}
body.immersive-game .tetris-side{font-weight:900;color:#a8b6dc;letter-spacing:1px;font-size:8px}
body.immersive-game .tetris-next{border:0;border-radius:14px;box-shadow:inset 0 0 0 2px #9eb7ef14,0 4px 0 #0c152a}
body.immersive-game .tetris-controls{display:contents}
body.immersive-game[data-game=tetris] .casual-controls{gap:5px}
body.immersive-game[data-game=tetris] .casual-controls button{border-radius:14px!important;min-width:0;max-width:54px}
body.immersive-game .flipper-buttons{gap:12px}
body.immersive-game .flipper-buttons button{border-radius:24px 24px 12px 12px;font-size:11px;letter-spacing:.3px;background:linear-gradient(#745078,#513254);color:#f8dfeb;box-shadow:0 5px 0 #2c1b35,inset 0 1px 0 #ffffff35}
/* Puzzle materials. */
body.immersive-game .tile-grid{background:#b9a38b;border:0;border-radius:22px;padding:10px;gap:9px;box-shadow:0 7px 0 #927b64,0 17px 34px #7b5c3b22,inset 0 2px 0 #d8c9b3}
body.immersive-game .number-tile{background:#cdbda8;border-radius:12px;color:#6d5744;font:900 clamp(25px,10vw,52px)/1 var(--display);box-shadow:inset 0 2px 0 #ffffff15}
body.immersive-game .number-tile[data-value="2"]{background:#fff6e6;box-shadow:0 4px 0 #e0cfb6,inset 0 2px 0 #fff}
body.immersive-game .number-tile[data-value="4"]{background:#fce6bf;box-shadow:0 4px 0 #d9b982,inset 0 2px 0 #fff4df}
body.immersive-game .number-tile[data-value="8"]{background:#efb479;color:#fff7e7;box-shadow:0 4px 0 #c88c51}
body.immersive-game .number-tile[data-value="16"]{background:#ed936c;color:#fff5e5;box-shadow:0 4px 0 #ca704e}
body.immersive-game .number-tile[data-value="32"]{background:#e77864;color:#fff5e5;box-shadow:0 4px 0 #bf594b}
body.immersive-game .number-tile[data-value="64"]{background:#d85b59;color:#fff5e5;box-shadow:0 4px 0 #af3e44}
body.immersive-game .number-tile.high{background:#e7c15f;color:#fff9df;box-shadow:0 4px 0 #be9842,0 0 16px #ffe4a333;font-size:clamp(23px,7.5vw,40px)}
body.immersive-game .number-tile.super{background:#9476b3;box-shadow:0 4px 0 #6b528c;font-size:clamp(17px,5vw,30px)}
.tile-pop{animation:tile-pop .22s ease-out}@keyframes tile-pop{0%{transform:scale(.85)}65%{transform:scale(1.06)}100%{transform:scale(1)}}
body.immersive-game .sudoku-grid{background:#b4c8d3;border:2px solid #68899b;border-radius:9px;overflow:hidden;box-shadow:0 6px 0 #c5d5dd,0 18px 26px #42647612}
body.immersive-game .sudoku-cell{background:#fffdf9;color:#4284bc;border-color:#d7e1e6;font-weight:800;line-height:1;transition:background .12s}
body.immersive-game .sudoku-cell.given{color:#3f5969;font-weight:800}
body.immersive-game .sudoku-cell.related{background:#edf4f7}
body.immersive-game .sudoku-cell.same{background:#d5e8f2;color:#2c6c9a}
body.immersive-game .sudoku-cell.selected{background:#bedbf0;box-shadow:inset 0 0 0 2px #5a9bd0;color:#285c84}
body.immersive-game .sudoku-cell:nth-child(3n){border-right-color:#8da5b2}
body.immersive-game .sudoku-cell:nth-child(n+19):nth-child(-n+27),body.immersive-game .sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom-color:#8da5b2}
body.immersive-game .sudoku-cell.conflict,body.immersive-game .sudoku-cell.error{background:#fbd5cd;color:#bb4c48}
body.immersive-game .sudoku-notes{color:#6f97ae;font-weight:600}
body.immersive-game .sudoku-pad{gap:5px}
body.immersive-game .sudoku-pad button{height:50px;min-height:50px;border:0;border-radius:13px;background:#fff;color:#3c719b;box-shadow:0 4px 0 #c7d8e1;font:900 23px/1 var(--display)}
body.immersive-game .sudoku-tools button[aria-pressed=true]{background:#4f8fbd;color:white;box-shadow:0 4px 0 #37709b}
body.immersive-game .picross-grid{background:#dac5bd;border:0;border-radius:12px;box-shadow:0 6px 0 #cfb5a8,0 14px 25px #9f74751a}
body.immersive-game .picross-grid>div:first-child,body.immersive-game .picross-clue{background:#f7e7db;color:#926f70;font-weight:900}
body.immersive-game .picross-cell{background:#fff9f0;color:#c3aaa0}
body.immersive-game .picross-cell.filled{background:#c47a82;box-shadow:inset 0 2px 0 #dda0a1,inset 0 -3px 0 #a95f69}
body.immersive-game .picross-cell.crossed{background:#f2e2d4;color:#be9c91}
body.immersive-game .picross-clue.complete{background:#dce7cf;color:#668064}
body.immersive-game .casual-controls button[aria-pressed=true],body.immersive-game .mine-modes>button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);box-shadow:0 4px 0 color-mix(in srgb,var(--accent) 60%,var(--key-edge)),inset 0 1px 0 #fff4}
/* Card backs flip as objects instead of changing a button's text. */
body.immersive-game .memory-grid{gap:10px;padding:2px}
body.immersive-game .memory-card{background:none;border:0;box-shadow:none;perspective:900px;overflow:visible;transform:none;border-radius:16px}
.memory-flipper{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .38s cubic-bezier(.2,.7,.2,1)}
.memory-back,.memory-front{position:absolute;inset:0;display:grid;place-items:center;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.memory-back{background:repeating-linear-gradient(45deg,transparent 0 9px,#ffffff09 9px 10px),linear-gradient(145deg,#bf8eb8,#93668e);border:4px solid #f4d9df;box-shadow:0 5px 0 #b78baa,0 10px 16px #7b477a18}
.memory-back::before{content:'';position:absolute;inset:7px;border:1px solid #f9e4e866;border-radius:8px}
.memory-back svg{width:45%;height:45%;color:#f7dce5;filter:drop-shadow(0 3px 0 #7b567a55)}
.memory-front{transform:rotateY(180deg);background:#fffaf1;border:3px solid #fff;box-shadow:0 5px 0 #ddc7d3,0 10px 14px #7b477a15;font-size:clamp(28px,8vw,60px)}
body.immersive-game .memory-card.revealed .memory-flipper{transform:rotateY(180deg)}
body.immersive-game .memory-card.matched{background:none;opacity:.75}
body.immersive-game .memory-card.matched .memory-front{background:#e0efd9;border-color:#d2e7c9;box-shadow:0 4px 0 #bed3b3}
body.immersive-game .memory-card.matched::after{right:7px;bottom:5px;z-index:2;color:#6f9872}
/* Physical boards. */
body.immersive-game .connect-board{padding:13px;gap:7px;border:0;border-radius:23px;background:linear-gradient(135deg,#4787d7,#2e60b1);box-shadow:0 9px 0 #173f81,0 18px 25px #0b153a66,inset 0 3px 0 #6fa1e3}
body.immersive-game .connect-cell{border:0;background:radial-gradient(circle at 50% 70%,#233e72,#142a55);box-shadow:inset 0 5px 5px #091d4d,inset 0 -2px 0 #80b0ed66}
body.immersive-game .connect-cell.p1{background:radial-gradient(circle at 35% 30%,#ffe99e,#f0b942 75%);box-shadow:inset 0 0 0 5px #f9d36e,inset 0 -5px 0 #c99433,0 2px 2px #142550}
body.immersive-game .connect-cell.p2{background:radial-gradient(circle at 35% 30%,#ffbaa1,#ed795c 75%);box-shadow:inset 0 0 0 5px #f69a7b,inset 0 -5px 0 #c45c48,0 2px 2px #142550}
body.immersive-game .connect-buttons button{background:none;box-shadow:none;color:#f6d886;border:0;font-weight:900;font-size:25px}
body.immersive-game .connect-cell.winning{outline:3px solid #fff5c1;outline-offset:-4px;animation:winning-pulse 1s ease-in-out infinite alternate}
@keyframes winning-pulse{to{filter:brightness(1.2)}}
body.immersive-game .checkers-board{border:8px solid #886e4d;border-radius:12px;box-shadow:0 8px 0 #594c37,0 20px 35px #0d251d55,inset 0 0 0 2px #b39a70}
body.immersive-game .checker-cell{background:repeating-linear-gradient(3deg,transparent 0 5px,#916d3720 5px 6px),#e0cc9e}
body.immersive-game .checker-cell.dark{background:repeating-linear-gradient(3deg,transparent 0 5px,#123f3320 5px 6px),#527363}
body.immersive-game .checker-cell.selected{background:#bda06b;box-shadow:inset 0 0 0 3px #f6df9e}
body.immersive-game .checker-cell.legal{background:#7f9b70}
body.immersive-game .checker-piece{border:0;box-shadow:0 4px 0 #725231,0 6px 4px #20392d55,inset 0 0 0 4px #ffffff30;font-weight:900}
body.immersive-game .checker-piece.p1{background:radial-gradient(circle at 35% 25%,#fff5d8,#d9b77d);color:#80613d}
body.immersive-game .checker-piece.p2{background:radial-gradient(circle at 35% 25%,#8c5648,#52372e);color:#eac5a1;box-shadow:0 4px 0 #33251e,0 6px 4px #20392d55,inset 0 0 0 4px #ffffff1a}
body.immersive-game .mahjong-board{filter:drop-shadow(0 13px 12px #062f2866)}
body.immersive-game .mahjong-tile{border:0;border-radius:6px;background:linear-gradient(130deg,#fffbe9,#eae2bf);box-shadow:0 4px 0 #6e9f78,0 7px 0 #397355,2px 10px 4px #082b3377,inset 0 1px 0 #fff}
body.immersive-game .mahjong-tile.blocked{filter:brightness(.82)}
body.immersive-game .mahjong-tile.selected,body.immersive-game .mahjong-tile.hinted{outline:3px solid #ffd16b;outline-offset:1px;background:#fff5bb}
body.immersive-game .mahjong-tile small{color:#92876c;font-weight:700;font-size:5px}
body.immersive-game .sokoban-grid{background:#26382e;border:8px solid #43523b;border-radius:18px;gap:3px;padding:7px;box-shadow:0 7px 0 #1c3028,0 18px 28px #10271d44}
body.immersive-game .soko-cell{position:relative;background:linear-gradient(135deg,#839271,#758763);border:0;border-radius:5px;color:#d8e9be;font-size:0;box-shadow:inset 0 1px 0 #b6c19c55}
body.immersive-game .soko-cell.wall{background:repeating-linear-gradient(0deg,transparent 0 44%,#344535 44% 51%,transparent 51%),linear-gradient(130deg,#6b7457,#53654b);border:1px solid #899073;box-shadow:inset 0 3px 0 #a2a08055,0 3px 0 #3b503a;z-index:1}
body.immersive-game .soko-cell.goal::before{content:'';position:absolute;width:42%;height:42%;border:3px dashed #dfd8a0;border-radius:50%}
body.immersive-game .soko-cell.box{background:linear-gradient(135deg,#e6ba77,#c9924c);box-shadow:0 3px 0 #9b7039,inset 0 0 0 3px #f3ce8b;z-index:2}
body.immersive-game .soko-cell.box::before{content:'';position:absolute;inset:6px;background:linear-gradient(45deg,transparent 44%,#986a3655 44% 55%,transparent 55%),linear-gradient(-45deg,transparent 44%,#986a3655 44% 55%,transparent 55%);border:2px solid #a7763b;border-radius:1px;width:auto;height:auto}
body.immersive-game .soko-cell.box.goal{background:linear-gradient(135deg,#bddb89,#8eb36a);box-shadow:0 3px 0 #5d8847,inset 0 0 0 3px #cfe7a4}
body.immersive-game .soko-cell.player::after{content:'';width:58%;height:65%;border-radius:45% 45% 35% 35%;background:radial-gradient(ellipse at 35% 36%,#344637 0 5%,transparent 6%),radial-gradient(ellipse at 65% 36%,#344637 0 5%,transparent 6%),linear-gradient(#f9e6b4 0 49%,#d66b51 50% 100%);box-shadow:0 4px 0 #5a6b47,0 6px 5px #2d493644;border-top:4px solid #805a3d;z-index:3}
body.immersive-game .mine-scroll{background:transparent;padding:12px}
body.immersive-game .mine-grid{gap:5px;background:#152940;padding:8px;border-radius:18px;box-shadow:0 7px 0 #11233b,0 17px 30px #091c3b44}
body.immersive-game .mine-cell{border:0;border-radius:7px;background:linear-gradient(135deg,#6d91b5,#52799e);box-shadow:0 3px 0 #355a7d,inset 0 1px 0 #a2bed3;font:900 clamp(14px,5vw,25px) var(--display);color:#f5d98e;transition:background .12s,transform .1s}
body.immersive-game .mine-cell.open{background:#213c58;box-shadow:inset 0 1px 4px #10233c66}
body.immersive-game .mine-cell.flag{background:linear-gradient(135deg,#dfbd78,#bb985d);color:#fff4cc;box-shadow:0 3px 0 #8c7144,inset 0 1px 0 #f3d995}
body.immersive-game .mine-cell.exploded,body.immersive-game .mine-cell.wrong{background:#bf675e;color:white;box-shadow:0 3px 0 #8e3c39}
body.immersive-game .mine-modes>button{font-size:11px;font-weight:900}
body.immersive-game .card-table{background:radial-gradient(ellipse at 50% 30%,#2a7b60,#14513e 75%);box-shadow:inset 0 0 90px #082e2733}
body.immersive-game .card-table::before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(45deg,#ffffff04 0 1px,transparent 1px 4px);opacity:.7}
body.immersive-game .card{border:0;border-radius:6px;background:#fffaf0;box-shadow:0 3px 0 #b6b29e,0 5px 7px #092e2944}
body.immersive-game .card.face-down{border:3px solid #efe4c8;background:repeating-linear-gradient(45deg,transparent 0 7px,#f9dba01a 7px 8px),#a15f5b;box-shadow:0 3px 0 #b6b29e,0 5px 7px #092e2944}
body.immersive-game .card.face-down::before{border-color:#ebc09877}
body.immersive-game .card.face-down::after,body.immersive-game .stock-count{color:#f5d4a6}
body.immersive-game .pile-slot{border:2px solid #8bbe9e44;background:#0c433533;color:#a9c7a3;box-shadow:inset 0 2px 5px #093e3044;border-radius:7px}
body.immersive-game .game-main{background:radial-gradient(ellipse at 50% 45%,#3e4940,#19282c)}
body.immersive-game .board-wrap{background:radial-gradient(ellipse at center,#39493f,#19282c);box-shadow:inset 0 0 100px #12212688}
body.immersive-game .board-label{opacity:.6;font-weight:800}
body.immersive-game .stats{color:var(--ink)}
body.immersive-game .stats>div>span{color:var(--soft-ink);font-weight:800}
body.immersive-game .floor-stat h2,body.immersive-game .stats b{color:var(--ink)}
body.immersive-game .danger-toggle{background:#526a4ae0;border:0;color:#e1e9ce;box-shadow:0 3px 0 #2c4637;min-height:36px}
body.immersive-game .action{background:var(--key);border:0;color:var(--ink);box-shadow:0 4px 0 var(--key-edge);border-radius:14px}
body.immersive-game .action.selected{background:#adc88c;box-shadow:0 4px 0 #73895e;color:#35452d}
body.immersive-game .action.selected>span,body.immersive-game .action.selected strong{color:#35452d}
/* The game menu is a bottom sheet, with large targets and a quiet handle. */
body.immersive-game dialog{color:var(--ink);background:var(--scene);border:0;box-shadow:0 20px 80px #0007}
body.immersive-game dialog::backdrop{background:#10112099;backdrop-filter:blur(9px)}
body.immersive-game .game-settings{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:480px;border-radius:30px 30px 0 0;padding:30px 24px calc(25px + env(safe-area-inset-bottom,0px));background:linear-gradient(160deg,var(--scene-glow),var(--scene));max-height:88dvh;box-shadow:0 -10px 60px #0003}
body.immersive-game .game-settings::before{content:'';position:absolute;top:10px;left:calc(50% - 20px);width:40px;height:4px;border-radius:4px;background:var(--soft-ink);opacity:.4}
body.immersive-game .game-settings h2{font:900 26px var(--display);color:var(--ink);letter-spacing:-.7px}
body.immersive-game .game-settings .settings-close{border:0;background:var(--key);color:var(--ink);border-radius:50%;box-shadow:0 3px 0 var(--key-edge)}
body.immersive-game .game-settings .settings-actions>button{border:0;border-radius:16px;background:var(--key);color:var(--ink);box-shadow:0 4px 0 var(--key-edge);font-weight:800;min-height:50px}
body.immersive-game .game-settings :is(label,.casual-tip,.mine-tip,.save-note){color:var(--soft-ink)}
body.immersive-game .game-settings select{border:0;border-radius:12px;background:var(--key);color:var(--ink);font-weight:800;box-shadow:0 3px 0 var(--key-edge)}
body.immersive-game .game-settings :is(.casual-bottom,.mine-record,.sol-footer,.game-bottom){color:var(--soft-ink);border-color:color-mix(in srgb,var(--soft-ink) 25%,transparent)}
body.immersive-game .game-settings .arcade-badge{border:0;background:var(--key);color:var(--soft-ink);font-weight:800}
.score-pop{animation:score-pop .3s ease-out}@keyframes score-pop{40%{transform:scale(1.15);filter:brightness(1.15)}}
@media(max-width:350px){body.immersive-game :is(.casual-stats,.mine-stats,.solitaire-score) b{font-size:23px}body.immersive-game :is(.casual-stats,.mine-stats,.solitaire-score)>div>span{font-size:7px;letter-spacing:.5px}body.immersive-game :is(.casual-controls,.mine-modes,.immersive-sol-dock){gap:5px;padding-inline:8px}body.immersive-game .dpad{gap:3px!important}body.immersive-game .dpad button{width:41px}body.immersive-game button[data-compact-icon]{min-width:41px;width:41px}body.immersive-game .sudoku-tools{gap:5px}body.immersive-game[data-game=tetris] .casual-controls{gap:4px;padding-inline:8px}}
@media(max-height:480px){body.immersive-game :is(.casual-stats,.mine-stats,.solitaire-score,.stats){min-height:54px;padding-block:5px}body.immersive-game :is(.casual-stats,.mine-stats,.solitaire-score) b{font-size:20px}body.immersive-game :is(.casual-controls,.mine-modes,.immersive-sol-dock,.action-bar){padding-block:6px}body.immersive-game #casual-stage{padding:6px}body.immersive-game .game-header .back-link{top:calc(env(safe-area-inset-top,0px) + 5px)}body.immersive-game .sudoku-pad button{height:44px;min-height:44px}body.immersive-game .checkers-board{border-width:5px}body.immersive-game :is(.arcade-hud,.canvas-overlay) h2{font-size:24px}body.immersive-game :is(.arcade-hud,.canvas-overlay)::before{width:30px;height:30px;margin:0}}
@media(prefers-reduced-motion:reduce){.memory-flipper{transition:none}.tile-pop,.score-pop{animation:none!important}}
body.immersive-game .native-mode::before{content:'';display:inline-block;vertical-align:middle;margin-right:7px;width:18px;height:18px;background:currentColor;mask:var(--control-mask) center/contain no-repeat;-webkit-mask:var(--control-mask) center/contain no-repeat}
