.sea{fill:var(--colour-sea)}.hex-fill{stroke:var(--colour-background);stroke-width:1.5px;stroke-linejoin:round}.hex-pattern{opacity:.3;pointer-events:none}.icon-cutout{stroke:var(--terrain-gold-fill)}.terrain-forest{color:var(--terrain-forest-icon)}.terrain-forest .hex-fill{fill:var(--terrain-forest-fill)}.terrain-hills{color:var(--terrain-hills-icon)}.terrain-hills .hex-fill{fill:var(--terrain-hills-fill)}.terrain-pasture{color:var(--terrain-pasture-icon)}.terrain-pasture .hex-fill{fill:var(--terrain-pasture-fill)}.terrain-fields{color:var(--terrain-fields-icon)}.terrain-fields .hex-fill{fill:var(--terrain-fields-fill)}.terrain-mountains{color:var(--terrain-mountains-icon)}.terrain-mountains .hex-fill{fill:var(--terrain-mountains-fill)}.terrain-desert{color:var(--terrain-desert-icon)}.terrain-desert .hex-fill{fill:var(--terrain-desert-fill)}.terrain-gold{color:var(--terrain-gold-icon)}.terrain-gold .hex-fill{fill:var(--terrain-gold-fill)}.token-face{fill:var(--token-face);stroke:var(--piece-outline);stroke-width:1px}.token-number{fill:var(--token-ink);dominant-baseline:middle;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.token-pip{fill:var(--token-ink)}.token-hot .token-number,.token-hot .token-pip{fill:var(--token-hot)}.pattern-player{color:var(--piece-outline)}.piece-body{stroke:var(--piece-outline);stroke-width:1.2px;stroke-linejoin:round}.piece-pattern{opacity:.6;pointer-events:none}.art-defs{width:0;height:0;position:absolute;overflow:hidden}.player-red{fill:var(--player-red)}.player-blue{fill:var(--player-blue)}.player-white{fill:var(--player-white)}.player-orange{fill:var(--player-orange)}.player-green{fill:var(--player-green)}.player-brown{fill:var(--player-brown)}.resource-brick{color:var(--terrain-hills-fill)}.resource-lumber{color:var(--terrain-forest-fill)}.resource-wool{color:var(--terrain-pasture-fill)}.resource-grain{color:var(--terrain-fields-fill)}.resource-ore{color:var(--terrain-mountains-fill)}.board-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:80vh;display:block}.hex-sea{fill:var(--colour-sea);stroke:var(--colour-sea)}.hex-lake{fill:var(--colour-lake)}.hex-fog{fill:var(--colour-fog)}.harbour-pier{stroke:var(--token-face);stroke-width:3px;stroke-linecap:round}.harbour-marker{fill:var(--token-face);stroke:var(--piece-outline);stroke-width:1.2px}.harbour-rate{fill:var(--token-ink)}.robber path{fill:var(--piece-outline);stroke:var(--token-face);stroke-width:1.5px;stroke-linejoin:round}.target{cursor:pointer;outline:none}.target-hit{fill:#0000;pointer-events:all}.target-ring{fill:var(--token-face);fill-opacity:.85;stroke:var(--piece-outline);stroke-width:2.5px;pointer-events:none}.target-hex .target-ring{fill-opacity:.35}.target-selected .target-ring{fill:var(--piece-outline);fill-opacity:1;stroke:var(--token-face);stroke-width:4px}.target:focus-visible .target-hit{stroke:var(--token-hot);stroke-width:3px;stroke-dasharray:4 3}.board-status{min-height:1.5em;color:var(--colour-ink);margin:.25rem 0 0}.board-controls{justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.board-controls button{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);min-width:2.75rem;min-height:2.75rem;color:var(--colour-ink);border-radius:.5rem;font-size:1.25rem}.build-panel{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem;margin-top:.5rem;display:grid}.local-controls{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.build-item{text-align:left;border:2px solid var(--colour-ink-muted);background:var(--colour-surface);min-height:2.75rem;color:var(--colour-ink);font:inherit;border-radius:.5rem;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.5rem;display:flex}.build-item[aria-pressed=true]{border-color:var(--colour-ink);box-shadow:inset 0 0 0 2px var(--colour-ink)}.build-item[aria-disabled=true]{opacity:.5;cursor:not-allowed}.build-hint{min-height:1.5em;margin:.25rem 0 0}.build-name{font-weight:700}.build-cost{gap:.25rem;display:flex}.build-resource{align-items:center;display:inline-flex}.build-panel .build-resource svg{width:1.4rem;height:1.4rem}.build-left{color:var(--colour-ink-muted);font-size:.875rem}.local-controls button{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);min-height:2.75rem;color:var(--colour-ink);font:inherit;border-radius:.5rem;padding:0 1rem}.hud{gap:.5rem;margin-top:.5rem;display:grid}.timer{font-variant-numeric:tabular-nums;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;display:grid}.timer-track{background:var(--colour-surface);border:1px solid var(--colour-ink-muted);border-radius:.3rem;height:.6rem;overflow:hidden}.timer-fill{background:var(--colour-ink);height:100%;transition:width .25s linear;display:block}.timer-urgent .timer-fill{background:var(--token-hot)}.timer-urgent .timer-text{color:var(--token-hot);font-weight:700}.players{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.player{border:2px solid var(--colour-ink-muted);background:var(--colour-surface);border-radius:.5rem;grid-template-columns:auto 1fr;gap:.15rem .4rem;padding:.4rem .5rem;display:grid}.player-turn{border-color:var(--colour-ink);box-shadow:inset 0 0 0 2px var(--colour-ink)}.player-offline{opacity:.6}.player-swatch{border:1.5px solid var(--piece-outline);border-radius:.2rem;align-self:center;width:1rem;height:1rem}.player-swatch.player-red{background:var(--player-red)}.player-swatch.player-blue{background:var(--player-blue)}.player-swatch.player-white{background:var(--player-white)}.player-swatch.player-orange{background:var(--player-orange)}.player-swatch.player-green{background:var(--player-green)}.player-swatch.player-brown{background:var(--player-brown)}.player-name{font-weight:700}.player-stats,.player-awards,.player-offline-note{color:var(--colour-ink-muted);flex-wrap:wrap;grid-column:1/-1;gap:.6rem;font-size:.875rem;display:flex}.dice{align-items:center;gap:.5rem;margin:0;display:flex}.dice svg{width:5rem;height:auto}.die{fill:var(--token-face);stroke:var(--piece-outline);stroke-width:1.5px}.die-pip{fill:var(--token-ink)}.dice-total{font-size:1.5rem;font-weight:800}.hand,.dev-cards{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.hand-card,.dev-card{border:2px solid var(--colour-ink-muted);background:var(--colour-surface);border-radius:.5rem;align-items:center;gap:.25rem;min-height:2.75rem;padding:0 .5rem;font-weight:700;display:inline-flex}.hand-card svg{width:1.6rem;height:1.6rem}.hand-new,.dev-new{border-color:var(--colour-ink);box-shadow:inset 0 0 0 2px var(--colour-ink)}.hand-gain{color:var(--token-hot);font-size:.875rem}.end-game{border:2px solid var(--colour-ink);background:var(--colour-surface);border-radius:.5rem;gap:.5rem;padding:.75rem;display:grid}.end-game h2{margin:0}.scores{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.score{grid-template-columns:auto 1fr auto;align-items:center;gap:.25rem .5rem;display:grid}.score-winner .score-name,.score-winner .score-total{font-weight:700}.score-total{font-variant-numeric:tabular-nums}.score-parts{color:var(--colour-ink-muted);grid-column:2/-1;margin:0;padding:0;list-style:none;display:grid}.score-parts li{justify-content:space-between;gap:.5rem;display:flex}.score-points{font-variant-numeric:tabular-nums}.trade-panel{gap:.5rem;margin-top:.5rem;display:grid}.trade-side{border:1px solid var(--colour-ink-muted);border-radius:.4rem;margin:0;padding:.25rem .5rem}.trade-steppers{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.trade-steppers li{font-variant-numeric:tabular-nums;grid-template-columns:2.75rem 6.5rem 2.75rem;justify-content:start;align-items:center;gap:.5rem;display:grid}.trade-steppers button{min-width:2.75rem;min-height:2.75rem}.trade-to{align-items:center;gap:.5rem;display:flex}.bank-side{border:1px solid var(--colour-ink-muted);border-radius:.4rem;margin:0;padding:.25rem .5rem .5rem}.bank-choices{flex-wrap:wrap;gap:.4rem;display:flex}.bank-choices button{min-height:2.75rem}.bank-choices button[aria-pressed=true]{border-width:3px;font-weight:700}.bank-times{font-variant-numeric:tabular-nums;grid-template-columns:2.75rem 4rem 2.75rem;place-items:center;gap:.5rem;display:grid}.bank-times button{min-width:2.75rem;min-height:2.75rem}.prompt-area{gap:.5rem;margin-top:.5rem;display:grid}.prompt{border:2px solid var(--colour-ink);background:var(--colour-surface);border-radius:.5rem;padding:.75rem}.prompt h3{margin:0 0 .5rem}.prompt-choices,.play-cards,.turn-actions,.log-filters{flex-wrap:wrap;gap:.5rem;display:flex}.prompt button,.play-cards button,.turn-actions button,.log-filters button{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);min-height:2.75rem;color:var(--colour-ink);font:inherit;border-radius:.5rem;padding:0 .9rem}.prompt-go{border-width:2px;font-weight:700}[aria-disabled=true]{opacity:.5}.log-filters button[aria-pressed=true]{border-color:var(--colour-ink);box-shadow:inset 0 0 0 2px var(--colour-ink)}.discard-list{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.discard-list li{align-items:center;gap:.5rem;display:flex}.discard-list button{min-width:2.75rem}.prompt-hint,.waiting{color:var(--colour-ink-muted);margin:0}.game-log-panel{margin-top:.75rem}.game-log{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);border-radius:.5rem;max-height:14rem;margin:.5rem 0 0;padding:.5rem .75rem .5rem 2rem;overflow-y:auto}.game-log li+li{margin-top:.2rem}.app-header h1{margin:.5rem 0 1rem}.app-header a{color:inherit;text-decoration:none}.room,.home{gap:.75rem;display:grid}.members{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.member{border:2px solid var(--colour-ink-muted);background:var(--colour-surface);border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem;display:flex}.admin-actions{flex-wrap:wrap;gap:.5rem;width:100%;display:flex}.member-ready{border-color:var(--colour-ink)}.member-name{font-weight:700}.member-colour,.member-state{color:var(--colour-ink-muted)}.room button,.home button,.admin button{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);min-height:2.75rem;color:var(--colour-ink);font:inherit;border-radius:.5rem;padding:0 .9rem}.my-seat,.settings-form{border:1px solid var(--colour-ink-muted);border-radius:.5rem;flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.my-seat label,.settings-form label{gap:.25rem;display:grid}.my-seat select,.settings-form select,.settings-form input,.room-chat input{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);min-height:2.75rem;color:var(--colour-ink);font:inherit;border-radius:.4rem;padding:0 .5rem}.my-seat button[aria-pressed=true]{border-color:var(--colour-ink);box-shadow:inset 0 0 0 2px var(--colour-ink);font-weight:700}.settings-summary{grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0;display:grid}.settings-summary dt{color:var(--colour-ink-muted)}.settings-summary dd{margin:0}.invite-link{word-break:break-all}.room-chat form{gap:.5rem;display:flex}.room-chat label{flex:1}.room-chat input{box-sizing:border-box;width:100%}.chat-lines{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);border-radius:.5rem;max-height:10rem;margin:0 0 .5rem;padding:.5rem .75rem .5rem 2rem;overflow-y:auto}.room .prompt-go,.home .prompt-go{border:2px solid var(--colour-ink);font-weight:700}.register-form{gap:.75rem;max-width:28rem;display:grid}.form-field{gap:.25rem;display:grid}.form-field input,.form-field select{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);min-height:2.75rem;color:var(--colour-ink);font:inherit;border-radius:.4rem;padding:0 .5rem}.form-field input[aria-invalid=true]{border-width:2px;border-color:var(--colour-danger)}.field-problem{color:var(--colour-danger);margin:0;font-weight:600}.register-form button[type=submit]{border:2px solid var(--colour-ink);background:var(--colour-surface);min-height:2.75rem;color:var(--colour-ink);font:inherit;border-radius:.5rem;justify-self:start;padding:0 1.25rem;font-weight:700}.register-form button[aria-disabled=true]{border-color:var(--colour-ink-muted);color:var(--colour-ink-muted)}.register-form [role=alert]{border-left:4px solid var(--colour-danger);color:var(--colour-danger);margin:0;padding:.5rem .75rem;font-weight:600}.form-check{align-items:center;gap:.5rem;min-height:2.75rem;display:flex}.form-check input{width:1.25rem;height:1.25rem}.session-bar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.session-bar a{align-items:center;min-height:2.75rem;display:inline-flex}.session-bar button{border:1px solid var(--colour-ink-muted);background:var(--colour-surface);min-height:2.75rem;color:var(--colour-ink);font:inherit;border-radius:.4rem;padding:0 .75rem}body{background:var(--colour-background);color:var(--colour-ink);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{box-sizing:border-box;max-width:40rem;margin:0 auto;padding:1rem}.art-kit>svg{width:100%;height:auto;display:block}.kit-board{max-width:28rem;margin:0 auto}.theme-choice{border:1px solid var(--colour-ink-muted);border-radius:.5rem;flex-wrap:wrap;gap:1rem;display:flex}.theme-choice label{align-items:center;gap:.25rem;min-height:2.75rem;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
