@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #FAF8F4;--panel: #FFFFFF;--border: #DAD5C9;--ink: #241F17;--muted: #77705F;--amber: #D8952F;--amber-bg: #FBEFD9;--teal: #2A6F63;--teal-bg: #E3EEFB;--coral: #B4432F;--coral-bg: #FBE4E0;--purple: #6A4E8C;--purple-bg: #EFE5FA}*{box-sizing:border-box}button,input,select,textarea{font-family:inherit}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Figtree Variable,-apple-system,Segoe UI,Roboto,sans-serif;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}#app{max-width:920px;margin:0 auto;padding:16px}h1.title{font-size:23px;font-weight:800;margin:4px 0 2px;letter-spacing:-.2px}h2{font-size:16px;font-weight:700;margin:0 0 8px;color:var(--ink)}p.sub{color:var(--muted);font-size:13px;margin:0 0 18px;line-height:1.5}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:14px;box-shadow:0 1px 2px #241f170a,0 4px 14px #241f170d}.seat-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.seat-row:last-child{border-bottom:none}.swatch{width:30px;height:30px;border-radius:50%;flex-shrink:0;box-shadow:0 1px 3px #0000002e}.seat-label{width:56px;font-size:12px;color:var(--muted)}input[type=text]{font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;width:130px;transition:border-color .15s ease}input[type=text]:focus{outline:none;border-color:var(--teal)}select{font-size:13px;padding:7px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.toggle-btn{border:1px solid var(--border);background:var(--panel);padding:6px 12px;border-radius:20px;font-size:12px;cursor:pointer;transition:all .15s ease}.toggle-btn:hover{border-color:var(--teal)}.toggle-btn.active{background:var(--teal-bg);border-color:var(--teal);color:var(--teal);font-weight:600}.btn{border:none;border-radius:12px;padding:12px 20px;font-size:15px;font-weight:700;cursor:pointer;min-height:44px;transition:transform .08s ease,box-shadow .15s ease;box-shadow:0 1px 2px #241f170f}.btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 3px 10px #241f171a}.btn:not(:disabled):active{transform:translateY(0)}.btn-amber{background:var(--amber-bg);color:#7a5610;border:1px solid var(--amber)}.btn-teal{background:var(--teal-bg);color:#1d4d45;border:1px solid var(--teal)}.btn-coral{background:var(--coral-bg);color:#7a2f1f;border:1px solid var(--coral)}.btn-plain{background:var(--panel);border:1px solid var(--border);color:var(--ink)}.btn:disabled{opacity:.4;cursor:default;transform:none;box-shadow:none}.btn-block{width:100%}label.field-label{font-size:12px;color:var(--muted);margin-right:8px}.setting-row{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.turn-banner{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.pill{border-radius:16px;padding:7px 16px;font-weight:700;font-size:14px;box-shadow:0 1px 2px #241f170d}.pill-amber{background:var(--amber-bg);color:#7a5610;border:1px solid var(--amber)}.pill-coral{background:var(--coral-bg);color:#7a2f1f;border:1px solid var(--coral)}.pill-timer{background:var(--panel);border:1px solid var(--border);color:var(--ink);font-variant-numeric:tabular-nums}.quit-btn{margin-left:auto}.game-grid{display:grid;gap:16px;grid-template-columns:1fr 165px;grid-template-areas:"board piles" "board throw" "actions actions" "log log"}.grid-board{grid-area:board}.grid-piles{grid-area:piles}.grid-throw{grid-area:throw}.grid-actions{grid-area:actions}.grid-log{grid-area:log}.board-wrap{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:8px;box-shadow:0 1px 2px #241f170a,0 4px 14px #241f170d}.side-col{display:flex;flex-direction:column;gap:10px}.side-box{border-radius:12px;padding:10px;border:1px solid var(--border);min-height:60px;box-shadow:0 1px 2px #241f170a}.pile-tokens{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.mini-token{width:16px;height:16px;border-radius:50%;box-shadow:inset 0 0 0 2.5px #00000059}.actions{margin-top:14px}.action-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:6px;cursor:pointer;transition:border-color .15s ease,transform .08s ease}.action-row:hover{border-color:var(--teal);transform:translate(2px)}.action-desc{font-size:13.5px}.action-go{font-size:12px;font-weight:700;color:var(--teal)}.log{max-height:130px;overflow-y:auto;font-size:12.5px;color:var(--muted)}.log div{padding:3px 0;border-bottom:1px dashed var(--border)}.win-names{font-size:28px;font-weight:800;text-align:center;margin:10px 0 4px;letter-spacing:-.3px}.win-sub{text-align:center;color:var(--muted);font-size:13px;margin-bottom:16px}.confirm-btns{display:flex;gap:10px}.error-banner{background:var(--coral-bg);border:1px solid var(--coral);color:#7a2f1f;border-radius:10px;padding:10px 14px;margin-bottom:12px;font-size:13.5px}.loading-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0;gap:14px}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--teal);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 700px){.game-grid{grid-template-columns:1fr;grid-template-areas:"board" "throw" "actions" "piles" "log"}.side-col{flex-direction:row;flex-wrap:wrap}.grid-piles .side-col,.grid-throw .side-col{width:100%}.side-box{flex:1 1 140px}}.numbering-note{margin-top:6px;font-size:12px;color:var(--muted);text-align:center}.turn-timer{margin:6px 0 10px}.turn-timer-label{font-size:13px;color:var(--muted);margin-bottom:4px;text-align:center}.turn-timer-label strong{color:var(--ink, #241F17);font-variant-numeric:tabular-nums}.turn-timer-track{height:6px;border-radius:3px;background:var(--border);overflow:hidden}.turn-timer-fill{height:100%;background:var(--teal);transition:width .25s linear}.turn-timer.urgent .turn-timer-fill{background:var(--coral)}.turn-timer.urgent .turn-timer-label strong{color:var(--coral)}.history{padding:8px 12px;font-size:12.5px}.history-head{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:0;padding:4px 0;font:inherit;font-weight:700;cursor:pointer;color:inherit}.history-chevron{color:var(--muted)}.history-empty{color:var(--muted);padding:4px 0}.history-turn{padding:6px 0;border-top:1px dashed var(--border)}.history-who{font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.history-auto{font-weight:400;color:var(--coral)}.history-dot{width:12px;height:12px;border-radius:50%;border:3px solid;box-sizing:border-box;flex:0 0 auto}.history-line{color:var(--muted);padding:2px 0 0 18px}@media (min-width: 641px){.history{max-height:320px;overflow-y:auto}}.help-row{display:flex;justify-content:flex-end;margin-bottom:8px}.shell-label{font-size:12px;color:var(--muted);margin-top:4px}.pile-label{font-size:11px;color:var(--muted);margin-top:4px}@media (max-width: 700px){:root{--board-w: calc(100vw - 50px) }.grid-throw .side-col{flex-wrap:nowrap;align-items:center;gap:12px}.grid-throw .shell-box{flex:0 0 calc(var(--board-w) * .2 + 14px);min-height:0;padding:6px}.grid-throw .side-col>div:last-child{flex:1}.grid-piles .side-box{min-height:0}}@media (min-width: 701px){:root{--board-w: calc(min(100vw, 920px) - 231px) }.grid-throw .shell-box{width:min(100%,calc(var(--board-w) * .2 + 16px));margin:0 auto}}@media (min-width: 1000px) and (orientation: landscape){:root{--board-w: min(calc((100vh - 110px) / .9897), calc((100vh - 66px) / 1.0587));--chrome: calc(100vh - var(--board-w) * .9897)}#app.in-game{max-width:none;display:grid;grid-template-columns:auto minmax(160px,1fr) auto;column-gap:20px;align-items:center;grid-template-areas:"banner timer help" "err err err" "game game game"}#app.in-game .help-row{grid-area:help;margin:0}#app.in-game .turn-banner{grid-area:banner;margin:0;flex-wrap:nowrap}#app.in-game .quit-btn{margin-left:0}#app.in-game .turn-timer{grid-area:timer;margin:0;display:flex;align-items:center;gap:12px}.turn-timer-label{margin:0;white-space:nowrap}.turn-timer-track{flex:1}#app.in-game .error-banner{grid-area:err;margin:10px 0 0}.game-grid{grid-area:game;margin-top:14px;gap:14px;height:calc(100vh - var(--chrome) + 18px);grid-template-columns:calc(var(--board-w) + 18px) minmax(260px,560px);justify-content:center;grid-template-areas:"board throw" "board actions" "board piles" "board log";grid-template-rows:auto auto auto minmax(0,1fr);align-items:start}.grid-board{align-self:stretch}.grid-throw .side-col{width:calc(var(--board-w) * .2 + 18px);margin:0 auto}.shell-box{padding:8px}.grid-actions .card{margin-bottom:0;padding:12px}.grid-actions .actions{margin-top:0}.grid-piles .side-col{flex-direction:row}.grid-piles .side-box{flex:1 1 0;min-height:0}.grid-log{align-self:stretch;min-height:0}.grid-log .history{height:100%;max-height:none;overflow-y:auto;margin:0}.grid-throw,.grid-actions,.grid-piles,.grid-log{font-size:max(14px,calc(var(--board-w) * .0212))}.action-row{padding:.7em .85em;border-radius:.7em;margin-bottom:.43em}.action-desc{font-size:.965em}.action-go{font-size:.86em}.grid-throw p.sub,.grid-throw .btn,.grid-actions p.sub,.grid-actions .btn{font-size:.93em}.shell-label{font-size:.86em}.pile-label{font-size:.8em}.grid-piles .mini-token{width:1.15em;height:1.15em}.grid-log .history{font-size:.9em;padding:.6em .85em}.history-dot{width:.95em;height:.95em}}@media (min-width: 1000px) and (orientation: landscape) and (min-aspect-ratio: 3/2){.game-grid{column-gap:clamp(28px,3vw,64px);grid-template-columns:calc(var(--board-w) + 18px) minmax(280px,calc(var(--board-w) * .55))}}.lobby{max-width:560px;margin:0 auto}.lobby-code-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.lobby-code{font-size:26px;font-weight:800;letter-spacing:3px;font-variant-numeric:tabular-nums}.lobby-hint{font-size:12.5px;color:var(--muted);margin-top:8px}.lobby-link-text{font-size:12px;margin-top:8px;word-break:break-all;color:var(--teal)}.lobby-seats{padding:10px 16px}.lobby-team-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:8px 0 2px}.lobby-seat{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.lobby-seats>.lobby-seat:last-child{border-bottom:none}#app:has(.lobby) .help-row{max-width:560px;margin:0 auto 4px}.lobby-seat-main{flex:1;min-width:0}.lobby-seat-role{font-size:11.5px;color:var(--muted)}.lobby-seat-name{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}input[type=text].lobby-name{width:100%;max-width:240px;font-size:15px;font-weight:600;padding:6px 8px}.lobby-seat.is-me .swatch{outline:2px solid var(--amber);outline-offset:2px}.lobby-bot{flex-shrink:0}.lobby-chip{font-size:12px;color:var(--muted);border:1px solid var(--border);border-radius:20px;padding:4px 10px;flex-shrink:0}.lobby-chip-human{color:var(--teal);border-color:var(--teal);background:var(--teal-bg)}.lobby-start{font-size:18px;font-weight:800;padding:15px;border-radius:12px}.lobby-waiting{text-align:center;color:var(--muted);font-size:14px;padding:14px;border:1px dashed var(--border);border-radius:12px}.lobby-more{display:block;margin:12px auto;background:none;border:none;color:var(--teal);font-size:14px;font-weight:600;cursor:pointer;padding:6px 10px}.lobby-settings .setting-row:first-child{margin-top:0}.lobby-footer{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:8px}.lobby-link-btn{background:none;border:none;color:var(--muted);font-size:13px;text-decoration:underline;cursor:pointer;padding:4px}.lobby-join{display:flex;gap:8px;align-items:center}.lobby-join input[type=text]{width:130px;text-transform:uppercase;letter-spacing:2px}.shell-note{font-size:12.5px;color:var(--muted);margin:0 0 8px;line-height:1.35;text-align:center}.pile{display:flex;flex-direction:column;gap:6px;flex:1 1 0;min-width:0}.pile>.side-box{flex:1 1 auto}.pile-head{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700}.pile-head span:last-child{margin-left:3px}.pile-swatch{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.pile-away{display:flex;flex-wrap:wrap;gap:4px;padding:0 10px}.mini-token.faded{opacity:.3;box-shadow:inset 0 0 0 2px #00000059}.turn-pills{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.turn-controls{display:flex;gap:8px;align-items:center;margin-left:auto}@media (max-width: 700px){#app.in-game{display:grid;grid-template-columns:1fr auto;column-gap:8px}#app.in-game>*{grid-column:1 / -1}#app.in-game>.help-row{grid-column:1;grid-row:1;justify-content:flex-start;margin:0 0 8px}#app.in-game .turn-banner{display:contents}#app.in-game .turn-controls{grid-column:2;grid-row:1;margin:0 0 8px}#app.in-game .turn-pills{grid-column:1 / -1;grid-row:2;margin-bottom:8px}#app.in-game .quit-btn{margin-left:0}#app.in-game>.help-row .btn,#app.in-game .turn-controls .btn{white-space:nowrap;padding:10px 12px}.grid-piles .side-col{flex-wrap:nowrap}}@media (min-width: 1000px) and (orientation: landscape){.grid-piles .pile-head{font-size:.85em}.grid-piles .pile-swatch{width:.75em;height:.75em}.shell-note{font-size:.8em}#app.in-game .turn-controls{margin-left:0}}@media (min-width: 1000px) and (orientation: landscape){:root{--game-w: calc(var(--board-w) + 18px + 14px + 560px)}#app.in-game{max-width:min(100%,calc(var(--game-w) + 32px));margin:0 auto}.game-grid{width:100%}}@media (min-width: 1000px) and (orientation: landscape) and (min-aspect-ratio: 3/2){:root{--game-w: calc(var(--board-w) * 1.55 + 18px + clamp(28px, 3vw, 64px))}}@media (min-width: 1000px) and (orientation: landscape){#app.in-game>.help-row,#app.in-game .turn-banner,#app.in-game .turn-timer{font-size:max(14px,calc(var(--board-w) * .0212))}#app.in-game>.help-row .btn,#app.in-game .turn-banner .btn{font-size:1.05em;min-height:3.1em;padding:.8em 1.4em;border-radius:.85em}#app.in-game .turn-banner .pill{font-size:1em;padding:.5em 1.15em;border-radius:1.15em}#app.in-game .turn-timer-label{font-size:.93em}#app.in-game .turn-timer-track{height:.43em}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--teal);outline-offset:2px}input[type=text]:focus-visible,select:focus-visible{outline:3px solid var(--teal);outline-offset:1px}button.action-row{width:100%;font:inherit;color:inherit;text-align:left}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
