.games-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:14px}.games-table th{text-align:left;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);padding:0 8px 8px 0;font-size:10px;font-weight:600}.games-table td{vertical-align:middle;border-top:1px solid #ffffff1a;padding:10px 8px 10px 0}.games-table td.num{font-variant-numeric:tabular-nums}.games-table .actions{justify-content:flex-end;gap:6px;display:flex}.games-table .actions button{height:30px;padding:0 11px;font-size:12px}.admin-section{margin-top:30px}.admin-section h2{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);margin:0;font-size:11px}.new-game{gap:10px;margin-top:12px;display:grid}.new-game .with-suggest{gap:8px;display:flex}.new-game .with-suggest .field{flex:1}.signed-in{color:var(--ink-dim);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.landing{touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:hidden}.landing canvas{z-index:2;pointer-events:none;display:block;position:fixed;inset:0}.landing .hero{z-index:1;text-align:center;flex-direction:column;align-items:center;padding:max(3.2vh,18px) 16px 0;display:flex;position:fixed;top:0;left:0;right:0}.landing .wordmark{letter-spacing:-.02em;text-transform:uppercase;margin:0;font-size:clamp(34px,7.4vh,68px);font-weight:800;line-height:.92}.landing .wordmark span{display:block}.landing .wordmark .l2{color:var(--play)}.landing .play{background:var(--play);height:clamp(52px,8.2vh,76px);box-shadow:0 7px 0 var(--play-deep), 0 16px 28px #0000006b;color:#fff;letter-spacing:.13em;cursor:pointer;border:0;border-radius:14px;margin:clamp(14px,2.6vh,28px) 0 0;padding:0 clamp(34px,7vw,62px);font-size:clamp(20px,3.4vh,30px);font-weight:800;transition:transform 90ms,box-shadow 90ms}.landing .play:hover{box-shadow:0 9px 0 var(--play-deep), 0 20px 32px #00000075;transform:translateY(-2px)}.landing .play:active{box-shadow:0 2px 0 var(--play-deep), 0 8px 16px #0006;transform:translateY(5px)}.landing .play:focus-visible{outline-offset:4px;outline:3px solid #fff}.landing .hint{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);margin:clamp(10px,1.8vh,18px) 0 0;font-size:clamp(10px,1.5vh,13px)}.play-page{max-width:560px;min-height:100dvh;padding:max(14px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));flex-direction:column;gap:12px;margin:0 auto;display:flex}.play-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.play-top .game-name{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);font-size:12px}.deck-pill{letter-spacing:.06em;font-variant-numeric:tabular-nums;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:7px;height:30px;padding:0 13px;font-size:12px;font-weight:600;display:inline-flex}.deck-pill.empty{color:#ffb3b7;border-color:#df1e2580}.card-stage{perspective:1400px;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:1;min-height:240px}.card-flip{width:100%;height:100%;transform-style:preserve-3d;transition:transform .26s;position:relative}.card-flip.revealed{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border-radius:18px;flex-direction:column;padding:18px 20px 20px;display:flex;position:absolute;inset:0;box-shadow:0 22px 50px #00000080}.card-back{background:linear-gradient(150% 120% at 20% 0%, #2b3342 0%, #171c25 70%);text-align:center;border:1px solid #ffffff1a;justify-content:center;align-items:center;gap:12px}.card-back .lockup{letter-spacing:.06em;text-transform:uppercase;font-size:clamp(20px,5vw,26px);font-weight:800}.card-back .lockup em{color:var(--play);font-style:normal}.card-back .hold-hint{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);font-size:12px}.card-front{background:var(--paper);color:var(--paper-ink);transform:rotateY(180deg)}.card-front .card-head{border-bottom:3px solid var(--paper-ink);justify-content:space-between;align-items:baseline;padding-bottom:8px;display:flex}.card-front .card-head b{letter-spacing:.2em;text-transform:uppercase;font-size:13px}.card-front .card-head i{color:#6c7078;letter-spacing:.1em;font-size:12px;font-style:normal}.card-front ol{flex:1;align-content:space-evenly;gap:clamp(2px,1.2vh,10px);min-height:0;margin:10px 0 0;padding:0 0 0 1.4em;display:grid}.card-front li{letter-spacing:.03em;text-transform:uppercase;font-size:clamp(14px,2.6vh,21px);font-weight:700}.card-front li::marker{color:#a4a8b0;font-size:.8em;font-weight:600}.no-card{text-align:center;color:var(--ink-dim);border:1px dashed #fff3;border-radius:18px;flex:1;justify-content:center;align-items:center;padding:24px;font-size:14px;display:flex}.card-actions{align-items:center;gap:10px;display:flex}.card-actions .btn{flex:1}.pin{cursor:pointer;background:0 0;border:1px solid #ffffff38;border-radius:12px;flex:none;width:46px;height:46px;font-size:17px}.pin[aria-pressed=true]{background:var(--ok);border-color:var(--ok);color:#0d1015}.host-panel{background:#ffffff0a;border:1px solid #ffffff24;border-radius:14px;padding:12px 14px}.host-panel h2{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 10px;font-size:10px}.host-panel .row{gap:8px;display:flex}.host-panel .row .btn-quiet{flex:1}:root{--bg-0:#0d1015;--bg-1:#1a202a;--ink:#f4f6f8;--ink-dim:#f4f6f88c;--play:#df1e25;--play-deep:#9c1319;--paper:#f6f4ee;--paper-ink:#16181c;--ok:#6bb662;--font:"Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{background:radial-gradient(130% 95% at 50% -12%, #262e3a 0%, #161b23 45%, var(--bg-0) 100%);min-height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;background-attachment:fixed;margin:0;padding:0}a{color:inherit}button,input{font:inherit;color:inherit}.btn{background:var(--play);height:46px;box-shadow:0 5px 0 var(--play-deep);color:#fff;letter-spacing:.08em;cursor:pointer;border:0;border-radius:12px;padding:0 22px;font-weight:700;transition:transform 90ms,box-shadow 90ms}.btn:hover:not(:disabled){box-shadow:0 6px 0 var(--play-deep);transform:translateY(-1px)}.btn:active:not(:disabled){box-shadow:0 2px 0 var(--play-deep);transform:translateY(3px)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:0 5px 0 var(--play-deep)}.btn-quiet{height:38px;color:var(--ink);letter-spacing:.06em;cursor:pointer;background:0 0;border:1px solid #ffffff38;border-radius:999px;padding:0 16px;font-size:13px;font-weight:600}.btn-quiet:hover:not(:disabled){background:#ffffff14}.btn-quiet:disabled{opacity:.45;cursor:not-allowed}.field{letter-spacing:.04em;background:#ffffff0f;border:1px solid #fff3;border-radius:12px;width:100%;height:46px;padding:0 14px}.field:focus{outline:2px solid var(--play);outline-offset:1px}.page{max-width:560px;padding:max(24px, env(safe-area-inset-top)) 18px 32px;margin:0 auto}.kicker{letter-spacing:.42em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 .6em;font-size:11px;font-weight:600}.error{color:#ffb3b7;margin:10px 0 0;font-size:13px}
