:root{--bg: #111113;--surface: #1a1a1e;--surface-raised: #222228;--border: #2e2e36;--text: #e6e6ee;--text-dim: #9a9aa8;--text-muted: #6a6a76;--accent: #6fae7f;--accent-soft: #1c2a20;--warn: #c69a4c;--warn-soft: #2a2410;--brand-gold: #c79a3e;--brand-tile: #efe6d4;--radius: 12px;--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}.page{width:100%;max-width:760px;margin:0 auto;padding:28px 18px calc(40px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:28px}.hero{display:flex;flex-direction:column;gap:10px}.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.brand-lockup{display:flex;align-items:center;gap:13px}.brand-mark{flex-shrink:0;width:44px;height:44px;padding:7px;background:var(--brand-tile);border-radius:11px}.brand-text{display:flex;flex-direction:column;gap:2px}.brand-eyebrow{font-size:12px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--brand-gold)}.brand-eyebrow span{opacity:.6;margin:0 2px}.title{font-size:40px;font-weight:700;letter-spacing:0;line-height:1.05}.language-switcher{flex-shrink:0;display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.language-option{min-width:42px;min-height:36px;padding:7px 9px;border:0;border-left:1px solid var(--border);font:inherit;font-size:12px;font-weight:700;color:var(--text-dim);background:transparent;cursor:pointer}.language-option:first-child{border-left:0}.language-option[aria-pressed=true]{color:var(--bg);background:var(--brand-gold)}.language-option:not([aria-pressed=true]):hover{color:var(--text);background:var(--surface-raised)}.subtitle{font-size:17px;color:var(--text-dim)}.brand-line{font-size:15px;font-weight:700;color:var(--brand-gold)}.family-strip{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}.family-strip span{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-gold);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 8px}.offline-note{margin-top:8px;font-size:13.5px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:12px 14px}.sections{display:flex;flex-direction:column;gap:30px}.section{display:flex;flex-direction:column;gap:14px}.section-head{display:flex;flex-direction:column;gap:3px}.section-title{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.section-blurb{font-size:14px;color:var(--text-dim)}.friendly-section .section-title{color:var(--brand-gold)}.grid{display:grid;grid-template-columns:1fr;gap:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:11px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.card-title{font-size:17px;font-weight:600;line-height:1.25}.card-desc{font-size:14px;color:var(--text-dim)}.badge{flex-shrink:0;font-size:11px;font-weight:600;letter-spacing:.03em;white-space:nowrap;padding:4px 9px;border-radius:999px}.badge-coming-soon{color:var(--warn);background:var(--warn-soft)}.badge-future-multiplayer{color:var(--accent);background:var(--accent-soft)}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:11.5px;color:var(--text-dim);background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;padding:3px 8px}.card-action{margin-top:2px;width:100%;font-family:inherit;font-size:14px;font-weight:600;color:var(--text-muted);background:var(--surface-raised);border:1px dashed var(--border);border-radius:9px;padding:11px;cursor:not-allowed;text-align:center;text-decoration:none}.card-action:disabled{opacity:.85}.card-action--live{color:var(--bg);background:var(--accent);border:1px solid var(--accent);border-style:solid;cursor:pointer}.card-action--live:hover{filter:brightness(1.08)}.card-action--live:active{filter:brightness(.95)}.card-action--external{display:block;color:var(--bg);background:var(--brand-gold);border:1px solid var(--brand-gold);border-style:solid;cursor:pointer}.card-action--external:hover{filter:brightness(1.08)}.pick-card{border-left:3px solid var(--brand-gold)}.pick-note{font-size:13px;color:var(--text-muted);background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:10px}.footer{border-top:1px solid var(--border);padding-top:18px;display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--text-dim)}.footer-dim{color:var(--text-muted);font-size:12px}.footer-brand{color:var(--brand-gold);font-size:12.5px;font-weight:600;letter-spacing:.04em}.game{display:flex;flex-direction:column;gap:18px}.game-bar{display:flex}.link-btn{font-family:inherit;font-size:14px;color:var(--text-dim);background:none;border:none;padding:4px 0;cursor:pointer}.link-btn:hover{color:var(--text)}.game-head{display:flex;flex-direction:column;gap:4px}.game-eyebrow{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-gold)}.game-eyebrow span{opacity:.6;margin:0 1px}.game-mark{flex-shrink:0;width:18px;height:18px;padding:2px;background:var(--brand-tile);border-radius:5px}.game-title{font-size:26px;font-weight:700;letter-spacing:0}.game-sub{font-size:13.5px;color:var(--text-dim)}.mode-selector{display:flex;flex-wrap:wrap;gap:6px}.mode-btn{flex:1 1 auto;min-width:84px;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:9px 10px;cursor:pointer}.mode-btn:hover{color:var(--text);background:var(--surface-raised)}.mode-btn--active{color:var(--bg);background:var(--accent);border-color:var(--accent)}.mode-btn--active:hover{color:var(--bg);background:var(--accent)}.game-hint{margin-top:-8px;font-size:13px;color:var(--text-muted)}.game-status{font-size:16px;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:11px 14px}.game-status--over{border-left-color:var(--warn);color:var(--warn)}.board-viewport{width:100%;overflow:auto;overscroll-behavior:contain;padding-bottom:2px}.board{width:min(100%,360px);margin:0 auto;display:grid;gap:8px}.board[data-size="5"]{gap:5px}.board[data-size="19"]{width:min(92vw,860px);min-width:684px;gap:3px}.square{aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:clamp(34px,14vw,56px);font-weight:700;line-height:1;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.board[data-size="5"] .square{font-size:clamp(20px,9vw,32px);border-radius:7px}.board[data-size="19"] .square{font-size:19px;border-radius:4px}.square:hover:not(:disabled){background:var(--surface-raised)}.square:disabled{cursor:default}.square--x{color:var(--accent)}.square--o{color:var(--warn)}.square--last{box-shadow:inset 0 0 0 2px var(--text-muted)}.square--win{background:var(--accent-soft);border-color:var(--accent)}.game-actions{display:flex;flex-wrap:wrap;gap:10px}.game-actions--wrap{flex-wrap:wrap}.game-actions--wrap .btn{min-width:120px}.btn{flex:1;font-family:inherit;font-size:15px;font-weight:600;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:10px;padding:12px;cursor:pointer}.btn:hover{background:var(--surface)}.btn--primary{color:var(--bg);background:var(--accent);border-color:var(--accent)}.btn--primary:hover{filter:brightness(1.08);background:var(--accent)}.game-foot{font-size:12.5px;color:var(--text-muted);text-align:center}.activity-timer{display:grid;gap:12px}.activity-timer__display{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.activity-timer__display span{font-size:12.5px;font-weight:700;color:var(--text-dim);text-transform:uppercase}.activity-timer__display strong{font-size:30px;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}.activity-timer__choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.activity-card{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;min-height:240px;padding:28px 20px;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius)}.activity-card--explain{border-top-color:var(--accent)}.activity-card--act{border-top-color:var(--brand-gold)}.activity-card--draw{border-top-color:var(--warn)}.activity-card--hidden{border-top-color:var(--text-muted);background:linear-gradient(135deg,rgba(245,239,226,.06),transparent 42%),var(--surface)}.activity-category{font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim)}.activity-prompt{flex:1;display:flex;align-items:center;justify-content:center;font-size:clamp(26px,8vw,34px);font-weight:700;line-height:1.2;letter-spacing:0;overflow-wrap:anywhere;color:var(--text)}.activity-prompt--hidden{color:var(--text-dim)}.activity-hint{font-size:13.5px;color:var(--text-muted);max-width:34ch}.memory-game{gap:14px}.memory-theme-selector{margin-top:-4px}.memory-meta{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;font-weight:700;color:var(--text-dim)}.memory-grid{width:min(100%,342px);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.memory-card{aspect-ratio:1 / 1;min-width:0;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:clamp(13px,4.1vw,18px);font-weight:800;line-height:1.05;color:var(--brand-gold);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.memory-symbol{font-size:clamp(25px,8vw,36px);line-height:1}.memory-card--visible{color:var(--bg);background:var(--brand-gold);border-color:var(--brand-gold)}.memory-card--matched{color:var(--bg);background:var(--accent);border-color:var(--accent);cursor:default}.memory-card:disabled{cursor:default}.minesweeper-game{gap:14px}.minesweeper-rules{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand-gold);border-radius:var(--radius);padding:11px 13px}.minesweeper-rules h2{font-size:12px;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-gold)}.minesweeper-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px;font-weight:700;color:var(--text-dim)}.minesweeper-tools{margin-top:-4px}.minesweeper-board{width:min(100%,342px);margin:0 auto;display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.minesweeper-cell{aspect-ratio:1 / 1;min-width:0;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:clamp(13px,4.2vw,18px);font-weight:800;line-height:1;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.minesweeper-cell--covered:hover{background:var(--surface-raised)}.minesweeper-cell--revealed{color:var(--accent);background:var(--surface-raised);cursor:default}.minesweeper-cell--flagged{color:var(--brand-gold);background:var(--warn-soft);border-color:var(--brand-gold)}.minesweeper-cell--mine{color:var(--bg);background:var(--warn);border-color:var(--warn)}.minesweeper-cell--1{color:#86b6ff}.minesweeper-cell--2{color:var(--accent)}.minesweeper-cell--3{color:var(--warn)}.minesweeper-cell--4,.minesweeper-cell--5,.minesweeper-cell--6,.minesweeper-cell--7,.minesweeper-cell--8{color:var(--brand-gold)}.minesweeper-cell:disabled{cursor:default}.story-game{gap:14px}.story-rules{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand-gold);border-radius:var(--radius);padding:11px 13px}.story-rules h2{font-size:12px;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-gold)}.story-card{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--brand-gold);border-radius:var(--radius);padding:28px 20px}.story-card--hidden{border-top-color:var(--text-muted);background:linear-gradient(135deg,rgba(245,239,226,.06),transparent 42%),var(--surface)}.story-category{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}.story-prompt{font-size:clamp(22px,6vw,31px);font-weight:750;line-height:1.18;letter-spacing:0;overflow-wrap:anywhere;color:var(--text)}.story-prompt--hidden{color:var(--text-dim)}.story-hint{max-width:34ch;font-size:13.5px;color:var(--text-muted)}.draw-game{gap:14px}.draw-rules{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand-gold);border-radius:var(--radius);padding:11px 13px}.draw-rules h2{font-size:12px;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-gold)}.draw-prompt-card{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius);padding:18px 16px}.draw-prompt-card--hidden{border-top-color:var(--text-muted);background:linear-gradient(135deg,rgba(245,239,226,.06),transparent 42%),var(--surface)}.draw-prompt-card span{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.draw-prompt-card p{font-size:clamp(25px,7vw,34px);font-weight:800;line-height:1.15;overflow-wrap:anywhere;color:var(--text)}.draw-prompt-card small{max-width:32ch;font-size:13px;line-height:1.35;color:var(--text-muted)}.draw-canvas{width:min(100%,342px);aspect-ratio:4 / 3;margin:0 auto;display:block;background:var(--brand-tile);border:2px solid var(--text-dim);border-radius:8px;touch-action:none}.sudoku-game{gap:14px}.sudoku-rules{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand-gold);border-radius:var(--radius);padding:11px 13px}.sudoku-rules h2{font-size:12px;line-height:1.2;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-gold)}.sudoku-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px;font-weight:600;color:var(--text-dim)}.sudoku-rules,.game-status,.game-foot{overflow-wrap:anywhere}.sudoku-board{width:min(100%,342px);margin:0 auto;display:grid;grid-template-columns:repeat(9,1fr);background:var(--border);border:2px solid var(--text-dim);border-radius:8px;overflow:hidden}.sudoku-cell{aspect-ratio:1 / 1;min-width:0;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:clamp(17px,5.5vw,24px);font-weight:700;line-height:1;color:var(--accent);background:var(--surface);border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent}.sudoku-cell:nth-child(3n){border-right-color:var(--text-muted)}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom-color:var(--text-muted)}.sudoku-cell--given{color:var(--text);background:var(--surface-raised)}.sudoku-cell--peer{background:var(--accent-soft)}.sudoku-cell--given.sudoku-cell--peer{background:#263126}.sudoku-cell--active{position:relative;z-index:1;background:#2e2a1d;box-shadow:inset 0 0 0 2px var(--brand-gold),0 0 0 1px var(--brand-gold)}.sudoku-cell--conflict{color:var(--warn);background:var(--warn-soft);box-shadow:inset 0 0 0 2px var(--warn)}.sudoku-cell--active.sudoku-cell--conflict{box-shadow:inset 0 0 0 2px var(--warn),0 0 0 1px var(--brand-gold)}.sudoku-pad{width:min(100%,342px);margin:0 auto;display:grid;grid-template-columns:repeat(9,1fr);gap:5px}.sudoku-number{aspect-ratio:1 / 1;min-width:0;font-family:inherit;font-size:16px;font-weight:700;color:var(--bg);background:var(--accent);border:1px solid var(--accent);border-radius:8px;cursor:pointer}.sudoku-number:disabled{color:var(--text-muted);background:var(--surface);border-color:var(--border);cursor:default}.kakuro-game{gap:14px}.kakuro-board{width:min(100%,342px);margin:0 auto;display:grid;background:var(--border);border:2px solid var(--text-dim);border-radius:8px;overflow:hidden}.kakuro-cell{aspect-ratio:1 / 1;min-width:0;position:relative;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:clamp(20px,8vw,30px);font-weight:700;line-height:1;color:var(--accent);background:var(--surface);border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);-webkit-tap-highlight-color:transparent}.kakuro-cell--block,.kakuro-cell--clue{color:var(--text-dim);background:#151518}.kakuro-cell--clue:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom right,transparent 49%,var(--border) 50%,transparent 51%)}.kakuro-cell--play{cursor:pointer}.kakuro-cell--peer{background:var(--accent-soft)}.kakuro-cell--active{z-index:1;background:#2e2a1d;box-shadow:inset 0 0 0 2px var(--brand-gold),0 0 0 1px var(--brand-gold)}.kakuro-cell--issue{color:var(--warn);background:var(--warn-soft);box-shadow:inset 0 0 0 2px var(--warn)}.kakuro-cell--active.kakuro-cell--issue{box-shadow:inset 0 0 0 2px var(--warn),0 0 0 1px var(--brand-gold)}.kakuro-clue{position:absolute;z-index:1;font-size:clamp(10px,3.5vw,13px);font-weight:700;color:var(--text-dim)}.kakuro-clue--down{top:7px;right:8px}.kakuro-clue--across{bottom:7px;left:8px}.board-game{gap:14px}.human-line{font-size:16px;font-weight:700;color:var(--brand-gold);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand-gold);border-radius:var(--radius);padding:11px 14px}.board-disclaimer{font-size:13px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.oh-board{width:min(100%,342px);margin:0 auto;display:grid;grid-template-columns:repeat(8,1fr);background:var(--border);border:2px solid var(--text-dim);border-radius:8px;overflow:hidden}.board-square{aspect-ratio:1 / 1;min-width:0;display:flex;align-items:center;justify-content:center;font-family:Times New Roman,Georgia,serif;font-size:clamp(22px,7vw,34px);font-weight:700;line-height:1;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.board-square--light{color:#1c1c20;background:#d9cfb7}.board-square--dark{color:#f5efe2;background:#5d6f58}.board-square--selected{position:relative;z-index:1;box-shadow:inset 0 0 0 3px var(--brand-gold)}.intro-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px calc(18px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left));background:#09090bb8;overflow-y:auto}.intro-modal{width:100%;max-width:420px;margin:auto;display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--brand-gold);border-radius:var(--radius);padding:24px 20px}.intro-title{font-size:22px;font-weight:700;color:var(--text)}.intro-paragraph{font-size:14px;line-height:1.5;color:var(--text-dim)}.intro-brand-line{font-size:14px;font-weight:700;color:var(--brand-gold)}.intro-local-note{font-size:12px;color:var(--text-muted)}.intro-start{margin-top:4px}.footer-intro-link{align-self:flex-start;margin-top:2px;padding:0;font-size:12.5px;text-decoration:underline}@media(min-width:620px){.hero-top{align-items:center}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.title{font-size:48px}}@media(max-width:380px){.hero-top{flex-direction:column;align-items:flex-start}}
