@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-normal-BCNrxLz_.woff2)format("woff2"),url(/assets/eb-garamond-latin-400-normal-maQnHeKB.woff)format("woff")}@font-face{font-family:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-italic-DSEbMgZu.woff2)format("woff2"),url(/assets/eb-garamond-latin-400-italic-CDFyLPXJ.woff)format("woff")}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-latin-500-normal-DehAIUv0.woff2)format("woff2"),url(/assets/eb-garamond-latin-500-normal-DZU8xF9o.woff)format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-600-normal-Dd5YO2UX.woff2)format("woff2"),url(/assets/cinzel-latin-600-normal-CH_LB4su.woff)format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2)format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff)format("woff")}:root{--bg:#f4efe4;--surface:#fffaf0;--text:#22262a;--muted:#6b6f73;--border:#ddd3c0;--accent:#c8742c;--accent-text:#fff;--danger:#b3261e;--sea-light:#6fa3b5;--sea-dark:#3f7287;--tile-outline:#f6efe0;--token:#f7ecd2;--token-text:#2a2a2a;--token-hot:#b8361e;--highlight:#ffd166;--scrim:#141b20b8;--die:#fffdf7;--die-pip:#22262a;--good:#2e7d32;--good-bg:#e8f5e9;--bad-bg:#fdecea;--brand-ink:#3a2a1c;--gilt:#9a7020;--vermilion:#a63a2b;--nav-bg:#efe5cf;--paper-edge:#d9c398;--serif:"EB Garamond", Garamond, "Iowan Old Style", "Times New Roman", serif;--caps:"Cinzel", "Trajan Pro", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--good:#7fd88a;--good-bg:#16301b;--bad-bg:#3a1a17;--bg:#141b20;--surface:#1d262d;--text:#e9e4d8;--muted:#9aa3a8;--border:#2f3b44;--accent:#e0914a;--accent-text:#1a1206;--danger:#f2827a;--sea-light:#2f5d6d;--sea-dark:#183745;--tile-outline:#1b252b;--scrim:#05080acc;--brand-ink:#efe3c6;--gilt:#d9ae5a;--vermilion:#ec8b72;--nav-bg:#182127;--paper-edge:#3a3224;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--good:#7fd88a;--good-bg:#16301b;--bad-bg:#3a1a17;--bg:#141b20;--surface:#1d262d;--text:#e9e4d8;--muted:#9aa3a8;--border:#2f3b44;--accent:#e0914a;--accent-text:#1a1206;--danger:#f2827a;--sea-light:#2f5d6d;--sea-dark:#183745;--tile-outline:#1b252b;--scrim:#05080acc;--brand-ink:#efe3c6;--gilt:#d9ae5a;--vermilion:#ec8b72;--nav-bg:#182127;--paper-edge:#3a3224;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{text-wrap:balance;margin:0;font-weight:650}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.8rem}p{margin:0;line-height:1.4}.muted{color:var(--muted)}.small{font-size:.85rem}.block{margin-top:4px;display:block}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}button{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:10px;padding:0 16px}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid var(--highlight);outline-offset:2px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.big{width:100%;min-height:52px;font-size:1.05rem}button.quiet{background:0 0}button.danger{color:var(--danger);border-color:var(--danger)}input[type=text],input[type=number],input:not([type]){font:inherit;border:1px solid var(--border);background:var(--bg);min-height:44px;color:var(--text);border-radius:10px;width:100%;min-width:0;padding:0 12px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;min-width:0;padding:14px 16px;display:flex}.seat-dot{border:2px solid #1b1b1b;border-radius:50%;flex:none;width:14px;height:14px;display:inline-block}.seat-dot.big{width:36px;height:36px}.swatch{border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.new-game{max-width:1040px;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;gap:16px;margin:0 auto;display:flex}.new-game-head h1{letter-spacing:.02em;font-size:2rem}.new-game-grid{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=760px){.new-game-grid{grid-template-columns:minmax(0,1fr)}}.segmented{border:1px solid var(--border);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;overflow:hidden}.segmented button{background:0 0;border:0;border-radius:0}.segmented button.on{background:var(--accent);color:var(--accent-text);font-weight:600}.name-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.name-list li{align-items:center;gap:10px;display:flex}.check{align-items:center;gap:10px;min-height:44px;display:flex}.check input{width:20px;height:20px}.preview-head{justify-content:space-between;align-items:center;display:flex}.board-preview .hex-board{max-height:60dvh}.start-button{align-self:center;width:min(100%,360px);min-height:56px;font-size:1.1rem}.match{min-height:100dvh;padding:max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;gap:12px;display:flex}.match-head{align-items:center;gap:12px;display:flex}.match-head h1{font-size:1.25rem}.match-head .quiet{margin-left:auto}.turn-label{font-variant-numeric:tabular-nums}.match-main{flex:1;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (width<=860px){.match-main{grid-template-columns:minmax(0,1fr)}}.board-col{justify-content:center;min-width:0;display:flex}.side{flex-direction:column;gap:12px;min-width:0;display:flex}.whose-turn{align-items:center;gap:8px;font-size:1.05rem;display:flex}.prompt{font-size:1rem}.confirm-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.confirm-row .prompt{flex:180px}.build-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.build-button{text-align:left;flex-direction:column;align-items:flex-start;gap:4px;min-height:64px;padding:8px 10px;display:flex}.build-name{font-weight:600}.end-turn{width:100%}.chips{flex-wrap:wrap;gap:4px 8px;display:inline-flex}.chip{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.chips.tiny{color:var(--muted);font-size:.75rem}.hand{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.card{flex-direction:column;align-items:center;gap:4px;display:flex}.card-face{aspect-ratio:3/4;color:#fff;text-shadow:0 1px 2px #0009;font-variant-numeric:tabular-nums;border:2px solid #00000040;border-radius:8px;place-items:center;width:100%;max-width:100%;font-size:1.3rem;font-weight:700;display:grid}.card.empty .card-face{opacity:.3}.card-name{color:var(--muted);font-size:.72rem}.roll-summary{flex-direction:column;gap:6px;display:flex}.dice-row{align-items:center;gap:8px;display:flex}.die{width:36px;height:36px}.die rect{fill:var(--die);stroke:var(--border);stroke-width:.12px}.die circle{fill:var(--die-pip)}.roll-total{font-variant-numeric:tabular-nums;font-size:1.5rem}.gains{gap:4px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.players{gap:8px;margin:0;padding:0;list-style:none;display:grid}.players li{border-radius:10px;grid-template-columns:14px minmax(0,1fr) auto auto;align-items:center;gap:4px 10px;padding:6px 8px;display:grid}.players li.current{background:color-mix(in srgb, var(--accent) 14%, transparent)}.player-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stat{font-variant-numeric:tabular-nums;font-size:.9rem}.players .detail{grid-column:2/-1}.awards{flex-wrap:wrap;gap:6px;display:flex}.award{background:color-mix(in srgb, var(--highlight) 45%, transparent);color:var(--text);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600}.overlay{z-index:10;background:var(--scrim);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.overlay-card{background:var(--surface);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:14px;width:min(100%,380px);padding:28px 24px;display:flex}.standings{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.standings li{justify-content:space-between;display:flex}.hex-board{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;max-width:900px;max-height:calc(100dvh - 90px)}.tile-outline{fill:none;stroke:var(--tile-outline);stroke-width:4px}.tile-glow{fill:none;stroke:var(--highlight);stroke-width:9px;pointer-events:none}.token-disc{fill:var(--token);stroke:#00000040;stroke-width:1.5px}.token-number{fill:var(--token-text);text-anchor:middle;dominant-baseline:central;font-weight:700}.token-pip{fill:var(--token-text)}.token.hot .token-number,.token.hot .token-pip{fill:var(--token-hot)}.robber path{fill:#3b3a3f;stroke:#141416;stroke-width:1.5px}.robber .robber-shine{fill:none;stroke:#ffffff59;stroke-width:2px;stroke-linecap:round}.robber-shadow{fill:#00000040}.ghost{opacity:.6;pointer-events:none}.target{cursor:pointer}.target-hit{fill:#0000;stroke:#0000;stroke-width:26px}.target-mark{fill:var(--highlight);stroke:#3b2f12;stroke-width:3px;pointer-events:none}line.target-mark{stroke:var(--highlight);stroke-width:8px;stroke-linecap:round;stroke-dasharray:2 12}.target.chosen .target-mark{opacity:0}@media (prefers-reduced-motion:no-preference){.target-mark{animation:1.4s ease-in-out infinite pulse}}@keyframes pulse{50%{opacity:.45}}.debug-id{text-anchor:middle;dominant-baseline:central;fill:#111;paint-order:stroke;stroke:#ffffffd9;stroke-width:3px;pointer-events:none;font-size:11px}.tile-id{font-size:14px;font-weight:700}.overlay-card h2{text-transform:none;letter-spacing:0;color:var(--text);font-size:1.35rem}.error-detail{white-space:pre-wrap;max-width:100%;color:var(--danger);margin:0;font-size:.8rem;overflow-x:auto}.road,.building{pointer-events:none}.tile-target{fill:var(--highlight);fill-opacity:.12;stroke:var(--highlight);stroke-width:6px;stroke-dasharray:10 8;cursor:pointer}.tile-target.chosen{fill-opacity:.32}h3{margin:4px 0 0;font-size:.85rem;font-weight:600}.warn{color:var(--danger)}.panel-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.small-seg{flex:1}.small-seg button{padding:0 8px;font-size:.85rem}.turn-row{grid-template-columns:1fr 2fr;gap:8px;display:grid}.build-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.count-picker{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.count-col{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.card-face.pick{cursor:pointer;min-height:0;padding:0}.card-face.pick:disabled{opacity:.35}.card-face.pick.has{opacity:1;box-shadow:0 0 0 3px var(--accent)}.minus{width:100%;min-height:40px;padding:0;font-size:1.2rem;line-height:1}.resource-chooser{flex-wrap:wrap;gap:6px;display:flex}.choice{align-items:center;gap:6px;padding:0 10px;font-size:.9rem;display:inline-flex}.choice.on{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent);font-weight:600}.recipients{flex-wrap:wrap;gap:0 16px;display:flex}.responses,.dev-cards{gap:8px;margin:0;padding:0;list-style:none;display:grid}.responses li{align-items:center;gap:8px;min-height:44px;display:flex}.responses .player-name{flex:1}.dev-cards li{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.dev-cards li.new-card{border-style:dashed}.card-choice,.offer-status{flex-direction:column;gap:8px;display:flex}.new-game.narrow{max-width:480px}.new-game>.quiet{align-self:center}.center{text-align:center}label[for]{font-size:.9rem}.invite{gap:8px;display:flex}.invite input{font-size:.85rem}.connection{margin-left:auto}.connection+.quiet{margin-left:0}.seats li{grid-template-columns:14px minmax(0,1fr) auto}.account-bar{flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.small-button{min-height:36px;padding:0 10px;font-size:.85rem}.sign-in .big{width:100%}.dev-sign-in{flex-direction:column;gap:6px;display:flex}.new-game-form{flex-direction:column;gap:16px;display:flex}.timer-presets{flex-wrap:wrap;gap:6px;display:flex}.turn-timer{font-variant-numeric:tabular-nums;border:1px solid var(--border);border-radius:8px;margin-right:8px;padding:2px 8px;font-weight:600}.turn-timer.urgent{color:var(--danger);border-color:var(--danger)}.cost-chips .chip{font-variant-numeric:tabular-nums;border-radius:6px;padding:1px 6px}.cost-chips .chip.met{color:var(--text);background:color-mix(in srgb, var(--border) 35%, transparent)}.cost-chips .chip.short{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);font-weight:600}.build-button:disabled{opacity:1;background:color-mix(in srgb, var(--bg) 60%, var(--surface));border-style:dashed}.build-button:disabled .build-name{color:var(--muted)}.build-note{color:var(--muted);font-size:.72rem}.build-hint{margin:0}.harbor{pointer-events:none}.pier-shadow{stroke:#3d2a18;stroke-width:9px;stroke-linecap:round}.pier{stroke:#b8864e;stroke-width:5px;stroke-linecap:round;stroke-dasharray:4 3}.harbor-badge{stroke:#3d2a18;stroke-width:3px}.harbor-badge.generic{fill:#f7ecd2}.harbor-rate,.harbor-kind{text-anchor:middle;dominant-baseline:central;fill:#1b1b1b;paint-order:stroke;stroke:#ffffffbf;stroke-width:3px;font-weight:700}.harbor-rate{font-size:22px}.harbor-kind{font-size:12px;font-weight:600}.choice-detail{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}.stats{text-align:center;flex-direction:row;justify-content:space-around}.stats div{flex-direction:column;gap:2px;display:flex}.stats strong{font-variant-numeric:tabular-nums;font-size:1.5rem}.game-group{flex-direction:column;gap:8px;display:flex}.game-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.game-row{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.game-row.attention{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.game-row-main{flex-direction:column;gap:6px;min-width:0;display:flex}.game-row-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.game-players{flex-wrap:wrap;gap:4px 12px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.game-players li{align-items:center;gap:5px;display:inline-flex}.game-players li.me{font-weight:600}.badge{background:var(--accent);color:var(--accent-text);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.75rem;font-weight:600}.health-page{max-width:1440px;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;gap:16px;margin:0 auto;display:flex}.health-head{justify-content:space-between;align-items:center;display:flex}.health-head h1{font-size:1.3rem}.health-banner{border:2px solid var(--text);box-shadow:0 3px 0 var(--text);border-radius:10px;margin:0;padding:10px 14px}.health-banner.good{background:var(--good-bg)}.health-banner.bad{background:var(--bad-bg)}.health-banner ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.health-banner .notices{color:var(--muted);margin-top:6px;font-size:.85rem}.health-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}@media (width<=1100px){.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.health-grid{grid-template-columns:minmax(0,1fr)}}.health-card{background:var(--surface);border:2px solid var(--text);box-shadow:0 3px 0 var(--text);border-radius:10px;flex-direction:column;gap:8px;min-width:0;padding:14px 16px;display:flex}.health-card.wide{grid-column:1/-1}.health-card h2{color:var(--text);font-weight:800}.big-figure{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700}.health-rows{gap:4px;margin:0;font-size:.85rem;display:grid}.health-rows>div{grid-template-columns:minmax(110px,42%) minmax(0,1fr);gap:10px;display:grid}.health-rows dt{color:var(--muted)}.health-rows dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0}.health-rows dd.good,.health-table td.good{color:var(--good)}.health-rows dd.bad,.health-table td.bad{color:var(--danger)}.health-rows dd.warn{color:var(--accent)}.meter{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.meter div{background:var(--good);height:100%}.meter div.danger{background:var(--danger)}.sparkline{width:100%;height:48px}.sparkline path{fill:none;stroke:var(--danger);stroke-width:1.5px;vector-effect:non-scaling-stroke}.sparkline .baseline{stroke:var(--border);vector-effect:non-scaling-stroke}.table-scroll{overflow-x:auto}.health-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.health-table th{text-align:left;color:var(--muted);padding:4px 8px;font-weight:500}.health-table td{border-top:1px solid var(--border);white-space:nowrap;padding:6px 8px}.health-table .num{text-align:right}.log-head{justify-content:space-between;align-items:baseline;display:flex}.log-controls{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;font-size:.85rem;display:flex}.log-controls label:not(.check){flex-direction:column;gap:2px;display:flex}.log-controls .grow{flex:220px}.log-controls select{font:inherit;border:1px solid var(--border);background:var(--bg);min-height:44px;color:var(--text);border-radius:10px;padding:0 8px}.button-link{border:1px solid var(--border);min-height:44px;color:var(--text);border-radius:10px;align-items:center;padding:0 16px;text-decoration:none;display:inline-flex}.log-view{background:var(--bg);border:1px solid var(--border);white-space:pre;border-radius:8px;max-height:480px;margin:0;padding:10px;font-size:.75rem;line-height:1.5;overflow:auto}.health-foot{margin:0}.wordmark{color:var(--brand-ink);flex-direction:column;line-height:1;display:inline-flex}.wm-pre{font-family:var(--caps);letter-spacing:.32em;text-transform:uppercase;color:var(--vermilion);margin-bottom:.3em;font-size:.34em;font-weight:600}.wm-pre em{font-family:var(--serif);letter-spacing:.02em;text-transform:none;color:var(--gilt);font-size:1.3em;font-style:italic;font-weight:400}.wm-name{font-family:var(--caps);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.wordmark-large{font-size:clamp(1.6rem,6.5vw,3.6rem)}.wordmark-small{font-size:1.15rem}.wordmark-small .wm-pre{letter-spacing:.26em;margin-bottom:.2em;font-size:.48em}.chart-title{letter-spacing:3px;fill:#3a2a1c;font-family:Cinzel,Georgia,serif;font-size:24px;font-weight:700}.chart-subtitle{fill:#a63a2b;font-family:EB Garamond,Garamond,serif;font-size:16px;font-style:italic}.chart-small{letter-spacing:1.5px;fill:#3a2a1c;font-family:Cinzel,Georgia,serif;font-size:9px}.chart-label{fill:#3a2a1c;font-family:EB Garamond,Garamond,serif;font-size:17px;font-style:italic}.app-shell{grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.app-main{flex-direction:column;min-width:0;display:flex}.app-bar{z-index:10;padding:max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));background:var(--nav-bg);border-bottom:1px solid var(--border);align-items:center;gap:12px;display:flex;position:sticky;top:0}.app-bar-brand svg,.nav-brand svg{flex:none}.app-bar-brand,.nav-brand{min-width:0;color:inherit;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.side-nav{background:var(--nav-bg);border-right:1px solid var(--border);padding:max(18px, env(safe-area-inset-top)) 14px max(16px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));flex-direction:column;gap:18px;display:flex;overflow-y:auto}.nav-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:0 4px 16px;display:flex}.nav-close{background:0 0;border-color:#0000;place-items:center;min-width:44px;min-height:44px;margin-left:auto;padding:0;display:grid}.side-nav .nav-expand{display:none}.nav-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-item{min-height:48px;color:var(--text);font-family:var(--serif);border-radius:10px;align-items:center;gap:12px;padding:0 12px;font-size:1.15rem;text-decoration:none;display:flex}.nav-item:hover{background:color-mix(in srgb, var(--gilt) 16%, transparent)}.nav-item[aria-current=page]{background:color-mix(in srgb, var(--gilt) 26%, transparent);font-weight:600}.nav-item:focus-visible,.menu-button:focus-visible,.nav-brand:focus-visible,.app-bar-brand:focus-visible{outline:2px solid var(--gilt);outline-offset:1px}.nav-item .icon{color:var(--vermilion);flex:none}.nav-label{flex:1;align-items:center;gap:8px;display:flex}.nav-label .badge{margin-left:auto}.nav-foot{border-top:1px solid var(--border);flex-direction:column;gap:12px;margin-top:auto;padding:16px 4px 0;font-size:.85rem;display:flex}.nav-account{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.nav-account a{color:var(--vermilion)}.nav-build{font-family:var(--caps);letter-spacing:.14em;color:var(--muted);font-size:.72rem;text-decoration:none}.nav-build:hover{color:var(--text);text-decoration:underline}.menu-button{min-height:44px;font-family:var(--caps);letter-spacing:.16em;text-transform:uppercase;background:0 0;align-items:center;gap:8px;padding:0 14px 0 10px;font-size:.8rem;font-weight:600;display:inline-flex}.page-title{font-family:var(--serif);letter-spacing:0;font-size:clamp(1.9rem,5vw,2.4rem);font-weight:500}@media (width<=959.98px){.side-nav{z-index:30;visibility:hidden;width:min(320px,86vw);transition:transform .22s,visibility 0s linear .22s;position:fixed;inset:0 auto 0 0;transform:translate(-102%);box-shadow:8px 0 30px #0000004d}.nav-open .side-nav{visibility:visible;transition:transform .22s;transform:none}.nav-scrim{z-index:25;background:var(--scrim);position:fixed;inset:0}}@media (width>=960px){.app-shell{grid-template-columns:290px minmax(0,1fr)}.app-main{grid-column:2}.app-bar{display:none}.side-nav{height:100dvh;position:sticky;top:0}.app-shell:not(.compact) .nav-close,.app-shell:not(.compact) .nav-scrim{display:none}.app-shell.compact{grid-template-columns:68px minmax(0,1fr)}.compact:not(.nav-open) .side-nav{align-items:center;gap:10px;padding:12px 8px}.compact:not(.nav-open) .nav-expand{justify-content:center;width:48px;padding:0;display:inline-flex}.compact:not(.nav-open) .menu-button-label,.compact:not(.nav-open) .nav-head,.compact:not(.nav-open) .nav-foot{display:none}.compact:not(.nav-open) .nav-item{justify-content:center;width:48px;padding:0}.compact:not(.nav-open) .nav-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.compact.nav-open .side-nav{z-index:30;width:290px;position:fixed;inset:0 auto 0 0;box-shadow:8px 0 30px #0000004d}.compact.nav-open .nav-scrim{z-index:25;background:var(--scrim);position:fixed;inset:0}}@media (prefers-reduced-motion:reduce){.side-nav,.nav-open .side-nav{transition:none}}.home-main{width:100%;min-width:0;max-width:1180px;padding:20px max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;gap:20px;margin:0 auto;display:flex}.home-hero{align-items:center;gap:clamp(12px,3vw,24px);display:flex}.home-crest{flex:none;width:clamp(64px,12vw,112px);height:auto}.home-hero-text{flex-direction:column;gap:10px;min-width:0;display:flex}.home-tagline{font-family:var(--serif);color:var(--muted);font-size:clamp(1.05rem,2.4vw,1.3rem);font-style:italic}.home-art{box-shadow:0 0 0 1px var(--paper-edge), 0 14px 34px #28190a47;border-radius:3px;margin:0;line-height:0;overflow:hidden}.island-chart{width:100%;height:auto;display:block}.home-actions{justify-items:center;gap:10px;display:grid}@media (width>=960px){.home-actions{display:none}.home-main{padding:40px 40px 32px}}.builds-page{min-height:100dvh}.builds{max-width:940px;padding:40px max(16px, env(safe-area-inset-right)) max(48px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto}.builds-heading{font-family:var(--serif);text-transform:none;letter-spacing:0;color:var(--text);font-size:clamp(2.2rem,6vw,3.1rem);font-weight:500}.builds-lede{color:var(--muted);margin-top:12px;font-size:1.1rem}.builds-lede strong{color:var(--text)}.build-list{margin:36px 0 0;padding:0;list-style:none}.build{grid-template-columns:250px minmax(0,1fr);gap:10px 32px;padding:0 0 40px 40px;display:grid;position:relative}.build:before{content:"";background:var(--border);width:2px;position:absolute;top:22px;bottom:-2px;left:8px}.build:last-child:before{display:none}.build-dot{border:2px solid var(--muted);background:var(--bg);border-radius:50%;width:18px;height:18px;position:absolute;top:2px;left:0}.build.current .build-dot{background:var(--gilt);border-color:var(--brand-ink)}.build-meta{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.build-number{font-family:var(--caps);letter-spacing:.18em;text-transform:uppercase;font-size:.9rem;font-weight:700}.build-meta time{color:var(--muted)}.build-current{background:color-mix(in srgb, var(--gilt) 20%, transparent);color:var(--brand-ink);border-radius:999px;margin-top:6px;padding:4px 12px;font-size:.85rem;font-weight:600}.build-body h3{font-family:var(--serif);margin-bottom:10px;font-size:1.75rem;font-weight:500}.build-body ul{flex-direction:column;gap:8px;margin:0;padding-left:1.2em;font-size:1.02rem;line-height:1.55;list-style:outside;display:flex}@media (width<=700px){.build{grid-template-columns:minmax(0,1fr)}}.bot-tag{border:1px solid var(--border);color:var(--muted);letter-spacing:.02em;white-space:nowrap;vertical-align:middle;border-radius:999px;margin-left:6px;padding:0 7px;font-size:.72rem;font-weight:600;display:inline-block}.bot-actions{flex-wrap:wrap;gap:8px;display:flex}.bot-actions button{flex:180px}.seat-kind{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);border-radius:10px;flex:none;max-width:44%;padding:0 8px}.game-row-actions{flex-direction:column;align-items:stretch;gap:6px;display:flex}.host-delete{border-top:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:8px;padding-top:8px;display:flex}.signin-loading{text-align:center;padding:24px 16px}.signin-screen{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));place-items:center;display:grid}.signin-card{text-align:center;flex-direction:column;align-items:center;gap:14px;width:min(100%,440px);display:flex}.signin-card h1{margin:0}.signin-card .wordmark-large{font-size:clamp(1.6rem,8vw,2.6rem)}.signin-card .sign-in{text-align:left;width:100%}.admin-page{max-width:820px}.admin-section h2+p{margin-top:-4px}.access-form{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:8px;display:grid}.access-form input[type=email]{font:inherit;border:1px solid var(--border);background:var(--bg);min-height:44px;color:var(--text);border-radius:10px;min-width:0;padding:0 12px}@media (width<=600px){.access-form{grid-template-columns:minmax(0,1fr)}}.access-list,.admin-games{gap:6px;margin:0;padding:0;list-style:none;display:grid}.access-list>li{background:color-mix(in srgb, var(--border) 30%, transparent);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;padding:8px 10px;display:grid}.access-list>li>.muted{grid-column:1}.access-list>li>button{grid-area:1/2/span 2}.access-email{overflow-wrap:anywhere;font-weight:600}.admin-games>li{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.admin-game-main{flex-direction:column;gap:4px;min-width:0;display:flex}.event-notices{z-index:20;top:calc(env(safe-area-inset-top,0px) + 12px);pointer-events:none;flex-direction:column;gap:6px;width:min(520px,100vw - 32px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.event-notice{border:1px solid var(--border);border-left:4px solid var(--gilt);background:var(--surface);border-radius:10px;padding:8px 12px;font-size:.92rem;line-height:1.45;animation:.25s ease-out notice-in;box-shadow:0 6px 18px #0000002e}@media (width<=760px){.event-notices{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 12px)}}.event-notice.ev-turn{font-family:var(--serif);padding:10px 14px;font-size:1.2rem;font-weight:600}@keyframes notice-in{0%{transform:translateY(-6px)}}.ev-who{align-items:center;gap:5px;font-weight:600;display:inline-flex}.ev-who .seat-dot{border-width:1.5px;width:10px;height:10px}.ev-dice{vertical-align:middle;gap:2px;display:inline-flex}.ev-dice .die{width:18px;height:18px}.ev-detail{margin-top:2px;font-size:.85rem;display:block}.ev-gains{flex-wrap:wrap;gap:2px 14px;display:flex}.ev-gain{align-items:center;gap:6px;display:inline-flex}.event-notice .chips.tiny,.log-list .chips.tiny{color:inherit;font-weight:600}.game-log summary{cursor:pointer;list-style-position:inside}.game-log summary h2{display:inline}.log-list{flex-direction:column;gap:4px;max-height:260px;margin:0;padding:0;font-size:.85rem;line-height:1.45;list-style:none;display:flex;overflow-y:auto}.log-list li.log-turn{border-top:1px solid var(--border);font-family:var(--serif);margin-top:6px;padding-top:6px;font-size:1rem}.log-list li.log-turn:first-child{margin-top:0}.card-face{position:relative}.card-gain{background:var(--good);min-width:22px;color:var(--surface);text-align:center;border-radius:999px;padding:1px 5px;font-size:.72rem;font-weight:700;line-height:1.4;animation:.4s ease-out gain-pop;position:absolute;top:-8px;right:-8px;box-shadow:0 1px 3px #0000004d}@keyframes gain-pop{0%{transform:scale(.4)}}.recent-mark{fill:none;stroke:var(--highlight);stroke-width:14px;stroke-linecap:round;stroke-opacity:.55;animation:1.1s ease-in-out 4 recent-pulse}circle.recent-mark{stroke-width:7px}@keyframes recent-pulse{50%{stroke-opacity:1}}@media (prefers-reduced-motion:reduce){.event-notice,.card-gain,.recent-mark{animation:none}}.push-prompt{border-color:var(--gilt);flex-flow:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 12px}.push-prompt .confirm-row{margin:0}.match-head .sound-toggle+.quiet,.match-head .connection+.sound-toggle{margin-left:0}.sound-toggle{place-items:center;min-width:44px;min-height:44px;padding:0;display:grid}.sound-toggle[aria-pressed=false]{color:var(--muted)}
