@font-face{font-family:Fredoka;font-style:normal;font-weight:300 700;font-stretch:100%;font-display:swap;src:url(/dwirkle/fonts/fredoka-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fredoka;font-style:normal;font-weight:300 700;font-stretch:100%;font-display:swap;src:url(/dwirkle/fonts/fredoka-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--felt:#14121f;--plane:#0d0c16;--tile:#1e1b2e;--tile-hi:#282440;--card:#1a1729;--edge:#ffffff14;--ink:#f4f2ff;--ink-2:#a9a5c3;--ink-3:#6f6b8a;--grid:#2a2740;--baseline:#3a3656;--radius:16px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--felt);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;background-image:radial-gradient(#ffffff09 1px,#0000 1.2px);background-size:22px 22px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px}.display{letter-spacing:.01em;font-family:Fredoka,system-ui,sans-serif;font-weight:600}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}.app{max-width:1100px;min-height:100dvh;margin:0 auto;padding:16px clamp(12px,3vw,28px) 40px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 2px 18px;display:flex}.brand{align-items:baseline;gap:12px;display:flex}.brand h1{margin:0;font-size:30px;font-weight:700}.brand-tag{color:var(--ink-3);font-size:13px}.topnav{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.btn-ghost{border:1px solid var(--edge);color:var(--ink-2);background:0 0;border-radius:12px;min-height:44px;padding:10px 16px}.btn-ghost:disabled{opacity:.35;cursor:default}.btn-slim{min-height:38px;padding:6px 12px;font-size:14px}.btn-danger{color:#e66767;border-color:#e6676759}.btn-commit{background:var(--c,#3987e5);color:var(--plane);border-radius:var(--radius);border:none;min-height:54px;padding:14px 28px;font-size:20px;transition:transform .12s,filter .12s}.btn-commit:active{transform:translateY(1px)}.btn-commit:disabled{filter:grayscale(.7)brightness(.6);cursor:default}.tilerow{gap:3px;display:inline-flex}.minitile{width:var(--minitile,14px);height:var(--minitile,14px);background:var(--tile-hi);border:1px solid var(--edge);border-radius:3.5px;position:relative}.minitile:after{content:"";background:var(--c);border-radius:50%;position:absolute;inset:3.5px}.tilerow-q .minitile{border-color:var(--c);box-shadow:0 0 7px color-mix(in srgb, var(--c) 65%, transparent)}.game-grid{grid-template-columns:1fr;grid-template-areas:"pad""chart";align-items:start;gap:12px;display:grid}.game-grid>*{min-width:0}.turnpad{grid-area:pad}.game-grid>.chart-card,.game-grid>.chart-empty{grid-area:chart}@media (width>=841px){.app-game{flex-direction:column;height:100dvh;padding-bottom:12px;display:flex}.app-game .game-grid{grid-template-areas:"chart""pad";grid-template-rows:minmax(0, 1fr) var(--pad-h);--pad-h:172px;flex:1;align-items:stretch;min-height:0}.app-game .chart-card{flex-direction:column;min-height:0;display:flex}.app-game .chart-wrap-fill{flex:1;height:auto;min-height:0}.app-game .chart-wrap-fill svg{position:absolute;inset:0}.app-game .turnpad{height:var(--pad-h)}}.turnpad{background:var(--tile);border:1px solid var(--edge);border-radius:var(--radius);padding:18px}.turnpad-head{align-items:center;gap:10px;display:flex}.turnpad-head h2{flex:1;margin:0;font-size:22px}.turnpad-round{color:var(--ink-3);font-size:13px}.turnpad-hint{color:var(--ink-3);margin:12px 0 8px;font-size:13px}.chip-grid{grid-template-columns:repeat(5,1fr) 1.6fr;gap:10px;display:grid}@media (width<=620px){.chip-grid{grid-template-columns:repeat(3,1fr)}.chip-btn-q{grid-column:span 3}}.chip-btn{background:var(--tile-hi);border:1px solid var(--edge);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:74px;padding:10px 6px;transition:transform .1s,border-color .1s;display:flex}.chip-btn:active{transform:scale(.96)}.chip-pts{color:var(--ink);font-size:16px}.chip-btn-q{border-color:color-mix(in srgb, var(--c) 55%, transparent)}.chip-btn-q .chip-pts{color:var(--c)}.pending{flex-wrap:wrap;align-items:center;gap:8px;min-height:58px;margin:14px 0 4px;display:flex}.pending-empty{color:var(--ink-3);font-size:14px}.pending-chip{background:var(--felt);border:1px solid var(--edge);border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:8px 12px;font-size:15px;display:inline-flex}.pending-x{color:var(--ink-3);font-size:17px}.pending-bonus{color:var(--ink-2);border-style:dashed}.pending-total{margin-left:4px;font-size:24px}.wentout{color:var(--ink-2);align-items:center;gap:10px;min-height:44px;padding:10px 0;font-size:14px;display:flex}.wentout input{width:22px;height:22px;accent-color:var(--c)}.turnpad-aux{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.turnpad-commit{flex-direction:column;gap:8px;min-width:0;margin-top:10px;display:flex}.turnpad-commit .btn-commit{width:100%}@media (width>=841px){.app-game .turnpad{--minitile:12px;grid-template:"chips pending commit"minmax(0,1fr)"chips aux commit"46px/minmax(0,1fr) minmax(190px,300px) 176px;gap:8px 12px;padding:10px 12px;display:grid}.app-game .turnpad-hint{display:none}.app-game .chip-grid{grid-area:chips;grid-template-columns:repeat(5,1fr) 1.45fr;gap:8px;min-height:0}.app-game .chip-btn{gap:6px;min-height:0;padding:6px 4px}.app-game .chip-pts{font-size:14px}.app-game .pending{overscroll-behavior-x:contain;flex-wrap:nowrap;grid-area:pending;min-height:0;margin:0;overflow-x:auto}.app-game .turnpad-aux{flex-wrap:nowrap;grid-area:aux;margin:0}.app-game .turnpad-commit{grid-area:commit;margin:0}.app-game .turnpad-commit .btn-commit{flex:1;min-height:0;padding:8px 12px;font-size:18px}.app-game .turnpad-head h2{font-size:15px}}.chart-card{background:var(--card);border:1px solid var(--edge);border-radius:var(--radius);padding:14px 14px 8px}.chart-empty{color:var(--ink-3);text-align:center;padding:26px 14px;font-size:14px}.chart-empty p{margin:0}.chart-legend{flex-wrap:wrap;align-items:center;gap:14px;padding:0 4px 6px;display:flex}.chart-title{color:var(--ink-2);margin-right:auto;font-size:13px;font-weight:600}.legend-item{color:var(--ink-2);align-items:center;gap:6px;font-size:13px;display:inline-flex}.standing{border:1px solid #0000;border-radius:999px;gap:7px;padding:3px 13px 3px 7px}.standing-name{color:var(--ink-2)}.standing-total{color:var(--ink);font-variant-numeric:tabular-nums;font-size:17px}.standing[data-lead] .standing-total{color:var(--c)}.standing[data-turn]{border-color:var(--c);background:color-mix(in srgb, var(--c) 12%, transparent)}.chart-wrap{position:relative}.chart-wrap-fill{height:300px}.chart-wrap svg{touch-action:pan-y;display:block}.racecar-img{image-rendering:auto;filter:drop-shadow(0 2px 3px #0000008c)}.fx-shout{letter-spacing:.04em;paint-order:stroke;stroke:var(--card);stroke-width:3px;font-weight:700}.axis-text{fill:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px}.axis-unit{font-style:italic}.end-label-name{fill:var(--ink-2);font-size:12px}.end-label-score{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.chart-tip{border:1px solid var(--edge);pointer-events:none;background:#1e1b2ef5;border-radius:10px;min-width:130px;padding:8px 10px;position:absolute}.chart-tip-title{color:var(--ink-3);margin-bottom:4px;font-size:11px}.chart-tip-row{align-items:center;gap:6px;padding:1px 0;font-size:13px;display:flex}.chart-tip-row[data-stale]{opacity:.5}.chart-tip-name{color:var(--ink-2);flex:1}.chart-tip-val{font-variant-numeric:tabular-nums;font-weight:600}.setup{max-width:640px;margin:0 auto}.setup-title{margin:8px 0 18px;font-size:26px}.setup-hint{color:var(--ink-3);margin:0 0 10px;font-size:13px}.setup-seats{flex-direction:column;gap:12px;display:flex}.seat{background:var(--tile);border:1px solid var(--edge);border-radius:var(--radius);border-left:5px solid var(--c);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.seat-order{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.seat-move{border:1px solid var(--edge);background:var(--felt);width:38px;height:30px;color:var(--ink);border-radius:8px;font-size:16px;line-height:1}.seat-move:disabled{opacity:.2;cursor:default;background:0 0;border-color:#0000}.seat-pos{font-variant-numeric:tabular-nums;color:var(--c);font-size:12px;font-weight:600;line-height:1}.seat-picks{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.seat-colors{flex-wrap:wrap;gap:6px;max-width:160px;display:flex}.seat-color{border:1px solid var(--edge);background:color-mix(in srgb, var(--sc) 65%, transparent);border-radius:10px;width:34px;height:34px;padding:0}.seat-color[data-on]{background:var(--sc);border-color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb, var(--sc) 55%, transparent)}.seat-color:disabled{cursor:default}.seat-color[data-why=taken]{opacity:.18}.seat-color[data-why=close]{opacity:.45;box-shadow:inset 0 0 0 2px var(--ink-3)}.seat-name{background:var(--felt);border:1px solid var(--edge);min-width:130px;color:var(--ink);border-radius:10px;flex:1;min-height:46px;padding:10px 12px;font-size:17px}.seat-rides{grid-template-columns:repeat(4,52px);gap:6px;display:grid}.seat-ride{border:1px solid var(--edge);width:52px;height:52px;color:var(--ink-3);background:0 0;border-radius:10px;justify-content:center;align-items:center;padding:0;display:inline-flex}.seat-ride[data-on]{color:var(--c);border-color:var(--c);background:color-mix(in srgb, var(--c) 12%, transparent)}.seat-ride img,.seat-ride svg{display:block}.seat-remove{width:52px;height:52px;color:var(--ink-3);background:0 0;border:none;border-radius:10px;font-size:22px}.setup-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:20px;display:flex}.setup-actions .btn-commit{margin-left:auto}.gameover{flex-direction:column;gap:16px;max-width:760px;margin:0 auto;display:flex}.winner-banner{background:var(--tile);border:1px solid var(--c);box-shadow:0 0 24px color-mix(in srgb, var(--c) 25%, transparent);border-radius:var(--radius);align-items:center;gap:16px;padding:20px 22px;display:flex}.winner-banner h2{flex:1;margin:0;font-size:28px}.winner-score{color:var(--c);font-size:44px}.standings{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.standings li{background:var(--tile);border:1px solid var(--edge);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.standings-rank{color:var(--ink-3);text-align:center;width:22px;font-size:18px}.standings-name{flex:1}.standings-total{font-size:22px}.gameover-actions{flex-wrap:wrap;gap:10px;display:flex}.gameover-actions .btn-commit{--c:#3987e5;flex:1;min-width:160px}.history{max-width:760px;margin:0 auto}.history-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.history-head h2{margin:0;font-size:24px}.history-empty{color:var(--ink-3)}.history-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.history-item{background:var(--tile);border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden}.history-row{text-align:left;background:0 0;border:none;align-items:center;gap:14px;width:100%;min-height:54px;padding:14px 16px;display:flex}.history-date{color:var(--ink-3);flex-shrink:0;width:105px;font-size:13px}.history-winner{flex:1;align-items:center;gap:7px;display:inline-flex}.history-players{color:var(--ink-3);font-size:13px}.history-detail{flex-direction:column;gap:12px;padding:0 16px 16px;display:flex}.regulars{flex-wrap:wrap;align-items:center;gap:8px;margin:-6px 0 16px;display:flex}.regulars-label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-right:4px;font-size:13px}.regular-chip{border:1px solid var(--edge);background:var(--tile);color:var(--ink);border-radius:999px;min-height:40px;padding:8px 16px;font-size:15px}.regular-chip:disabled{opacity:.3;cursor:default}.seat-remember{border:1px solid var(--edge);color:var(--ink-3);white-space:nowrap;background:0 0;border-radius:999px;min-height:40px;padding:6px 12px;font-size:13px}.seat-remember[data-on]{color:var(--c);border-color:var(--c);background:color-mix(in srgb, var(--c) 12%, transparent)}.players{max-width:760px;margin:0 auto}.players-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.players-head h2{margin:0;font-size:24px}.players-empty{color:var(--ink-2)}.players-table{background:var(--tile);border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden}.players-row{border-top:1px solid var(--edge);font-variant-numeric:tabular-nums;grid-template-columns:1.6fr .5fr .5fr .6fr .6fr .9fr 1.1fr auto;align-items:center;gap:8px;padding:10px 16px;display:grid}.players-row:first-child{border-top:none}.players-row-head{color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.pl-name{text-overflow:ellipsis;align-items:baseline;gap:8px;min-width:0;display:flex;overflow:hidden}.pl-guest{color:var(--ink-3);font-size:12px;font-style:normal}.pl-wins{font-size:18px}.pl-last{color:var(--ink-2);font-size:13px}.pl-actions{min-width:0}.players-note{color:var(--ink-3);margin-top:14px;font-size:13px;line-height:1.5}@media (width<=620px){.players-row{grid-template-columns:1.6fr .5fr .5fr .6fr .6fr auto}.pl-last,.players-row>:nth-child(6){display:none}}.sync-panel{border-top:1px solid var(--line,#ffffff14);margin-top:26px;padding-top:18px}.sync-title{margin:0 0 8px;font-size:15px}.sync-note{color:var(--ink-3);max-width:46ch;margin-top:8px;font-size:13px;line-height:1.5}.sync-form{flex-direction:column;gap:10px;max-width:340px;display:flex}.sync-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sync-toggle-code{color:var(--ink-2);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px;text-decoration:underline}.sync-codes{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;max-width:440px;margin:12px 0 14px;display:grid}.sync-code{letter-spacing:.04em;border:1px solid var(--line,#ffffff1f);text-align:center;border-radius:6px;padding:6px 8px;font-size:14px}.sync-signed-in,.sync-status{color:var(--ink-2);margin:0 0 8px;font-size:14px}.sync-error{color:#e5726a;margin:8px 0;font-size:13px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.drive-hint{pointer-events:none;border:1px solid var(--edge);color:var(--ink-3);letter-spacing:.04em;white-space:nowrap;background:#1e1b2ee6;border-radius:999px;padding:3px 10px;font-size:11px;position:absolute;top:4px;left:50%;transform:translate(-50%)}
