/* Shared full-window game frame. */
.game-choice{text-decoration:none}.game-topbar .topnav a[aria-current=page]{color:#fff}.unified-page{font-family:Arial,Helvetica,sans-serif}.unified-page .game-stage{overflow:hidden}.unified-page .game-console{font:13px/1.55 Arial,Helvetica,sans-serif}.unified-page .console-section p:not(.console-label){color:#96a7be}.unified-page .console-section a:not(.game-choice){color:#8ebfff}.unified-page .game-picker p.console-label{color:#96a7be}.unified-page .game-choice small{text-transform:uppercase;font:8px/1.4 ui-monospace,monospace}.unified-page .game-console h2{font:10px/1.4 ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#96a7be;margin:0 0 12px}.unified-page .game-console section{border-bottom:1px solid var(--line);padding:14px 16px}.unified-page .game-console .game-rules{font:13px/1.6 Arial,sans-serif}.unified-page .game-rules strong{display:block;font-size:14px;color:#edf4ff}.unified-page .game-rules p{color:#96a7be}.unified-page .game-heading{flex:none}.unified-page button,.unified-page select{font-family:Arial,Helvetica,sans-serif}.unified-page button:focus-visible,.unified-page a:focus-visible,.unified-page select:focus-visible,.unified-page canvas:focus-visible{outline:2px solid #9ad1ff;outline-offset:2px}.unified-page [hidden]{display:none!important}
.library-body,.reference-body{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#486185 #07101d}.library-intro{font:14px/1.5 Arial,sans-serif;color:#96a7be;margin:18px 0 22px}.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 0 20px}.library-game{display:flex;flex-direction:column;min-height:170px;padding:19px;border:1px solid #24374f;background:#050d18;text-decoration:none}.library-game:hover{border-color:#177cff;background:#081b33}.library-number{font:9px/1.5 ui-monospace,monospace;text-transform:uppercase;letter-spacing:.09em;color:#8ebfff}.library-game h2{display:flex;justify-content:space-between;align-items:start;gap:12px;font:700 21px/1.15 Arial,sans-serif;margin:16px 0 10px;color:#edf4ff}.library-game h2 span{color:#5b9ae9;font-size:17px}.library-game p{font:13px/1.5 Arial,sans-serif;color:#96a7be;margin:0 0 16px}.library-game small{margin-top:auto;font:9px ui-monospace,monospace;text-transform:uppercase;color:#8ea3bf}.reference-body{padding:18px 0 30px;max-width:1100px;font:15px/1.8 Arial,sans-serif;color:#b0bfd1}.reference-body h2{font:700 24px/1.3 Arial,sans-serif;color:#edf4ff;margin-top:30px}.reference-body .date,.reference-body .eyebrow{font:11px ui-monospace,monospace;color:#56dca8}.reference-body ul{padding-left:24px}.reference-body a{color:#8ebfff}
.unified-page .readouts{display:flex;flex-wrap:wrap;align-items:center;gap:18px;font:10px ui-monospace,monospace;text-transform:uppercase}.unified-page .readouts>div{display:flex;gap:6px;align-items:center}.unified-page .readouts small{font:inherit;color:#96a7be}.unified-page .readouts b{font:700 11px ui-monospace,monospace;color:#edf4ff}.unified-page #state-value{color:#49dfa6}.unified-page .play-area{--board-size:500px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;flex:1;min-height:0;width:100%;padding:14px 2px;overflow:auto;scrollbar-width:thin}.unified-page .play-area>*{flex-shrink:0}.unified-page .game-message{margin-bottom:0}.unified-page .button-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.unified-page .play-actions button{min-height:44px;border:1px solid #314762;background:#07101d;color:#edf4ff;padding:8px;font:700 12px/1.3 Arial,sans-serif;cursor:pointer}.unified-page .play-actions #new-run{border-color:#923247;background:#1c0b14}.unified-page .play-actions button:hover:not(:disabled){border-color:#177cff}.unified-page .play-actions button[aria-pressed=true]{border-color:#49dfa6;background:#09261b}.unified-page .play-actions label{display:grid;gap:7px;font:11px Arial,sans-serif;color:#96a7be;margin-top:16px}.unified-page .play-actions select{width:100%;min-height:40px;background:#07101d;color:#edf4ff;border:1px solid #314762;padding:8px}.unified-page #save-note,.unified-page .settings-note{font:11px/1.5 Arial,sans-serif;color:#96a7be}.unified-page .settings-note{display:block;margin-top:10px}.unified-page .turn-panel p{display:flex;justify-content:space-between;gap:12px;margin:4px 0}.unified-page .arcade-controls{margin:0 0 14px;max-width:none;display:grid;gap:8px}.unified-page .arcade-controls .primary{border-color:#177cff;background:#0b2b50;min-height:46px}.unified-page .direction-pad{display:flex;gap:6px}.unified-page .direction-pad button{flex:1;touch-action:none;user-select:none}.unified-page .arcade-controls p{font:11px Arial,sans-serif;margin:0}
.mines-grid{display:grid;grid-template-columns:repeat(var(--columns),1fr);gap:3px;min-width:260px}.mines-grid.large{min-width:440px;gap:2px}.mines-grid button{aspect-ratio:1;border:1px solid #345a85;border-radius:4px;background:linear-gradient(#193a60,#122942);font-size:clamp(12px,2vw,20px);font-weight:800;padding:0;color:#d9eaff}.mines-grid button:hover{background:#245786}.mines-grid .revealed{background:#0a1422;border-color:#162d49}.mines-grid .n1{color:#71b3ff}.mines-grid .n2{color:#74eab2}.mines-grid .n3{color:#ff849e}.mines-grid .n4{color:#c29bff}.mines-grid .n5,.mines-grid .n6{color:#f2d276}.mines-grid .hit{background:#9f2346;color:white;border-color:#ff7599}
.sudoku-grid{display:grid;grid-template-columns:repeat(9,1fr);border:2px solid #7199c5;background:#0c1d32;max-width:450px;margin:auto}.sudoku-grid button{aspect-ratio:1;border:0;border-right:1px solid #294563;border-bottom:1px solid #294563;background:#0b2038;color:#89c2ff;font-size:clamp(16px,2.4vw,25px);padding:0}.sudoku-grid .given{background:#101b2a;color:#eff4ff;font-weight:700}.sudoku-grid .selected{background:#225b88;box-shadow:inset 0 0 0 2px #9edfff}.sudoku-grid .box-right{border-right:2px solid #7199c5}.sudoku-grid .box-bottom{border-bottom:2px solid #7199c5}.sudoku-grid .conflict{color:#ff9daf;box-shadow:inset 0 0 0 2px #ef5576}.pencil{display:block;font-size:10px;line-height:1.4;word-spacing:2px;padding:2px;color:#8ab89f}.number-pad{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;max-width:450px;margin:18px auto 0}.number-pad button{min-height:44px;background:#112b48;border:1px solid #345b83;border-radius:4px;color:#d4e9ff;font-size:18px}.number-pad button:last-child{font-size:13px}
.slide-grid{display:grid;grid-template-columns:repeat(var(--columns),1fr);gap:8px;max-width:460px;margin:12px auto;padding:12px;border:1px solid #2d486a;border-radius:10px;background:#091625}.slide-grid button,.slide-grid .blank{aspect-ratio:1;display:grid;place-items:center;border:1px solid #294565;border-radius:7px;background:#102841;color:#a9bed8;font-size:clamp(20px,3.8vw,42px);font-weight:700}.slide-grid .movable{background:#194e7e;color:#e9f8ff;border-color:#609fd4}.slide-grid .blank{background:#030a12;border:1px dashed #29405f}
.reversi-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;background:#285d50;border:4px solid #285d50;border-radius:5px;max-width:490px;margin:auto}.reversi-grid button{display:grid;place-items:center;aspect-ratio:1;border:0;background:#0d332d;padding:5px;position:relative}.reversi-grid button:hover{background:#1a5347}.disc{width:85%;height:85%;border-radius:50%;display:block}.disc.blue{background:radial-gradient(circle at 33% 25%,#8cc6ff,#2b72d5 70%);box-shadow:inset 0 0 0 2px #a3cfff55,0 3px 3px #0004}.disc.gold{background:radial-gradient(circle at 33% 25%,#ffe8a4,#d39524 70%);box-shadow:inset 0 0 0 2px #ffeeaf66,0 3px 3px #0004}.disc.empty{background:#030a16;box-shadow:inset 0 2px 6px #000a}.disc.winning{outline:3px solid #fff;outline-offset:1px}.legal-dot{width:18%;height:18%;border-radius:50%;background:#96dabc}
.four-columns,.four-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;max-width:490px;margin:auto}.four-columns{margin-bottom:10px}.four-columns button{min-height:42px;border:1px solid #3b6694;border-radius:6px;background:#112e50;color:#a4d1ff;font-size:24px}.four-grid{border:1px solid #396993;border-radius:10px;background:#13335b;padding:10px}.four-grid button{aspect-ratio:1;padding:4px;display:grid;place-items:center;background:none;border:0}
.canvas-area{max-width:390px}.canvas-area canvas{display:block;max-width:100%;width:100%;height:auto;border:1px solid #263e5d;border-radius:7px;touch-action:none}.arcade-controls{display:grid;grid-template-columns:1fr;gap:10px;max-width:390px;margin:14px auto 0}.arcade-controls .primary{background:#1762ba;border-color:#6dafff;font-size:15px}.direction-pad{display:flex;gap:8px}.direction-pad button{flex:1;touch-action:none;font-size:16px;user-select:none}.arcade-controls p{margin:0;text-align:center;font-size:12px;color:var(--muted)}

.unified-page .mines-grid,.unified-page .sudoku-grid,.unified-page .slide-grid,.unified-page .reversi-grid,.unified-page .four-grid,.unified-page .four-columns{width:var(--board-size);max-width:none;margin:0}.unified-page .mines-grid{min-width:0}.unified-page .mines-grid.large{min-width:440px}.unified-page .number-pad{width:var(--board-size);max-width:none;margin:0;grid-template-columns:repeat(10,1fr);gap:5px}.unified-page .number-pad button{font-size:16px}.unified-page .number-pad button:last-child{font-size:11px}.unified-page .slide-grid{padding:8px}.unified-page .sudoku-grid button{font-size:clamp(18px,2.1vw,32px)}.unified-page .pencil{font-size:clamp(8px,1vw,12px)}.unified-page .canvas-area{max-width:none;overflow:hidden}.unified-page .canvas-area canvas{width:var(--canvas-width,480px);height:auto;max-width:100%;border:0;border-radius:0;touch-action:none}.unified-page .four-columns{margin:0}.unified-page .four-columns button{min-height:36px}.unified-page .four-grid{border-radius:4px}.unified-page .mines-grid button{border-radius:2px}.unified-page .slide-grid,.unified-page .slide-grid button,.unified-page .slide-grid .blank{border-radius:4px}
@media(min-width:1700px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.library-game{min-height:185px}.library-game h2{font-size:24px}}
@media(min-width:1001px){.unified-page .game-stage{grid-column:2;grid-row:2}.unified-page .game-status{grid-row:3}}
@media(max-width:1000px){.unified-page .game-shell{display:flex;flex-direction:column;height:auto;min-height:100dvh}.unified-page .game-topbar{flex:none;min-height:56px}.unified-page .game-console{display:contents}.unified-page .game-picker{order:1;display:flex;flex-wrap:wrap;padding:8px 12px!important;border-right:0}.unified-page .game-picker .console-label{display:none}.unified-page .game-choice{flex:1 1 160px;min-width:0;width:auto}.unified-page .play-actions{order:2}.unified-page .turn-panel{order:2}.unified-page .game-stage{order:3;min-height:0;overflow:visible;padding:14px 16px}.unified-page .game-rules,.unified-page .game-console>.console-section:not(.game-picker):not(.play-actions){order:4}.unified-page .game-status{order:5}.unified-page .play-area{flex:none;height:clamp(380px,72dvh,650px);padding:14px 0}.unified-page .library-body,.unified-page .reference-body{overflow:visible}.unified-page .library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.unified-page .readouts{gap:12px}.unified-page .play-actions .button-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.unified-page .play-actions label{display:inline-grid;width:calc(50% - 8px);margin-right:8px}.unified-page .arcade-controls{max-width:500px}.unified-page .library-game{min-height:170px}.unified-page .reference-body{max-width:none}}
@media(max-width:620px){.unified-page .game-picker{display:grid;grid-template-columns:1fr 1fr;gap:4px}.unified-page .game-choice{width:100%;min-height:44px}.unified-page .game-heading{gap:12px}.unified-page .game-heading h1{font-size:29px}.unified-page .readouts{gap:10px 14px;font-size:9px}.unified-page .readouts b{font-size:10px}.unified-page .play-actions .button-grid{grid-template-columns:1fr 1fr}.unified-page .play-actions label:only-of-type{width:100%}.unified-page .library-grid{grid-template-columns:1fr 1fr;gap:10px}.unified-page .library-game{padding:13px;min-height:185px}.unified-page .library-game h2{font-size:18px;line-height:1.2}.unified-page .library-game p{font-size:12px}.unified-page .library-number{font-size:8px}.unified-page .library-game small{font-size:8px}.unified-page .library-intro{font-size:13px;margin:14px 0 18px}.unified-page .play-area{height:420px;justify-content:center;align-items:center}.unified-page .mines-area:has(.large){align-items:flex-start}.unified-page .number-pad{grid-template-columns:repeat(5,1fr)}.unified-page .sudoku-grid button{font-size:20px}.unified-page .reversi-grid{gap:1px;border-width:3px}.unified-page .four-grid{padding:6px;gap:3px}.unified-page .four-grid button{padding:2px}.unified-page .pencil{font-size:8px}.unified-page .game-status .legal-nav{gap:12px;font-size:9px}.unified-page .reference-body{font-size:14px}}
@media(max-width:350px){.unified-page .library-grid{grid-template-columns:1fr}.unified-page .library-game{min-height:140px}.game-topbar .topnav{letter-spacing:0!important;font-size:8px!important;gap:4px!important}}

@media(max-width:1000px){.unified-page .game-stage>.arcade-controls{width:100%;align-self:center;margin:8px auto;flex:none}.unified-page .game-stage>.arcade-controls button{min-height:44px;background:#071a30;color:#edf4ff;border:1px solid #314762;font:700 14px Arial,sans-serif;cursor:pointer}.unified-page .game-stage>.arcade-controls .primary{background:#0b2b50;border-color:#177cff}}
