:root{--bg:#f5f4ef;--panel:#fff;--text:#203732;--muted:#63756f;--accent:#176b63;--line:#dce3dc;--cell:#e9ede5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,sans-serif}body.dark{--bg:#152622;--panel:#213731;--text:#edf5ef;--muted:#acc0b7;--accent:#80d6bf;--line:#41594f;--cell:#354d42}header{max-width:1080px;margin:auto;display:flex;align-items:center;gap:20px;padding:22px}a{color:var(--accent);text-decoration:none}header a:nth-child(2){margin-left:auto}.logo{font-size:30px;font-weight:850;color:var(--text)}.logo span{color:var(--accent)}main{max-width:840px;margin:30px auto;padding:0 20px}h1{font-size:clamp(32px,6vw,52px);letter-spacing:-2px;margin:6px 0}h2{margin:0;font-size:27px}.eyebrow{color:var(--accent);font-size:12px;letter-spacing:2px;font-weight:800}.intro{color:var(--muted)}button,select{font:inherit;border:1px solid var(--line);color:var(--text);background:var(--panel);border-radius:10px;padding:10px 15px;cursor:pointer}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.55;cursor:default}.offline{font-size:13px;color:var(--muted);min-height:20px}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0}.tabs button{text-align:left;font-weight:750}.tabs small{display:block;font-size:12px;font-weight:400;color:var(--muted)}.tabs button[aria-pressed=true]{border:2px solid var(--accent);padding:9px 14px}.game{background:var(--panel);padding:24px;border:1px solid var(--line);border-radius:20px}.game-head{display:flex;justify-content:space-between;gap:12px;align-items:center}#score{font-size:13px;text-align:right}#instructions{color:var(--muted);font-size:14px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}#board{margin:24px auto 16px;max-width:420px}.board2048{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;background:var(--line);padding:9px;border-radius:12px;touch-action:none}.tile{aspect-ratio:1;display:grid;place-items:center;background:var(--cell);border-radius:7px;font-size:clamp(22px,6vw,36px);font-weight:800;color:#203732}.tile[data-v="0"]{color:transparent}.tile[data-v="2"]{background:#eee8dc}.tile[data-v="4"]{background:#e2dfb9}.tile[data-v="8"]{background:#f1bc72}.tile[data-v="16"]{background:#ed9865}.tile[data-v="32"]{background:#ef7d60}.tile[data-v="64"]{background:#e76750}.tile.high{background:#d7b346}.sudoku{display:grid;grid-template-columns:repeat(9,1fr);border:2px solid var(--text)}.sudoku button{aspect-ratio:1;border-radius:0;padding:0;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(16px,4vw,23px);color:var(--accent)}.sudoku button.given{background:var(--cell);font-weight:800;color:var(--text)}.sudoku button.selected{background:#eed991;color:#203732}.sudoku button.edge-r{border-right:2px solid var(--text)}.sudoku button.edge-b{border-bottom:2px solid var(--text)}.sudoku button.error{background:#ffd0c6;color:#a82f1a}.memory{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.memory button{min-height:95px;padding:5px;background:var(--cell);font-size:32px;line-height:1.1}.memory small{font-size:11px;display:block;margin-top:6px}.memory .matched{background:#cfe9d5;color:#1c4936}.controls{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.controls button{min-width:40px;min-height:44px}.footnote,footer{font-size:12px;color:var(--muted)}footer{text-align:center;padding:25px}#status{min-height:24px;font-weight:650;color:var(--accent)}[hidden]{display:none!important}@media(max-width:500px){main{margin-top:15px;padding:0 12px}.game{padding:16px 12px}.tabs{gap:6px}.tabs button{padding:10px 8px;font-size:14px}.tabs button[aria-pressed=true]{padding:9px 7px}.tabs small{font-size:10px}.memory button{min-height:80px}header{padding:15px}.game-head{align-items:start}}

.logo{display:inline-flex;align-items:center;width:174px;flex-shrink:0;max-width:40%;line-height:1}.logo img{display:block;width:100%;height:auto}.logo .logo-dark{display:none}body.dark .logo-light{display:none}body.dark .logo-dark{display:block}@media(max-width:580px){header{gap:12px;padding:16px}.logo{width:156px}header a:nth-child(2){font-size:13px}}
