.solitaire-app,.reversi-app,.minigolf-app{display:flex;flex-direction:column;min-height:100%;font:12px Tahoma,Arial,sans-serif}
.solitaire-table{background:#17634e;padding:14px;min-height:360px;flex:1}.solitaire-top,.solitaire-columns{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;position:relative}.solitaire-top{height:118px}.solitaire-columns{margin-top:10px}.solitaire-pile{position:relative;min-width:0;height:105px}
.playing-card,.empty-pile{height:101px;width:100%;max-width:76px;min-width:0;border-radius:5px;box-sizing:border-box}.solitaire-pile>.playing-card{position:absolute;top:0;left:0}.playing-card{background:#fffff8;color:#16272a;border:1px solid #273f32;box-shadow:1px 2px #0005;padding:4px;font:bold 18px/1.1 Georgia,serif;text-align:left;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.playing-card>span{font-size:16px}.playing-card>b{align-self:center;font-size:34px}.playing-card.red-card{color:#b32334}
.playing-card.card-back{background:repeating-linear-gradient(45deg,#37558f 0 3px,#677ebb 3px 5px);border:4px solid #e9eee6}.playing-card.selected-card{outline:3px solid #f7d363;outline-offset:-3px;filter:brightness(.92)}.empty-pile{border:2px solid #a1ccb055;background:#10473488;color:#93b9a6;font:30px Georgia,serif}.stock-empty{background:#104734;color:#a5d1b9;align-items:center;justify-content:center;font-size:35px}.solitaire-status{margin:0;padding:8px 12px;line-height:1.5;background:var(--chrome)}.solitaire-app .app-menubar{flex-shrink:0}
.reversi-app{padding-bottom:12px}.reversi-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));aspect-ratio:1;width:min(470px,calc(100% - 24px));margin:0 auto;border:5px solid #453829;background:#274e39}.reversi-board button{aspect-ratio:1;background:#54815a;border:1px solid #2e5a3e;display:flex;align-items:center;justify-content:center;padding:6px;min-width:0;font:30px Georgia,serif;color:#a4c590}.reversi-board button:nth-child(odd){background:#5b8a61}.reversi-board i{display:block;width:100%;height:100%;border-radius:50%;border:1px solid #222;box-shadow:2px 3px #0004}.reversi-board .disc-1 i{background:radial-gradient(circle at 30% 25%,#666,#111 65%)}.reversi-board .disc-2 i{background:radial-gradient(circle at 30% 25%,#fff,#d6d5c8 70%)}#reversi-score,#reversi-status{padding:4px 14px;line-height:1.6}.legal-square:hover,.legal-square:focus-visible{outline:3px solid #f5d16a;outline-offset:-3px}
.minigolf-app{background:var(--chrome)}#golf-course{display:block;width:100%;height:auto;aspect-ratio:12/7;max-height:calc(100dvh - 260px);object-fit:contain;background:#33533b;touch-action:none;flex-shrink:0}.golf-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px}.golf-controls label{flex:1;min-width:140px;display:grid;grid-template-columns:1fr auto;gap:3px;font-size:12px}.golf-controls input{grid-column:1/3;width:100%;min-height:24px;order:3}.golf-controls output{font-variant-numeric:tabular-nums}.golf-controls button{min-height:38px;min-width:75px}#golf-status,#golf-scorecard{margin:4px 12px 10px;font:12px/1.5 Tahoma,sans-serif}#golf-scorecard{font-size:11px;color:#444}#golf-hole{font-size:12px;margin-left:auto}.minigolf-app .app-menubar{flex-shrink:0}
@media(max-width:600px){.solitaire-table{padding:8px;min-height:300px}.solitaire-top,.solitaire-columns{gap:4px}.playing-card,.empty-pile{height:78px}.playing-card{padding:3px}.playing-card>span{font-size:13px}.playing-card>b{font-size:25px}.solitaire-top{height:88px}.playing-card.card-back{border-width:2px}.solitaire-app .app-menubar span{font-size:10px}.solitaire-status{font-size:11px}.reversi-board{border-width:3px;width:calc(100% - 18px)}.reversi-board button{padding:4px}#golf-course{max-height:none}.golf-controls{padding:8px;gap:8px}.golf-controls label{min-width:95px}#golf-hole{width:100%;margin:3px 0}.minigolf-app .bevel-button{padding:5px 8px}#golf-status{font-size:11px}}
.snakes-app{display:flex;flex-direction:column;min-height:100%;font:12px Tahoma,Arial,sans-serif;background:var(--chrome)}
.snakes-play{display:flex;gap:12px;padding:10px 12px;align-items:flex-start;justify-content:center;flex-wrap:wrap}
.snakes-board{position:relative;width:min(440px,100%);aspect-ratio:1;border:5px solid #5b3b21;box-shadow:2px 3px #0005;background:#fbf3d9;margin-bottom:14px}
.snakes-cells{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);width:100%;height:100%}
.snakes-cell{background:#fbf3d9;color:#6b5843;font:bold 10px/1 Verdana,Arial,sans-serif;padding:3px;border-right:1px solid #e3d3ab;border-bottom:1px solid #e3d3ab;min-width:0;overflow:hidden}
.snakes-cell.alt{background:#f2dfa8}.snakes-cell:nth-child(-n+10){color:#9b2b20}
.snakes-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.snakes-ladder .rail{stroke:#7a4b22;stroke-width:.95;stroke-linecap:round}.snakes-ladder .rung{stroke:#b07a40;stroke-width:.75}
.snakes-snake path{fill:none;stroke-linecap:round}.snakes-snake .outline{stroke:#1d3a1a;stroke-width:3.6}.snakes-snake .body{stroke:#4f9a3a;stroke-width:2.6}.snakes-snake .stripe{stroke:#c7e36b;stroke-width:.7;stroke-dasharray:1.4 2.2}
.snakes-snake.snake-1 .body{stroke:#c0532f}.snakes-snake.snake-1 .outline{stroke:#4d1d10}.snakes-snake.snake-1 .stripe{stroke:#f3c35a}
.snakes-snake.snake-2 .body{stroke:#6b54b0}.snakes-snake.snake-2 .outline{stroke:#271a4d}.snakes-snake.snake-2 .stripe{stroke:#d6c8ff}
.snakes-snake .head{fill:#2f5f26;stroke:#1d3a1a;stroke-width:.5}.snakes-snake.snake-1 .head{fill:#8e3519}.snakes-snake.snake-2 .head{fill:#4a3887}.snakes-snake .eye{fill:#fff}
.snakes-tokens{position:absolute;inset:0;pointer-events:none}.snakes-tokens i{position:absolute;width:5.4%;height:5.4%;margin:-2.7% 0 0 -2.7%;border-radius:50%;border:2px solid #fff;box-shadow:0 2px 3px #0008;transition:left .14s ease-out,top .14s ease-out;box-sizing:border-box}
.snakes-side{display:flex;flex-direction:column;gap:10px;min-width:150px}
.snakes-die{display:flex;align-items:center;gap:10px;padding:8px 12px;font:bold 14px Tahoma,Arial,sans-serif}
.die-face{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:38px;height:38px;padding:4px;box-sizing:border-box;background:#fffef8;border:1px solid #333;border-radius:7px;box-shadow:inset -2px -2px #0002}.die-face i.pip{width:7px;height:7px;margin:auto;border-radius:50%;background:#1d1d1d}
.snakes-players{list-style:none;margin:0;padding:0;display:grid;gap:4px}.snakes-players li{display:flex;align-items:center;gap:6px;padding:3px 6px;border:1px solid transparent}.snakes-players li.current{border-color:currentColor;font-weight:bold}.snakes-players li i{width:12px;height:12px;border-radius:50%;border:1px solid #0006;flex:none}
.snakes-status{margin:0;padding:8px 12px;line-height:1.5;min-height:3em}
@media(prefers-reduced-motion:reduce){.snakes-tokens i{transition:none}}
@media(max-width:600px){.snakes-play{padding:8px;gap:8px}.snakes-board{border-width:3px}.snakes-cell{font-size:8px;padding:1px}.snakes-side{flex-direction:row;flex-wrap:wrap;min-width:0;width:100%;align-items:center}.snakes-players{grid-template-columns:1fr 1fr;flex:1}}
.snake-app{display:flex;flex-direction:column;min-height:100%;font:12px Tahoma,Arial,sans-serif;background:var(--chrome);outline:none}
.snake-phone{margin:12px auto;padding:16px 16px 18px;width:min(380px,calc(100% - 24px));box-sizing:border-box;background:linear-gradient(#41506a,#26303f);border-radius:28px 28px 40px 40px;box-shadow:inset 0 2px #fff3,2px 4px #0006;display:flex;flex-direction:column;align-items:center;gap:14px}
.snake-screen{width:100%;background:#b6c48a;border:6px solid #1a1f27;border-radius:8px;box-shadow:inset 0 0 0 2px #8c9a64;padding:4px 6px 6px;box-sizing:border-box}
.snake-score{display:flex;justify-content:space-between;color:#26330f;font:bold 13px/1.4 "Courier New",monospace;border-bottom:2px solid #26330f;margin-bottom:4px}
#snake-canvas{display:block;width:100%;height:auto;aspect-ratio:20/14;image-rendering:pixelated;touch-action:none}
.snake-pad{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,40px);gap:6px;grid-template-areas:". up ." "left ok right" ". down ."}
.snake-pad button{font-size:16px;padding:0;border-radius:10px;background:#d8dde6;color:#222}.snake-pad [data-dir=up]{grid-area:up}.snake-pad [data-dir=down]{grid-area:down}.snake-pad [data-dir=left]{grid-area:left}.snake-pad [data-dir=right]{grid-area:right}.snake-pad .snake-ok{grid-area:ok;border-radius:50%;color:#6a7a3a}
.snake-status{margin:0;padding:6px 12px 10px;line-height:1.5;min-height:3em}
@media(max-width:600px){.snake-phone{margin:8px auto;padding:12px;gap:10px}.snake-pad{grid-template-columns:repeat(3,60px);grid-template-rows:repeat(3,46px)}}
