:root{--bg:#f4f1ea;--surface:#fff;--felt:#1f6f5c;--felt-ink:#e9f4ef;--ink:#1d2321;--muted:#6b726f;--accent:#e0893b;--tile:#fbfaf6;--tile-edge:#2a2f2d;--pip:#1d2321;--focus:#2d7ff9;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121514;--surface:#1c201e;--felt:#164d40;--felt-ink:#d7ebe3;--ink:#eef2f0;--muted:#9aa39f;--tile:#f2efe6;--tile-edge:#0b0d0c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,select{font:inherit;color:inherit}button{border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);background:var(--surface);cursor:pointer;border-radius:12px;min-height:44px;padding:0 18px}button:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button:disabled{cursor:default}.pass-slot{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.pass-slot.locked{opacity:.4;font-size:14px}button.primary{background:var(--felt);color:var(--felt-ink);border-color:#0000;font-weight:600}button.ghost{background:0 0;border:none;min-width:44px;padding:0;font-size:20px}.muted{color:var(--muted)}.game{grid-template-rows:auto auto 1fr auto;max-width:760px;min-height:100dvh;margin:0 auto;display:grid}.hud{align-items:center;gap:8px;padding:8px 12px;display:flex}.scores{flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:14px;display:flex}.score b{margin-left:4px;font-size:18px}.score.mine b{color:var(--felt)}@media (prefers-color-scheme:dark){.score.mine b{color:var(--accent)}}.opponents{flex-wrap:wrap;gap:8px;padding:0 12px 8px;display:flex}.opponent{background:var(--surface);border:2px solid #0000;border-radius:12px;align-items:center;gap:6px;padding:6px 10px;font-size:14px;display:flex}.opponent.active{border-color:var(--accent)}.opponent.partner{outline:1px dashed var(--felt)}.badge{letter-spacing:.05em;background:var(--ink);color:var(--bg);border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700}.backs{gap:2px;display:inline-flex}.table{background:var(--felt);color:var(--felt-ink);border-radius:20px;align-content:start;gap:10px;min-height:240px;margin:0 12px;padding:12px;display:grid;position:relative}.table-info{opacity:.9;flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.chip{background:var(--accent);color:#1d1205;border-radius:999px;padding:1px 8px;font-weight:700}.toast{background:var(--surface);color:var(--ink);white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}.tile-body{fill:var(--tile);stroke:var(--tile-edge);stroke-width:1.5px}.tile-divider{stroke:var(--tile-edge);stroke-width:1.2px;opacity:.6}.pip{fill:var(--pip)}.tile.back .tile-back{fill:var(--felt);stroke:var(--tile-edge);stroke-width:1.2px}.tile.dim{opacity:.35}.me{padding:10px 12px calc(12px + env(safe-area-inset-bottom));gap:10px;display:grid}.turn{min-height:22px;font-weight:600}.hand{flex-wrap:wrap;gap:6px;display:flex}.hand-tile{background:0 0;border:none;border-radius:8px;min-height:0;padding:0;transition:transform .12s}.hand-tile:not(:disabled):active{transform:translateY(-4px)}@media (prefers-reduced-motion:reduce){.hand-tile{transition:none}}.actions{gap:8px;min-height:44px;display:flex}.sheet-backdrop{background:#00000073;place-items:end center;display:grid;position:fixed;inset:0}.sheet{background:var(--surface);width:min(560px,100%);max-height:90dvh;padding:20px 16px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;gap:10px;display:grid;overflow:auto}.sheet h2{margin:0;font-size:20px}.sheet p{margin:0}.reveal{gap:8px;margin:0;padding:0;list-style:none;display:grid}.reveal li{grid-template-columns:80px 1fr auto;align-items:center;gap:8px;font-size:14px;display:grid}.reveal .tiles{flex-wrap:wrap;gap:3px;display:flex}.totals{font-weight:600}.winner{color:var(--felt);font-size:18px;font-weight:700}.page{max-width:480px;padding:24px 16px calc(24px + env(safe-area-inset-bottom));align-content:start;gap:14px;min-height:100dvh;margin:0 auto;display:grid}.page.center{text-align:center;align-content:center;justify-items:center}.page h1{letter-spacing:-.02em;margin:0;font-size:28px}.page p{margin:0}.small{font-size:13px}.error{color:#b3261e;font-weight:600}@media (prefers-color-scheme:dark){.error{color:#ff8a80}}.back{justify-self:start}select{border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);background:var(--surface);min-height:44px;color:var(--ink);border-radius:12px;padding:0 12px;font-weight:400}input{font:inherit;border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);background:var(--surface);min-height:44px;color:var(--ink);border-radius:12px;padding:0 12px}.setup label,.age-form label{gap:6px;font-size:14px;font-weight:600;display:grid}.age-form{text-align:left;gap:12px;width:100%;max-width:320px;display:grid}.home header{margin-bottom:4px}.card{text-align:left;background:var(--surface);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:16px;gap:4px;min-height:64px;padding:16px;display:grid}.card.primary-card{background:var(--felt);color:var(--felt-ink);border-color:#0000}.card.resume{border:2px solid var(--accent)}.card .row{gap:8px;display:flex}.card input{text-transform:uppercase;letter-spacing:.2em;flex:1;min-width:0;font-weight:700}.install-card{background:color-mix(in srgb, var(--accent) 16%, var(--surface));text-align:left;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.install-card p{margin:2px 0 0}.steps{gap:8px;margin:0;padding-left:20px;display:grid}.code-card .muted{color:var(--felt-ink);opacity:.8}.code-card button.primary{background:var(--felt-ink);color:var(--felt)}.code-card{background:var(--felt);color:var(--felt-ink);border-radius:16px;justify-items:center;gap:8px;padding:18px;display:grid}.code{letter-spacing:.18em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:800}.seat-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.seat-list li{background:var(--surface);border-radius:12px;padding:12px 14px}.table-desc{font-weight:600}.update-banner,.conn-banner{z-index:20;background:var(--ink);color:var(--bg);border-radius:999px;align-items:center;gap:10px;padding:6px 8px 6px 14px;font-size:14px;display:flex;position:fixed;top:8px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000040}.conn-banner button,.update-banner button{min-height:36px;padding:0 12px}.board-wrap{height:min(52dvh,460px);min-height:220px;display:grid}.board-svg{width:100%;height:100%}.board-empty{opacity:.8;place-items:center;display:grid}.board-target circle{fill:color-mix(in srgb, var(--accent) 40%, transparent);stroke:var(--accent);stroke-width:.08px;stroke-dasharray:.18 .12;cursor:pointer}.board-target text{fill:var(--felt-ink);pointer-events:none;font-size:.7px;font-weight:700}.board-target:focus-visible circle{stroke:var(--focus);stroke-width:.14px}.board-svg .tile-body,.board-svg .tile-divider{stroke-width:.04px}.tile-new{transform-box:fill-box;transform-origin:50%;animation:.26s ease-out drop-in}@keyframes drop-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.tile-new{animation:none}}.tile .tile-body{stroke-width:.045px}.tile .tile-divider{stroke-width:.04px}.tile.selected .tile-body{stroke:var(--accent);stroke-width:.12px}.tile.back .tile-back{stroke-width:.05px}.timer{font-variant-numeric:tabular-nums;font-weight:700}.timer.low{color:var(--accent)}.hint{background:color-mix(in srgb, var(--accent) 18%, var(--surface));border-radius:12px;padding:10px 12px;font-size:14px}.opponent .name{white-space:nowrap}.bubble{background:var(--ink);color:var(--bg);border-radius:10px;margin-left:6px;padding:2px 8px;font-size:12px}.chat-toggle{min-width:44px;margin-left:auto;padding:0}.quick-chat{flex-wrap:wrap;gap:6px;display:flex}.quick-chat button{min-height:36px;padding:0 12px;font-size:14px}.topbar{justify-content:space-between;align-items:center;gap:8px;min-height:44px;display:flex}.brand{letter-spacing:-.02em;font-size:20px;font-weight:800}.topbar-right{align-items:center;gap:10px;display:flex}.coins{font-variant-numeric:tabular-nums;background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-weight:700;display:inline-flex}.coin{background:radial-gradient(circle at 35% 35%,#f6d36b,#c8961f);border-radius:50%;width:14px;height:14px;box-shadow:inset 0 0 0 1.5px #a87a12}.level-ring{--pct:0%;background:radial-gradient(closest-side, var(--bg) 78%, transparent 80% 100%), conic-gradient(var(--felt) var(--pct), color-mix(in srgb, var(--ink) 15%, transparent) 0);border-radius:50%;place-items:center;width:34px;height:34px;font-size:13px;font-weight:800;display:grid}.avatar{background:var(--felt);width:40px;min-width:40px;min-height:40px;color:var(--felt-ink);border:none;border-radius:50%;padding:0;font-weight:800;position:relative}.avatar .dot{background:var(--accent);border:2px solid var(--bg);border-radius:50%;width:10px;height:10px;position:absolute;top:2px;right:2px}.tile-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.reward-card{border:2px solid var(--accent);justify-content:space-between;align-items:center;gap:12px;display:flex}.days{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.day{background:color-mix(in srgb, var(--ink) 8%, transparent);font-variant-numeric:tabular-nums;border-radius:6px;padding:2px 6px;font-size:11px}.day.done{opacity:.45;text-decoration:line-through}.day.today{background:var(--accent);color:#1d1205;font-weight:700}.invite-card{border:2px solid var(--felt)}.link{justify-self:center;text-decoration:underline}.ok{color:var(--felt);font-weight:600}@media (prefers-color-scheme:dark){.ok{color:#8fd6bd}}.reward{color:var(--felt);font-size:18px;font-weight:700}h2.section{margin:8px 0 0;font-size:16px}.missions,.friend-list,.tiers{gap:8px;margin:0;padding:0;list-style:none;display:grid}.mission{background:var(--surface);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.mission.claimed{opacity:.6}.mission-text{flex:1;gap:4px;display:grid}.bar{background:color-mix(in srgb, var(--ink) 10%, transparent);border-radius:999px;height:8px;overflow:hidden}.bar span{background:var(--felt);height:100%;display:block}.friend-list li{background:var(--surface);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.friend-list li>span:first-child{display:grid}.presence.online,.presence.in_match{color:var(--felt)}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.small-code{letter-spacing:.12em;font-size:22px}.tier{justify-content:space-between;align-items:center;gap:10px;display:flex}.tier>div{gap:2px;display:grid}.tier.locked{opacity:.7}.list{gap:8px;display:grid}.list>button{text-align:left}.signin form{gap:10px;display:grid}.otp{letter-spacing:.4em;text-align:center;font-size:22px;font-weight:700}.already summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.spinner{border:4px solid color-mix(in srgb, var(--felt) 25%, transparent);border-top-color:var(--felt);border-radius:50%;width:44px;height:44px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.timer-big{font-variant-numeric:tabular-nums;font-size:40px;font-weight:800}.receipt{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border-radius:12px;gap:4px;padding:12px;font-size:14px;display:grid}.seat-list li{gap:6px;display:grid}.seat-list li.picked{outline:2px solid var(--accent)}.seat-btn{text-align:left;background:0 0;border:none;min-height:28px;padding:0}.seat-btn:disabled{color:inherit}.opponent.tappable{cursor:pointer}:root[data-theme=dark]{--bg:#121514;--surface:#1c201e;--felt:#164d40;--felt-ink:#d7ebe3;--ink:#eef2f0;--muted:#9aa39f;--tile:#f2efe6;--tile-edge:#0b0d0c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=contrast]{--bg:#000;--surface:#000;--felt:#000;--felt-ink:#fff;--ink:#fff;--muted:#e6e6e6;--accent:#ffd400;--tile:#fff;--tile-edge:#fff;--pip:#000;--focus:#ffd400;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=contrast] button,:root[data-theme=contrast] .card,:root[data-theme=contrast] input,:root[data-theme=contrast] select,:root[data-theme=contrast] .table,:root[data-theme=contrast] .mission{border:2px solid #fff}:root[data-theme=contrast] button.primary{background:var(--accent);color:#000}:root[data-theme=contrast] .ok,:root[data-theme=contrast] .reward,:root[data-theme=contrast] .winner{color:var(--accent)}:root[data-theme=contrast] .muted{color:var(--muted)}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{transition:none!important;animation:none!important}:root[data-text=large] body{font-size:19px}:root[data-text=large] .page h1{font-size:32px}.numeral{fill:#c62828;paint-order:stroke;stroke:var(--tile);stroke-width:.06px;font-weight:800;display:none}:root[data-numerals=on] .numeral{display:inline}:root[data-hand=left] .actions{flex-direction:row-reverse}:root[data-hand=left] .me{direction:rtl}:root[data-hand=left] .me>*{direction:ltr}a{color:inherit}.skip-link{z-index:50;background:var(--surface);border-radius:8px;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip-link:focus{left:8px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.field{gap:6px;font-size:14px;font-weight:600;display:grid}.field small{font-weight:400}.toggle{background:var(--surface);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:12px 14px;font-weight:500;display:flex}.toggle input[type=checkbox]{width:24px;height:24px;min-height:24px;accent-color:var(--felt)}textarea{font:inherit;border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);background:var(--surface);min-height:96px;color:var(--ink);border-radius:12px;padding:10px 12px}.segmented{flex-wrap:wrap;gap:6px;display:flex}.segmented button[aria-pressed=true]{background:var(--felt);color:var(--felt-ink);border-color:#0000;font-weight:600}.notice-badge{background:var(--accent);color:#1d1205;border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:800;display:inline-grid}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.shop-item{background:var(--surface);border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:16px;align-content:space-between;gap:6px;padding:14px;display:grid}.shop-item b{font-size:15px}.price{font-variant-numeric:tabular-nums;font-weight:800}.swatch{border:1px solid color-mix(in srgb, var(--ink) 18%, transparent);border-radius:8px;height:34px}.board-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.board-list li{background:var(--surface);font-variant-numeric:tabular-nums;border-radius:10px;grid-template-columns:40px 1fr auto;align-items:center;gap:8px;padding:8px 12px;display:grid}.board-list li.me{outline:2px solid var(--accent)}.rank-card{background:var(--surface);border-radius:16px;gap:6px;padding:14px 16px;display:grid}.stars{letter-spacing:2px;color:var(--accent);font-size:18px}.bracket{grid-auto-columns:minmax(150px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:6px;display:grid;overflow-x:auto}.bracket-round{align-content:space-around;gap:8px;display:grid}.bracket-match{background:var(--surface);border-radius:10px;gap:2px;padding:8px 10px;font-size:14px;display:grid}.bracket-match .won{font-weight:800}.bracket-match.mine{outline:2px solid var(--accent)}.consent{z-index:40;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:var(--surface);gap:10px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #0003}.consent .row{flex-wrap:wrap}.consent .row button{flex:120px}.ad-overlay{z-index:60;color:#fff;text-align:center;background:#000000d9;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.ad-overlay .ad-box{justify-items:center;gap:12px;max-width:320px;display:grid}.ad-label{letter-spacing:.1em;text-transform:uppercase;opacity:.8;font-size:12px}.statement{white-space:pre-wrap;background:color-mix(in srgb, var(--ink) 6%, var(--surface));border-radius:12px;padding:12px;font-size:14px}
