:root{--font-display:"Palatino Linotype", Palatino, "Book Antiqua", "URW Palladio L", Georgia, serif;--font-ui:"Avenir Next", Avenir, "Segoe UI", system-ui, -apple-system, sans-serif;--katan-font-display:var(--font-display);--walnut-950:#160d07;--walnut-900:#1f130b;--walnut-800:#2b1b0f;--walnut-700:#3b2716;--walnut-600:#4e3520;--brass:#d6b06a;--brass-bright:#f2d594;--brass-dim:#d6b06a4d;--brass-faint:#d6b06a24;--cream:#f6ead0;--cream-dim:#f6ead0ad;--cream-faint:#f6ead085;--parchment:#f3e5c3;--parchment-deep:#e6d3a6;--ink:#2d2015;--ink-soft:#6a5440;--sea:#2c6a88;--ember:#c0472f;--leaf:#79a352;--plaque:linear-gradient(180deg, #402a18f0, #26180df2);--plaque-edge:inset 0 1px 0 #ffe6b41f, inset 0 -1px 0 #00000059;--shadow-soft:0 10px 24px #0a05026b, 0 2px 5px #0a050259;--shadow-deep:0 24px 60px #0804018c, 0 4px 10px #08040166;--radius-s:7px;--radius-m:11px;--radius-l:16px;--ease-out:cubic-bezier(.22, .8, .24, 1);--katan-player-red:#b8312a;--katan-player-blue:#2f5ea8;--katan-player-orange:#e07b21;--katan-player-white:#eee7d8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;accent-color:var(--brass)}[data-color=red]{--pc:var(--katan-player-red);--pc-ink:#fff4ec}[data-color=blue]{--pc:var(--katan-player-blue);--pc-ink:#eef4ff}[data-color=orange]{--pc:var(--katan-player-orange);--pc-ink:#2a1505}[data-color=white]{--pc:var(--katan-player-white);--pc-ink:#2a2118}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--walnut-900);color:var(--cream);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--brass-bright);outline-offset:2px}.sheet :focus-visible,.order-sheet :focus-visible,.offer :focus-visible,.gameover__sheet :focus-visible,.victim-popover :focus-visible,.splash__card :focus-visible{outline-color:#6b4310}::selection{color:inherit;background:#d6b06a73}.table-bg{z-index:0;will-change:transform;pointer-events:none;position:fixed;inset:0}.app{z-index:1;height:100%;position:relative}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--cream-dim)}.small{font-size:13px}.btn{border-radius:var(--radius-s);border:1px solid var(--brass-dim);min-height:38px;box-shadow:var(--plaque-edge), 0 2px 4px #0000004d;color:var(--cream);letter-spacing:.01em;transition:transform .12s var(--ease-out), box-shadow .16s var(--ease-out), background .16s, border-color .16s, opacity .16s;background:linear-gradient(#543921f2,#372414f2);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled):not([aria-disabled=true]){border-color:#f2d5948c;transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn--primary{color:#2b1a08;background:linear-gradient(#f1d18c,#c99a4b);border-color:#f6dea6;box-shadow:inset 0 1px #ffffff8c,inset 0 -2px #784c1659,0 6px 14px #46280859}.btn--primary:hover:not(:disabled){background:linear-gradient(#f7dc9f,#d4a654)}.btn--ghost{box-shadow:none;color:var(--cream-dim);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){color:var(--cream);border-color:var(--brass-faint);background:#fff0d20d}.btn--accept{color:#10200a;background:linear-gradient(#8fb862,#5f8a3a);border-color:#b4d68a}.btn--small{min-height:30px;padding:0 11px;font-size:13px}.btn--large{min-height:48px;padding:0 26px;font-size:16px}.btn--wide{width:100%}.icon-btn{border:1px solid var(--brass-faint);width:32px;height:32px;color:var(--cream-dim);background:#1e130a99;border-radius:50%;place-items:center;transition:color .14s,border-color .14s;display:inline-grid}.icon-btn:hover,.icon-btn.is-on{color:var(--brass-bright);border-color:var(--brass-dim)}.field{flex-direction:column;gap:6px;display:flex}.field--grow{flex:1}.field__label{color:var(--ink-soft);font-size:13px;font-weight:600}.input{border-radius:var(--radius-s);height:42px;color:var(--ink);background:#fffcf2bf;border:1px solid #50371e47;padding:0 13px;transition:border-color .14s,box-shadow .14s;box-shadow:inset 0 1px 2px #3c28141f}.input:focus{border-color:#b08540;outline:none;box-shadow:inset 0 1px 2px #3c28141f,0 0 0 3px #d6b06a59}.input::placeholder{color:#503c286b}.input--code{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;font-size:19px}.form-error{border-radius:var(--radius-s);color:#8e2c19;background:#c0472f1f;margin:0;padding:9px 12px;font-size:14px}.segmented{border:1px solid var(--brass-faint);background:#140c066b;border-radius:9px;flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.segmented__item{min-height:30px;color:var(--cream-dim);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:0 12px;font-size:13.5px;font-weight:600;transition:background .14s,color .14s;display:inline-flex}.segmented__item:hover:not(:disabled){color:var(--cream)}.segmented__item.is-on{color:#2b1a08;background:linear-gradient(#ecca83,#c99a4b);box-shadow:inset 0 1px #ffffff73}.segmented__item:disabled{cursor:default}.segmented__item:disabled:not(.is-on){opacity:.45}.segmented__dot{background:var(--pc,#888);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 1px #0000004d}.stepper{border:1px solid var(--brass-faint);background:#140c066b;border-radius:9px;align-items:center;gap:2px;padding:3px;display:inline-flex}.stepper__btn{background:#fff0d20f;border:0;border-radius:6px;width:30px;height:30px;font-size:17px;line-height:1}.stepper__btn:disabled{opacity:.35;cursor:default}.stepper__value{text-align:center;min-width:34px;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:18px}.presence-dot{background:#6d6256;border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 0 2px #00000040}.presence-dot.is-on{background:#8fd16a;box-shadow:0 0 0 2px #00000040,0 0 8px #8fd16ab3}.tip{display:inline-flex;position:relative}.tip[data-tip]:not([data-tip=""]):after{content:attr(data-tip);border:1px solid var(--brass-dim);width:max-content;max-width:240px;color:var(--cream);text-align:center;white-space:normal;box-shadow:var(--shadow-soft);pointer-events:none;opacity:0;transition:opacity .12s, transform .12s var(--ease-out);z-index:50;background:#160d07f5;border-radius:7px;padding:7px 10px;font-size:12.5px;font-weight:500;line-height:1.35;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px)}.tip[data-tip]:not([data-tip=""]):hover:after,.tip[data-tip]:not([data-tip=""]):has(:focus-visible):after{opacity:1;transition-delay:.22s;transform:translate(-50%)}.splash{place-items:center;height:100%;display:grid}.splash__card{border-radius:var(--radius-l);background:var(--parchment);max-width:440px;color:var(--ink);box-shadow:var(--shadow-deep);text-align:center;padding:30px 32px}.splash__card h1{font-family:var(--font-display);margin:0 0 8px;font-size:26px;font-weight:600}.splash__card .muted{color:var(--ink-soft);margin:0 0 20px}.splash__spinner{border:3px solid var(--brass-faint);border-top-color:var(--brass-bright);border-radius:50%;width:42px;height:42px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toasts{z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border:1px solid var(--brass-dim);max-width:min(460px,90vw);color:var(--cream);box-shadow:var(--shadow-soft);text-align:left;background:#1c1109f2;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:500}.toast--error{background:linear-gradient(#5c1c10f5,#3e120af5);border-color:#e66e5099}.toast--success{border-color:#a0d2788c}.conn-banner{box-shadow:var(--shadow-deep), 0 0 0 4px #c0472f2e;z-index:180;background:linear-gradient(#6e2412fa,#4a180cfa);border:1px solid #f08264a6;border-top:0;border-radius:0 0 14px 14px;align-items:center;gap:12px;padding:11px 22px;font-size:15px;font-weight:700;display:flex;position:fixed;top:0;left:50%;translate:-50%}.conn-banner__detail{color:#ffe1d2cc;font-size:13px;font-weight:500}.conn-banner--outdated{background:#28341ef7;border-color:#aad28280}.conn-banner__pulse{background:#f08f6a;border-radius:50%;width:9px;height:9px;animation:1.1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25}}.conn-dot{place-items:center;width:32px;height:32px;display:inline-grid}.conn-dot__light{background:#7d7166;border-radius:50%;width:10px;height:10px}.conn-dot--open .conn-dot__light{background:#8fd16a;box-shadow:0 0 10px #8fd16abf}.conn-dot--connecting .conn-dot__light,.conn-dot--reconnecting .conn-dot__light{background:#f0b45a;animation:1s ease-in-out infinite pulse}.conn-dot--outdated .conn-dot__light,.conn-dot--closed .conn-dot__light{background:#e06a4f}.seat-switcher{z-index:150;box-shadow:var(--shadow-soft);background:#0e161ef2;border:1px solid #78b4dc59;border-radius:12px;align-items:center;gap:8px;padding:6px 8px;font-size:12.5px;display:flex;position:fixed;bottom:12px;left:12px}.game~.seat-switcher{width:calc(var(--side-w) - 16px);flex-wrap:wrap;align-content:center;gap:4px 8px;height:62px;padding:4px 6px;font-size:12px;inset:10px 12px auto auto}.app[data-dev] .game__side{padding-top:80px}.game~.seat-switcher .seat-switcher__tag{display:none}.game~.seat-switcher .seat-switcher__seats{flex-wrap:nowrap;width:100%}.game~.seat-switcher .seat-chip{flex:1;min-width:0;height:24px;padding:0 6px}.game~.seat-switcher .seat-chip__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.seat-switcher__tag{display:none}.game~.seat-switcher .seat-switcher__seats{flex-wrap:wrap}.game~.seat-switcher .seat-chip{height:24px;padding:0 7px 0 6px}.game~.seat-switcher .seat-chip__name{text-overflow:ellipsis;white-space:nowrap;max-width:52px;overflow:hidden}.seat-switcher__tag{color:#bfe1f5;background:#78b4dc33;border-radius:6px;padding:2px 7px;font-weight:700}.seat-switcher__seats{gap:4px;display:flex}.seat-chip{color:#dfe9f0;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:6px;height:28px;padding:0 10px 0 8px;display:inline-flex;position:relative}.seat-chip:disabled{opacity:.4;cursor:default}.seat-chip.is-active{background:#82bee633;border-color:#9fd3f2}.seat-chip.is-empty{border-style:dashed}.seat-chip__dot{background:var(--pc,transparent);border:1px solid #fff6;border-radius:50%;width:10px;height:10px}.seat-chip.has-attention:after{content:"";background:#f2d594;border-radius:50%;width:9px;height:9px;animation:1s ease-in-out infinite pulse;position:absolute;top:-3px;right:-3px;box-shadow:0 0 8px #f2d594}.seat-switcher__toggle,.seat-switcher__rig{color:#c9dbe7;align-items:center;gap:5px;display:inline-flex}.seat-switcher__rig select{color:#e8f1f7;background:#00000059;border:1px solid #ffffff26;border-radius:6px;height:26px;padding:0 4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.home{grid-template-columns:minmax(0,1fr) minmax(380px,460px);align-items:center;gap:clamp(24px,5vw,80px);height:100%;padding:clamp(24px,5vh,64px) clamp(24px,7vw,120px);display:grid;overflow:auto}.home-hero{text-align:center;flex-direction:column;align-items:center;display:flex}.home-island{filter:drop-shadow(0 26px 34px #0a05018c);width:min(44vh,400px);height:auto;animation:island-in .9s var(--ease-out) both}@keyframes island-in{0%{opacity:0;transform:translateY(14px)scale(.97)}}.home-title{font-family:var(--font-display);letter-spacing:.04em;color:#0000;filter:drop-shadow(0 3px #3c200abf)drop-shadow(0 12px 22px #00000073);background:linear-gradient(#fff1c9 0%,#f0cf86 42%,#b9853c 100%);-webkit-background-clip:text;background-clip:text;margin:4px 0 0;font-size:clamp(64px,9vw,116px);font-weight:600;line-height:.95}.home-dev{color:#cfe5f2;background:#0e161ebf;border:1px solid #78b4dc59;border-radius:10px;max-width:44ch;margin:18px 0 0;padding:8px 14px;font-size:13.5px}.home-sheet{border-radius:var(--radius-l);background:radial-gradient(120% 80% at 20% 0%, #ffffff8c, transparent 60%), linear-gradient(180deg, var(--parchment), var(--parchment-deep));color:var(--ink);box-shadow:var(--shadow-deep), inset 0 0 0 1px #fff6, inset 0 0 0 6px #a0783c1f;flex-direction:column;gap:18px;padding:26px 26px 22px;display:flex}.home-form{flex-direction:column;gap:12px;display:flex}.home-form .btn--primary{min-height:46px;font-size:16px}.home-join{border-top:1px solid #6446282e;align-items:flex-end;gap:10px;padding-top:16px;display:flex}.home-join .btn{height:42px;color:var(--cream)}.home-games{border-top:1px solid #6446282e;flex-direction:column;gap:8px;padding-top:14px;display:flex}.home-games__title{font-family:var(--font-display);margin:0;font-size:19px;font-weight:600}.home-games .muted{color:var(--ink-soft);margin:0;font-size:14px}.game-list{flex-direction:column;gap:6px;max-height:34vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.game-row{background:#fff6;border:1px solid #6e502d26;border-radius:9px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:8px 10px;display:grid}.game-row__code{font-family:var(--font-display);letter-spacing:.12em;font-size:17px;font-weight:600}.game-row__meta{flex-direction:column;font-size:12.5px;line-height:1.25;display:flex}.game-row__meta .muted{font-size:11.5px}.game-row .btn{color:var(--cream)}.seat-dots{gap:3px;display:inline-flex}.seat-dot{background:var(--pc);border-radius:50%;width:14px;height:14px;box-shadow:inset 0 -2px #0000002e,0 0 0 1px #3c281459}.seat-dot__name{display:none}.seat-dot--empty{background:0 0;box-shadow:inset 0 0 0 1.5px #5a412859}@media (width<=900px){.home{grid-template-columns:1fr;overflow:auto}.home-island{width:220px}}.lobby{flex-direction:column;gap:18px;max-width:1120px;height:100%;margin:0 auto;padding:22px clamp(18px,4vw,40px) 28px;display:flex;overflow:auto}.lobby-head{align-items:center;gap:20px;display:flex}.link-back{font-family:var(--font-display);color:var(--brass-bright);text-shadow:0 2px 6px #00000080;background:0 0;border:0;padding:0;font-size:26px;font-weight:600}.lobby-code{background:var(--plaque);border:1px solid var(--brass-dim);box-shadow:var(--plaque-edge), var(--shadow-soft);border-radius:10px;align-items:baseline;gap:10px;padding:6px 14px;display:flex}.lobby-code__label{color:var(--cream-dim);font-size:13px}.lobby-code__value{font-family:var(--font-display);letter-spacing:.16em;color:var(--brass-bright);font-size:24px;font-weight:600}.share{align-items:center;gap:8px;margin-left:auto;display:flex}.share__url{border:1px solid var(--brass-faint);width:min(340px,34vw);height:32px;color:var(--cream-dim);background:#0f09058c;border-radius:7px;padding:0 10px;font-size:13px}.lobby-join{border-radius:var(--radius-m);background:linear-gradient(180deg, var(--parchment), var(--parchment-deep));color:var(--ink);box-shadow:var(--shadow-soft);align-items:flex-end;gap:18px;padding:14px 18px;display:flex}.lobby-join .field{width:260px}.lobby-join .muted{color:var(--ink-soft);margin:0 0 10px}.seats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.seat-card{border-radius:var(--radius-l);background:var(--plaque);border:1px solid var(--brass-faint);min-height:260px;box-shadow:var(--plaque-edge), var(--shadow-soft);flex-direction:column;align-items:center;gap:10px;padding:14px 14px 16px;transition:border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.seat-card:before{content:"";background:var(--pc,transparent);height:4px;position:absolute;inset:0 0 auto}.seat-card.is-mine{border-color:var(--brass);box-shadow:var(--plaque-edge), var(--shadow-soft), 0 0 0 1px #f2d59459}.seat-card.is-ready{border-color:#8fc86499}.seat-card__top{align-self:stretch;align-items:center;gap:8px;min-height:24px;display:flex}.seat-card__host{color:var(--brass-bright);background:#f2d59429;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.seat-card__kick{color:var(--cream-faint);background:0 0;border:0;margin-left:auto;font-size:12px}.seat-card__kick:hover{color:#f09a80}.seat-card__piece{filter:drop-shadow(0 6px 8px #00000073);place-items:center;height:66px;display:grid}.seat-card__name{font-family:var(--font-display);text-align:center;overflow-wrap:anywhere;margin:0;font-size:21px;font-weight:600}.seat-card__name-input{border:1px solid var(--brass-dim);width:100%;height:36px;color:var(--cream);text-align:center;font-family:var(--font-display);background:#0f090573;border-radius:7px;font-size:19px;font-weight:600}.seat-card__name-input:focus{border-color:var(--brass-bright);outline:none}.swatches{gap:8px;min-height:26px;display:flex}.swatch{background:var(--pc);width:24px;height:24px;transition:transform .12s var(--ease-out), border-color .12s;border:2px solid #ffffff2e;border-radius:50%;padding:0;box-shadow:inset 0 -3px #0003}.swatch:hover:not(:disabled):not(.is-static){transform:scale(1.12)}.swatch.is-on{border-color:var(--brass-bright);box-shadow:inset 0 -3px #0003,0 0 0 3px #f2d59447}.swatch:disabled{opacity:.22;cursor:not-allowed}.ready-toggle{margin-top:auto}.ready-toggle.is-ready{color:#10200a;background:linear-gradient(#8fb862,#5f8a3a);border-color:#b4d68a}.ready-pill{border:1px solid var(--brass-faint);color:var(--cream-dim);border-radius:999px;margin-top:auto;padding:6px 12px;font-size:13px}.ready-pill.is-ready{color:#bfe39b;border-color:#8fc8648c}.seat-card--empty{box-shadow:none;background:#140c0659;border:1.5px dashed #d6b06a47;justify-content:center}.seat-card--empty:before{display:none}.seat-card__ghost{border:1.5px dashed #d6b06a4d;border-radius:50%;width:52px;height:52px}.seat-card__open{color:var(--cream-dim);font-family:var(--font-display);margin:0;font-size:18px}.lobby-bottom{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;display:grid}.options{border-radius:var(--radius-l);background:var(--plaque);border:1px solid var(--brass-faint);box-shadow:var(--plaque-edge), var(--shadow-soft);flex-direction:column;gap:8px;padding:14px 18px;display:flex}.options__title{font-family:var(--font-display);margin:0 0 2px;font-size:19px;font-weight:600}.option{justify-content:space-between;align-items:center;gap:14px;display:flex}.option__label{color:var(--cream-dim);font-size:14px}.options .muted{margin:0}.lobby-start{border-radius:var(--radius-l);border:1px solid var(--brass-faint);text-align:center;background:#140c0659;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:18px;display:flex}.lobby-start__hint{color:var(--cream-dim);margin:0;font-size:14px}.lobby-start .muted{margin:0}@media (width<=980px){.seats{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-bottom{grid-template-columns:1fr}}:root{--card-w:clamp(64px, 5.4vw, 112px);--side-w:clamp(272px, 21vw, 340px);--hand-pad:16px;--bottom-h:calc(var(--card-w) * 1.5 + 12px + var(--hand-pad))}.game{grid-template-columns:minmax(0, 1fr) var(--side-w);grid-template-rows:minmax(0, 1fr) var(--bottom-h);grid-template-areas:"table side""bottom bottom";display:grid;position:fixed;inset:0}.game__table{--board-w:min(100cqw, 100cqh * 1.101);--island-x:calc(10px + (100cqw - var(--board-w)) / 2);--corner-w:calc(var(--island-x) + var(--board-w) * .143);grid-area:table;min-width:0;min-height:0;padding:8px 6px 0 10px;position:relative;container-type:size}.game__banner{z-index:5;width:max-content;min-width:228px;max-width:max(228px, calc(var(--corner-w) - 24px));position:absolute;top:12px;left:14px}.game__side{flex-direction:column;grid-area:side;gap:8px;min-height:0;padding:10px 12px 8px 4px;display:flex}.game__bottom{z-index:6;min-width:0;padding:0 12px var(--hand-pad);grid-area:bottom;align-items:flex-end;gap:14px;display:flex;position:relative}.board{contain:size layout;width:100%;height:100%;position:relative}.board__pieces,.board__spots,.board__ghost{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.board__static{pointer-events:none;will-change:transform;position:absolute;inset:0}.board__shadow{pointer-events:none;background:radial-gradient(closest-side,#0c060299,#0c060252 62%,#0c060200 100%);border-radius:50%;position:absolute;transform:translateY(4%)scale(1.04,1.02)}.board__static svg,.board__static img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;overflow:visible}.board__pieces,.board__ghost{pointer-events:none}.board__spots{-webkit-tap-highlight-color:transparent}.board__spots.is-on{animation:1.8s ease-in-out infinite spots-breathe}.board--picking .board__spots{cursor:crosshair}.board.is-busy .board__spots{cursor:progress}.hover-mark{fill:none;stroke:#fffaf0;stroke-linecap:round;stroke-linejoin:round}.hover-mark--vertex{fill:#fff0be59;stroke-width:5px}.hover-mark--edge{stroke:#fff6d6e6}.hover-mark--hex{fill:#ffecaa38;stroke-width:8px}.piece.is-pending{opacity:.88}.robber-dim{fill:#1c0e0580;pointer-events:none}.spot{cursor:pointer}.spot__hit{fill:#0000;stroke:#0000}.spot--vertex .spot__halo{fill:#ffe29647;stroke:#fff0b8;stroke-width:4px}.spot--vertex .spot__ring{fill:none;stroke:#2816068c;stroke-width:7px}.spot--vertex .spot__core{fill:#fffaf0}.spot--vertex.is-hover .spot__halo{fill:#ffe8a09e;stroke:#fff;stroke-width:5px}.highlights--city .spot__halo{fill:#ffe2961a;stroke-dasharray:8 6}.spot--edge .spot__under{stroke:#2816068c;stroke-linecap:round}.spot--edge .spot__glow{stroke:#ffe4a0d9;stroke-linecap:round;transition:stroke .12s,stroke-width .12s}.spot--edge .spot__dash{stroke:#fffdf6;stroke-linecap:round;stroke-dasharray:1 9}.spot--edge.is-hover .spot__glow{stroke:#ffecaaf2}.spot--hex .spot__edge{fill:none;stroke:#28160673;stroke-width:11px;stroke-linejoin:round}.spot--hex .spot__fill{fill:#ffd6781a;stroke:#ffe7a3;stroke-width:6px;stroke-linejoin:round}.spot--hex.is-hover .spot__fill{fill:#ffe29657;stroke:#fff6d6;stroke-width:8px}.victim-dots__bg{fill:#160d07d1;stroke:#f2d594b3;stroke-width:2px}.victim-dots__dot{stroke:#fffaebf2;stroke-width:3px}.prod-pulses{pointer-events:none;z-index:3;position:absolute;inset:0}.prod-pulse{opacity:0;animation:prod-pulse 1.5s var(--ease-out) forwards;border-radius:50%;position:absolute;translate:-50% -50%;box-shadow:0 0 0 3px #ffe8a0f2,0 0 18px 6px #ffd66ea6}@keyframes prod-pulse{0%{opacity:0;transform:scale(.9)}15%{opacity:1;transform:scale(1.05)}60%{opacity:.85;transform:scale(1.18)}to{opacity:0;transform:scale(1.35)}}.ghost{opacity:.38;transition:opacity .12s}.ghost.is-snapped{opacity:.82}@keyframes spots-breathe{50%{opacity:.6}}.board-tip{border:1px solid var(--brass-dim);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-soft);z-index:4;background:#160d07f0;border-radius:8px;padding:6px 11px;font-size:13px;font-weight:600;position:absolute;translate:-50% calc(-100% - 36px)}.victim-popover{z-index:8;background:linear-gradient(180deg, var(--parchment), var(--parchment-deep));min-width:190px;color:var(--ink);box-shadow:var(--shadow-deep);border-radius:12px;padding:10px;position:absolute;translate:-50% calc(-100% - 30px)}.victim-popover:after{content:"";background:var(--parchment-deep);width:14px;height:14px;position:absolute;bottom:-7px;left:50%;translate:-50%;rotate:45deg}.victim-popover.is-below{translate:-50% 34px}.victim-popover.is-below:after{background:var(--parchment);top:-7px;bottom:auto}.victim-popover__title{font-family:var(--font-display);text-align:center;margin:0 0 8px;font-size:16px;font-weight:600}.victim-popover__list{flex-direction:column;gap:6px;display:flex}.victim{color:var(--ink);text-align:left;transition:background .12s, transform .12s var(--ease-out);background:#ffffff8c;border:1px solid #5a3c1e33;border-radius:8px;align-items:center;gap:9px;padding:7px 10px;display:flex}.victim:hover{background:#fff;transform:translateY(-1px)}.victim__dot{background:var(--pc);border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 1px #0000004d}.victim__name{flex:1;font-weight:700}.victim__count{color:var(--ink-soft);font-size:12.5px}.order-layer{z-index:4;pointer-events:none;place-items:center;padding:76px 28px 28px;display:grid;position:absolute;inset:0}.order-veil{background:radial-gradient(closest-side,#1009048c,#10090438 72%,#10090400 100%);position:absolute;inset:0}.order-sheet{background:radial-gradient(120% 70% at 30% 0%, #ffffff8c, transparent 60%), linear-gradient(180deg, var(--parchment), var(--parchment-deep));width:min(520px,100%);color:var(--ink);box-shadow:var(--shadow-deep), inset 0 0 0 1px #ffffff73, inset 0 0 0 6px #a0783c1a;pointer-events:auto;will-change:transform;border-radius:18px;padding:18px 22px 14px;position:relative}.order-sheet__kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:11px;font-weight:700}.order-sheet__title{font-family:var(--font-display);margin:2px 0 4px;font-size:29px;font-weight:700;line-height:1.08}.order-sheet.is-tiebreak .order-sheet__title,.order-sheet.is-tiebreak .order-sheet__kicker{color:#8c3518}.order-sheet__lead{max-width:48ch;color:var(--ink-soft);margin:0;font-size:14px;line-height:1.4}.order-sheet__lead.is-tie{color:#6e3214;font-weight:600}.order-sheet__lead+.order-sheet__lead{margin-top:2px}.order-rows{flex-direction:column;gap:6px;margin:14px 0 0;padding:0;list-style:none;display:flex}.order-row{background:#fffcf080;border:1px solid #6e4c2824;border-radius:12px;grid-template-columns:minmax(0,1fr) 84px 40px 92px;align-items:center;gap:10px;min-height:52px;padding:5px 12px 5px 20px;display:grid;position:relative}.order-row.is-me{background:#fff9e4e0;border-color:#96641e80}.order-row.is-tied{border-color:#8c351852}.order-row.is-first{background:#fff6d6eb;border-color:#b98737b3}.order-row__swatch{background:var(--pc);border-radius:12px 0 0 12px;width:7px;position:absolute;top:0;bottom:0;left:0;box-shadow:inset -1px 0 #00000026}.order-row__name{white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:7px;min-width:0;font-size:15.5px;font-weight:650;display:flex;overflow:hidden}.order-row__you{color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase;background:#78501e1f;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:700}.order-dice{justify-content:center;gap:2px;transition:opacity .24s;display:inline-flex}.order-dice svg{display:block}.order-dice.is-faded{opacity:.42}.order-dice--empty{gap:9px}.order-dice__slot{border:1.5px dashed #6e4c2861;border-radius:6px;width:23px;height:23px}.order-row__total{font-family:var(--font-display);text-align:center;font-variant-numeric:tabular-nums;font-size:27px;font-weight:700;line-height:1;transition:opacity .16s}.order-row__total.is-rolling{opacity:0}.order-row__total.is-tied,.order-row.is-pending:not(.is-tied) .order-row__total{color:#6e4c2873}.order-row__status{color:var(--ink-soft);white-space:nowrap;justify-self:end;font-size:13px;font-weight:600}.order-row.is-me.is-pending .order-row__status{color:#8a5410}.order-wait{align-items:center;gap:7px;display:inline-flex}.order-wait:before{content:"";background:#b4802e;border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite order-breathe}@keyframes order-breathe{50%{opacity:.2}}.order-place{min-width:46px;height:30px;color:var(--ink);font-family:var(--font-display);background:#78501e21;border-radius:999px;place-items:center;padding:0 9px;font-size:16px;font-weight:700;display:inline-grid}.order-place.is-first{color:#2b1a08;background:linear-gradient(#f1d18c,#c99a4b);box-shadow:inset 0 1px #ffffff8c,0 2px 6px #5a3c144d}.order-sheet__foot{border-top:1px solid #6446282e;align-items:center;gap:14px;min-height:52px;margin-top:14px;padding-top:12px;display:flex}.order-sheet__roll{flex:none;position:relative}.order-sheet__roll kbd{font-family:var(--font-ui);color:#2b1a08bf;border:1px solid #46280859;border-radius:4px;padding:0 5px;font-size:10.5px;font-weight:700}.order-sheet__roll:not(:disabled):after{content:"";border-radius:inherit;opacity:0;pointer-events:none;animation:1.6s ease-in-out infinite glow-fade;position:absolute;inset:-1px;box-shadow:0 0 20px #d6a0468c}.order-sheet__hint{color:var(--ink-soft);flex:1;margin:0;font-size:13.5px}.turn-banner{background:var(--plaque);border:1px solid var(--brass-faint);box-shadow:var(--plaque-edge), var(--shadow-soft);border-radius:13px;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:9px 10px 9px 19px;display:flex;position:relative}.turn-banner.is-mine{box-shadow:var(--plaque-edge), var(--shadow-soft), 0 0 0 1px #f2d5944d, 0 0 26px #f2d5942e;border-color:#f2d594bf}.turn-banner:after{content:"";opacity:0;pointer-events:none;border-radius:16px;position:absolute;inset:-4px;box-shadow:0 0 0 2px #f2d594e6,0 0 30px 6px #f2d59473}.turn-banner.is-arriving:after{animation:banner-arrive 1.2s var(--ease-out)}@keyframes banner-arrive{0%,to{opacity:0}18%{opacity:1}}.turn-banner__swatch{background:var(--pc);border-radius:13px 0 0 13px;width:7px;position:absolute;top:0;bottom:0;left:0}.turn-banner__text{flex:160px;min-width:0}.turn-banner__title{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:19px;font-weight:600;line-height:1.15}.turn-banner.is-mine .turn-banner__title{color:var(--brass-bright)}.turn-banner__detail{color:var(--cream-dim);margin:3px 0 0;font-size:12.5px;line-height:1.3}.turn-banner__tools{align-items:center;gap:8px;margin-left:auto;display:flex}.turn-banner__cancel{gap:6px}.turn-banner__cancel kbd{border:1px solid var(--brass-dim);font-family:var(--font-ui);color:var(--cream-dim);border-radius:4px;padding:0 4px;font-size:10px;font-weight:700}.dice{background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:2px 6px 2px 2px;transition:opacity .24s;display:inline-flex}.dice__pair{gap:2px;display:inline-flex}.dice__pair svg{display:block}.dice__total{min-width:26px;font-family:var(--font-display);color:var(--cream);text-align:center;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;transition:opacity .16s}.dice__total.is-rolling{opacity:0}.dice__total.is-seven{color:#ff9a7e}.dice--stale{opacity:.5}.dice--none .dice__pair{opacity:.35}.dice--ready{background:#f2d5941a;border-color:#f2d59499;position:relative}.dice--ready:after,.action--roll:not(.is-disabled):after{content:"";border-radius:inherit;opacity:0;pointer-events:none;animation:1.6s ease-in-out infinite glow-fade;position:absolute;inset:-1px;box-shadow:0 0 18px #f2d59473}.dice--ready:hover{background:#f2d59433}.dice__label{color:var(--brass-bright);font-size:13px;font-weight:700}@keyframes glow-fade{50%{opacity:1}}.timer{flex:none;place-items:center;width:34px;height:34px;display:inline-grid;position:relative}.timer svg{position:absolute;inset:0}.timer__track{fill:none;stroke:#fff0d21f;stroke-width:3px}.timer__arc{fill:none;stroke:var(--brass-bright);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.timer.is-low .timer__arc{stroke:#ff8c6b}.timer__text{font-variant-numeric:tabular-nums;font-size:10px;font-weight:700}.table-info{border:1px solid var(--brass-faint);box-shadow:var(--shadow-soft);background:#160d07b3;border-radius:12px;flex:none}.top-bar{align-items:center;gap:8px;padding:3px 4px 1px 12px;display:flex}.top-bar .conn-dot{width:22px;margin-right:2px}.top-bar__home{font-family:var(--font-display);color:var(--brass-bright);background:0 0;border:0;border-radius:6px;padding:0;font-size:18px;font-weight:600}.top-bar__code{white-space:nowrap;font-family:var(--font-display);letter-spacing:.1em;color:var(--cream-dim);font-size:13.5px}.top-bar__turn{color:var(--cream-dim);white-space:nowrap;font-size:12.5px}.top-bar__spacer{flex:1}.bank{border-top:1px solid var(--brass-faint);justify-content:space-between;align-items:center;gap:2px;margin:0 6px;padding:5px 4px 6px;display:flex}.bank__item{font-variant-numeric:tabular-nums;color:var(--cream);align-items:center;gap:3px;font-size:13px;font-weight:700;display:inline-flex}.bank__item svg{display:block}.bank__item.is-low .bank__count{color:#ff9a7e}.bank__item.is-empty{opacity:.55}.bank__item--dev{border-left:1px solid var(--brass-faint);padding-left:8px}.plates{flex-direction:column;gap:7px;display:flex}.plate{border-radius:var(--radius-m);background:var(--plaque);border:1px solid var(--brass-faint);box-shadow:var(--plaque-edge), var(--shadow-soft);padding:8px 11px 9px 16px;position:relative}.plate:before{content:"";border-radius:var(--radius-m) 0 0 var(--radius-m);background:var(--pc);width:6px;position:absolute;top:-1px;bottom:-1px;left:-1px}.plate:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .26s var(--ease-out);background:linear-gradient(90deg,#f2d59421,#f2d59400 70%);position:absolute;inset:-1px;box-shadow:inset 0 0 0 1px #f2d594d9,0 0 0 1px #f2d59459,0 0 24px #f2d59438}.plate.is-current:after{opacity:1}.plate.is-current:before{width:8px}.plate.is-away{background:linear-gradient(#302218eb,#1e150ef0);border-style:dashed;border-color:#e68c6e8c}.plate.is-away .plate__name,.plate.is-away .plate__stats,.plate.is-away .plate__vp{opacity:.55}.plate.is-winner{border-color:var(--brass-bright)}.plate__head{align-items:center;gap:8px;display:flex}.plate__swatch{background:var(--pc);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;box-shadow:0 0 0 1px #00000059}.plate__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-display);flex:1;font-size:17px;font-weight:600;line-height:1.2;overflow:hidden}.offline{color:#ffc2ad;white-space:nowrap;background:#c0472f3d;border:1px solid #f0826499;border-radius:999px;align-items:center;gap:4px;padding:1px 7px 1px 5px;font-size:11.5px;font-weight:700;display:inline-flex}.offline svg{display:block}.plate__vp{font-family:var(--font-display);color:var(--brass-bright);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:22px;font-weight:700;line-height:1}.plate__vp-label{font-family:var(--font-ui);color:var(--cream-dim);margin-left:3px;font-size:10.5px;font-weight:700}.plate__stats{gap:5px;margin-top:6px;display:flex}.stat{font-variant-numeric:tabular-nums;min-width:42px;color:var(--cream);background:#fff0d212;border-radius:7px;align-items:center;gap:4px;padding:2px 7px 2px 5px;font-size:13.5px;font-weight:700;line-height:18px;display:inline-flex;box-shadow:inset 0 0 0 1px #fff0d20f}.stat svg{flex:none;display:block}.stat.is-warn{color:#ffd2c0;background:#d65c3a42;box-shadow:inset 0 0 0 1px #ff96738c}.stat--hidden{color:var(--brass-bright)}.plate__foot{justify-content:flex-end;align-items:center;margin-top:6px;display:flex}.plate__status{color:var(--cream-dim);white-space:nowrap;background:#fff0d214;border-radius:999px;flex:none;align-items:center;gap:5px;padding:1px 8px;font-size:11.5px;font-weight:700;line-height:18px;display:inline-flex}.plate__status.is-good{color:#cdeeb0;background:#82be5038}.plate__status.is-bad{color:#f0b9a6;background:#c85a3c2e}.plate__status.is-warn{color:#ffd09e;background:#e6964638}.plate__status.is-turn{color:var(--brass-bright);background:#f2d59429}.plate__status.is-turn:before{content:"";background:var(--brass-bright);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite pulse;box-shadow:0 0 8px #f2d594cc}.plate__badges{flex-wrap:wrap;gap:4px;margin-left:auto;display:inline-flex}.achv{color:#2b1a08;white-space:nowrap;background:linear-gradient(#f1d18c,#c99a4b);border-radius:999px;align-items:center;gap:4px;padding:1px 8px 1px 5px;font-size:11.5px;font-weight:800;line-height:18px;display:inline-flex;box-shadow:inset 0 1px #ffffff80,0 2px 5px #00000059}.achv svg{display:block}.offers{flex-direction:column;flex:0 auto;gap:8px;min-height:0;margin:-3px;padding:3px;display:flex;overflow:hidden auto}.offers:empty{display:none}.offer{border-radius:var(--radius-m);background:linear-gradient(180deg, var(--parchment), var(--parchment-deep));color:var(--ink);box-shadow:var(--shadow-soft);padding:9px 11px 10px 15px;position:relative}.offer:before{content:"";border-radius:var(--radius-m) 0 0 var(--radius-m);background:var(--pc,var(--brass));width:6px;position:absolute;top:0;bottom:0;left:0}.offer--incoming.is-open{box-shadow:var(--shadow-soft), 0 0 0 2px #f2d594d9}.offer--incoming.is-open:after{content:"";opacity:0;pointer-events:none;border-radius:13px;animation:.9s ease-in-out .15s 2 offer-ring;position:absolute;inset:-3px;box-shadow:0 0 0 3px #ffe296f2,0 0 22px 4px #ffd67899}@keyframes offer-ring{50%{opacity:1}}.offer__head{align-items:center;gap:8px;margin:0 0 7px;display:flex}.offer__title{font-family:var(--font-display);flex:1;margin:0;font-size:15.5px;font-weight:700;line-height:1.2}.offer__count{color:var(--ink-soft);font-size:11.5px;font-weight:600}.offer__dismiss{width:24px;height:24px;color:var(--ink-soft);background:#5a3c1e14;border:0;border-radius:50%;place-items:center;margin:-3px -4px -3px 0;display:grid}.offer__dismiss:hover{color:var(--ink);background:#5a3c1e2e}.offer__terms{align-items:flex-end;gap:8px;display:flex}.offer__side{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.offer__arrow{color:var(--ink-soft);padding-bottom:3px;font-size:15px;line-height:1}.offer__label{color:var(--ink-soft);font-size:11.5px;font-weight:700}.offer__hint{color:var(--ink-soft);margin:7px 0 0;font-size:12px}.offer__hint.is-warn{color:#9a3a1f;font-weight:600}.offer__actions{gap:4px;margin-top:7px;display:flex}.offer__actions .btn{white-space:nowrap;padding:0 10px}.offer__actions .btn--accept{min-width:72px}.offer .btn--ghost{color:var(--ink-soft)}.offer .btn--ghost:hover:not(:disabled){color:var(--ink);background:#ffffff73}.offer__state{color:var(--ink-soft);margin:8px 0 0;font-size:12.5px}.offer__state.is-good{color:#3f6b1f;font-weight:600}.offer__answers{margin:8px 0 0}.offer__responses{flex-direction:column;gap:3px;margin:3px 0 0;padding:0;list-style:none;display:flex}.response{border-radius:7px;align-items:center;gap:8px;min-height:28px;padding:0 4px 0 6px;font-size:13px;transition:background .2s,opacity .2s;display:flex}.response__dot{background:var(--pc);border-radius:50%;flex:none;width:10px;height:10px;box-shadow:0 0 0 1px #0000004d}.response__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.response__state{color:var(--ink-soft);font-size:12px;font-weight:600}.response--accepted{background:#78aa462e}.response--accepted .response__state{color:#3f6b1f}.response--rejected{opacity:.55}.response--pending .response__state:after{content:"";vertical-align:middle;background:currentColor;border-radius:50%;width:5px;height:5px;margin-left:6px;animation:1s ease-in-out infinite pulse;display:inline-block}.offer__cancel{margin-top:4px}.bundle{flex-wrap:wrap;gap:4px;display:inline-flex}.bundle--empty{color:var(--ink-soft);font-size:12.5px}.bundle__item{background:#fff9;border-radius:999px;align-items:center;gap:3px;padding:1px 7px 1px 2px;display:inline-flex;box-shadow:0 0 0 1px #5a3c1e26}.bundle__item svg{display:block}.bundle__n{font-variant-numeric:tabular-nums;font-size:14px;font-weight:800}.log{border:1px solid var(--brass-faint);background:#160d079e;border-radius:12px;flex-direction:column;flex:none;min-height:0;display:flex}.log.is-open{flex:1 1 0;min-height:38px}.log__head{text-align:left;font-family:var(--font-display);color:var(--cream);background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;font-size:15px;font-weight:600;transition:color .14s;display:flex}.log__head:hover{color:var(--brass-bright)}.log__head:hover .log__chevron{border-color:var(--brass-bright)}.log__peek{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-ui);color:var(--cream-dim);flex:1;font-size:12.5px;font-weight:400;overflow:hidden}.log__chevron{border-right:1.5px solid var(--cream-dim);border-bottom:1.5px solid var(--cream-dim);width:8px;height:8px;transition:rotate .18s var(--ease-out);margin-left:auto;translate:0 -2px;rotate:45deg}.log.is-open .log__chevron{translate:0 2px;rotate:225deg}.log__list{flex:1;min-height:0;margin:0;padding:0 12px 10px;font-size:12.5px;line-height:1.4;list-style:none;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 14px);mask-image:linear-gradient(#0000 0,#000 14px)}.log__empty{color:var(--cream-faint);padding:6px 0}.log__line{border-left:2px solid var(--pc,#d6b06a40);color:var(--cream-dim);margin:3px 0;padding:1px 0 1px 9px}.log__line--turn{color:var(--brass-bright);margin-top:10px;font-weight:700}.log__line--dice{color:var(--cream)}.log__line--win{color:var(--brass-bright)}.log__line--robber{color:#f4b8a3}.my-plate{background:var(--plaque);border:1px solid var(--brass-faint);width:clamp(208px,16vw,260px);box-shadow:var(--plaque-edge), var(--shadow-soft);border-radius:14px;flex:none;align-items:center;gap:12px;padding:10px 12px 10px 16px;display:flex;position:relative}.my-plate:before{content:"";background:var(--pc);border-radius:14px 0 0 14px;width:7px;position:absolute;top:-1px;bottom:-1px;left:-1px}.my-plate:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .26s var(--ease-out);position:absolute;inset:-1px;box-shadow:inset 0 0 0 1px #f2d594cc,0 0 0 1px #f2d5944d,0 0 22px #f2d59429}.my-plate.is-current:after{opacity:1}.my-plate__vp{flex-direction:column;align-items:center;min-width:34px;line-height:1;display:flex}.my-plate__vp-num{font-family:var(--font-display);color:var(--brass-bright);font-variant-numeric:tabular-nums;font-size:34px;font-weight:700}.my-plate__vp-of{color:var(--cream-dim);white-space:nowrap;margin-top:2px;font-size:11px;font-weight:600}.my-plate__body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.my-plate__name{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;line-height:1.1;overflow:hidden}.my-plate__meta{flex-wrap:wrap;gap:4px;display:flex}.my-plate__meta .stat{min-width:0;padding:1px 6px 1px 4px;font-size:12.5px}.my-plate .plate__badges{margin-left:0}.hand{--gap:clamp(8px, .8vw, 14px);--card-fit:min(var(--card-w), calc((100cqw - var(--gap) * (var(--slots,4) + 1) - clamp(14px, 1.6vw, 28px)) / var(--slots,4)));flex:1;justify-content:center;align-self:stretch;align-items:flex-end;gap:clamp(14px,1.6vw,28px);min-width:0;display:flex;container-type:inline-size}.hand--spectator{align-items:center}.hand__empty{margin:0 0 calc(var(--card-w) * .5);color:var(--cream-dim);font-family:var(--font-display);white-space:nowrap;font-size:16px}.hand__resources,.hand__dev{align-items:flex-end;gap:var(--gap);display:flex}.hand__resources{min-width:80px}.hand__dev{border-left:1px solid var(--brass-faint);padding-left:clamp(12px,1.4vw,24px)}.stack{width:var(--card-fit);aspect-ratio:2/3;transform-origin:50% 120%;flex:none;position:relative}.stack__card,.stack__under{transition:translate .16s var(--ease-out);position:absolute;inset:0}.stack__card{border-radius:6%/4%;box-shadow:0 5px 10px #0a05026b,0 1px 2px #0a050266}.stack__under{background:linear-gradient(#f2e2bd,#d8bf88);border:1px solid #5a3a1a8c;border-radius:6.5%;box-shadow:0 2px 4px #00000059}.stack:hover .stack__card,.stack:hover .stack__count{translate:0 -8px}.card-svg,.card-img{width:100%;height:auto;display:block}.card-img{aspect-ratio:2/3;-webkit-user-select:none;user-select:none;border-radius:6%/4%}.stack__count{z-index:2;border:1.5px solid var(--brass);min-width:26px;height:26px;color:var(--brass-bright);text-align:center;font-variant-numeric:tabular-nums;animation:count-pop .32s var(--ease-out);transition:translate .16s var(--ease-out);background:radial-gradient(circle at 35% 30%,#4a311c,#24160b);border-radius:13px;padding:0 6px;font-size:13.5px;font-weight:800;line-height:23px;position:absolute;top:-10px;right:-8px;box-shadow:0 2px 5px #00000073}@keyframes count-pop{0%{scale:1.45}to{scale:1}}.dev-card{width:var(--card-fit);flex:none;position:relative}.dev-card__face{width:100%;transition:translate .16s var(--ease-out), opacity .16s;background:0 0;border:0;border-radius:6%/4%;padding:0;display:block;position:relative;box-shadow:0 5px 10px #0a05026b,0 1px 2px #0a050266}.dev-card__face[aria-disabled=true]{cursor:default}.dev-card--playable .dev-card__face:hover{translate:0 -8px}.dev-card--playable .dev-card__face:after{content:"";pointer-events:none;border-radius:8%;position:absolute;inset:-3px;box-shadow:0 0 0 2px #f2d594e6,0 0 14px #f2d5948c}.dev-card--new .dev-card__face,.dev-card--blocked .dev-card__face{opacity:.62}.dev-card--new .dev-card__face:hover,.dev-card--blocked .dev-card__face:hover{opacity:.9}.dev-card__new{background:var(--sea);color:#fff;letter-spacing:.02em;border-radius:5px;padding:1px 6px;font-size:10.5px;font-weight:800;position:absolute;top:8%;left:-6px;box-shadow:0 2px 4px #00000059}.dev-card__play,.dev-card__tag{z-index:2;white-space:nowrap;border-radius:999px;padding:2px 11px;font-size:12px;font-weight:800;line-height:1.35;position:absolute;bottom:-9px;left:50%;translate:-50%}.dev-card__play{color:#2b1a08;transition:translate .12s var(--ease-out), background .12s;background:linear-gradient(#f1d18c,#c99a4b);border:1px solid #f6dea6;box-shadow:0 3px 8px #00000073}.dev-card__play:hover{background:linear-gradient(#f7dc9f,#d4a654)}.dev-card__tag{border:1px solid var(--brass-dim);color:var(--cream);background:#1e130af0;font-weight:700}.dev-card--victory .dev-card__tag{color:var(--brass-bright)}.hand--compact .dev-card__play,.hand--compact .dev-card__tag{padding:1px 7px;font-size:11px}.hand--compact .dev-card--new .dev-card__tag{display:none}.action-bar{background:var(--plaque);border:1px solid var(--brass-faint);box-shadow:var(--plaque-edge), var(--shadow-soft);border-radius:15px;flex:none;gap:5px;padding:7px;display:flex;position:relative}.action-slot{display:inline-flex}.action{width:clamp(56px,4.4vw,72px);height:clamp(58px,4.5vw,72px);box-shadow:var(--plaque-edge), 0 2px 4px #0000004d;color:var(--cream);transition:transform .12s var(--ease-out);background:linear-gradient(#6e4c2cf2,#422b18f2);border:1px solid #d6b06a6b;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:6px 0 0;display:flex;position:relative}.action svg{color:var(--brass-bright);display:block}.action:hover:not(.is-disabled){background:linear-gradient(#7e5834fa,#4c321cfa);border-color:#f2d594d9;transform:translateY(-2px)}.action:active:not(.is-disabled){transform:translateY(0)}.action.is-disabled{cursor:not-allowed;box-shadow:none;color:#f6ead080;background:#281a0f8c;border-color:#d6b06a24}.action.is-disabled svg{color:#f6ead066}.action.is-primary{box-shadow:var(--plaque-edge), 0 0 0 1px #f2d59459, 0 0 16px #f2d59459;border-color:#f2d594f2}.action.is-active{color:#2b1a08;background:linear-gradient(#f1d18c,#c99a4b);border-color:#f6dea6;box-shadow:inset 0 1px #ffffff80,0 0 14px #f2d59466}.action.is-active svg{color:#2b1a08}.action__label{white-space:nowrap;font-size:11px;font-weight:700;line-height:1}.action__supply{font-variant-numeric:tabular-nums;opacity:.75;font-size:10px;font-weight:700;line-height:1;position:absolute;top:4px;left:6px}.action__kbd,.bar-tip__kbd{min-width:15px;height:15px;font-family:var(--font-ui);border:1px solid;border-radius:4px;place-items:center;padding:0 3px;font-size:9.5px;font-weight:800;line-height:1;display:inline-grid}.action__kbd{opacity:.6;position:absolute;top:4px;right:4px}.action.is-disabled .action__kbd{opacity:.45}.bar-tip{border:1px solid var(--brass-dim);width:max-content;max-width:260px;color:var(--cream);box-shadow:var(--shadow-soft);pointer-events:none;z-index:50;transition:left 90ms var(--ease-out);animation:tip-in .12s var(--ease-out);background:#160d07f7;border-radius:8px;align-items:center;gap:8px;padding:7px 11px;font-size:12.5px;font-weight:600;line-height:1.35;display:flex;position:absolute;bottom:calc(100% + 9px);translate:-50%}.bar-tip__kbd{color:var(--brass-bright);flex:none}@keyframes tip-in{0%{opacity:0;transform:translateY(3px)}}.action-bar.is-offline .action{pointer-events:none}.action-bar__offline{border-radius:inherit;color:#ffc9b3;letter-spacing:.01em;background:#160d07b8;place-items:center;font-size:14px;font-weight:700;display:grid;position:absolute;inset:0}.fly-layer{z-index:120;pointer-events:none;position:fixed;inset:0}.fly{will-change:transform, opacity;position:absolute;top:0;left:0;translate:-50% -50%}.fly svg{display:block}.fly__card,.fly__front,.fly__back{border-radius:6%/4%;display:block;box-shadow:0 8px 12px #0006}.fly__card{width:38px}.fly__card--lg{width:44px}.fly--steal{perspective:500px}.fly__flip{width:44px;height:66px;transform-style:preserve-3d;display:block;position:relative}.fly__front,.fly__back{backface-visibility:hidden;position:absolute;inset:0}.fly__back{transform:rotateY(180deg)}.gameover{z-index:90;background:radial-gradient(#0c070366,#0c0703cc);place-items:center;display:grid;position:fixed;inset:0;overflow:auto}.gameover__sheet{background:radial-gradient(120% 70% at 50% 0%, #fff9, transparent 60%), linear-gradient(180deg, var(--parchment), var(--parchment-deep));width:min(860px,94vw);color:var(--ink);text-align:center;box-shadow:var(--shadow-deep), inset 0 0 0 6px #a0783c1f;border-radius:20px;padding:22px 30px;position:relative}.gameover__crown{filter:drop-shadow(0 3px 4px #5a3c1459);margin:0 auto 2px;display:block}.gameover__kicker{color:var(--ink-soft);margin:0;font-size:14px}.gameover__title{font-family:var(--font-display);margin:0 0 16px;font-size:clamp(36px,4vw,52px);font-weight:700;line-height:1.05}.scores{flex-direction:column;gap:8px;display:flex}.score{min-height:62px;box-shadow:inset 5px 0 0 var(--pc);text-align:left;background:#ffffff73;border-radius:12px;grid-template-columns:22px minmax(110px,160px) 1fr auto 46px;align-items:center;gap:12px;padding:8px 14px;display:grid}.score.is-winner{box-shadow:inset 5px 0 0 var(--pc), 0 0 0 2px #c99a4b, 0 6px 16px #78501433;background:linear-gradient(90deg,#f2d082cc,#fff6dca6)}.score__rank{font-family:var(--font-display);color:var(--ink-soft);font-size:18px}.score__name{min-width:0;font-family:var(--font-display);align-items:center;gap:7px;font-size:19px;font-weight:700;display:flex}.score__you{font-family:var(--font-ui);color:var(--ink-soft);background:#3c28141f;border-radius:5px;padding:0 6px;font-size:11px;font-weight:700}.score__parts{flex-wrap:wrap;gap:5px;display:flex}.score__part{color:var(--ink);white-space:nowrap;background:#5a3c1e17;border-radius:999px;align-items:baseline;gap:5px;padding:2px 8px;font-size:13px;font-weight:600;display:inline-flex}.score__part strong{color:#8a5b16;font-size:12px;font-weight:800}.score__part--road,.score__part--army{background:#c99a4b47}.score__part--cards{background:#2c6a8824}.score__cards{align-items:center;gap:6px;display:inline-flex}.score__cards svg{filter:drop-shadow(0 2px 3px #0000004d);display:block}.score__total{font-family:var(--font-display);text-align:right;font-variant-numeric:tabular-nums;font-size:32px;font-weight:700}.gameover__actions{justify-content:center;gap:10px;margin-top:20px;display:flex}.gameover__actions .btn--ghost{color:var(--ink-soft)}.gameover__actions .btn--ghost:hover{color:var(--ink);background:#fff6}.gameover .muted{color:var(--ink-soft);margin:10px 0 0}.gameover-mini{z-index:90;background:var(--plaque);border:1px solid var(--brass);box-shadow:var(--shadow-soft);font-family:var(--font-display);border-radius:12px;align-items:center;gap:12px;padding:7px 8px 7px 16px;font-size:17px;font-weight:600;display:flex;position:fixed;top:12px;left:50%;translate:-50%}@media (width>=1680px) and (height>=940px){.game__side,.my-plate,.action-bar,.game__banner{zoom:1.12}}.modal-root{z-index:100;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-root--clear{pointer-events:none}.modal-root--clear .sheet{pointer-events:auto}.modal-backdrop{background:radial-gradient(#0c07034d,#0c07039e);position:absolute;inset:0}.sheet{background:radial-gradient(120% 70% at 30% 0%, #ffffff8c, transparent 60%), linear-gradient(180deg, var(--parchment), var(--parchment-deep));width:min(620px,94vw);max-height:calc(100vh - 40px);color:var(--ink);box-shadow:var(--shadow-deep), inset 0 0 0 1px #ffffff73, inset 0 0 0 6px #a0783c1a;border-radius:18px;padding:18px 22px;position:relative;overflow:auto}.sheet--trade{width:min(660px,94vw)}.sheet--discard{width:min(700px,94vw)}.sheet--confirm{width:min(440px,94vw)}.sheet__head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.sheet__title{font-family:var(--font-display);margin:0;font-size:25px;font-weight:700;line-height:1.1}.sheet__subtitle{max-width:52ch;color:var(--ink-soft);margin:4px 0 0;font-size:14px}.sheet__close{width:32px;height:32px;color:var(--ink-soft);background:#fff6;border:1px solid #5a3c1e33;border-radius:50%;place-items:center;display:grid}.sheet__close:hover{color:var(--ink);background:#ffffffbf}.sheet__foot{border-top:1px solid #6446282e;align-items:center;gap:10px;margin-top:16px;padding-top:14px;display:flex}.sheet__hint{color:var(--ink-soft);flex:1;margin:0;font-size:13.5px}.sheet .btn--ghost{color:var(--ink-soft)}.sheet .btn--ghost:hover:not(:disabled){color:var(--ink);background:#ffffff73}.sheet .segmented{background:#50371e1a;border-color:#64462829}.sheet .segmented__item{color:var(--ink-soft)}.sheet .segmented__item:hover:not(:disabled){color:var(--ink)}.sheet .segmented__item.is-on{color:#2b1a08}.stepper--light{background:#50371e1a;border-color:#64462829}.stepper--light .stepper__btn{color:var(--ink);background:#ffffff80}.tabs{border-bottom:1px solid #6446282e;gap:4px;margin-bottom:14px;display:flex}.tab{color:var(--ink-soft);background:0 0;border:0;border-bottom:2.5px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:14px;font-weight:700}.tab.is-on{color:var(--ink);border-bottom-color:#b8873c}.chip-row{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.chip-row__label{color:var(--ink-soft);font-size:13px;font-weight:700}.chip-row__chips{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.chip{background:#ffffff73;border-radius:12px;align-items:center;transition:background .14s,box-shadow .14s;display:flex;box-shadow:inset 0 0 0 1px #64462826}.chip.is-on{background:#fffaf0;box-shadow:inset 0 0 0 1.5px #c99a4b,0 3px 8px #5a3c1426}.chip.is-empty{opacity:.45}.chip__face{color:var(--ink);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:1px;padding:7px 0 6px;display:flex;position:relative}.chip__face svg{display:block}.chip__face:disabled{cursor:default}.chip__count{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:19px;font-weight:700;line-height:1.1}.chip:not(.is-on) .chip__count{color:#3c281459}.chip__have{color:var(--ink-soft);font-size:10.5px}.chip__btn{width:22px;height:100%;min-height:34px;color:var(--ink-soft);background:0 0;border:0;font-size:16px;font-weight:700}.chip__btn:hover:not(:disabled){color:var(--ink)}.chip__face:hover:not(:disabled){background:#ffffff59;border-radius:10px}.chip__btn:disabled{opacity:.25;cursor:default}.trade-target{flex-direction:column;gap:7px;display:flex}.bank-pick{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.bank-pick__row{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.bank-res{color:var(--ink);transition:background .14s, box-shadow .14s, transform .12s var(--ease-out);background:#ffffff73;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 8px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #64462826}.bank-res svg{display:block}.bank-res:hover:not(:disabled){background:#ffffffb3;transform:translateY(-1px)}.bank-res.is-on{background:#fffaf0;box-shadow:inset 0 0 0 1.5px #c99a4b,0 3px 8px #5a3c1426}.bank-res:disabled{opacity:.38;cursor:not-allowed}.bank-res__have{color:var(--ink-soft);font-size:11px}.rate{background:#3c28141a;border-radius:999px;padding:0 7px;font-size:12px;font-weight:800}.rate--generic{color:#1d5571;background:#2c6a8829}.rate--specific{color:#335a17;background:#3f6b1f2e}.discard-progress{justify-content:center;gap:6px;margin:2px 0 16px;display:flex}.discard-progress__pip{background:#5a3c1e29;border-radius:3px;width:22px;height:6px;transition:background .14s}.discard-progress__pip.is-on{background:#b23a22}.discard-cards{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.discard-status{text-align:right;font-weight:600}.discard-status.is-ready{color:#3f6b1f}.discard-card{flex-direction:column;align-items:center;gap:6px;width:104px;display:flex}.discard-card__face{width:100%;transition:transform .14s var(--ease-out);background:0 0;border:0;border-radius:6%/4%;padding:0;position:relative;box-shadow:0 5px 10px #3c230a4d}.discard-card__face:hover:not(:disabled){transform:translateY(-4px)}.discard-card__face:disabled{cursor:default}.discard-card.is-on .discard-card__face:after{content:"";pointer-events:none;border-radius:9%;position:absolute;inset:-3px;box-shadow:0 0 0 2.5px #b23a22}.discard-card__have{color:var(--cream);white-space:nowrap;background:#1e130ad9;border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:700;position:absolute;bottom:6px;left:50%;translate:-50%}.discard-card__picked{color:#fff;background:#b23a22;border:2px solid #fff3e0;border-radius:15px;min-width:30px;height:30px;padding:0 6px;font-weight:800;line-height:26px;position:absolute;top:-8px;right:-8px;box-shadow:0 3px 8px #00000059}.discard-card__controls{align-items:center;gap:2px;display:flex}.discard-card__label{text-align:center;min-width:52px;font-size:13px;font-weight:700}.picker-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.picker-res{color:var(--ink);transition:background .14s, transform .12s var(--ease-out), box-shadow .14s;background:#ffffff73;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:14px 6px 10px;font-weight:700;display:flex;position:relative;box-shadow:inset 0 0 0 1px #64462826}.picker-res:hover:not(:disabled){background:#ffffffbf;transform:translateY(-2px)}.picker-res.is-on{background:#fffaf0;box-shadow:inset 0 0 0 2px #c99a4b,0 4px 10px #5a3c142e}.picker-res:disabled{opacity:.35;cursor:not-allowed}.picker-res svg{display:block}.picker-res__sub{color:var(--ink-soft);font-size:11px;font-weight:500}.picker-res__badge{color:#8a5b16;font-size:13px;position:absolute;top:6px;right:8px}.confirm-dev{align-items:center;gap:18px;display:flex}.confirm-dev svg{filter:drop-shadow(0 6px 10px #3c230a59);flex:none}.confirm-dev p{font-family:var(--font-display);margin:0;font-size:18px;line-height:1.4}
