:root{--bg: #1d2733;--panel: #27333f;--panel-2: #303d4a;--line: #3e4d5c;--ink: #eef2f5;--muted: #9aa8b5;--accent: #f0b429;--accent-ink: #1d2733;--warn: #e5534b;--ok: #47b36b;--sea: #2c5f9e;color-scheme:dark}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg: #e9eef2;--panel: #ffffff;--panel-2: #f2f5f7;--line: #cfd8df;--ink: #17212b;--muted: #5f6f7d;--accent: #d8930d;--accent-ink: #ffffff;--sea: #4f8fd6;color-scheme:light}}:root[data-theme=light]{--bg: #e9eef2;--panel: #ffffff;--panel-2: #f2f5f7;--line: #cfd8df;--ink: #17212b;--muted: #5f6f7d;--accent: #d8930d;--accent-ink: #ffffff;--sea: #4f8fd6;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled,button[aria-disabled=true]{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.ghost{background:transparent;border-color:transparent}button.on{outline:2px solid var(--accent)}button.big{padding:12px 28px;font-size:18px}button.mini{padding:0 8px;font-size:13px}input,select{font:inherit;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:5px 8px}.muted{color:var(--muted)}.error{color:var(--warn)}.ok{color:var(--ok);font-weight:600}.game{height:100%;display:grid;grid-template-columns:1fr 300px;grid-template-rows:auto 1fr auto;grid-template-areas:"top side" "table side" "hand side"}.topbar{grid-area:top;display:flex;align-items:center;gap:16px;padding:8px 12px;border-bottom:1px solid var(--line)}.status{font-weight:600}.dice{margin-left:auto;color:var(--muted)}.table{grid-area:table;position:relative;min-height:0;background:var(--sea)}.board{width:100%;height:100%;display:block}.side{grid-area:side;display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--panel);min-height:0}.log{flex:1;overflow-y:auto;padding:8px 10px;font-size:13px;min-height:120px}.log-line{padding:2px 0}.log-line.roll{margin-top:6px;padding-top:6px;border-top:1px solid var(--line);font-weight:600}.bank{display:flex;flex-wrap:wrap;gap:4px 10px;padding:8px 10px;border-top:1px solid var(--line);font-size:14px}.players{display:flex;flex-direction:column;gap:6px;padding:8px;border-top:1px solid var(--line)}.player{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:6px 10px;border-left:5px solid;border-radius:6px;background:var(--panel-2)}.player-stats{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:2px 14px}.player-name{font-weight:700}.player-vp{font-weight:800;font-size:18px}.player.current{box-shadow:0 0 0 1px var(--accent)}.player.acting .player-name:after{content:" ●";color:var(--accent)}.stat{font-size:14px;color:var(--muted);white-space:nowrap}.stat.warn{color:var(--warn);font-weight:700}.stat.award{color:var(--accent);font-weight:700}.hand-bar{grid-area:hand;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 12px;border-top:1px solid var(--line);background:var(--panel)}.hand-bar.over{background:color-mix(in srgb,var(--warn) 18%,var(--panel))}.hand{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.hand-owner{font-weight:700;margin-right:6px}.actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.res-card{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:56px;border-radius:7px;background:var(--panel-2);border:1px solid var(--line);padding:0}.res-card.empty{opacity:.4}.res-icon{font-size:20px}.res-count{font-weight:700;font-size:13px}.hex{stroke:#00000040;stroke-width:2}.hex.sea{stroke:none}.num{text-anchor:middle;font-weight:900;font-size:17px;fill:#10264f;font-family:Arial Rounded MT Bold,Nunito,system-ui,sans-serif}.num.hot{fill:#c62828;font-size:19px}.harbor text{text-anchor:middle;font-weight:800;fill:#2a2a2a}.harbor-rate{font-size:15px}.harbor-rate.small{font-size:11px}.harbor-icon{font-size:18px}.robber-shadow{fill:#0006}.robber,.harbor,.road,.token,.piece:not(.lit){pointer-events:none}.spot{pointer-events:none;transform-box:fill-box;transform-origin:center;transition:transform .12s}.br-back{fill:none;stroke:#10264f;stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.br{fill:none;stroke:#f4f1e6;stroke-width:3.6;stroke-linecap:round;stroke-linejoin:round}g:has(>.spot-hit:hover)>.spot,g:has(>.spot-hit:focus-visible)>.spot{transform:scale(1.18);filter:drop-shadow(0 0 4px #ffd54f)}g:has(>.spot-hit:hover) .br,g:has(>.spot-hit:focus-visible) .br{stroke:#ffc21a}.spot-edge-back{stroke:#10264f;stroke-width:6.6;stroke-linecap:round;pointer-events:none}.spot-edge{stroke:#f4f1e6;stroke-width:3.6;stroke-linecap:round;pointer-events:none}g:has(>.spot-hit:hover)>.spot-edge,g:has(>.spot-hit:focus-visible)>.spot-edge{stroke:#fff}g:has(>.spot-hit:hover)>.spot-edge-back,g:has(>.spot-hit:focus-visible)>.spot-edge-back{stroke-width:8.4}.spot-hex{fill:#ffffff38;stroke:#ffffffd9;stroke-width:2.5;stroke-linejoin:round;cursor:pointer;transition:fill .12s}.spot-hex:hover,.spot-hex:focus-visible{fill:#ffd54f80;stroke:#ffd54f;stroke-width:5}.board [role=button]:focus-visible{stroke:#fff;stroke-width:4}line.spot-hit{stroke:transparent;stroke-width:34;stroke-linecap:round;cursor:pointer}circle.spot-hit{fill:transparent;stroke:none;cursor:pointer}.board .spot-hit:hover,.board .spot-hit:focus-visible{stroke:none;fill:#ffffff1f}.board line.spot-hit:hover,.board line.spot-hit:focus-visible{stroke:#ffffff26;stroke-width:34}@keyframes pulse{0%{opacity:.6}to{opacity:1}}@media(prefers-reduced-motion:reduce){.spot,.spot-edge{animation:none}}.toast{position:absolute;left:50%;bottom:14px;transform:translate(-50%);background:var(--warn);color:#fff;padding:8px 14px;border-radius:8px;cursor:pointer}.modal-back{position:fixed;inset:0;background:#0008;display:grid;place-items:center;z-index:10;padding:16px}.dialog{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;width:min(560px,100%);max-height:90vh;overflow:auto}.dialog h2{margin:0 0 10px;font-size:18px}.dialog h3{margin:12px 0 6px;font-size:15px}.dialog-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.dialog-head h2{margin:0}.dialog-head .ghost{margin-left:auto}.tabs{display:flex;gap:4px}.tab.on{border-color:var(--accent)}.row{display:flex;flex-wrap:wrap;gap:10px}.row label{display:flex;flex-direction:column;gap:4px}.picker-row{display:flex;gap:10px;flex-wrap:wrap}.picker-cell{display:flex;flex-direction:column;align-items:center;gap:4px}.picker-name{font-size:13px;font-weight:600}.picker-have{font-size:13px}.res-card.big{width:64px;height:76px}.res-card.big .res-icon{font-size:28px}.res-card.big .res-count{font-size:18px}button.minus{width:64px;padding:4px 0;font-size:20px;font-weight:700;line-height:1}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.picker-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:10px}.choices{display:flex;flex-wrap:wrap;gap:8px}.choices button{border-width:2px}.scores td{padding:3px 12px 3px 0;font-weight:600}@media(max-width:760px){.game{grid-template-columns:1fr;grid-template-rows:auto minmax(300px,55vh) auto auto;grid-template-areas:"top" "table" "hand" "side";height:auto;min-height:100%}.side{border-left:none;border-top:1px solid var(--line)}.log{max-height:180px}}.bank-item{white-space:nowrap}.tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);font-size:12px}.tag.warn{border-color:var(--warn);color:var(--warn)}.code{font-family:ui-monospace,Consolas,monospace;letter-spacing:4px;color:var(--accent)}.code-input{width:11ch;box-sizing:content-box;text-transform:uppercase;font-size:20px;letter-spacing:4px;font-family:ui-monospace,Consolas,monospace}.members{list-style:none;margin:0;padding:0}.members li{display:flex;align-items:center;gap:8px;padding:4px 0}.swatch{width:18px;height:18px;border-radius:50%;border:2px solid var(--ink);flex:none}.colors{display:inline-flex;gap:6px;align-items:center}.swatch-btn{width:30px;height:30px;border-radius:50%;padding:0;border:2px solid var(--line)}.swatch-btn.on{border:3px solid var(--ink);outline:2px solid var(--accent)}.swatch-btn:disabled{opacity:.25}fieldset{border:0;margin:0;padding:0}fieldset:disabled{opacity:.75}.clockbar{display:inline-flex;gap:8px;align-items:center}.clock{font-variant-numeric:tabular-nums;font-weight:700;padding:2px 10px;border-radius:8px;background:var(--panel-2)}.clock.low{background:var(--accent);color:var(--accent-ink)}.clock.over{background:var(--warn);color:#fff}.notices{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;gap:8px;max-width:min(92vw,560px)}.notice{padding:14px 22px;border-radius:12px;background:var(--panel);border:3px solid var(--accent);font-size:20px;font-weight:700;box-shadow:0 6px 24px #00000073;cursor:pointer}.notice.timeUp{border-color:var(--warn)}.chat-log{height:120px;overflow-y:auto;background:var(--panel-2);border-radius:8px;padding:6px 10px;margin-bottom:8px}.chat .row{flex-wrap:nowrap}.chat .row input{flex:1}.offers{display:flex;flex-direction:column;gap:8px}.offer{background:var(--panel-2);border:2px solid var(--accent);border-radius:10px;padding:8px 10px}.offer-text{font-weight:600}.offer-actions,.offer-replies{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.offer-replies .ok{color:var(--ok)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.topbar,.side,.hand-bar{zoom:var(--ui-scale, 1)}.table{overflow:auto}.board{width:calc(100% * var(--board-scale, 1));height:calc(100% * var(--board-scale, 1))}.strip,.status{font-size:1.05em}kbd{font:inherit;font-size:12px;padding:1px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:var(--panel-2)}.access label{display:block;margin:8px 0}.access label.check{display:flex;gap:8px;align-items:center}.shortcuts th{text-align:left;padding:3px 14px 3px 0;white-space:nowrap}.text-board{margin:0 0 8px;padding-left:20px;columns:2}.mark:focus{outline:none}.mark-ring{fill:none;stroke:#fff;stroke-width:7;pointer-events:none;animation:markpulse .9s infinite alternate}.mark-arrow{fill:#ffe14d;stroke:#111;stroke-width:4;stroke-linejoin:round;pointer-events:none;animation:markbob .9s infinite alternate}@keyframes markpulse{0%{stroke-opacity:1;transform:scale(1)}to{stroke-opacity:.4;transform:scale(1.12)}}@keyframes markbob{0%{transform:translateY(-4px)}to{transform:translateY(6px)}}.mark-ring{transform-box:fill-box;transform-origin:center}@media(prefers-reduced-motion:reduce){.mark-ring,.mark-arrow{animation:none}}html[data-spotlight=on] .table{background:#05080c}html[data-spotlight=on] .board>g[aria-hidden=true],html[data-spotlight=on] .board>g.piece:not(.lit){opacity:.28}html[data-contrast=high]{--bg: #000;--panel: #000;--panel-2: #14181c;--line: #fff;--ink: #fff;--muted: #e6e6e6;--accent: #ffe14d;--accent-ink: #000;--warn: #ff7b72;--ok: #6dff9a;--sea: #0b3a78}html[data-contrast=high] button,html[data-contrast=high] input,html[data-contrast=high] select{border:2px solid #fff}html[data-contrast=high] .hex{stroke:#000;stroke-width:4}html[data-contrast=high] .br-back{stroke:#000;stroke-width:9}html[data-contrast=high] .spot-edge-back{stroke:#000}html[data-contrast=high] .board [role=button]:focus-visible{stroke:#fff;stroke-width:9}html[data-contrast=high] .player{border:2px solid #fff;border-left-width:9px}html[data-contrast=high] :focus-visible{outline:4px solid #ffe14d;outline-offset:3px}.seats{position:relative}.seats summary{cursor:pointer;font-weight:600;padding:4px 8px}.seats-panel{position:absolute;top:100%;right:0;z-index:60;min-width:280px;max-width:92vw;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;box-shadow:0 6px 24px #0006}.seats-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.seats-panel li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.seat-name{font-weight:700}.hex-edge{fill:none;stroke:none;pointer-events:none}html[data-contrast=high] .hex-edge{stroke:#000;stroke-width:4}html[data-contrast=high] .board image{filter:contrast(1.18) saturate(1.1)}.token.blocked{opacity:.42}.harbor .rope{stroke:#caa86a;stroke-width:3.5;stroke-linecap:round}.piece.lit{pointer-events:auto;cursor:pointer}.piece-ring{transform-box:fill-box;transform-origin:center;animation:pulse 1.2s infinite alternate}.board .piece.lit:focus-visible .br,.board .piece.lit:hover .br{stroke:#ffc21a}.board .piece.lit:focus-visible .piece-ring,.board .piece.lit:hover .piece-ring{animation:none;opacity:1;filter:drop-shadow(0 0 4px #ffd54f)}.robber image{filter:drop-shadow(0 1px 1px #0008)}.res-svg,.ui-icon,.die{display:inline-block;vertical-align:-.2em;flex:none}.res-card .res-svg{display:block}.dice{display:inline-flex;align-items:center;gap:4px}.dice .sum{margin-left:6px;font-weight:700}@media(prefers-reduced-motion:reduce){.piece-ring{animation:none}.spot{transition:none}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .res-svg{filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 .5px #fff)}}.logo{margin:0 0 6px;line-height:0}.logo img{display:block;max-width:100%;width:auto}.hand{align-items:flex-end;gap:10px}.hand-owner{align-self:center}.hand-cards{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 14px;min-height:82px}.hand-none{align-self:center}.hand-gap{width:6px}.stack{position:relative;flex:none}.stack-card{position:absolute;bottom:0;line-height:0;filter:drop-shadow(0 1px 1.2px #0007)}.stack-count{position:absolute;right:-6px;top:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--accent);color:var(--accent-ink);border:2px solid #10264f;font-weight:800;font-size:12px;line-height:16px;text-align:center}.card-svg{display:block}.dev-hand-card{position:relative;padding:0;border:0;background:none;line-height:0;margin-left:-16px;filter:drop-shadow(0 1px 1.2px #0007);transition:transform .12s}.dev-hand-card:first-of-type{margin-left:0}.dev-hand-card.fresh,.dev-hand-card:disabled{opacity:1;filter:brightness(.5) saturate(.7)}.dev-hand-card:disabled{opacity:.5;cursor:default}.dev-hand-card.can{filter:drop-shadow(0 0 4px var(--accent))}.dev-hand-card.can{opacity:1;cursor:pointer;filter:drop-shadow(0 0 0 #0000) drop-shadow(0 0 4px var(--accent)) drop-shadow(0 1px 1.2px #0007)}.dev-hand-card.can:hover,.dev-hand-card.can:focus-visible{transform:translateY(-10px);z-index:3;outline:none}.dev-hand-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px;z-index:3}.mini-hand{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:2px 0 3px;min-height:30px}.mini-group{display:inline-flex;align-items:center;gap:6px}.mini-fan{position:relative;flex:none;display:inline-block}.mini-card{position:absolute;top:0;line-height:0;filter:drop-shadow(0 1px 1px #0007)}.mini-fan.warn .mini-card{filter:drop-shadow(0 0 2px var(--warn)) drop-shadow(0 0 1px var(--warn))}.mini-n{font-size:13px;font-weight:700;color:var(--muted)}.mini-hand .none{font-size:12px}@media(prefers-reduced-motion:reduce){.dev-hand-card{transition:none}}.custom-colour{display:inline-flex;align-items:center;gap:6px;margin-left:6px}.custom-colour input[type=color]{width:38px;height:30px;padding:0;border:2px solid var(--line);border-radius:6px;background:none;cursor:pointer}.custom-colour input[type=color]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.burst{pointer-events:none}.burst-glow{fill:#ffd54f59;stroke:#ffe680;stroke-width:3;stroke-linejoin:round;opacity:0;animation:burstglow 1.9s ease-out forwards}.burst-hex.blocked .burst-glow{fill:#cfd8dc40;stroke:#cfd8dc}.burst-hex.short .burst-glow{fill:none;stroke:#ffffff80}.burst-piece{transform-box:fill-box;transform-origin:center;opacity:0;animation:burstpiece 1.6s ease-out forwards;filter:drop-shadow(0 1px 1px #0008)}.burst-hex.blocked .burst-piece,.burst-hex.short .burst-piece{filter:grayscale(1) brightness(.8);animation-name:burstpiecedim}.burst-spark{fill:#fff8c4;stroke:#10264f;stroke-width:1.2;opacity:0;animation:burstspark 1.2s ease-out forwards;transform-box:fill-box;transform-origin:center}.burst-hood{opacity:0;animation:bursthood 1.6s ease-out forwards;filter:drop-shadow(0 0 2px #000b)}.burst-none circle{fill:#10264f;stroke:#fff;stroke-width:2}.burst-none path{stroke:#fff;stroke-width:3;stroke-linecap:round}.burst-none{opacity:0;animation:bursthood 1.8s ease-out forwards}@keyframes burstglow{0%{opacity:0}12%{opacity:1}55%{opacity:.9}to{opacity:0}}@keyframes burstpiece{0%{opacity:0;transform:translate(0) scale(.3)}18%{opacity:1;transform:translate(calc(var(--dx) * .4),calc(var(--dy) * .4)) scale(1.15)}60%{opacity:1;transform:translate(var(--dx),var(--dy)) scale(1)}to{opacity:0;transform:translate(calc(var(--dx) * 1.2),calc(var(--dy) * 1.2 - 8px)) scale(.9)}}@keyframes burstpiecedim{0%{opacity:0;transform:translate(0) scale(.5)}25%{opacity:.6;transform:translate(calc(var(--dx) * .5),calc(var(--dy) * .5)) scale(.9)}to{opacity:0;transform:translate(calc(var(--dx) * .7),calc(var(--dy) * .7 + 6px)) scale(.7)}}@keyframes burstspark{0%{opacity:0;transform:scale(.2) rotate(0)}30%{opacity:1;transform:scale(1.2) rotate(40deg)}to{opacity:0;transform:scale(.4) rotate(90deg)}}@keyframes bursthood{0%{opacity:0}20%{opacity:.75}70%{opacity:.75}to{opacity:0}}@keyframes burstcalm{0%{opacity:0}20%{opacity:1}70%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.burst-piece,.burst-hex.blocked .burst-piece,.burst-hex.short .burst-piece{animation-name:burstcalm;transform:translate(var(--dx),var(--dy))}.burst-spark{display:none}}html[data-contrast=high] .burst-glow{stroke-width:5}:root[data-theme=dark] .res-svg{filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 .5px #fff)}.game{--panel: #0f2748;--panel-2: #183a66;--line: #4a78b0;--ink: #f6f1e2;--muted: #bccbdc;--accent: #ffc21a;--navy: #10264f;--page: #0a1b33;--side-w: clamp(420px, 27vw, 560px);background:var(--page);color:var(--ink)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .game{--panel: #f8f1de;--panel-2: #efe4c8;--line: #10264f;--ink: #10264f;--muted: #44587a;--accent: #d8930d;--page: #e6dcc0}}:root[data-theme=light] .game{--panel: #f8f1de;--panel-2: #efe4c8;--line: #10264f;--ink: #10264f;--muted: #44587a;--accent: #d8930d;--page: #e6dcc0}html[data-contrast=high] .game{--panel: #000;--panel-2: #000;--line: #fff;--ink: #fff;--muted: #fff;--accent: #ffe14d;--page: #000}.game{gap:0;padding:0;grid-template-columns:minmax(0,1fr) var(--side-w);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"table side" "hand side"}.hand-bar,.table,.side{min-width:0}.table{border:none;border-radius:0;background:radial-gradient(ellipse at 50% 40%,#2f6fb0,#1d4a82 55%,#123560);position:relative;overflow:auto}html[data-contrast=high] .table{background:#0b3a78}.side{background:var(--page);border-left:3px solid var(--navy);padding:8px;gap:8px;overflow-y:auto}html[data-contrast=high] .side{border-left-color:#fff}.panel{background:var(--panel);border:3px solid var(--line);border-radius:14px;padding:8px 10px}html[data-contrast=high] .panel{border-width:3px}.topbar,.hand-bar{zoom:var(--ui-scale, 1)}.game button{min-height:56px;font-size:18px;font-weight:800;color:var(--ink);background:var(--panel-2);border:3px solid var(--line);border-radius:12px;box-shadow:0 4px 0 var(--line);transition:transform .08s,box-shadow .08s}.game button:hover:not(:disabled){border-color:var(--accent);box-shadow:0 4px 0 var(--accent)}.game button:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--line)}.game button:disabled{opacity:1;cursor:default}.game :focus-visible{outline:5px solid #ffc21a;outline-offset:3px;box-shadow:0 0 0 3px #10264f}html[data-contrast=high] .game button{border-color:#fff;box-shadow:none}html[data-contrast=high] .game :focus-visible{outline-color:#ffe14d;box-shadow:0 0 0 3px #000}@media(prefers-reduced-motion:reduce){.game button{transition:none}}.rail{position:absolute;left:12px;top:12px;display:flex;flex-direction:column;gap:10px;z-index:5}.icon-btn{width:62px;height:62px;padding:0;display:grid;place-items:center;font-size:32px;background:var(--panel)}.hud-top{position:absolute;right:12px;top:12px;z-index:4;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;max-width:calc(100% - 100px)}.hud-top .status{flex:0 1 auto;padding:10px 18px;font-size:22px;font-weight:800;line-height:1.25;background:var(--panel);border:3px solid var(--line);border-radius:14px;max-width:min(100%,760px);text-align:center}.turn-dot{width:34px;height:34px;border-radius:50%;border:4px solid var(--navy);box-shadow:0 0 0 3px var(--panel);flex:none}.hud-top .clockbar{background:var(--panel);border:3px solid var(--line);border-radius:14px;padding:4px 10px}.hud-top .tag,.hud-top .clock{font-size:20px}.clock{font-size:22px;padding:6px 12px;border-radius:12px;background:var(--panel-2);border:2px solid var(--line)}.dice-spot{position:sticky;float:right;clear:both;margin:0 16px 14px 0;z-index:4}.table{display:flex;flex-direction:column}.table>.board{flex:1 1 auto;min-height:0}.dice-spot{position:absolute;right:16px;bottom:14px;float:none;margin:0}.dice-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:18px;background:#0b1f3acc;border:3px solid #ffffff55;min-height:0;box-shadow:none}.dice-btn .die{filter:drop-shadow(0 3px 3px #0008)}button.dice-btn{cursor:pointer;border-color:#ffc21a;background:#0b1f3aee;box-shadow:0 0 0 4px #ffc21a55,0 6px 14px #0008;animation:dicepulse 1.4s ease-in-out infinite alternate}button.dice-btn:hover:not(:disabled){box-shadow:0 0 0 6px #ffc21a99,0 6px 14px #0008;transform:scale(1.05)}@keyframes dicepulse{0%{transform:scale(1)}to{transform:scale(1.04)}}@media(prefers-reduced-motion:reduce){button.dice-btn{animation:none}}.dice-sum{font-size:58px;line-height:1;font-weight:900;color:#fff;min-width:1.4em;text-align:center;text-shadow:0 2px 0 #10264f}.dice-sum.hot,.dice-sum.seven{color:#ff8a80}html[data-contrast=high] .dice-btn{background:#000;border-color:#fff}.log-panel{flex:1 1 0;min-height:140px;display:flex;flex-direction:column;padding:6px 10px}.log{flex:1;min-height:0;padding:0;font-size:18px;line-height:1.2}.log-line{display:block;padding:5px 0;margin:0;border-bottom:2px dashed color-mix(in srgb,var(--line) 45%,transparent)}.log-line.roll{border-top:none;font-weight:800}.log-body,.stack-lines .sl{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.stack-lines{display:flex;flex-direction:column;gap:3px}.lname{font-size:19px;font-weight:800}.mcs{display:inline-flex;align-items:center;gap:2px}.mc,.mc-piece{display:block;filter:drop-shadow(0 1px 1px #0007)}.mc-more{font-size:20px;font-weight:900}.mc-sum{font-size:28px;font-weight:900;margin-left:4px}.mc-sum.seven{color:#ff8a80}.mc-road{display:inline-block;width:34px;height:12px;border-radius:6px;border:3px solid var(--navy);box-sizing:content-box}.bank-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px}.bank-ico{display:grid;place-items:center;width:52px;flex:none}.bank-card,.pc{position:relative;display:inline-flex;flex:none;line-height:0}.bank-card img,.pc img{display:block;filter:drop-shadow(0 2px 2px #0008)}.count{position:absolute;right:-8px;top:-10px;min-width:32px;height:32px;padding:0 5px;display:grid;place-items:center;background:#ffc21a;color:#10264f;border:3px solid #10264f;border-radius:16px;font-size:20px;line-height:1;font-weight:900}.players{display:flex;flex-direction:column;gap:10px;padding:8px;flex:0 0 auto;justify-content:flex-start}.players .prow{flex:0 0 auto}.prow{position:relative;display:grid;grid-template-columns:16px 52px minmax(0,1fr) auto;grid-template-areas:"name name name" "sym counts vp";align-items:center;gap:2px 10px;padding:4px 12px 8px 4px;border:3px solid;border-radius:14px;background:var(--panel-2)}.prow.current{box-shadow:0 0 0 4px var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel-2))}.psym{grid-area:sym;display:grid;place-items:center;width:52px;height:64px}.prow.acting .psym{filter:drop-shadow(0 0 5px var(--accent))}.pvp{grid-area:vp;display:inline-flex;align-items:center;gap:4px;align-self:center;font-size:40px;line-height:1;font-weight:900}.pvp b{font-size:40px}.pvp svg{fill:var(--accent);stroke:var(--navy);stroke-width:1.6}.pvp{position:relative}.pvp small{position:absolute;right:-4px;top:-16px;font-size:15px;font-weight:900;background:var(--navy);color:#fff;border-radius:10px;padding:0 5px}.avatar{grid-area:avatar;position:relative;width:62px;height:62px;border-radius:50%;border:4px solid var(--navy);display:grid;place-items:center;box-shadow:inset 0 -5px #0003}.avatar b{font-size:30px;line-height:1;font-weight:900;color:#fff;text-shadow:0 2px 0 #10264f,0 0 4px #10264f,0 0 4px #10264f}.avatar small{position:absolute;right:-8px;bottom:-6px;font-size:15px;font-weight:900;background:var(--navy);color:#fff;border-radius:10px;padding:0 5px}.pname{grid-area:name;justify-self:start;padding:0;font-size:22px;font-weight:900;line-height:1.15;overflow-wrap:anywhere}.pcounts{grid-area:counts;display:flex;align-items:center;gap:4px 8px;margin-top:8px;flex-wrap:wrap;min-width:0}.pc.warn img{filter:drop-shadow(0 0 3px #ff5a4f) drop-shadow(0 0 3px #ff5a4f)}.pc.warn .count{background:#ff5a4f;color:#fff}.ps{display:inline-flex;align-items:center;gap:2px;font-size:26px;font-weight:900;color:var(--muted)}.ps-symbol{display:block;filter:drop-shadow(0 2px 2px #0008)}.road-icon{display:block;overflow:visible}.ps.award .ps-symbol{filter:drop-shadow(0 0 6px var(--accent)) drop-shadow(0 0 3px var(--accent))}.ps.award{color:var(--accent)}.ps b{font-size:26px}html[data-contrast=high] .prow{border-color:#fff}.hand-bar{grid-area:hand;display:flex;flex-wrap:nowrap;align-items:flex-end;justify-content:space-between;gap:12px;padding:10px 14px 12px;background:var(--page);border-top:3px solid var(--navy)}html[data-contrast=high] .hand-bar{border-top-color:#fff}.hand-bar.over{background:color-mix(in srgb,#ff5a4f 20%,var(--page))}.hand{display:flex;align-items:flex-end;gap:12px;min-width:0;flex:1 1 0;padding-top:12px}.hand-title{font-size:18px;font-weight:800;color:var(--muted)}.hand-cards{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 10px;min-height:0;max-width:100%;padding:14px 6px 4px 0}.res-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 8px}.hand-divider{align-self:stretch;width:5px;margin:6px;border-radius:3px;background:var(--line);opacity:.8}.hand-none{font-size:18px}.dev-group{display:inline-flex;align-items:flex-end}.dev-wrap{position:relative;display:inline-flex}.dev-wrap+.dev-wrap{margin-left:4px}.dev-wrap .dev-hand-card{margin-left:0;min-height:0;background:none;border:0;box-shadow:none;border-radius:8px}.actions{display:grid;grid-template-columns:repeat(3,84px);gap:10px 8px;flex:none;margin:0 6px 0 auto;align-self:flex-end}.act{position:relative;width:80px;height:88px;min-height:0;padding:4px;display:grid;place-items:center;background:linear-gradient(#3b7cc2,#235a9c);color:#fff;border-color:#10264f;box-shadow:0 4px #10264f}.act:hover:not(:disabled){border-color:#ffc21a;box-shadow:0 4px #ffc21a}.act svg{stroke-width:2.6}.act.on,.act.end{background:linear-gradient(#ffd24a,#f2a900);color:#10264f}.act.off{background:color-mix(in srgb,var(--panel) 80%,#000);color:var(--muted);border-style:dashed;border-color:var(--line);box-shadow:none}.act.off>img,.act.off>.road-icon{opacity:.45;filter:grayscale(.6)}.act-count{position:absolute;right:-8px;top:-10px;min-width:30px;height:30px;padding:0 6px;display:grid;place-items:center;background:#fff;color:#10264f;border:3px solid #10264f;border-radius:15px;font-size:18px;line-height:1;font-weight:900}.road-glyph{display:block;width:62px;height:18px;border-radius:9px;border:4px solid #10264f;box-sizing:content-box;transform:rotate(-35deg);box-shadow:inset 0 -4px #0003}.piece-icon{display:block;filter:drop-shadow(0 2px 2px #0008)}.chat-log{height:260px;font-size:20px;line-height:1.3;padding:8px 12px}.chat-log .mc{display:inline-block;vertical-align:-9px;margin:0 1px}.chat input{font-size:20px;padding:10px 12px;min-height:52px}.chat button{min-height:52px;font-size:20px}@media(min-width:761px)and (max-height:860px){.hand-cards{zoom:.62}.hand-divider{display:none}.act{width:74px;height:72px}.actions{gap:6px}.act img{max-height:50px;width:auto}.road-glyph{width:52px}.dice-btn .die{width:64px;height:64px}.dice-sum{font-size:44px}.prow{padding:5px 8px 5px 2px}.avatar{width:52px;height:52px}.prow{grid-template-columns:18px 52px 1fr}.pc img{height:42px;width:auto}.bank-card img{height:52px;width:auto}}@media(max-width:760px){.game{grid-template-columns:1fr;grid-template-rows:auto minmax(360px,60vh) auto auto;grid-template-areas:"hand" "table" "side" "side"}.hand-bar{flex-wrap:wrap;border-top:none;border-bottom:3px solid var(--navy)}.actions{flex-wrap:wrap}.side{border-left:none;border-top:3px solid var(--navy)}.hud-top .status{font-size:18px}}@media(max-width:1500px){.pvp,.pvp b{font-size:32px}.pvp svg{width:22px;height:22px}}.cost-tip{position:absolute;right:0;bottom:calc(100% + 12px);z-index:30;display:none;flex-wrap:nowrap;gap:6px;padding:10px;background:var(--panel);border:3px solid var(--line);border-radius:14px;box-shadow:0 8px 20px #0009;pointer-events:none}.act:hover .cost-tip,.act:focus-visible .cost-tip{display:flex}.tip-card{display:block;filter:drop-shadow(0 2px 2px #0008)}.tip-card.lacking{filter:brightness(.28) grayscale(.5)}.pc img{height:calc(var(--side-w) * .16);width:auto}.ps-symbol{height:calc(var(--side-w) * .098);width:auto}.pc,.ps{flex:none}.ps{font-size:calc(var(--side-w) * .052);gap:7px}.ps b{font-size:calc(var(--side-w) * .052);min-width:.6em;text-align:left}.pcounts{flex-wrap:nowrap;gap:calc(var(--side-w) * .014);margin-top:8px}.prow{grid-template-columns:calc(var(--side-w) * .1) minmax(0,1fr) auto;padding-right:10px;padding-left:8px}.psym{width:calc(var(--side-w) * .1);height:auto}.psym .piece-icon{height:calc(var(--side-w) * .115);width:auto}.pvp,.pvp b{font-size:calc(var(--side-w) * .082)}.pvp svg{width:calc(var(--side-w) * .04);height:auto}.count{min-width:calc(var(--side-w) * .062);height:calc(var(--side-w) * .062);font-size:calc(var(--side-w) * .04)}.bank-row{gap:4px;padding:6px 8px}.bank-ico{width:calc(var(--side-w) * .1)}.bank-card img{height:calc(var(--side-w) * .13);width:auto}.players{overflow-y:visible}.players .prow{min-height:0}.prow{padding:2px 10px 8px 14px}.side{overflow-y:auto}.turn-controls{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:none;margin-left:auto}.status-pill{display:inline-flex;align-items:center;gap:12px;max-width:640px;padding:8px 18px 8px 12px;background:var(--panel);border:3px solid var(--line);border-radius:999px;font-size:22px;font-weight:900;line-height:1.2;color:var(--ink);box-shadow:0 4px 0 var(--navy)}.status-pill.mine{border-color:var(--accent);box-shadow:0 4px 0 var(--accent),0 0 18px color-mix(in srgb,var(--accent) 45%,transparent)}.status-dot{width:22px;height:22px;flex:none;border-radius:50%;background:var(--who, #999);border:3px solid var(--navy);box-shadow:0 0 0 2px var(--panel)}.status-text{overflow-wrap:anywhere}.status-pill .clock{font-size:20px;padding:3px 10px;margin-left:2px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.actions{grid-template-columns:repeat(6,84px);margin:0}.act-dice{display:inline-flex;gap:4px}.act.end .die{filter:drop-shadow(0 1px 1px #0008)}.pname .you{font-size:.7em;color:var(--muted);font-weight:700}.log-turn{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font-size:15px;font-weight:900;color:var(--who, var(--muted))}.log-turn:before,.log-turn:after{content:"";flex:1;height:3px;border-radius:2px;background:var(--who, var(--line));opacity:.55}.log-turn span{padding:1px 10px;border:2px solid var(--who, var(--line));border-radius:999px;background:var(--panel-2)}.trade-panel{position:absolute;left:12px;bottom:12px;z-index:20;width:min(640px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;background:var(--panel);border:3px solid var(--line);border-radius:16px;padding:10px 14px 12px;box-shadow:0 10px 28px #000a}.trade-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.trade-head h2{margin:0;font-size:22px}.game button.trade-close{margin-left:auto;width:48px;min-height:48px;padding:0;display:grid;place-items:center}.trade-body{display:flex;gap:14px;align-items:stretch}.trade-rows{display:flex;flex-direction:column;gap:8px;flex:1 1 auto;min-width:0}.trade-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.trade-arrow{width:26px;font-size:26px;font-weight:900;text-align:center}.trade-arrow.want{color:#6ee08c}.trade-arrow.give{color:#ff8a80}.game button.pick-card,.game button.tray-card{position:relative;min-height:0;padding:0;line-height:0;background:none;border:0;box-shadow:none;border-radius:8px}.pick-card img,.tray-card img{display:block;filter:drop-shadow(0 2px 2px #0008);transition:transform .1s}.game button.pick-card:hover:not([aria-disabled=true]) img,.game button.tray-card:hover img{transform:translateY(-4px)}.game button.pick-card[aria-disabled=true]{cursor:default}.pick-card[aria-disabled=true] img{filter:brightness(.4) grayscale(.6)}.pick-card .count,.tray-card .count{min-width:26px;height:26px;font-size:15px;right:-8px;top:-8px}.pick-card .rate{position:absolute;left:50%;bottom:-10px;transform:translate(-50%);padding:1px 6px;border-radius:8px;font-size:13px;font-weight:900;line-height:1.2;background:var(--navy);color:#fff;border:2px solid #ffffff55}.pick-card .rate.good{background:#1f7a3a;border-color:#8ef0a8}.trade-tray{display:flex;align-items:center;gap:12px;min-height:76px;padding:6px 10px 6px 34px;border-radius:12px;border:3px dashed color-mix(in srgb,var(--line) 70%,transparent);background:color-mix(in srgb,var(--panel-2) 60%,transparent)}.tray-empty{font-size:17px;font-weight:800;color:var(--muted)}.give-pick{padding-bottom:10px}.trade-send{display:flex;flex-direction:column;gap:10px;justify-content:center;width:116px;flex:none}.game button.send{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;font-size:18px}.game button.send.bank:not([aria-disabled=true]){background:linear-gradient(#ffd24a,#f2a900);color:#10264f}.game button.send.players:not([aria-disabled=true]){background:linear-gradient(#3b7cc2,#235a9c);color:#fff}.game button.send[aria-disabled=true]{opacity:.55;cursor:default;box-shadow:none;border-style:dashed}.trade-hint{margin:0;font-size:14px;font-weight:700;color:var(--muted);text-align:center}.trade-targets{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.game button.target{min-height:44px;padding:4px 14px;font-size:17px;border-color:var(--who);box-shadow:0 3px 0 var(--who);opacity:.6}.game button.target.on{opacity:1;background:color-mix(in srgb,var(--who) 35%,var(--panel-2))}.trade-note{margin:8px 0 0;font-size:14px}@media(prefers-reduced-motion:reduce){.pick-card img,.tray-card img{transition:none}}.offer{border-color:var(--line);border-left:8px solid var(--who, var(--accent));background:var(--panel)}.offer-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}.offer-from{font-size:19px;color:var(--who)}.offer-side{display:inline-flex;align-items:center;gap:6px}.offer-side small{font-size:13px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.offer-cards{display:inline-flex;gap:2px}.offer-replies{gap:8px}.reply{display:inline-flex;align-items:center;gap:4px;padding:3px 10px 3px 6px;border-radius:999px;border:3px solid var(--who);font-size:16px;font-weight:800;background:var(--panel-2)}.reply.declined{opacity:.55}.reply.accepted{background:color-mix(in srgb,#3fbf6a 30%,var(--panel-2))}.game button.reply.take{min-height:44px;font-size:17px;border-color:var(--who);box-shadow:0 3px 0 var(--who);animation:dicepulse 1s ease-in-out infinite alternate}.offer-actions button{min-height:48px;display:inline-flex;align-items:center;gap:6px;font-size:17px}@media(prefers-reduced-motion:reduce){.game button.reply.take{animation:none}}.pending-ghost{opacity:.72;pointer-events:none}.confirm-bubble{cursor:pointer;outline:none;animation:cbbob .9s ease-in-out infinite alternate}.cb-disc{fill:#ffc21a;stroke:#10264f;stroke-width:3.5;filter:drop-shadow(0 3px 3px #0009)}.cb-tail{fill:#ffc21a;stroke:#10264f;stroke-width:3;stroke-linejoin:round}.cb-tick{fill:none;stroke:#10264f;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}.confirm-bubble:hover .cb-disc,.confirm-bubble:focus-visible .cb-disc{fill:#ffe066;stroke:#fff;stroke-width:4.5}@keyframes cbbob{0%{translate:0 0}to{translate:0 -4px}}@media(prefers-reduced-motion:reduce){.confirm-bubble{animation:none}}html[data-contrast=high] .cb-disc{stroke:#000;stroke-width:5}.spot-edge-back{stroke-width:11.5}.spot-edge{stroke:#fff6d6;stroke-width:7}.spot-edge-dot{fill:#ffc21a;stroke:#10264f;stroke-width:1.6;pointer-events:none}g:has(>.spot-hit:hover)>.spot-edge,g:has(>.spot-hit:focus-visible)>.spot-edge{stroke:#ffe066}g:has(>.spot-hit:hover)>.spot-edge-back,g:has(>.spot-hit:focus-visible)>.spot-edge-back{stroke-width:14}.game .dialog{background:var(--panel);border:3px solid var(--line);border-radius:16px;padding:16px 20px;color:var(--ink);width:min(720px,100%)}.game .dialog h2{font-size:24px}.victims{display:flex;flex-wrap:wrap;gap:12px}.game button.victim{display:flex;align-items:center;gap:12px;padding:8px 16px;border-width:4px}.victim-name{font-size:22px;font-weight:900}.card-choices{gap:12px}.game .card-choices button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px}.cost-cards{display:inline-flex;gap:6px;flex-wrap:wrap}.cost-cards img{display:block;filter:drop-shadow(0 2px 2px #0008)}.info h3{font-size:18px;margin:14px 0 6px}.info-table{border-collapse:collapse;width:100%}.info-table td,.info-table th{padding:6px 10px 6px 0;text-align:left;vertical-align:middle;font-size:17px}.info-table th{font-weight:800}.info-table td:first-child{width:64px}.scores.final{border-collapse:collapse;width:100%;margin-bottom:8px}.scores.final th,.scores.final td{padding:6px 10px;text-align:center;font-size:17px;border-bottom:2px solid color-mix(in srgb,var(--line) 50%,transparent)}.scores.final th[scope=row]{text-align:left;font-weight:900}.scores.final .total{font-size:22px;font-weight:900}.picker .res-card.big{width:auto;height:auto;padding:0;background:none;border:0;box-shadow:none;position:relative;line-height:0;min-height:0}.picker .res-card.big img{display:block;filter:drop-shadow(0 2px 2px #0008)}.picker .res-card.big[aria-disabled=true] img{filter:brightness(.45) grayscale(.5)}.picker .res-card.big .count{min-width:30px;height:30px;font-size:17px}.game .picker button.minus{width:64px;min-height:40px}.tally{font-size:22px;font-weight:900;padding:2px 12px;border-radius:999px;border:3px solid var(--line)}.tally.ok{color:#10264f;background:#6ee08c;border-color:#1f7a3a}.chat-panel{padding:6px 12px;flex:none}.chat-panel summary{cursor:pointer;font-size:20px;font-weight:900;padding:6px 2px;min-height:44px;display:flex;align-items:center}.chat-panel .chat h2{display:none}.chat-panel .chat-log{height:170px;font-size:18px}.game{--act: clamp(58px, 4.7vw, 84px)}.actions{grid-template-columns:repeat(6,var(--act));gap:8px}.act{width:var(--act);height:calc(var(--act) * 1.04)}.act>img,.act>.piece-icon{max-height:calc(var(--act) * .66);width:auto}.act>.road-icon{width:calc(var(--act) * .8);height:auto}.act>svg.ui-icon{width:calc(var(--act) * .55);height:auto}.act-dice .die{width:calc(var(--act) * .36);height:auto}.status-pill{font-size:clamp(17px,1.35vw,22px)}.pvp{gap:6px}.pvp-badge{display:block;height:calc(var(--side-w) * .088);width:auto;filter:drop-shadow(0 2px 2px #0008)}.pc img{height:calc(var(--side-w) * .136)}.ps-symbol{height:calc(var(--side-w) * .084)}.ps{gap:4px}.pvp small{right:-10px}.info-goal{display:flex;align-items:center;gap:10px}.th-badge{vertical-align:middle}.board [role=button]:focus,.board [role=button]:focus-visible{outline:none;box-shadow:none}g:has(>.spot-hit:focus)>.spot{transform:scale(1.18);filter:drop-shadow(0 0 4px #ffd54f) drop-shadow(0 0 2px #ffd54f)}g:has(>.spot-hit:focus) .br{stroke:#ffc21a}g:has(>.spot-hit:focus)>.spot-edge{stroke:#ffe066}g:has(>.spot-hit:focus)>.spot-edge-back{stroke-width:14}.board circle.spot-hit:focus{stroke:none;fill:#ffffff1f}.board line.spot-hit:focus{stroke:#ffffff26;stroke-width:34}.board .spot-hex:focus{fill:#ffd54f80;stroke:#ffd54f;stroke-width:5}.board .piece.lit:focus .br{stroke:#ffc21a}.board .piece.lit:focus .piece-ring{animation:none;opacity:1;filter:drop-shadow(0 0 4px #ffd54f)}@media(prefers-reduced-motion:reduce){g:has(>.spot-hit:focus)>.spot{transform:none}}.menu{--m-ink: #10264f;--m-ink-soft: #44587a;--m-parch: #f8f1de;--m-parch-2: #efe4c8;--m-paper: #fffaf0;--m-gold: #ffc21a;--m-green: #1f7a3a;--m-red: #b3261e;--m-display: "Arial Rounded MT Bold", "Nunito", "Segoe UI", system-ui, sans-serif;min-height:100%;padding:36px 32px 48px;background:radial-gradient(ellipse at 30% 35%,#2f6fb0,#1d4a82 55%,#123560);color:var(--m-ink);font-size:18px;line-height:1.45;display:grid;justify-content:center;align-content:center;gap:28px}.menu.with-island{grid-template-columns:minmax(0,640px) minmax(0,620px);align-items:center;gap:40px}.menu.wide{align-content:start;grid-template-columns:minmax(0,1240px)}.menu-sheet{position:relative;background:var(--m-parch);border:4px solid var(--m-ink);border-radius:24px;padding:28px 34px 30px;box-shadow:0 8px #0a1b33;min-width:0}.menu-head{margin-bottom:22px}.menu-head .logo{margin:0 0 6px}.menu-head .logo img{filter:drop-shadow(0 3px 0 #10264f33)}.menu-lede{margin:0;max-width:34em;font-size:20px;font-weight:600;color:var(--m-ink-soft)}.menu h2{margin:0 0 14px;font:900 24px/1.2 var(--m-display);color:var(--m-ink)}.menu h3{margin:14px 0 8px;font:900 19px/1.2 var(--m-display)}.menu-note{margin:0 0 12px;color:var(--m-ink-soft);max-width:40em}.menu-status{margin:0;font:900 21px/1.3 var(--m-display)}.menu-error{margin:16px 0 0;padding:12px 16px;border:3px solid var(--m-red);border-radius:14px;background:#ffe3df;color:#7a1010;font-weight:700}.island{min-width:0}.island svg{display:block;width:100%;height:auto;max-height:78vh;filter:drop-shadow(0 18px 24px #0a1b3388)}.island-boat{animation:rock 3.2s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 80%}@keyframes rock{0%{rotate:-3deg}to{rotate:3deg}}@media(prefers-reduced-motion:reduce){.island-boat{animation:none}}.menu button{font:inherit;color:var(--m-ink);cursor:pointer}.menu-btn{min-height:52px;padding:0 22px;border:3px solid var(--m-ink);border-radius:14px;background:var(--m-paper);font-weight:800;font-size:18px;box-shadow:0 4px 0 var(--m-ink);transition:transform .08s,box-shadow .08s}.menu-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 0 var(--m-ink)}.menu-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--m-ink)}.menu-btn.primary{background:linear-gradient(#ffd24a,#f2a900)}.menu-btn.big{min-height:64px;padding:0 34px;font:900 23px/1 var(--m-display)}.menu-btn.small{min-height:40px;padding:0 14px;font-size:16px;box-shadow:0 3px 0 var(--m-ink)}.menu-btn:disabled{cursor:default;opacity:.55;border-style:dashed;box-shadow:none;background:var(--m-parch-2)}.menu-back{margin:-6px 0 10px -8px;padding:6px 8px;border:0;background:none;font-weight:800;font-size:18px;color:var(--m-ink-soft);border-radius:10px}.menu-back:hover{color:var(--m-ink);text-decoration:underline;text-underline-offset:4px}.menu-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:16px}.menu :focus-visible{outline:4px solid var(--m-gold);outline-offset:3px;box-shadow:0 0 0 7px var(--m-ink);border-radius:12px}@media(prefers-reduced-motion:reduce){.menu-btn,.choice{transition:none}}.menu-choices{display:grid;gap:16px}.menu .choice{display:grid;grid-template-columns:116px 1fr;align-items:center;gap:18px;width:100%;padding:18px 22px;text-align:left;border:4px solid var(--m-ink);border-radius:20px;background:var(--m-paper);box-shadow:0 6px 0 var(--m-ink);transition:transform .08s,box-shadow .08s}.menu .choice.primary{background:linear-gradient(#ffd24a,#f2a900)}.menu .choice:hover{transform:translateY(-2px);box-shadow:0 8px 0 var(--m-ink)}.menu .choice:active{transform:translateY(4px);box-shadow:0 2px 0 var(--m-ink)}.choice-pic{display:flex;justify-content:center;align-items:flex-end}.choice-pic img{display:block;filter:drop-shadow(0 2px 2px #0007)}.choice-pic img+img{margin-left:-12px}.choice-text{display:grid;gap:2px}.choice-name{font:900 30px/1.1 var(--m-display)}.choice-hint{font-size:18px;font-weight:600;color:var(--m-ink-soft)}.choice.primary .choice-hint{color:#3a2a00}.menu-field{display:grid;gap:6px;margin-bottom:18px}.menu-field label,.timer-grid>label>span{font-weight:800;font-size:17px}.menu input:not([type=range]):not([type=checkbox]):not([type=color]),.menu select{min-height:52px;padding:8px 14px;border:3px solid var(--m-ink);border-radius:12px;background:var(--m-paper);color:var(--m-ink);font:600 19px/1.2 Segoe UI,system-ui,sans-serif;max-width:100%}.menu input::placeholder{color:#8a93a8}.menu .code-input{width:7.5ch;box-sizing:content-box;text-transform:uppercase;letter-spacing:.35em;font:900 30px/1 var(--m-display);padding-left:18px}.join-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.menu-card{margin:0;padding:18px 20px 20px;border:3px solid color-mix(in srgb,var(--m-ink) 35%,transparent);border-radius:18px;background:var(--m-parch-2)}.menu-card .menu-actions{margin-top:4px}.menu-section{padding:20px 0 22px;border-top:3px dashed color-mix(in srgb,var(--m-ink) 25%,transparent)}.menu-head+.menu-section,.room-head+.menu-columns>.menu-stack>.menu-section:first-child{border-top:0;padding-top:4px}.menu-columns{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.menu-stack{min-width:0}.menu-stack+.menu-stack>.menu-section:first-child,.menu-columns>.menu-section{border-top:3px dashed color-mix(in srgb,var(--m-ink) 25%,transparent)}.menu-footer{position:sticky;bottom:-30px;margin:6px -34px -30px;padding:16px 34px 20px;display:flex;align-items:center;justify-content:flex-end;gap:16px;background:var(--m-parch);border-top:3px solid var(--m-ink);border-radius:0 0 20px 20px}.map-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}.menu .map-card{display:grid;grid-template-rows:96px auto auto;gap:4px;padding:10px 12px 12px;text-align:left;border:3px solid color-mix(in srgb,var(--m-ink) 40%,transparent);border-radius:16px;background:var(--m-paper)}.menu .map-card:hover:not(:disabled){border-color:var(--m-ink)}.menu .map-card.on{border:4px solid var(--m-ink);padding:9px 11px 11px;background:#fff6d0;box-shadow:0 0 0 4px var(--m-gold),0 4px 0 4px var(--m-ink)}.menu .map-card:disabled{opacity:.4;cursor:default}.menu .map-card[aria-disabled=true]{cursor:default}.map-thumb{width:100%;height:96px}.map-name{font:900 19px/1.15 var(--m-display)}.map-meta{font-size:14px;font-weight:600;color:var(--m-ink-soft);line-height:1.3}.menu-stepper{display:flex;align-items:center;gap:12px;margin-bottom:14px}.stepper-label{font-weight:800;font-size:17px;margin-right:4px}.menu-stepper button{width:48px;height:48px;border:3px solid var(--m-ink);border-radius:12px;background:var(--m-paper);font:900 26px/1 var(--m-display);box-shadow:0 3px 0 var(--m-ink)}.menu-stepper button[aria-disabled=true]{opacity:.4;box-shadow:none;cursor:default}.stepper-value{min-width:2ch;text-align:center;font:900 30px/1 var(--m-display)}.name-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.name-list li{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:10px}.name-list img{display:block;filter:drop-shadow(0 2px 2px #0007)}.menu .name-list input{width:100%;border-left:10px solid var(--who)!important}.menu-slider{display:grid;grid-template-columns:1fr 60px;grid-template-areas:"label value" "range value";align-items:center;column-gap:14px;margin-bottom:14px}.menu-slider label{grid-area:label;font-weight:800;font-size:17px}.menu-slider input{grid-area:range;width:100%;accent-color:var(--m-ink);height:28px}.slider-value{grid-area:value;justify-self:end;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--m-gold);border:3px solid var(--m-ink);font:900 24px/1 var(--m-display)}.menu-toggle{display:grid;grid-template-columns:58px 1fr;align-items:start;gap:12px;padding:8px 0}.menu-toggle input{appearance:none;box-sizing:border-box;padding:0;margin:2px 0 0;width:58px;height:32px;border-radius:999px;border:3px solid var(--m-ink);background:#cfc5a6;position:relative;cursor:pointer;transition:background .12s}.menu-toggle input:after{content:"";position:absolute;box-sizing:border-box;top:50%;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--m-ink);transform:translateY(-50%);transition:transform .12s}.menu-toggle input:checked{background:var(--m-green)}.menu-toggle input:checked:after{transform:translate(26px,-50%)}.menu-toggle input:disabled{cursor:default;opacity:.7}.menu-toggle label{display:grid;gap:1px;cursor:pointer}.toggle-name{font-weight:800;font-size:18px}.toggle-hint{font-size:16px;color:var(--m-ink-soft)}@media(prefers-reduced-motion:reduce){.menu-toggle input,.menu-toggle input:after{transition:none}}.menu fieldset{border:0;margin:0;padding:0;min-width:0}.menu fieldset:disabled{opacity:1}.room-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-bottom:10px}.room-head h1{display:flex;align-items:center;gap:16px;margin:0}.room-word{font:900 36px/1 var(--m-display)}.room-code{display:inline-flex;gap:8px}.code-tile{display:grid;place-items:center;width:58px;height:66px;border:4px solid var(--m-ink);border-radius:14px;background:var(--m-paper);box-shadow:0 5px 0 var(--m-ink);font:900 40px/1 var(--m-display)}.seat-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}.seat-list li{display:grid;grid-template-columns:46px 1fr auto auto;align-items:center;gap:12px;padding:8px 12px;border:3px solid color-mix(in srgb,var(--m-ink) 35%,transparent);border-left:10px solid var(--who);border-radius:14px;background:var(--m-paper)}.seat-list li.offline{opacity:.6}.seat-list img{display:block;filter:drop-shadow(0 2px 2px #0007)}.seat-name{font:900 21px/1.2 var(--m-display);overflow-wrap:anywhere}.seat-tags{display:flex;gap:6px}.menu .tag{margin:0;padding:2px 10px;border:0;border-radius:999px;background:var(--m-ink);color:#fff;font-size:14px;font-weight:800}.menu .tag.warn{background:var(--m-red);color:#fff}.colour-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 4px}.menu .swatch-btn{width:40px;height:40px;padding:0;border:3px solid var(--m-ink);border-radius:50%}.menu .swatch-btn.on{outline:4px solid var(--m-gold);outline-offset:2px}.menu .swatch-btn:disabled{opacity:.2;cursor:not-allowed}.menu .custom-colour{margin-left:6px;font-weight:700}.menu .custom-colour input[type=color]{width:46px;height:40px;border:3px solid var(--m-ink);border-radius:10px;background:none;padding:2px}.menu .chat .chat-log{height:200px;margin-bottom:10px;padding:10px 14px;overflow-y:auto;border:3px solid var(--m-ink);border-radius:14px;background:var(--m-paper);font-size:18px}.menu .chat .row{display:flex;gap:10px;flex-wrap:nowrap}.menu .chat .row input{flex:1;min-width:0}.menu .chat .row button{min-height:52px;padding:0 20px;border:3px solid var(--m-ink);border-radius:12px;background:var(--m-paper);font-weight:800;box-shadow:0 4px 0 var(--m-ink)}.timer-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.timer-grid>label{display:grid;gap:6px;align-content:start}.timer-grid select{width:100%}.timer-toggles,.timer-grid .multipliers{grid-column:1 / -1}.timer-grid .multipliers{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 14px}.timer-grid .multipliers h3{grid-column:1 / -1;margin:6px 0 0}.timer-grid .multipliers label{display:grid;gap:4px;font-weight:800}.menu select:disabled,.menu input:disabled{opacity:.75;cursor:default}@media(max-width:1080px){.menu.with-island{grid-template-columns:minmax(0,640px)}.island svg{max-height:30vh}.menu-columns,.join-grid,.timer-grid{grid-template-columns:1fr}.menu-stack+.menu-stack>.menu-section:first-child{border-top:3px dashed color-mix(in srgb,var(--m-ink) 25%,transparent)}}@media(max-width:560px){.menu{padding:16px}.menu-sheet{padding:20px 18px 22px}.menu-footer{margin:6px -18px -22px;padding:14px 18px}.menu .choice{grid-template-columns:72px 1fr}.code-tile{width:46px;height:54px;font-size:32px}}html[data-contrast=high] .menu{--m-ink: #fff;--m-ink-soft: #e6e6e6;--m-parch: #000;--m-parch-2: #111;--m-paper: #000;background:#000}html[data-contrast=high] .menu-sheet{box-shadow:none}html[data-contrast=high] .menu .choice.primary,html[data-contrast=high] .menu-btn.primary{background:#ffe14d;color:#000}html[data-contrast=high] .menu .choice.primary *{color:#000}
