.strategy-page [hidden],.strategy-surface[hidden]{display:none!important}.strategy-page .games-main{max-width:1050px}.strategy-page .classic-hero{padding-top:1.6rem}.strategy-page h1{font-weight:600!important;text-shadow:none!important}.strategy-page button,.strategy-page input,.strategy-page select{touch-action:manipulation}.strategy-page .game-options label{display:block;margin:.8rem 0 .3rem}.strategy-page select{background:#112735;color:#def0eb;min-height:48px;border:1px solid #577d89;border-radius:8px;font:400 1rem system-ui;padding:.65rem;max-width:100%}.strategy-surface{width:100%;max-width:760px;margin:1rem auto}.strategy-grid{display:grid;gap:5px;padding:10px;border:2px solid #6f8d89;border-radius:14px;background:linear-gradient(145deg,#214654,#0d2333);box-shadow:inset 0 0 0 2px #061820,0 12px 24px #0003}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));max-width:430px;margin:auto}.grid-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-8{grid-template-columns:repeat(8,minmax(0,1fr));gap:2px}.classics-page .strategy-cell{min-width:0;min-height:0;padding:0;border:1px solid #638c9255;border-radius:7px;aspect-ratio:1;display:grid;place-items:center;line-height:1;background:#112d3d;font:500 clamp(1.2rem,5vw,3rem)/1 system-ui;text-shadow:none;position:relative}.classics-page .strategy-cell:disabled{opacity:1;cursor:default}.strategy-cell.token-gold,.dots-box.token-gold{color:#f3d58a}.strategy-cell.token-cyan,.dots-box.token-cyan{color:#8ce7d8}.strategy-cell.strategy-legal{border-color:#eac879;color:#f3db9a;background:#30463e}.classics-page .strategy-cell:focus-visible{outline:3px solid #f5d889;outline-offset:-3px}.strategy-tic-tac-toe .strategy-cell{font-size:clamp(3rem,13vw,6rem);background:linear-gradient(135deg,#1d3d4b,#102a3b)}.strategy-connect-four .strategy-cell:not(button),.strategy-reversi .strategy-cell{background:radial-gradient(circle,#071b2a 57%,#3d6d7955 59%,#163343 65%);font-size:clamp(1rem,6vw,3.6rem)}.strategy-connect-four button{min-height:44px;aspect-ratio:auto;font-size:1.4rem}.strategy-hint{font-size:.88rem;color:#b3cdd5;line-height:1.6}.strategy-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin:1rem 0}.strategy-actions .strategy-cell{aspect-ratio:auto;min-height:48px;padding:.6rem 1rem;font-size:.95rem}.dots-grid{display:grid;grid-template-columns:24px 1fr 24px 1fr 24px 1fr 24px;grid-template-rows:24px 55px 24px 55px 24px 55px 24px;max-width:450px;margin:auto;padding:1rem;border:1px solid #628b8c;border-radius:16px;background:radial-gradient(ellipse at 50% 0,#254c52,#102936)}.dots-point{display:grid;place-items:center;font-size:1.6rem;color:#d7e5df}.classics-page .dots-edge{border:none;border-radius:5px;background:transparent;font-size:1rem;width:100%;height:100%;aspect-ratio:auto}.dots-edge::before{content:'';position:absolute;background:#63818a55;border-radius:4px;pointer-events:none}.dots-edge.horizontal::before{height:5px;left:3px;right:3px;top:calc(50% - 2px)}.dots-edge.vertical::before{width:5px;top:3px;bottom:3px;left:calc(50% - 2px)}.dots-edge.token-gold::before{background:#eac979;box-shadow:0 0 5px #eac97933}.dots-edge.token-cyan::before{background:#82dcd1;box-shadow:0 0 5px #82dcd133}.dots-box{display:grid;place-items:center;border-radius:8px;font:500 1.4rem Georgia,serif;background:#091e2a66}.dots-box.token-gold{background:#755c3144}.dots-box.token-cyan{background:#27686a44}.fleet-panes{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.fleet-pane{min-width:0}.fleet-pane h3{font:500 1rem system-ui;text-transform:none;text-shadow:none}.fleet-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;padding:7px;max-width:360px}.classics-page .fleet-grid .strategy-cell{border-radius:4px;font-size:clamp(1rem,4vw,1.8rem);background:repeating-linear-gradient(0deg,#102e40,#102e40 7px,#133448 8px)}.classics-page .fleet-grid .fleet-ship{background:linear-gradient(135deg,#6a6039,#38483c);color:#ffe1a0;border-color:#e4c77b}.classics-page .fleet-grid .fleet-hit{background:#633845;color:#ffd7c5;border-color:#e6a58b;box-shadow:inset 0 0 0 2px #f0ad8222}.classics-page .fleet-grid .fleet-miss{background:#183a49;color:#92b8c5}.solo-board{max-width:640px;margin:1.5rem auto}.solo-peg-quest{position:relative;padding:1.7rem .5rem 1rem;isolation:isolate;max-width:400px;background:linear-gradient(150deg,#314c4c,#102c3a);border:1px solid #c1ac6c;border-radius:24px 24px 45% 45% / 24px 24px 12% 12%;box-shadow:inset 0 0 0 5px #0f2934,0 10px 22px #0004}.peg-row{display:flex;justify-content:center;gap:clamp(5px,2vw,13px);margin:.6rem 0}.classics-page .peg-hole{padding:0;min-width:0;min-height:0;width:clamp(37px,9vw,52px);aspect-ratio:1;border-radius:50%;border:2px solid #729496;display:grid;place-items:center;background:#061c29;box-shadow:inset 0 3px 6px #0008;color:#547a88;font-size:1.4rem}.classics-page .peg-hole.peg-filled{color:#ffedb3;background:radial-gradient(circle at 35% 25%,#ffe8a8,#bc933f 50%,#75592f 65%);border-color:#ecd18a;box-shadow:0 3px #594827,inset 0 0 0 3px #886e3755}.classics-page .peg-hole[aria-pressed=true]{outline:3px solid #a3f7e7;outline-offset:3px}.classics-page .peg-hole.strategy-legal{color:#a8ffea;border-color:#8ee5d7}.solo-hanoi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.classics-page .hanoi-tower{position:relative;padding:.6rem .25rem;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:5px;min-height:210px;background:linear-gradient(90deg,transparent calc(50% - 3px),#a5a48a calc(50% - 3px),#a5a48a calc(50% + 3px),transparent calc(50% + 3px)),#122d3b;border-bottom:7px solid #bca16c;border-radius:9px}.hanoi-tower strong{position:absolute;top:.7rem;left:0;right:0;font:500 .8rem system-ui;background:#112c3b;padding:.4rem}.hanoi-disc{display:block;min-height:26px;border-radius:10px;border:1px solid #f5d892;background:linear-gradient(#eed393,#8d743c);color:#172c37;font:600 .85rem/26px system-ui;box-shadow:0 2px #17242b;z-index:1}.classics-page .hanoi-tower[aria-pressed=true]{outline:3px solid #eacd83;outline-offset:2px}.sudoku-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:0;border:2px solid #8db7b5;background:#132c3c}.classics-page .sudoku-cell{min-width:0;min-height:0;padding:0;aspect-ratio:1;border-radius:0;border:1px solid #456374;background:#112c3b;font:500 clamp(.9rem,3vw,1.6rem)/1 system-ui;color:#f5d897}.classics-page .sudoku-cell.given{background:#263f4d;color:#dfebe7;opacity:1}.classics-page .sudoku-cell.box-right{border-right:3px solid #91b5b0}.classics-page .sudoku-cell.box-bottom{border-bottom:3px solid #91b5b0}.sudoku-cell[aria-pressed=true]{outline:3px solid #e8cb85;outline-offset:-3px}.number-pad{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem;margin:1rem 0}.number-pad button{min-width:0;padding:.5rem!important}.solo-codebreaker input{display:block;width:100%;max-width:340px;min-height:52px;padding:.75rem;margin:.6rem 0 1rem;background:#0b2030;border:1px solid #88b1b0;border-radius:9px;font:500 1.5rem ui-monospace,monospace;letter-spacing:.25em;color:#f7db98}.solo-codebreaker li{padding:.7rem .3rem;color:#c6dcd9;font:500 1rem/1.5 ui-monospace,monospace}.solo-codebreaker label{display:block;color:#c7d8de}.strategy-page #feedback:not(:empty){padding:1rem;background:#253b3a;border-left:3px solid #e3c16e}.strategy-page #handoff{padding:2rem 1rem;text-align:center;border:1px dashed #729f99;border-radius:16px;background:radial-gradient(ellipse at 50% 0,#31585444,#102735);margin:1rem 0}.strategy-page #handoff p{font-size:1rem}.strategy-page .online-entry{margin-top:1.2rem}.online-page #board.strategy-surface{max-width:760px;border:none;box-shadow:none;background:none;display:block}.online-page .strategy-surface h3{font-size:1rem}.online-page .strategy-surface p{line-height:1.6}@media(max-width:600px){.fleet-panes{grid-template-columns:1fr}.fleet-grid{margin:auto;max-width:310px}.strategy-grid{padding:6px;gap:3px}.grid-8{gap:1px}.strategy-page .classic-panel{padding-inline:8px}.dots-grid{padding:.5rem;grid-template-columns:20px 1fr 20px 1fr 20px 1fr 20px;grid-template-rows:20px 44px 20px 44px 20px 44px 20px}.classics-page .hanoi-tower{min-height:180px}.strategy-page .classic-hero h1{font-size:2rem}.strategy-page .games-main{padding-inline:8px}.solo-codebreaker li{font-size:.85rem}}@media(prefers-reduced-motion:no-preference) and (hover:hover){.strategy-cell:not(:disabled):hover,.peg-hole:not(:disabled):hover{filter:brightness(1.15)}}@media(forced-colors:active){.strategy-grid,.dots-grid,.solo-peg-quest{background:Canvas;border-color:CanvasText;box-shadow:none}.classics-page :is(.strategy-cell,.sudoku-cell,.hanoi-tower,.peg-hole){background:Canvas!important;color:CanvasText!important;border:1px solid CanvasText;box-shadow:none}.dots-point,.dots-box{color:CanvasText}.dots-edge::before{background:CanvasText}.dots-edge.token-gold::before,.dots-edge.token-cyan::before{background:Highlight}.strategy-reversi .token-gold::after,.strategy-connect-four .token-gold::after{content:'G';position:absolute;font:600 .65rem system-ui;background:Canvas;color:CanvasText}.strategy-reversi .token-cyan::after,.strategy-connect-four .token-cyan::after{content:'C';position:absolute;font:600 .65rem system-ui;background:Canvas;color:CanvasText}.hanoi-disc{background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none}}
/* Sculpted boards, crisp type and light on the frame rather than the text. */
.strategy-page .classic-panel{background:radial-gradient(ellipse at 50% 0,#24495177,transparent 65%),#0c202c;border:1px solid #719b9766;box-shadow:0 0 0 4px #69d9c406,0 18px 50px #0005}.strategy-page #status{border:1px solid #90c3b04d;border-radius:12px;background:linear-gradient(100deg,#b69a4c20,#65d6c315);padding:16px;font:500 1.1rem/1.5 system-ui;color:#e4eee5}.strategy-grid{border-color:#baa16a;box-shadow:inset 0 0 0 3px #061820,0 0 0 5px #ddc7830b,0 16px 32px #0005}.strategy-tic-tac-toe .token-gold{background:radial-gradient(circle at 35% 20%,#806a3944,#142e3b);box-shadow:inset 0 2px #f5da9b33,0 3px 6px #0005}.strategy-tic-tac-toe .token-cyan{background:radial-gradient(circle at 35% 20%,#4f998544,#142e3b);box-shadow:inset 0 2px #a2f8e533,0 3px 6px #0005}.strategy-connect-four .strategy-cell:not(button).token-gold,.strategy-reversi .strategy-cell.token-gold{color:transparent;background:radial-gradient(circle at 38% 30%,#fff0b8 0,#d9b963 33%,#8d682b 54%,#e6c77b 57%,#091e2c 62%);box-shadow:inset 0 -3px 7px #0005}.strategy-connect-four .strategy-cell:not(button).token-cyan,.strategy-reversi .strategy-cell.token-cyan{color:transparent;background:radial-gradient(circle at 38% 30%,#d6fff5 0,#74cdbb 33%,#31776f 54%,#91e9d3 57%,#091e2c 62%);box-shadow:inset 0 -3px 7px #0005}.dots-grid{max-width:590px;width:100%;box-sizing:border-box;aspect-ratio:1;padding:12px;border:2px solid #baa36f;box-shadow:inset 0 0 0 4px #081e2c,0 12px 32px #0005}.dots-box{font-size:clamp(.75rem,3vw,1.4rem);box-shadow:inset 0 1px 4px #0004}.dots-point{font-size:1.6rem;color:#f3e6bd}.dots-edge:enabled:focus-visible{background:#e3ca6b44}.fleet-grid{grid-template-columns:repeat(var(--fleet-size,10),minmax(0,1fr));max-width:480px;width:100%;box-sizing:border-box;gap:2px}.fleet-coordinate{position:absolute;bottom:2px;left:2px;font:400 clamp(6px,1.5vw,9px)/1 system-ui;color:#aacbd0;pointer-events:none}.classics-page .fleet-grid .strategy-cell{font-size:clamp(.8rem,2.5vw,1.5rem);border-radius:3px}.classics-page .fleet-grid .fleet-ship{background:linear-gradient(135deg,#e5d19c,#7b825f 35%,#31444a 70%);box-shadow:inset 0 0 0 2px #b6be8a66;color:#ffe8ab}.classics-page .fleet-grid .fleet-hit{background:radial-gradient(circle,#ffdda3,#a44f3d 40%,#452c35 75%);color:#fff1cd}.fleet-pane h3{letter-spacing:.08em;border-bottom:1px solid #67969055;padding-bottom:12px}.solo-hanoi{padding:20px 12px;background:radial-gradient(ellipse at top,#264d53,#0b2332);border:1px solid #9b986b;border-radius:18px}.hanoi-disc:nth-of-type(even){background:linear-gradient(#b9f5e4,#4e9d93);border-color:#b5f1dd}.solo-codebreaker{padding:20px;border-radius:18px;border:1px solid #719b97;background:linear-gradient(150deg,#1a3c46,#102331)}.solo-codebreaker li{border-bottom:1px solid #6b97964d;letter-spacing:.08em}.sudoku-grid{box-shadow:0 0 0 5px #d2c17f13,0 14px 30px #0005;border-color:#ccb475}.strategy-page .classic-hero::after{content:'THINK · PLAN · PLAY';display:block;font:400 .7rem system-ui;letter-spacing:.25em;color:#81cbbd;margin-top:20px}@media(max-width:600px){.fleet-grid{max-width:460px}.fleet-panes{gap:18px}.fleet-coordinate{font-size:8px}.dots-grid{padding:6px}.strategy-page #status{font-size:1rem}}@media(prefers-reduced-motion:no-preference){.strategy-cell.token-gold,.strategy-cell.token-cyan,.dots-box.token-gold,.dots-box.token-cyan{animation:geek-piece-in .2s ease-out}@keyframes geek-piece-in{from{transform:scale(.88)}to{transform:scale(1)}}}
.fleet-roster{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0}.fleet-badge{padding:7px 10px;border:1px solid #a3b29466;border-radius:6px;background:#1a3943;font:400 .72rem system-ui;color:#d5d9bd}.fleet-hull{position:absolute;inset:25% 6%;border:1px solid #e0d1a4;background:linear-gradient(#e0d1a4,#839182 40%,#425b5d 65%,#afac82);box-shadow:0 2px 3px #0009;pointer-events:none}.hull-horizontal.hull-bow{clip-path:polygon(0 50%,30% 0,100% 0,100% 100%,30% 100%)}.hull-horizontal.hull-stern{border-radius:0 5px 5px 0}.hull-vertical{inset:6% 25%;background:linear-gradient(90deg,#e0d1a4,#839182 40%,#425b5d 65%,#afac82)}.hull-vertical.hull-bow{clip-path:polygon(50% 0,100% 30%,100% 100%,0 100%,0 30%)}.hull-vertical.hull-stern{border-radius:0 0 5px 5px}.fleet-hit .fleet-hull{opacity:.25}.fleet-hit .fleet-coordinate{color:#ffe2bd}
/* Fit Expert/Geek Master towers on a 1280x800 desktop: shrink disc height and gaps so every disc and the base stay in view. */
.solo-hanoi[data-discs="7"]{--disc-gap:3px;--disc-height:min(26px,max(14px,calc((100vh - 560px) / 7)))}
.solo-hanoi[data-discs="8"]{--disc-gap:3px;--disc-height:min(26px,max(14px,calc((100vh - 600px) / 8)))}
.classics-page .solo-hanoi[data-discs="7"] .hanoi-tower,.classics-page .solo-hanoi[data-discs="8"] .hanoi-tower{gap:var(--disc-gap);min-height:0}
.solo-hanoi[data-discs="7"] .hanoi-disc,.solo-hanoi[data-discs="8"] .hanoi-disc{box-sizing:border-box;min-height:var(--disc-height);height:var(--disc-height);line-height:var(--disc-height);font:600 .8rem/var(--disc-height) system-ui}
