.animated-dice{align-items:center;gap:.5em;padding:.2em 0;display:inline-flex}.animated-dice__die{box-sizing:border-box;border:.07em solid var(--line);background:linear-gradient(145deg, var(--paper), var(--card));width:2.4em;height:2.4em;box-shadow:0 .16em 0 var(--line), 0 .22em .4em color-mix(in srgb, var(--ink) 15%, transparent);transform-origin:50% 75%;border-radius:.48em;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:.15em;padding:.4em;display:grid}.animated-dice__pip{background:var(--ink);visibility:hidden;border-radius:50%}.animated-dice__pip--visible{visibility:visible}.animated-dice--blank{opacity:.4}.animated-dice__sum{text-align:center;min-width:1.2em;font-size:1.4em}.animated-dice__sum--seven{color:var(--danger)}.animated-dice--rolling .animated-dice__die{animation:hexhaven-dice-tumble calc(.175s * var(--motion-factor,1)) ease-in-out infinite alternate}.animated-dice--rolling .animated-dice__die:nth-child(2){animation-delay:calc(-90ms * var(--motion-factor,1));animation-direction:alternate-reverse}@keyframes hexhaven-dice-tumble{0%{transform:translateY(-.18em)rotate(-16deg)}to{transform:translateY(.06em)rotate(17deg)}}.turn-clock,.status .turn-clock,.game-compact .status .turn-clock{box-sizing:border-box;border:1px solid var(--line);background:var(--card);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:0 1px 3px color-mix(in srgb, var(--ink) 10%, transparent);border-radius:50%;flex:none;place-items:center;padding:0;font-size:11px;font-weight:700;line-height:1;display:inline-grid;position:relative}.turn-clock__time{position:relative}.turn-clock__ring{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.turn-clock__ring circle{fill:none;stroke-width:2.5px}.turn-clock__track{stroke:var(--line)}.turn-clock__remaining{stroke:var(--ink);stroke-linecap:round}.turn-clock.warning{color:color-mix(in srgb, var(--accent) 80%, var(--ink));background:color-mix(in srgb, var(--accent) 12%, var(--card))}.turn-clock.warning .turn-clock__remaining{stroke:var(--accent)}.turn-clock.urgent{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--card))}.turn-clock.urgent .turn-clock__remaining{stroke:var(--danger)}.modal.newgame-modal{max-width:620px;padding-bottom:0}.newgame-modal input,.newgame-modal select{font-size:1rem}.newgame{flex-direction:column;display:flex}.newgame-section{min-width:0;border-top:1px solid var(--line);min-inline-size:0;padding:.9rem 0 1rem}.newgame-section:first-child{border-top:none;padding-top:.3rem}.newgame-section>legend,.newgame-more>summary{float:left;align-items:baseline;gap:.5rem;width:100%;margin:0 0 .6rem;padding:0;font-size:.95rem;font-weight:700;display:flex}.newgame-section>legend+*{clear:both}.newgame-count{background:var(--sunk);color:var(--muted);border-radius:999px;padding:.05rem .5rem;font-size:.75rem;font-weight:600}.newgame-modes{gap:.5rem;display:grid}.newgame-mode{border:1.5px solid var(--line);border-radius:var(--radius-md);background:var(--card);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.25rem .7rem;padding:.65rem .75rem;font-size:1rem;transition:border-color .16s cubic-bezier(.16,1,.3,1),background-color .16s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1);display:grid;position:relative}.newgame-mode input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.newgame-mode:hover{border-color:color-mix(in srgb, var(--primary) 55%, var(--line))}.newgame-mode:has(input:checked){border-color:var(--primary);background:color-mix(in srgb, var(--primary) 11%, var(--card));box-shadow:0 0 0 1px var(--primary), 0 6px 18px -6px color-mix(in srgb, var(--primary) 45%, transparent)}.newgame-mode:has(input:focus-visible){outline:3px solid var(--primary);outline-offset:2px}.newgame-mode-icon{background:var(--sunk);border-radius:10px;place-items:center;width:2.6rem;height:2.6rem;font-size:1.45rem;line-height:1;transition:background-color .16s ease-out;display:grid}.newgame-mode:has(input:checked) .newgame-mode-icon{background:color-mix(in srgb, var(--primary) 28%, var(--card))}.newgame-mode-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.newgame-mode-text strong{text-wrap:balance;line-height:1.2}.newgame-mode-text .small{color:var(--muted);line-height:1.3}.newgame-mode-points{background:var(--sunk);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-self:start;padding:.05rem .45rem}.newgame-mode:has(input:checked) .newgame-mode-points{background:color-mix(in srgb, var(--primary) 22%, var(--card))}@media (width>=520px){.newgame-modes{grid-template-columns:repeat(3,minmax(0,1fr))}.newgame-mode{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:.75rem}.newgame-mode-icon{grid-column:1}.newgame-mode-points{grid-area:1/2}.newgame-mode-text{grid-column:1/-1;margin-top:.4rem}}.newgame-note:empty{display:none}.newgame-note{margin-top:.6rem}.newgame-house{gap:0}.newgame-house label.check{border-top:1px solid var(--line);cursor:pointer;align-items:center;gap:.8rem;padding:.6rem .1rem}.newgame-house label.check:first-child{border-top:none;padding-top:.1rem}.newgame-house label.check>span{flex:1;min-width:0}.newgame-house label.check strong{font-weight:600}.newgame-house label.check input[type=checkbox]{appearance:none;background:var(--line) radial-gradient(circle at center, #fff 0 .5rem, transparent .55rem) no-repeat left .12rem center / 1.25rem 1.25rem;cursor:pointer;border-radius:999px;order:2;width:2.5rem;height:1.5rem;margin:0;transition:background-color .18s cubic-bezier(.16,1,.3,1),background-position .18s cubic-bezier(.16,1,.3,1);box-shadow:inset 0 1px 2px #00000026}.newgame-house label.check input[type=checkbox]:checked{background-color:var(--primary);background-position:right .12rem center}.newgame-house label.check input[type=checkbox]:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.newgame-more>summary{float:none;cursor:pointer;justify-content:space-between;margin:0;list-style:none}.newgame-more>summary::-webkit-details-marker{display:none}.newgame-more>summary>span:first-child:after{content:"";border-bottom:2px solid;border-right:2px solid;width:.45em;height:.45em;margin-left:.55em;transition:transform .18s cubic-bezier(.16,1,.3,1);display:inline-block;transform:translateY(-.2em)rotate(45deg)}.newgame-more[open]>summary>span:first-child:after{transform:translateY(.05em)rotate(-135deg)}.newgame-more>summary .muted{text-align:right;font-weight:400}.newgame-more[open]>summary{margin-bottom:.7rem}.newgame-more>summary:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:4px}.newgame-foot{z-index:1;border-top:1px solid var(--line);background:var(--card);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;margin:0 -1.25rem;padding:.85rem 1.25rem 1.1rem;display:grid;position:sticky;bottom:0}.newgame-foot .error{grid-column:1/-1;margin:0}.newgame-foot .newgame-later{margin:0}.newgame-foot button{justify-content:center;min-height:2.75rem}button.newgame-create{min-width:8.5rem;min-height:2.75rem;padding:.6em 1.3em;font-weight:800}@media (width<=419px){.newgame-foot{grid-template-columns:auto minmax(0,1fr)}.newgame-foot .newgame-later{grid-column:1/-1}}@media (width<=599px){.newgame-modal .newgame-foot{padding-bottom:max(1.1rem, env(safe-area-inset-bottom))}}.alert-settings{color:var(--ink);justify-items:start;gap:12px;display:grid}.alert-settings label{cursor:pointer;flex-direction:row;align-items:center;gap:10px;font-size:15px;display:flex}.alert-settings input{accent-color:var(--primary);flex:none;width:20px;height:20px;margin:0}.alert-settings p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.board-roll{z-index:12;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.board-roll__dice{gap:14px;display:flex;transform:translateY(-22px)}.board-roll__die{animation:board-die-land calc(.8s * var(--motion-factor,1)) cubic-bezier(.22,.8,.25,1) both, board-dice-away calc(.25s * var(--motion-factor,1)) calc(1.3s * var(--motion-factor,1)) ease-in both;font-size:clamp(21px,4vw,29px)}.board-roll__die:nth-child(2){animation-name:board-die-land-two,board-dice-away}.board-roll__total{color:var(--ink);border:1px solid var(--line);background:var(--paper);box-shadow:0 8px 35px color-mix(in srgb, var(--ink) 22%, transparent);animation:board-total-pop calc(1.5s * var(--motion-factor,1)) calc(.55s * var(--motion-factor,1)) ease-out both;border-radius:24px;flex-direction:column;align-items:center;padding:6px 25px 12px;display:flex;position:absolute}.board-roll__total strong{font-size:clamp(64px,12vw,100px);line-height:1.05}.board-roll__total span{letter-spacing:.04em;font-size:13px;font-weight:800}.board-roll__total--seven{color:var(--danger)}.resource-flights{z-index:100;pointer-events:none;position:fixed;inset:0;overflow:hidden}.resource-flight{border:1px solid var(--line);width:34px;height:42px;color:var(--ink);background:var(--card);box-shadow:0 3px 10px color-mix(in srgb, var(--ink) 20%, transparent);animation:resource-card-fly calc(.8s * var(--motion-factor,1)) cubic-bezier(.4,0,.2,1) both;border-radius:9px;place-items:center;margin:-21px 0 0 -17px;font-size:23px;display:grid;position:absolute}.resource-flight--fade{animation-name:resource-card-fade}.resource-flight--back{color:#ffefc6;background:repeating-linear-gradient(45deg,#315f72 0 4px,#3a7187 4px 8px);border:2px solid #efe1bc;font-size:17px;font-weight:900}.resource-bump{color:var(--paper);background:var(--accent);box-shadow:0 2px 8px color-mix(in srgb, var(--ink) 20%, transparent);animation:resource-bump calc(.6s * var(--motion-factor,1)) ease-out both;border-radius:99px;padding:3px 9px;font-size:21px;position:absolute}@keyframes board-die-land{0%{opacity:0;transform:translate(-110px,-130px)rotate(-230deg)scale(.6)}28%{opacity:1}60%{transform:translate(8px,10px)rotate(24deg)}80%{transform:translate(-3px,-9px)rotate(-8deg)}to{transform:none}}@keyframes board-die-land-two{0%{opacity:0;transform:translate(120px,-90px)rotate(270deg)scale(.6)}28%{opacity:1}60%{transform:translate(-8px,8px)rotate(-22deg)}80%{transform:translate(3px,-6px)rotate(10deg)}to{transform:none}}@keyframes board-dice-away{to{opacity:0;scale:.8}}@keyframes board-total-pop{0%{opacity:0;transform:scale(.4)translateY(12px)}25%{opacity:1;transform:scale(1.1)}45%,75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes resource-card-fly{0%{opacity:0;transform:translate(0)scale(.55)rotate(-15deg)}15%{opacity:1;transform:translate(calc(var(--flight-x) * .03),calc(var(--flight-y) * .03)) scale(1) rotate(-10deg)}75%{opacity:1;transform:translate(calc(var(--flight-x) * .9),calc(var(--flight-y) * .9)) scale(.9) rotate(6deg)}to{opacity:0;transform:translate(var(--flight-x),var(--flight-y)) scale(.65) rotate(10deg)}}@keyframes resource-card-fade{0%{opacity:0;transform:scale(.6)}20%,55%{opacity:1}to{opacity:0;transform:translate(var(--flight-x),var(--flight-y)) scale(.8)}}@keyframes resource-bump{0%{opacity:0;transform:translate(-50%,-20%)scale(.7)}25%{opacity:1;transform:translate(-50%,-65%)scale(1.15)}65%{opacity:1}to{opacity:0;transform:translate(-50%,-120%)scale(1)}}.event-overlay{pointer-events:none;z-index:2000;position:fixed;inset:0;overflow:hidden}.event-overlay *{pointer-events:none}.event-bank{z-index:2;border:1px solid var(--line);background:var(--paper);color:var(--ink);pointer-events:none;border-radius:12px;padding:4px 8px;font-size:10px;font-weight:800;position:absolute;top:40px;left:8px;transform:translateZ(0)}.event-flight{border:1px solid var(--line);background:var(--card);width:30px;height:40px;color:var(--ink);animation:event-flight calc(.57s * var(--motion-factor)) cubic-bezier(.22,.8,.25,1) both;border-radius:6px;place-items:center;margin:-20px 0 0 -15px;font-size:22px;display:grid;position:absolute;box-shadow:0 3px 10px #0003}.event-flight--back{color:#ffefc6;background:repeating-linear-gradient(45deg,#315f72 0 4px,#3a7187 4px 8px);border:2px solid #efe1bc;font-size:17px;font-weight:900}.event-flight--badge{background:var(--paper);border-color:var(--accent);text-align:center;border-radius:20px;width:96px;height:auto;min-height:28px;margin-left:-48px;padding:4px;font-size:11px;font-weight:800}.event-dev{border:2px solid var(--accent);background:var(--paper);width:min(200px,70vw);min-height:120px;color:var(--ink);text-align:center;animation:event-dev calc(.9s * var(--motion-factor)) cubic-bezier(.22,.8,.25,1) both;border-radius:16px;flex-direction:column;justify-content:center;gap:12px;padding:20px;display:flex;position:absolute;top:42%;left:50%;box-shadow:0 12px 40px #0003}.event-dev span{text-transform:uppercase;letter-spacing:.08em;font-size:11px}.event-dev strong{font-size:23px}.event-confetti{position:absolute;inset:0;overflow:hidden}.event-confetti i{width:7px;height:12px;animation:event-confetti calc(.8s * var(--motion-factor)) ease-out both;border-radius:2px;position:absolute;top:12%}@keyframes event-flight{0%{opacity:0;transform:scale(.7)rotate(-8deg)}14%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(var(--flight-x), var(--flight-y)) scale(.7) rotate(8deg)}}@keyframes event-dev{0%{opacity:0;transform:translate(-50%,-45%)perspective(600px)rotateY(-90deg)scale(.85)}22%,77%{opacity:1;transform:translate(-50%,-50%)perspective(600px)rotateY(0)scale(1)}to{opacity:0;transform:translate(-50%,-55%)scale(.95)}}@keyframes event-confetti{0%{opacity:0;transform:translateY(-20px)rotate(0)}15%,65%{opacity:1}to{opacity:0;transform:translate(var(--drift),55vh) rotate(var(--spin))}}.board-effects,.board-effects *,.piece-arrive,.road-arrive{pointer-events:none}.piece-arrive{transform-box:fill-box;transform-origin:bottom;animation:settlement-arrive calc(.6s * var(--motion-factor)) cubic-bezier(.22,.8,.25,1) both}.piece-arrive--city{animation-name:city-arrive}.road-arrive line{stroke-dasharray:1;animation:road-arrive calc(.55s * var(--motion-factor)) cubic-bezier(.22,.8,.25,1) both}.board-dust{transform-box:fill-box;transform-origin:50%;animation:board-dust calc(.65s * var(--motion-factor)) ease-out both}.robber-hop{animation:robber-hop calc(.65s * var(--motion-factor)) cubic-bezier(.35,.05,.2,1) both}.robber-dim{animation:robber-dim calc(.75s * var(--motion-factor)) ease-out both}.title-road{animation:title-road calc(var(--segment-ms) * var(--motion-factor)) ease-in-out both;animation-delay:calc(var(--segment-delay) * var(--motion-factor))}@keyframes settlement-arrive{0%{opacity:0;transform:translateY(-25px)scale(.9)}55%{opacity:1;transform:translateY(2px)scale(1.12,.87)}77%{transform:translateY(-3px)scale(.96,1.05)}to{transform:none}}@keyframes city-arrive{0%{transform:scale(.7,.45)}60%{transform:scale(1.1,1.12)}to{transform:none}}@keyframes road-arrive{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes board-dust{0%,30%{opacity:0;transform:scale(.3)}50%{opacity:.6}to{opacity:0;transform:scale(1.8)translateY(-4px)}}@keyframes robber-hop{0%{transform:translate(0)}50%{transform:translate(calc(var(--hop-x) * .5),calc(var(--hop-y) * .5 - 40px))}to{transform:translate(var(--hop-x),var(--hop-y))}}@keyframes robber-dim{0%,to{opacity:0}40%{opacity:.3}}@keyframes title-road{0%,to{opacity:0}35%,65%{opacity:1}}.board-view{isolation:isolate;z-index:0;flex:auto;width:100%;min-height:0;position:relative;overflow:hidden;transform:translateZ(0)}.board-view>.board{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;max-height:none;transform:perspective(1000px) rotateX(var(--board-tilt,0deg));transform-origin:calc(50% + var(--board-shift-x,0px)) calc(50% + var(--board-shift-y,0px));cursor:grab;display:block;overflow:visible}.board-view.is-dragging>.board,.board-view.is-dragging .target{cursor:grabbing}.board-view .board-controls{z-index:1;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:6px;right:6px;transform:translateZ(0)}.board-view .board-controls button{border:1px solid var(--line);background:var(--raised);width:38px;height:38px;min-height:38px;color:var(--ink);box-shadow:var(--shadow-md);touch-action:manipulation;border-radius:50%;flex:0 0 38px;justify-content:center;padding:0}.board-view .board-controls button svg{stroke-width:2.4px;width:18px;height:18px}.board-view .board-controls button:hover:not(:disabled){border-color:var(--field);background:var(--raised)}.board-view .board-controls button:disabled{background:var(--raised);color:var(--muted);opacity:.7}.board-view .token.hot>circle:nth-child(2){filter:drop-shadow(0 0 4px #f2a516cc)}.board-view .token text{font-variant-numeric:tabular-nums;letter-spacing:-.02em}.board-view .harbor-ratio{fill:#1f2430;letter-spacing:-.02em;font-weight:800}.board-view .harbor-any{fill:#576072;font-weight:700}.board-stage>.hand-panel{transform:translateZ(0)}.barbarian-fleet .fleet-route{fill:none;stroke:#fff;stroke-opacity:.32;stroke-width:2px;stroke-dasharray:2 7;stroke-linecap:round}.barbarian-fleet .fleet-wake{fill:none;stroke:#fff;stroke-opacity:.7;stroke-width:1.6px;stroke-linecap:round}.barbarian-fleet .fleet-boat{animation:fleet-return calc(.7s * var(--motion-factor,1)) ease-out}.barbarian-fleet .fleet-bob{transform-box:fill-box;transform-origin:50% 100%}@media (prefers-reduced-motion:no-preference){[data-beat] .barbarian-fleet .fleet-bob{animation:3.2s ease-in-out fleet-bob}}.barbarian-fleet.raiding .fleet-bob{animation:fleet-raid .55s ease-in-out var(--sail) 2}.barbarian-fleet.still .fleet-boat,.barbarian-fleet.still .fleet-bob{animation:none}@keyframes fleet-bob{0%,to{transform:none}25%{transform:rotate(-3deg)}75%{transform:translateY(1.5px)rotate(3deg)}}@keyframes fleet-raid{0%,to{transform:none}25%{transform:translate(-3px)rotate(-9deg)}75%{transform:translate(3px)rotate(9deg)}}@keyframes fleet-return{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.barbarian-fleet .fleet-boat,.barbarian-fleet .fleet-bob{animation:none;transition:none!important}}.barbarian-fleet.defended .fleet-bob{animation:fleet-sink calc(1.1s * var(--motion-factor,1)) ease-in calc(var(--sail) + .85s * var(--motion-factor,1)) both}.fleet-defense .fx{animation-duration:calc(var(--dur) * var(--motion-factor,1));animation-delay:calc(var(--sail) + var(--at) * var(--motion-factor,1));animation-timing-function:ease-out;animation-fill-mode:both}.fleet-defense .defense-glow{fill:none;stroke:#ffd75e;stroke-width:4px;transform-box:fill-box;transform-origin:50%;animation:defense-glow calc(.9s * var(--motion-factor,1)) ease-out var(--sail) both}.fleet-defense .defense-strike{stroke:#ffe58a;stroke-width:4px;stroke-linecap:round;stroke-dasharray:1;filter:drop-shadow(0 0 3px #ffb020);animation:defense-strike calc(.5s * var(--motion-factor,1)) ease-in calc(var(--sail) + (.35s + var(--i) * 70ms) * var(--motion-factor,1)) both}.fleet-defense .defense-hit{fill:#fff3b0;stroke:#e09a20;stroke-width:2px;stroke-linejoin:round;transform-box:fill-box;transform-origin:50%;animation-name:defense-hit}.fleet-defense .defense-flash{fill:#fff;opacity:0;transform-box:fill-box;transform-origin:50%;animation-name:defense-flash;animation-fill-mode:none}.fleet-defense .defense-comet{fill:none;stroke-width:5px;stroke-linecap:round;stroke-dasharray:.05 2;opacity:0;animation-name:defense-comet;animation-timing-function:ease-in-out;animation-fill-mode:none}.fleet-defense .defense-comet.stone{stroke-width:7px;stroke-dasharray:.001 2}.fleet-defense .defense-comet.stone-edge{stroke-width:10px;stroke-dasharray:.001 2}.fleet-defense .defense-trail{fill:none;stroke-width:3px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation-name:defense-trail,defense-drift;animation-timing-function:ease-in-out,ease-out;animation-duration:calc(var(--dur) * var(--motion-factor,1)), calc(.9s * var(--motion-factor,1));animation-delay:calc(var(--sail) + var(--at) * var(--motion-factor,1)), calc(var(--sail) + (var(--at) + var(--dur)) * var(--motion-factor,1))}.fleet-defense .sling-whirl{transform-box:view-box;transform-origin:0 0;opacity:0;animation-name:sling-whirl;animation-timing-function:linear;animation-fill-mode:none}.fleet-defense .sea-wall{transform-box:fill-box;transform-origin:86% 100%;animation-name:sea-wall;animation-timing-function:ease-in-out}.fleet-defense .sea-foam{fill:#e8f6ff;transform-box:fill-box;transform-origin:50%;animation-name:sea-foam}.fleet-defense .bird-flock{animation-name:bird-flock;animation-timing-function:linear}.fleet-defense .bird-stone{fill:#7a4b2a;stroke:#3b2414;stroke-width:1px;opacity:0;animation-name:bird-stone;animation-timing-function:ease-in;animation-fill-mode:none}.fleet-defense .defense-comet.big{stroke-width:11px}.fleet-defense .defense-comet.stone-edge.big{stroke-width:14px}.fleet-defense .defense-comet.bolt{stroke-width:2.8px;stroke-linecap:butt;stroke-dasharray:.07 2}.fleet-defense .nuke-cloud{transform-box:fill-box;transform-origin:50% 100%;animation-name:nuke-cloud}.fleet-defense .nuke-fire{animation:nuke-fire calc(1.7s * var(--motion-factor,1)) linear calc(var(--sail) + .76s * var(--motion-factor,1)) both}.fleet-defense .nuke-ring{fill:none;stroke:#fff3b0;stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation-name:nuke-ring}.fleet-defense .jet-pass{animation-name:jet-pass;animation-timing-function:linear}.fleet-defense .clay-rise{transform-box:fill-box;transform-origin:50% 100%;animation-name:clay-rise}.fleet-defense .drone-dive{animation-name:drone-dive;animation-timing-function:ease-in}.fleet-defense .agi-scan{fill:none;stroke:#5ef2ff;stroke-width:2px;transform-box:fill-box;transform-origin:50%;opacity:0;animation-name:agi-scan;animation-fill-mode:none}.fleet-defense .agi-lock{transform-box:fill-box;transform-origin:50%;animation-name:agi-lock}.fleet-defense .agi-beam{stroke-linecap:round;stroke-dasharray:1;animation-name:agi-beam;animation-timing-function:linear}.fleet-defense .agi-beam.glow{stroke:#5ef2ff;stroke-opacity:.5;stroke-width:8px}.fleet-defense .agi-beam.core{stroke:#fff;stroke-width:2.5px}.fleet-defense .defense-splash{fill:none;stroke:#fff;stroke-width:2.5px;transform-box:fill-box;transform-origin:50%;animation:defense-splash calc(.9s * var(--motion-factor,1)) ease-out calc(var(--sail) + 1.15s * var(--motion-factor,1)) both}.fleet-defense .defense-splash.late{animation-delay:calc(var(--sail) + 1.4s * var(--motion-factor,1))}.fleet-defense .defense-banner{fill:#fff;stroke:#1d2630;stroke-width:7px;paint-order:stroke;stroke-linejoin:round;transform-box:fill-box;transform-origin:50%;animation:defense-banner calc(1.9s * var(--motion-factor,1)) ease-out calc(var(--sail) + .8s * var(--motion-factor,1)) both;font-size:34px;font-weight:900}@keyframes defense-glow{0%{opacity:0;transform:scale(.8)}25%{opacity:1}to{opacity:0;transform:scale(1.7)}}@keyframes defense-strike{0%{stroke-dashoffset:1px;opacity:1}70%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes defense-hit{0%{opacity:0;transform:scale(.3)}30%{opacity:1}to{opacity:0;transform:scale(1.4)rotate(25deg)}}@keyframes defense-flash{0%{opacity:.95;transform:scale(.3)}to{opacity:0;transform:scale(2.2)}}@keyframes defense-comet{0%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1px;opacity:1}}@keyframes defense-trail{0%{stroke-dashoffset:1px;opacity:.75}to{stroke-dashoffset:0;opacity:.75}}@keyframes defense-drift{0%{opacity:.75}to{opacity:0}}@keyframes sling-whirl{0%{opacity:1;transform:rotate(0)}to{opacity:1;transform:rotate(1080deg)}}@keyframes sea-wall{0%{opacity:0;transform:scaleY(.05)}12%{opacity:1}42%{transform:scaleY(1)}55%{transform:rotate(0)scaleY(1.04)}80%{opacity:1;transform:rotate(48deg)scaleY(1)}to{opacity:0;transform:rotate(62deg)scaleY(.85)}}@keyframes sea-foam{0%{opacity:0;transform:scale(.3)}25%{opacity:.95}to{opacity:0;transform:scale(1.6,1.3)}}@keyframes bird-flock{0%{opacity:0;transform:translateY(12px)}10%{opacity:1}50%{transform:translate(var(--fx), var(--fy))}85%{opacity:1}to{opacity:0;transform:translate(calc(var(--fx) * 1.6), calc(var(--fy) * 1.6 - 40px))}}@keyframes bird-stone{0%{opacity:1;transform:translateY(0)}90%{opacity:1}to{opacity:0;transform:translateY(36px)}}@keyframes nuke-cloud{0%{opacity:0;transform:translateY(8px)scale(.15)}8%{opacity:1}45%{transform:translateY(0)scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-14px)scale(1.12)}}@keyframes nuke-fire{0%,20%{opacity:1}65%,to{opacity:0}}@keyframes nuke-ring{0%{opacity:0;transform:scale(.3)}15%{opacity:1}to{opacity:0;transform:scale(3.2)}}@keyframes jet-pass{0%{opacity:0;transform:translate(0)scale(.6)}10%{opacity:1;transform:translate(calc(var(--fx) * .1), calc(var(--fy) * .1)) scale(1)}50%{transform:translate(var(--fx), var(--fy))}85%{opacity:1}to{opacity:0;transform:translate(calc(var(--fx) * 1.9), calc(var(--fy) * 1.9 - 30px))}}@keyframes clay-rise{0%{opacity:0;transform:scaleY(0)}8%{opacity:1}16%{transform:scaleY(1.12)}22%,82%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@keyframes drone-dive{0%{opacity:0;transform:translate(0)}12%{opacity:1;transform:translate(calc(var(--fx) * .05), -16px)}60%{transform:translate(calc(var(--fx) * .7), calc(var(--fy) * .7 - 34px))}96%{opacity:1;transform:translate(var(--fx), var(--fy))}to{opacity:0;transform:translate(var(--fx), var(--fy))}}@keyframes agi-scan{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(2.6)}}@keyframes agi-lock{0%{opacity:0;transform:scale(2.4)rotate(-90deg)}15%{opacity:1}45%{transform:scale(1)rotate(0)}55%{transform:scale(.82)}65%{transform:scale(1)}85%{opacity:1}to{opacity:0;transform:scale(1)}}@keyframes agi-beam{0%{stroke-dashoffset:1px;opacity:1}35%{stroke-dashoffset:0}70%{opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes defense-splash{0%{opacity:0;transform:scale(.4)}20%{opacity:.9}to{opacity:0;transform:scale(1.8)}}@keyframes defense-banner{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.08)}25%,80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}@keyframes fleet-sink{0%{opacity:1;transform:none}25%{opacity:1;transform:translate(-2px)rotate(-10deg)}to{opacity:0;transform:translateY(16px)rotate(38deg)}}@media (prefers-reduced-motion:reduce){.fleet-defense{display:none}.barbarian-fleet.defended .fleet-bob{animation:none}}.fleet-defense .defense-shield{stroke:none}.game-recap{color:var(--ink);text-align:left;border-top:1px solid var(--line);min-width:0;margin-top:20px;padding-top:16px}.game-recap h3{color:var(--ink);margin:0 0 8px;font-size:1rem}.recap-status{color:var(--muted);margin:20px 0;font-size:.9rem}.recap-summary{flex-wrap:wrap;justify-content:space-between;gap:12px;padding-bottom:4px;font-size:.95rem;display:flex}.recap-summary span{color:var(--muted)}.recap-section{min-width:0;margin:18px 0}.recap-note{color:var(--muted);margin:7px 0;font-size:.78rem;line-height:1.5}.recap-awards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:12px 0;padding:0;list-style:none;display:grid}.recap-awards li{overflow-wrap:anywhere;border-bottom:1px solid var(--line);flex-direction:column;gap:3px;min-width:0;padding:8px 0;display:flex}.recap-awards strong{color:var(--ink);font-size:.86rem}.recap-awards span{font-size:.9rem}.recap-awards small{color:var(--muted);font-size:.77rem}.recap-player{overflow-wrap:anywhere;align-items:center;gap:6px;display:inline-flex}.recap-swatch{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.recap-legend{flex-wrap:wrap;gap:5px 14px;margin:10px 0 2px;padding:0;font-size:.78rem;list-style:none;display:flex}.recap-legend li{overflow-wrap:anywhere;align-items:center;gap:5px;display:flex}.recap-legend svg{flex:none}.recap-chart{width:100%;min-width:0}.recap-chart>svg{touch-action:pan-y;border-radius:4px;display:block}.recap-chart text{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:12px}.recap-chart .recap-axis-title{fill:var(--muted);font-size:10px}.recap-grid{stroke:var(--line);stroke-width:1px}.recap-dot{stroke:var(--card);stroke-width:2px}.recap-leader{stroke:var(--muted);stroke-width:1px;fill:none}.recap-crosshair{stroke:var(--muted);stroke-width:1px;pointer-events:none}.recap-readout{background:var(--bg);border-radius:6px;flex-wrap:wrap;gap:4px 12px;padding:8px;font-size:.76rem;display:flex}.recap-readout>strong{width:100%}.recap-details{min-width:0;margin:10px 0;font-size:.85rem}.recap-details summary{cursor:pointer;color:var(--ink);padding:9px 0;font-weight:600}.recap-table-scroll{overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:6px;max-width:100%;overflow-x:auto}.game-recap table{border-collapse:collapse;text-align:right;font-variant-numeric:tabular-nums;width:100%;font-size:.78rem}.game-recap caption{text-align:left;color:var(--muted);padding:8px;font-size:.75rem}.game-recap th,.game-recap td{border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px}.game-recap th:first-child{text-align:left}.game-recap thead th{color:var(--ink);background:var(--bg)}.game-recap tbody th{font-weight:500}.game-recap tr:last-child th,.game-recap tr:last-child td{border-bottom:0}.recap-production{gap:5px;display:grid}.recap-production-row{grid-template-columns:minmax(65px,1fr) minmax(70px,2fr) 3ch;align-items:center;gap:10px;font-size:.83rem;display:grid}.recap-bar-name{overflow-wrap:anywhere}.recap-production-row svg{width:100%;height:26px}.recap-production-row strong{text-align:right;font-variant-numeric:tabular-nums}.recap-production-row svg:hover,.recap-production-row svg:focus{background:var(--paper);border-radius:4px}.game-recap :focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=420px){.recap-awards{gap:8px 12px}.recap-awards strong{font-size:.8rem}.recap-awards span{font-size:.83rem}.game-recap th,.game-recap td{padding:7px 8px}}button.matchup-chip{border:1px solid var(--line);background:color-mix(in srgb, var(--card) 90%, transparent);min-height:0;color:var(--ink);text-align:left;white-space:nowrap;pointer-events:auto;border-radius:10px;flex-direction:column;flex:none;align-items:flex-start;gap:1px;padding:4px 8px;font-size:.66rem;font-weight:600;line-height:1.25;display:flex;box-shadow:0 2px 8px #0003}.matchup-chip strong{font-weight:800}.game-topbar button.matchup-chip{box-shadow:none;flex-direction:row;gap:.75rem;padding:5px 10px;font-size:.8rem}.matchup-sides{text-align:center;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5rem;margin:.75rem 0 1rem;display:grid}.matchup-side{flex-direction:column;align-items:center;gap:.2rem;min-width:0;display:flex}.matchup-side strong{font-size:1.1rem;line-height:1.2}.matchup-role{letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:800}.matchup-icon{font-size:3rem;line-height:1.15}.matchup-vs{font-weight:800}button.matchup-go{justify-content:center;width:100%;margin-top:.25rem;padding:.6em}.log-panel{position:relative}.log-turn{flex-direction:column;gap:.15rem;display:flex}.log-turn-head{z-index:1;border-bottom:1px solid var(--line);background:var(--card);color:var(--muted);letter-spacing:.02em;text-transform:uppercase;margin:.35rem 0 .1rem;padding:.15rem 0;font-size:.72rem;font-weight:600;position:sticky;top:0}.log-turn:first-child .log-turn-head{margin-top:0}.log-turn-head .log-name{color:var(--ink);text-transform:none;letter-spacing:0}.log-line{margin:0;padding:.05rem 0;line-height:1.35}.log-turn:not(.current) .log-line{color:color-mix(in srgb, var(--ink) 78%, var(--card))}.log-line.win{font-weight:700}.log-name{white-space:nowrap;font-weight:600}.log-name .dot{width:.65em;height:.65em;margin-right:.2em}.log-res{white-space:nowrap;font-weight:600}.log-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.log-roll{border:1px solid var(--line);background:var(--paper);min-width:1.5em;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;border-radius:5px;padding:0 .3em;font-weight:700;display:inline-block}.log-roll.seven{border-color:var(--danger);color:var(--danger)}.log-jump{z-index:2;border-radius:999px;padding:.25rem .7rem;font-size:.78rem;position:absolute;bottom:.75rem;right:.75rem;box-shadow:0 2px 8px #0003}.trade-buttons.trade-buttons{grid-template-columns:1fr}.modal.trade-dialog{flex-direction:column;gap:10px;width:min(720px,100%);max-width:720px;max-height:calc(100dvh - 32px);padding:16px;display:flex;overflow:visible}.trade-dialog>h2{margin:0;line-height:24px}.trade-dialog .close{justify-content:center;min-width:36px;min-height:36px}.trade-switch{background:var(--sunk);border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;padding:3px;display:grid}.trade-switch button{min-height:36px;box-shadow:none;background:0 0;border-color:#0000;justify-content:center;font-size:.9rem;font-weight:700}.trade-switch button:disabled{background:0 0}.trade-switch button[aria-pressed=true],.trade-switch button[aria-pressed=true]:hover:not(:disabled){background:var(--card);box-shadow:var(--shadow-sm);border-color:#0000}.trade-strip h3{color:var(--muted);margin:0 0 6px;font-size:.8rem;font-weight:700;line-height:16px}.trade-tiles{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.trade-tiles-eight{grid-template-columns:repeat(8,minmax(0,1fr))}.trade-tile{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--trade-resource) 16%, var(--card));border:1px solid color-mix(in srgb, var(--trade-resource) 65%, var(--line));min-width:0;height:96px;transition:background-color .12s,box-shadow .12s;position:relative}.trade-tile.selected{background:color-mix(in srgb, var(--trade-resource) 30%, var(--card));box-shadow:inset 0 0 0 2px var(--trade-resource)}.trade-tile.unavailable:not(.selected){background:var(--sunk);border-color:var(--line);color:var(--muted)}.trade-tile.unavailable:not(.selected) .trade-tile-emoji{filter:grayscale(.8);opacity:.5}.trade-tile-pick{border-radius:inherit;width:100%;height:100%;min-height:0;box-shadow:none;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:17px 2px 5px;display:flex;position:relative}.trade-tile-pick:hover:not(:disabled){background:0 0}.trade-tile-pick:disabled{color:inherit;opacity:1;background:0 0}.trade-tile-have{min-width:18px;color:var(--ink);background:var(--card);border-radius:4px;padding:0 3px;font-size:.65rem;font-weight:750;line-height:17px;position:absolute;top:3px;right:4px}.trade-tile-face{justify-content:center;align-items:center;gap:3px;line-height:1;display:flex}.trade-tile-emoji{font-size:1.9rem}.trade-tile-face strong{font-variant-numeric:tabular-nums;font-size:1.45rem}.trade-tile-rate{font-size:.65rem;font-weight:800;line-height:16px}.trade-tile-less{border-color:color-mix(in srgb, var(--trade-resource) 60%, var(--line));background:var(--card);border-radius:8px 0;justify-content:center;width:30px;height:28px;padding:0;font-size:1.1rem;line-height:1;position:absolute;bottom:0;right:0}.trade-tile:has(.trade-tile-less) .trade-tile-pick{padding-bottom:23px}.trade-summary{justify-content:center;align-items:center;gap:10px;min-height:28px;font-size:.9rem;display:flex}.trade-summary .cards-inline{justify-content:center}.trade-arrow{color:var(--muted);font-size:1.25rem}.trade-options{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;min-height:34px;display:flex}.trade-open{height:34px;min-height:34px;color:var(--ink);background:var(--sunk);box-shadow:none;white-space:nowrap;border-color:#0000;justify-content:center;padding:0 12px;font-size:.82rem;font-weight:700}.trade-open[aria-pressed=true]{color:var(--ink);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 22%, var(--card))}.trade-open-price{line-height:1}.trade-partners{justify-content:center;align-items:center;gap:6px;display:flex}.trade-partners button{min-width:44px;height:34px;min-height:34px;color:var(--ink);background:var(--sunk);box-shadow:none;border-color:#0000;justify-content:center;gap:5px;padding:0 10px}.trade-partners button.selected{border-color:var(--player-color);color:var(--ink);background:color-mix(in srgb, var(--player-color) 18%, var(--card))}.trade-partners button:disabled{opacity:1;color:var(--muted)}.trade-partners .dot{width:12px;height:12px}.trade-multiple{align-items:center;gap:16px;display:flex}.trade-multiple button{justify-content:center;width:44px;height:34px;padding:0}.trade-multiple strong{text-align:center;min-width:20px}.trade-dialog .trade-send{justify-content:center;width:100%;min-height:42px;font-weight:800}.trade-send .res-chip{background:0 0;border:none;padding:0}.trade-send .cards-inline{gap:3px}.board-stage>section.offers{width:min(420px,100% - 16px);max-height:none;padding:6px 8px;overflow:visible}.board-stage>.offers[data-for-me=true]{border-color:var(--accent)}.offers .offer{border-top:1px solid var(--line);align-items:center;gap:7px;min-height:42px;padding:4px 0;display:flex}.offers .offer:first-of-type{border-top:none}.offers .offer.waiting{background:0 0;border-radius:0;margin:0;padding:4px 0}.offers .offer.others{color:var(--muted);font-size:inherit}.offers .offer.others .res-chip{filter:saturate(.5)}.offers .offer-proposer{flex:0 0 10px;width:10px;height:10px}.offer-exchange{flex:1;align-items:center;gap:5px;min-width:0;font-size:.78rem;display:flex}.offer-cards{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.offer-cards .cards-inline{gap:3px}.offer-arrow{color:var(--muted);flex:none}.offers .offer-bid{align-items:center;gap:7px;min-height:38px;padding:2px 0 2px 17px;font-size:.78rem;display:flex}.offer-bid .dot{flex:none;width:10px;height:10px}.offer-bid-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:8em;font-weight:700;overflow:hidden}.offer-bid .offer-cards{flex:1;min-width:0}.offer-missing{color:var(--danger)}.offer-missing .res-chip{border-color:var(--danger);text-underline-offset:3px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.offer-actions{flex:none;justify-content:flex-end;align-items:center;gap:4px;display:flex}.offer-actions button{justify-content:center;min-width:32px;height:34px;padding:0 6px;font-size:1rem}.offer-actions .primary:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.offer-actions .offer-confirm{border-color:var(--player-color);background:color-mix(in srgb, var(--player-color) 30%, var(--card));color:var(--ink);box-shadow:inset 0 -3px var(--player-color)}.offer-wait{color:var(--muted);padding:0 3px;font-size:.85rem}.offers .offers-hide{background:var(--card);min-width:34px;height:28px;min-height:28px;box-shadow:none;color:var(--muted);border-bottom:0;border-radius:10px 10px 0 0;justify-content:center;padding:0;font-size:1.1rem;position:absolute;top:-27px;right:0}@media (width<=600px){.modal.trade-dialog{gap:8px;padding:12px}.trade-tiles-eight{grid-template-columns:repeat(4,minmax(0,1fr))}.trade-tile{height:76px}.trade-tiles-eight .trade-tile{height:62px}.trade-tiles-eight .trade-tile-pick{padding-top:13px}.trade-tiles-eight .trade-tile:has(.trade-tile-less) .trade-tile-pick{padding-bottom:10px;padding-right:22px}.trade-tiles-eight .trade-tile-rate{position:absolute;bottom:2px;left:5px}.trade-tiles-eight .trade-tile-emoji{font-size:1.7rem}.trade-tiles-eight .trade-tile-face strong{font-size:1.25rem}.trade-tiles-eight .trade-tile:has(.trade-tile-rate) .trade-tile-pick{padding-bottom:14px}}@media (width<=600px) and (height<=600px){.modal.trade-dialog{gap:6px}.trade-tiles-eight .trade-tile{height:52px}.trade-tile-have{font-size:.6rem;line-height:15px;top:1px;right:2px}.trade-tiles-eight .trade-tile-pick{padding-top:12px}.trade-tiles-eight .trade-tile-emoji{font-size:1.5rem}.trade-tiles-eight .trade-tile-face strong{font-size:1.1rem}}@media (width>=601px) and (height<=500px){.modal.trade-dialog:not(.pick-dialog){grid-template-columns:1fr 1fr;gap:6px 10px;padding:10px 14px;display:grid}.trade-dialog:not(.pick-dialog)>:not(.trade-strip,.close){grid-column:1/-1}.trade-dialog:not(.pick-dialog)>.trade-summary{order:1}.trade-dialog:not(.pick-dialog)>.trade-options{order:2}.trade-dialog:not(.pick-dialog)>.trade-send{order:3}.trade-dialog:not(.pick-dialog) .trade-tile{height:64px}.trade-dialog:not(.pick-dialog) .trade-tile-pick{padding-top:12px}.trade-dialog:not(.pick-dialog) .trade-tile:has(.trade-tile-less) .trade-tile-pick{padding-bottom:8px;padding-right:20px}.trade-dialog:not(.pick-dialog) .trade-tile-emoji{font-size:1.5rem}.trade-dialog:not(.pick-dialog) .trade-tile-face strong{font-size:1.1rem}.trade-dialog:not(.pick-dialog) .trade-tile-less{width:24px;height:24px}.trade-dialog:not(.pick-dialog) .trade-strip h3{margin-bottom:3px}}@media (prefers-reduced-motion:reduce){.trade-tile{transition:none}}.modal.pick-dialog{width:min(560px,100%)}.barbarian-track{gap:3px;margin:5px 0 2px;display:flex}.barbarian-track span{text-align:center;border:1px solid var(--line);border-radius:4px;flex:1;padding:3px 0}.barbarian-track .ship-here{background:var(--ink);color:var(--card);font-weight:700}.knights-event{text-align:center;border:2px solid var(--track-color,var(--line));border-radius:7px;flex-direction:column;min-width:34px;padding:3px 5px;font-size:.65rem;display:inline-flex}.knights-event strong{font-size:.72rem}.track-science{--track-color:#35834a}.track-trade{--track-color:#d5a51b}.track-politics{--track-color:#478ac0}.knights-panel{margin-top:12px}.knights-panel h4{margin:12px 0 6px}.improvement-tracks{gap:7px;display:grid}.improvement{border-left:4px solid var(--track-color);padding-left:8px}.improvement>div{justify-content:space-between;align-items:center;display:flex}.improvement i{border:1px solid var(--track-color);border-radius:2px;width:10px;height:10px;margin-left:3px;display:inline-block}.improvement i.filled{background:var(--track-color)}.improvement small{color:var(--muted);margin:3px 0;font-size:.68rem;display:block}.improvement button{width:100%;padding:6px;font-size:.75rem}.progress-hand{gap:7px;display:grid}.progress-card{white-space:normal;text-align:left;border-left:4px solid var(--track-color);width:100%;min-width:0;display:block}.progress-card small{margin-top:4px;font-size:.72rem;display:block}.progress-card:disabled{opacity:.65}.modal.knights-dialog{max-width:620px}.knights-choice-board{border:1px solid var(--line);border-radius:8px;height:min(42vh,330px);overflow:hidden}.knights-choice-board .board-view{width:100%;height:100%}.knights-options{flex-wrap:wrap;gap:6px;max-height:140px;margin:8px 0;display:flex;overflow:auto}.knights-options button{min-height:40px;font-size:.8rem}.knights-skip{z-index:20;position:fixed;bottom:16px;left:16px}.knights-skip button{box-shadow:0 2px 12px #0005}.improvement small.improvement-why{margin:2px 0 0;font-size:.64rem}.knights-choice-board .target.hex{fill:#f9d44844;stroke:#f9d448}.knights-game .hand{gap:4px}.knights-game .res-card{min-width:0}.knights-game .res-card>span{font-size:1.1rem}.knights-game .animated-dice__die:first-child{background:#b73b38}.knights-game .animated-dice__die:first-child .animated-dice__pip{background:#fff}.knights-game .animated-dice__die:nth-child(2){background:#edc856}.knights-game .animated-dice__die:nth-child(2) .animated-dice__pip{background:#302a20}.stats-panel{min-width:0;color:var(--ink);font-variant-numeric:tabular-nums;gap:1.2rem;display:grid}.stats-panel h3{margin:0 0 .4rem}.stats-dice{margin:0}.stats-caption,.stats-legend,.stats-empty{color:var(--muted);margin:0;font-size:.8rem}.stats-dice .stats-empty{text-align:center;padding:1.25rem 0}.stats-dice-chart{max-width:440px;height:auto;margin:.1rem auto 0;display:block;overflow:visible}.stats-axis{stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.stats-dice-bar{fill:var(--sea)}.stats-dice-seven{fill:#8999a6}.stats-expected{stroke:var(--ink);stroke-opacity:.5;stroke-width:2px;vector-effect:non-scaling-stroke}.stats-dice-count,.stats-dice-label,.stats-robber-note{text-anchor:middle;fill:var(--ink);font-size:13px}.stats-dice-count{font-weight:600}.stats-robber-note{fill:var(--muted);font-size:9px}.stats-legend{text-align:center}.stats-resources{gap:.25rem;margin-bottom:.9rem;display:grid}.stats-resource{grid-template-columns:5.8rem minmax(0,1fr) minmax(2.5ch,auto);align-items:center;gap:.5rem;font-size:.8rem;display:grid}.stats-resource-label{white-space:nowrap}.stats-resource-bar{min-width:0;display:block}.stats-resource-count{text-align:right}.with-share .stats-resource{grid-template-columns:5.8rem minmax(0,1fr) minmax(2.5ch,auto) minmax(5ch,auto)}.stats-resource-you{color:var(--muted);white-space:nowrap;font-size:.72rem}.stats-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.72rem}.stats-table caption{text-align:left;margin-bottom:.4rem;font-size:.8rem;font-weight:600}.stats-robber caption{font-size:.95rem}.stats-table .stats-name-column{width:31%}.stats-robber .stats-name-column{width:30%}.stats-robber col:nth-child(2){width:20%}.stats-robber col:nth-child(3),.stats-robber col:nth-child(4){width:13%}.stats-robber col:last-child{width:24%}.stats-table th,.stats-table td{border-bottom:1px solid var(--line);text-align:right;padding:.4rem .15rem}.stats-table thead th{color:var(--muted);border-bottom-color:var(--line);font-weight:500}.stats-table th:first-child{text-align:left;padding-left:0}.stats-table th:last-child,.stats-table td:last-child{padding-right:0}.stats-table tbody th{font-weight:500}.stats-table .stats-total{font-weight:600}.stats-robber thead th{overflow-wrap:anywhere;font-size:.66rem}.stats-player{align-items:center;gap:.3rem;min-width:0;display:flex}.stats-player-swatch{border:1px solid #0006;border-radius:50%;flex:none;width:.65rem;height:.65rem}.stats-player-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f4f6f9;--card:#fff;--sunk:#eceff3;--raised:#fff;--paper:#fff3d6;--sea:#1f6f9e;--ink:#1f2430;--muted:#576072;--line:#e1e5eb;--line-strong:#cfd5de;--field:#8a94a5;--primary:#0a66c2;--on-primary:#fff;--accent:#f2a516;--on-accent:#2a1d00;--danger:#c42b1c;--success:#1f8a4c;--focus:color-mix(in srgb, var(--primary) 45%, transparent);--on-strong:#fff;--radius:16px;--radius-md:12px;--radius-sm:10px;--shadow-sm:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-md:0 2px 4px #1018280d, 0 6px 16px -2px #1018281a;--shadow-lg:0 8px 16px -4px #1018281f, 0 24px 48px -12px #10182847;--ease-out:cubic-bezier(.16, 1, .3, 1);--font:"Figtree Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#14171c;--card:#1f242c;--sunk:#282e37;--raised:#262c35;--paper:#3a3020;--sea:#1a5a82;--ink:#eef1f5;--muted:#a3adbd;--line:#323943;--line-strong:#414a56;--field:#6b7584;--primary:#5aa9ff;--on-primary:#0b1a2b;--accent:#f5b73b;--on-accent:#2a1d00;--danger:#ff8a7a;--success:#5fd08f;--on-strong:#14171c;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 4px #00000040, 0 8px 20px -4px #00000073;--shadow-lg:0 10px 20px -6px #00000080, 0 28px 56px -12px #000000a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14171c;--card:#1f242c;--sunk:#282e37;--raised:#262c35;--paper:#3a3020;--sea:#1a5a82;--ink:#eef1f5;--muted:#a3adbd;--line:#323943;--line-strong:#414a56;--field:#6b7584;--primary:#5aa9ff;--on-primary:#0b1a2b;--accent:#f5b73b;--on-accent:#2a1d00;--danger:#ff8a7a;--success:#5fd08f;--on-strong:#14171c;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 4px #00000040, 0 8px 20px -4px #00000073;--shadow-lg:0 10px 20px -6px #00000080, 0 28px 56px -12px #000000a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root{font-family:var(--font);font-optical-sizing:auto;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{margin:0}::selection{background:color-mix(in srgb, var(--primary) 28%, transparent)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}h1,h2,h3,h4{letter-spacing:-.012em;text-wrap:balance;margin:0 0 .5rem;font-weight:700;line-height:1.2}h1{letter-spacing:-.02em;font-size:1.35rem}h2{font-size:1.12rem}h3{font-size:.95rem}h4{margin-top:.6rem;font-size:.85rem}code{background:var(--sunk);border-radius:6px;padding:.05em .35em;font-size:.85em}a{color:var(--primary);text-underline-offset:.18em}button,.button,input,select,textarea{font:inherit;color:inherit}button,.button{border:1px solid var(--line-strong);background:var(--card);min-height:2.25rem;box-shadow:var(--shadow-sm);cursor:pointer;white-space:nowrap;transition:background-color .14s var(--ease-out), border-color .14s var(--ease-out), box-shadow .14s var(--ease-out), transform .14s var(--ease-out);border-radius:999px;align-items:center;gap:.4em;padding:.45em 1em;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}button svg,.button svg{stroke-width:2.1px;flex:none;width:1.15em;height:1.15em}button:hover:not(:disabled),.button:hover{border-color:var(--field);background:color-mix(in srgb, var(--sunk) 55%, var(--card))}button:active:not(:disabled){transform:scale(.97)}button:disabled{background:var(--sunk);box-shadow:none;color:var(--muted);cursor:not-allowed;border-color:#0000}button.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--primary) 88%, var(--ink));border-color:#0000}button.primary:disabled{background:var(--sunk);color:var(--muted);border-color:#0000}button.go:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}button.go:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, #000)}button.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--line-strong))}button.danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 9%, var(--card));border-color:var(--danger)}button.small{min-height:2rem;padding:.25em .75em;font-size:.85rem}button.big{min-height:2.75rem;padding:.6em 1.3em;font-size:1.05rem}button.link{min-height:0;box-shadow:none;color:var(--primary);background:0 0;border:none;padding:.2em}button.link:hover:not(:disabled){background:0 0;text-decoration:underline}.icon-button,button.icon{justify-content:center;width:2.25rem;min-width:2.25rem;height:2.25rem;padding:0}input,select,textarea{border:1px solid var(--field);border-radius:var(--radius-sm);background:var(--card);min-width:0;min-height:2.5rem;transition:border-color .14s var(--ease-out), box-shadow .14s var(--ease-out);padding:.45em .75em}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--muted)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus);outline:none}input:disabled,select:disabled{background:var(--sunk);color:var(--muted);border-color:var(--line-strong)}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--primary)}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23768093' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .7em center;background-repeat:no-repeat;background-size:1em;padding-right:2.1em}label{flex-direction:column;gap:.3em;font-size:.9rem;font-weight:600;display:flex}label .muted,label .small{font-weight:400}label.check{flex-direction:row;align-items:flex-start;gap:.55em;font-weight:500}label.check input{flex:none;margin-top:.25em}label.check.inline{align-items:center;gap:.3em}fieldset{border:none;margin:0;padding:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.button:focus-within:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.page{max-width:1100px;margin:0 auto;padding:1rem}.page.narrow{max-width:640px}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-md);margin-bottom:.8rem;padding:1rem 1.1rem;position:relative}.stack{flex-direction:column;gap:.7rem;display:flex}.row{align-items:center;gap:.5rem;margin:.4rem 0;display:flex}.row>input{flex:1}.row.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.75rem}.error{color:var(--danger);font-weight:500}.badge{background:var(--sunk);color:var(--ink);border-radius:999px;align-items:center;margin-left:.3em;padding:.05em .55em;font-size:.72rem;font-weight:600;line-height:1.5;display:inline-flex}.dot{vertical-align:-.05em;border-radius:50%;width:.8em;height:.8em;display:inline-block;box-shadow:inset 0 0 0 1px #0000004d}.dot.big{flex:none;width:1.1em;height:1.1em}.online,.offline{vertical-align:.1em;border-radius:50%;width:.5em;height:.5em;margin-left:.35em;display:inline-block}.online{background:var(--success)}.offline{background:var(--line-strong)}.banner.warn{background:var(--paper);color:var(--ink);text-align:center;padding:.35rem;font-weight:600}.toast{background:var(--ink);color:var(--on-strong);z-index:50;box-shadow:var(--shadow-lg);cursor:pointer;border-radius:999px;padding:.65rem 1.1rem;font-weight:600;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.room-list{margin:0;padding:0;list-style:none}.room-list li{border-bottom:1px solid var(--line);flex-direction:column;padding:.45rem 0;display:flex}.room-list a{color:inherit;text-decoration:none}.join{max-width:1100px;margin:1rem auto}.topbar{flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex}.topbar h1{margin:0}.topbar .spacer{flex:1}@media (prefers-reduced-motion:reduce){button,.button,input,select{transition:none}button:active:not(:disabled){transform:none}}.game{flex-direction:column;min-width:0;height:100dvh;display:flex;overflow:hidden}.game-topbar{flex-wrap:nowrap;flex:none;gap:.5rem;min-height:48px}.game-topbar h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.game-topbar>button{flex:none}.icon-button{justify-content:center;min-width:36px;min-height:36px;padding:.25rem}.game-body{flex:1;grid-template-columns:minmax(0,1fr) clamp(280px,29vw,380px);gap:.8rem;min-height:0;padding:0 .8rem .8rem;display:grid}.board-wrap{background:var(--sea);border-radius:var(--radius);flex-direction:column;min-width:0;min-height:0;padding:.5rem;display:flex;position:relative}.board-stage{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.board{-webkit-user-select:none;user-select:none;flex:1;width:100%;height:100%;min-height:0}.status-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.clock-bubble{background:var(--raised);border:1px solid var(--line);width:40px;height:40px;box-shadow:var(--shadow-md);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;display:grid}.clock-bubble .turn-clock{font-size:.7rem}.sidebar{overscroll-behavior-y:contain;min-width:0;min-height:0;overflow-y:auto}.sidebar>:last-child{margin-bottom:0}.turn{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.turn-buttons{gap:.5rem;display:flex}.turn .animated-dice{font-size:1rem}.hand{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.res-card{border:1px solid color-mix(in srgb, var(--res) 60%, var(--card));border-radius:var(--radius-sm);background:linear-gradient(180deg, color-mix(in srgb, var(--res) 32%, var(--card)), color-mix(in srgb, var(--res) 18%, var(--card)));width:3rem;height:4rem;color:var(--ink);box-shadow:var(--shadow-sm);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.res-card span{font-size:1.3rem;line-height:1}.res-card strong{font-size:1.1rem;font-weight:800;line-height:1}.res-card.empty{border-color:var(--line);background:var(--sunk);box-shadow:none;color:var(--muted)}.res-card.empty span{filter:grayscale(.7);opacity:.55}.cards-inline>span{white-space:nowrap}.devcard{justify-content:space-between;align-items:center;padding:.2rem 0;font-size:.9rem;display:flex}.trade-buttons{grid-template-columns:1fr;gap:.35rem;margin-top:.5rem;display:grid}.trade-buttons button{justify-content:center}.players{margin:0;padding:0;list-style:none}.players li{border-radius:var(--radius-sm);grid-template-columns:auto 1fr auto;grid-template-areas:"dot name vp"".stats stats"".awards awards";gap:.1rem .55rem;padding:.45rem .5rem;display:grid}.players li.acting{background:color-mix(in srgb, var(--accent) 16%, var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 60%, transparent)}.players .dot{grid-area:dot;margin-top:.15em}.pname{grid-area:name;font-weight:600}.vp{font-variant-numeric:tabular-nums;grid-area:vp;font-weight:800}.stats{grid-area:stats;gap:.7rem;display:flex}.awards{grid-area:awards}.awards .badge:first-child{margin-left:0}.bank{margin-top:.4rem}.log{flex-direction:column;gap:.15rem;max-height:220px;font-size:.82rem;display:flex;overflow-y:auto}.res-btn{border-width:2px}.standings{padding-left:1.2rem}.target{cursor:pointer}.target:hover{fill:#ffffff59;stroke:#fff}.placement-preview{pointer-events:none;opacity:.75;animation:.9s ease-in-out 7 alternate preview-pulse}@keyframes preview-pulse{0%{opacity:.45}to{opacity:.9}}@media (prefers-reduced-motion:reduce){.placement-preview{opacity:.75;animation:none}}.placement-confirm span{text-overflow:ellipsis;overflow:hidden}.placement-confirm button{min-height:40px;padding:0 14px}@keyframes pulse{0%{opacity:.55}to{opacity:1}}.modal-backdrop{z-index:40;background:#0a0e1480;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{overscroll-behavior-y:contain;border-color:var(--line);width:100%;max-width:520px;max-height:calc(100dvh - 2rem);box-shadow:var(--shadow-lg);animation:modal-in .22s var(--ease-out);border-radius:20px;margin:0;padding:1.25rem 1.25rem 1.1rem;overflow-y:auto}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}@media (prefers-reduced-motion:reduce){.modal{animation:none!important}}.modal.still{animation:none!important}@media (width<=599px){.modal-backdrop{align-items:flex-end;padding:.75rem 0 0}.modal{max-height:calc(100dvh - .75rem);padding-bottom:max(1.1rem, env(safe-area-inset-bottom));animation:sheet-in .3s var(--ease-out);border-bottom:0;border-radius:22px 22px 0 0}@keyframes sheet-in{0%{opacity:.5;transform:translateY(2rem)}}}.modal h2{letter-spacing:-.02em;margin-bottom:.9rem;padding-right:2.5rem;font-size:1.2rem}.modal.stats-modal{max-width:560px}.game-menu .join{box-shadow:none;margin:0;padding:0}.game-menu .timer-settings{flex-wrap:wrap}.game-menu>select{max-width:100%}.game-menu>button,.game-menu>.button{white-space:normal;align-self:flex-start}.modal .close{background:var(--sunk);box-shadow:none;color:var(--muted);border-color:#0000;position:absolute;top:.9rem;right:.9rem}.modal .close:hover:not(:disabled){background:var(--line);color:var(--ink)}.game-compact .game-topbar{gap:.25rem;height:40px;min-height:40px;padding:0 .4rem}.game-compact .game-topbar h1{font-size:.95rem}.game-compact .game-topbar .link{font-size:.85rem}.game-compact .icon-button{min-width:34px;min-height:36px}.game-compact .game-body{flex-direction:column;gap:0;min-height:0;padding:0;display:flex}.game-compact .status .turn-clock{font-size:.7rem}.game-connection-banner{z-index:35;border-radius:0 0 6px 6px;max-width:100%;position:fixed;top:40px;left:50%;transform:translate(-50%)}@media (width<=1100px){.game-topbar .rules-summary{display:none}}.game-wide .board-stage>.hand-panel{z-index:5;border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);width:min(300px,100% - 100px);box-shadow:var(--shadow-lg);margin:0;padding:12px;position:absolute;bottom:8px;left:8px}.game-wide .board-stage>.hand-panel h3{margin:0 0 6px;font-size:.9rem}.game-wide .board-stage>.hand-panel .res-card{height:3rem}.hand-panel h3{justify-content:space-between;align-items:baseline;display:flex}.hand-panel .hand{flex-wrap:nowrap}.hand-panel .res-card{flex:1;min-width:0}.hand-panel .trade-buttons button{padding:.4rem .2rem;font-size:.75rem}.theme-setting{margin:0 0 .8rem}.theme-setting select{width:100%}.game-menu .theme-setting{margin:0}.modal.winner-modal{max-width:720px}.winner-modal>.row{flex-wrap:wrap}.player-strip{z-index:5;gap:4px;display:grid;position:absolute;top:3px;left:6px;right:6px}.player-chip{border:1px solid var(--line);background:var(--raised);min-width:0;box-shadow:var(--shadow-sm);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:9px;align-items:center;gap:4px;padding:5px 7px;font-size:.68rem;font-weight:500;display:flex}.player-chip strong{text-overflow:ellipsis;min-width:0;max-width:58px;overflow:hidden}.player-chip>span:last-child{margin-left:auto}.player-chip.acting{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, var(--raised));box-shadow:0 0 0 1px var(--accent), var(--shadow-sm)}.player-chip .dot{flex:none}.game-compact .board-wrap{border-radius:0;flex:1;min-height:0;padding:0}.game-compact .clock-bubble{width:34px;height:34px}.game-compact .board-stage{padding-top:34px}.warn-text{color:color-mix(in srgb, var(--accent) 45%, var(--ink))}.game-compact .many-players{padding-top:88px}.many-players .player-chip{grid-template-columns:auto 1fr auto;gap:1px 3px;padding:3px 4px;display:grid}.many-players .player-chip strong{grid-column:2/4;max-width:none}.many-players .player-chip>span:nth-child(3){grid-column:2}.status-row{flex:none;align-items:center;gap:6px;min-height:48px;padding-bottom:6px;display:flex}.status{border-radius:var(--radius-md);border:1px solid var(--line);min-width:0;color:var(--ink);text-align:left;white-space:normal;background:var(--raised);box-shadow:var(--shadow-md);flex:1;align-items:center;gap:.5rem;padding:9px 12px;font-size:.9rem;font-weight:700;display:flex;position:relative}.status:hover:not(:disabled){border-color:var(--line-strong);background:var(--raised)}.status:active:not(:disabled){transform:none}.status>.dot{width:.7rem;height:.7rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--player) 28%, transparent);flex:none}.status.mine,.status.mine:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb, var(--accent) 20%, var(--raised));box-shadow:0 0 0 1px var(--accent), var(--shadow-md)}.status-lines{flex-direction:column;flex:1;gap:1px;min-width:0;line-height:1.25;display:flex}.log-latest{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:.86em;font-weight:500;animation:.26s ease-out log-latest;overflow:hidden}.log-latest.seven .log-roll{color:var(--danger)}@keyframes log-latest{0%{opacity:0;transform:translateY(4px)}}.status-caret{width:1rem;height:1rem;color:var(--muted);flex:none}.log-drop{z-index:11;border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);height:min(50dvh,380px);box-shadow:var(--shadow-lg);animation:log-drop .2s var(--ease-out);flex-direction:column;padding:10px;font-size:.85rem;display:flex;position:absolute;top:50px;left:.5rem;right:.5rem}.log-drop .log-panel{min-height:0;box-shadow:none;flex-direction:column;flex:1;margin:0;padding:0;display:flex}.log-drop .log-panel h3{display:none}.log-drop .log{flex:1;min-height:0;max-height:none}@keyframes log-drop{0%{opacity:0;transform:translateY(-12px)}}.turn-action{justify-content:center;min-height:38px;padding:0 16px;font-weight:800}.turn-action.urgent{position:relative}.turn-action.urgent:after{content:"";border-radius:inherit;box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 40%, transparent);opacity:0;pointer-events:none;animation:.9s ease-in-out 11 alternate forwards action-pulse;position:absolute;inset:-1px}@media (prefers-reduced-motion:no-preference){[data-beat] .turn-action.urgent:after{animation:.9s ease-in-out 11 alternate forwards action-pulse,1.6s ease-in-out 2 action-beat}}.turn-action.urgent:disabled:after{animation:none}@keyframes action-pulse{to{opacity:1}}@keyframes action-beat{0%,to{opacity:1}50%{opacity:0}}.board-dice .turn-action{pointer-events:auto;border-radius:12px;min-height:44px;padding:0 20px;font-size:1rem}.status-menu{border-radius:var(--radius-md);background:var(--raised);width:38px;min-width:38px;height:38px;min-height:38px;box-shadow:var(--shadow-md);flex:none;justify-content:center;padding:0}.game-compact .status-row{gap:5px;min-height:0;padding:4px 6px}.game-compact .status{border-radius:9px;height:auto;min-height:38px;padding:4px 8px;font-size:.74rem}.game-compact .log-drop{top:46px;left:6px;right:6px}.your-move .board-stage:after{content:"";z-index:3;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 3px var(--accent);position:absolute;inset:0}.turn-banner{z-index:7;background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap;border-radius:20px;flex-direction:column;align-items:center;gap:2px;padding:14px 30px;animation:2.2s both turn-banner;display:flex;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.turn-banner strong{letter-spacing:-.03em;font-size:1.75rem;font-weight:800;line-height:1.1}.turn-banner span{font-size:.85rem;font-weight:700}@keyframes turn-banner{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}12%,80%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)}}@keyframes turn-banner-fade{0%,to{opacity:0}8%,85%{opacity:1}}@media (prefers-reduced-motion:reduce){.turn-banner{animation-name:turn-banner-fade}.turn-action.urgent{box-shadow:0 0 0 3px var(--accent)}.turn-action.urgent:after,.log-latest,.log-drop{animation:none}}.board-hud{z-index:4;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:6px;display:flex;position:absolute;top:6px;left:6px;right:6px}.board-hud>*{pointer-events:auto}.game-compact .board-hud{top:38px}.game-compact .many-players .board-hud{top:92px}.barbarian-map,.city-map{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--raised);min-height:0;color:var(--ink);box-shadow:var(--shadow-md);white-space:nowrap;padding:6px 8px;font-size:.68rem;font-weight:700}.barbarian-map{flex-direction:column;align-items:stretch;gap:2px}.barbarian-map__track{align-items:center;gap:2px;display:flex}.barbarian-map__track i{background:color-mix(in srgb, var(--sea) 60%, var(--card));border-radius:50%;place-items:center;width:11px;height:11px;font-style:normal;line-height:1;display:grid}.barbarian-map__track i.ship,.barbarian-map__track i.shore{background:0 0;width:17px;height:17px;font-size:14px}.barbarian-map__odds{text-align:center}.barbarian-map__odds.losing{color:var(--danger)}.barbarian-map--near{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 55%, transparent)}.barbarian-map--sailing{z-index:6;transform-origin:0 0;animation:map-sail var(--sail) ease-in-out both;position:relative}.barbarian-map__track i.sailing{animation:ship-sail var(--sail) ease-in-out both}.barbarian-map--attack{animation-name:map-sail,map-attack;animation-duration:var(--sail), var(--sail);animation-timing-function:ease-in-out}@keyframes map-sail{0%{scale:1}14%,82%{scale:1.8;box-shadow:0 10px 30px #00000073}to{scale:1}}@keyframes ship-sail{0%,22%{translate:calc(var(--steps) * -13px) 0;rotate:0deg}34%{rotate:-9deg}46%{rotate:7deg}58%{rotate:-5deg}68%,to{translate:0;rotate:0deg}}@keyframes map-attack{0%,66%{translate:0}70%{translate:-3px}74%{translate:3px}78%{translate:-2px}82%,to{translate:0}}@media (prefers-reduced-motion:reduce){.barbarian-map--sailing,.barbarian-map__track i.sailing{animation:none}}.city-map{justify-items:start;gap:2px;display:grid}.city-map__row{align-items:center;gap:2px;display:flex}.city-map__row b{width:13px;color:var(--track-color);text-align:center;font-size:11px}.city-map__row i{border:1px solid var(--track-color);border-radius:2px;width:8px;height:8px}.city-map__row i.filled{background:var(--track-color)}.city-map em{text-align:center;color:var(--accent);justify-self:stretch;font-style:normal}.city-map--ready{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent), 0 0 14px color-mix(in srgb, var(--accent) 60%, transparent)}.board-dice{z-index:4;pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;bottom:6px;left:6px}.game-wide .board-dice{bottom:8px;left:auto;right:52px}.dice-row{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--raised);box-shadow:var(--shadow-md);align-items:center;gap:6px;padding:4px 7px;display:flex}.board-dice .animated-dice{padding:0;font-size:.62rem}.game-wide .board-dice .animated-dice{font-size:.8rem}.board-dice .knights-event{min-width:0;padding:1px 4px;font-size:.58rem}.event-bank{opacity:0;top:45%;left:6px}.target.vertex,.target.edge,.target.hex{fill:none;stroke:none;animation:.8s ease-in-out 7 alternate target-pulse}@media (prefers-reduced-motion:no-preference){[data-beat] .target{animation:.8s ease-in-out 7 alternate target-pulse,1.6s ease-in-out 2 target-beat}}.target .target-hit{fill:#0000;stroke:#0000}.target.edge .target-halo{stroke:#ffffffd9}.target.edge .target-core{stroke:#f2a516}.target.vertex .target-ring{fill:#ffffff59;stroke:#fff}.target.vertex.occupied .target-ring{fill:#ffffff1f;stroke:#f2a516}.target.vertex .target-core{fill:#f2a516;stroke:#fff}.target:hover .target-core{fill:#ffc44d}.target.vertex:hover .target-ring{fill:#fff9}@keyframes target-pulse{0%{opacity:.7}to{opacity:1}}@keyframes target-beat{0%,to{opacity:1}50%{opacity:.7}}.target.hex .target-glow{fill:#ffe27a42;stroke:#ffe27a80;stroke-linejoin:round}.target.hex .target-shade{fill:none;stroke:#0e161e8c;stroke-linejoin:round}.target.hex .target-edge{fill:none;stroke:#ffe27a;stroke-linejoin:round}.target.hex:hover .target-glow{fill:#ffe27a5c}.target.hex.chosen{animation:none}.target.hex.chosen .target-glow{fill:#fff6cf73;stroke:#fff6cf99}.target.hex.chosen .target-edge{stroke:#fff6cf}@media (prefers-reduced-motion:reduce){.target.vertex,.target.edge,.target.hex{animation:none}}.placement-spot{animation:.6s ease-in-out 9 alternate preview-pulse}.placement-confirm{border:1px solid var(--line);background:var(--raised);max-width:calc(100% - 16px);color:var(--ink);box-shadow:var(--shadow-lg);white-space:nowrap;z-index:9;border-radius:999px;align-items:center;gap:8px;padding:6px 6px 6px 14px;font-weight:700;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%)}.game-compact .placement-confirm{top:auto;bottom:8px}.mode-pill{padding-top:4px;padding-bottom:4px;font-size:.8rem}.mode-pill button{min-height:32px}.build{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0;display:grid}.build-btn{border-radius:var(--radius-sm);white-space:nowrap;flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:52px;padding:4px 2px;font-size:.78rem;font-weight:700}.build-btn__name{text-overflow:ellipsis;max-width:100%;overflow:hidden}.build-btn .cost{letter-spacing:-.15em;justify-content:center;font-size:.7rem;font-weight:400;display:flex}.build-btn .cost.muted{letter-spacing:0}.build-btn.ready{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--card));box-shadow:0 0 0 1px var(--accent), 0 4px 12px -4px color-mix(in srgb, var(--accent) 70%, transparent)}.build-btn.active,.build-btn.active:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.build-btn.request-trade{border-style:dashed;border-color:var(--field);background:var(--card)}.build-shortfall{flex-wrap:wrap;justify-content:center;align-items:center;column-gap:2px;max-width:100%;font-size:.64rem;font-weight:600;line-height:1.15;display:flex}.build-shortfall .cost{font-size:.64rem}.hand-cards{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;font-size:.74rem;display:flex}.hand-cards__title{color:var(--muted);margin-right:2px;font-weight:700}.card-chip{border:1px solid var(--track-color,var(--line-strong));background:var(--card);min-height:30px;box-shadow:none;border-radius:999px;padding:2px 10px;font-size:.76rem;font-weight:600}span.card-chip{align-items:center;display:inline-flex}.card-chip.ready{background:color-mix(in srgb, var(--track-color,var(--accent)) 28%, var(--card));box-shadow:0 0 0 1px var(--track-color,var(--accent))}.region-panel{border-top:1px solid var(--line);gap:4px;margin-top:6px;padding-top:6px;font-size:.74rem;display:grid}.region-panel p{margin:0}.region-rule{line-height:1.25}.region-line{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.region-line .cards-inline{font-size:.7rem}.ladder{gap:2px;margin-right:2px;display:inline-flex}.ladder-step{opacity:.35;filter:grayscale()}.ladder-step.done{opacity:1;filter:none}.region-hint{margin-top:2px;display:inline-block}.res-chip{border:1px solid color-mix(in srgb, var(--res,var(--line)) 70%, transparent);background:color-mix(in srgb, var(--res,var(--line)) 22%, transparent);white-space:nowrap;border-radius:5px;align-items:center;gap:1px;padding:0 .3em;font-weight:800;line-height:1.3;display:inline-flex}.cards-inline{flex-wrap:wrap;gap:3px;display:inline-flex}.board-stage>.offers{z-index:8;border:1px solid var(--line);width:min(420px,100% - 16px);max-height:50%;margin:0;padding:8px 10px;font-size:.8rem;position:absolute;bottom:8px;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 8px 28px #00000059}.game-wide .board-stage>.offers{width:min(380px,100% - 380px);min-width:260px;left:auto;right:52px;transform:none}.offers-chip{z-index:8;border-radius:999px;min-height:34px;font-size:.78rem;font-weight:700;position:absolute;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0000004d}.offers-chip.for-me{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.game-wide .offers-chip{left:auto;right:52px;transform:none}.game-dock{background:var(--card);border-top:1px solid var(--line);z-index:10;min-width:0;padding:6px 7px calc(6px + env(safe-area-inset-bottom));flex:none;position:relative;box-shadow:0 -4px 16px #10182814}.game-dock .card{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.game-dock>.hand-panel{padding-bottom:5px}.game-dock .hand{gap:4px}.game-dock .res-card{flex-direction:row;gap:4px;height:34px}.game-dock .res-card span,.game-dock .res-card strong{font-size:.95rem}.dock-tabs{gap:4px;display:flex}.dock-tabs>*,.dock-tabs .trade-buttons>*{flex:1 1 0}.dock-tabs>.turn-action{flex:1.5 1 0;font-size:.9rem;font-weight:800}.dock-tabs .trade-buttons{display:contents}.dock-tabs button{border-radius:var(--radius-sm);background:var(--sunk);min-width:0;height:40px;min-height:40px;box-shadow:none;color:var(--ink);border-color:#0000;justify-content:center;gap:3px;padding:0 4px;font-size:.8rem;font-weight:700}.dock-tabs button:hover:not(:disabled){background:color-mix(in srgb, var(--sunk) 70%, var(--line-strong));border-color:#0000}.dock-tabs button.active,.dock-tabs button.active:hover:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--card)}.dock-tabs button.ready{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--card));box-shadow:0 0 0 1px var(--accent)}.dock-tabs>button.go:not(:disabled),.dock-tabs>button.go:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.dock-caret{opacity:.7;width:.95rem;height:.95rem}.dock-sheet{overscroll-behavior:contain;border:1px solid var(--line);background:var(--card);max-height:calc(100dvh - 140px);animation:sheet-up .22s var(--ease-out);border-bottom:0;border-radius:20px 20px 0 0;padding:10px 8px 8px;font-size:.86rem;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 -12px 32px -8px #1018284d}@keyframes sheet-up{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:reduce){.dock-sheet{animation:none}}.dock-sheet .players li{padding:.2rem}.dock-sheet .pname{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dock-sheet .players .stats{gap:.5rem;font-size:.72rem}.dock-sheet h3{display:none}.dock-sheet-log{flex-direction:column;height:min(50dvh,360px);display:flex;overflow:hidden}.dock-sheet-log .log-panel{flex-direction:column;flex:1;min-height:0;display:flex}.dock-sheet-log .log{flex:1;min-height:0;max-height:none}.sheet-backdrop{z-index:9;min-height:0;box-shadow:none;background:#0a0e144d;border:0;border-radius:0;padding:0;position:absolute;inset:0}.sheet-backdrop:active:not(:disabled){transform:none}.sheet-backdrop:hover:not(:disabled){background:#0a0e144d;border:0}.game-wide .sidebar{flex-direction:column;display:flex;overflow:hidden}.game-wide .sidebar>.card{flex:none;margin-bottom:.6rem;padding:.7rem .8rem}.game-wide .sidebar>.log-panel{flex-direction:column;flex:1;min-height:90px;margin-bottom:0;display:flex}.game-wide .sidebar .log{flex:1;min-height:0;max-height:none}.game-wide .sidebar h3{margin:0 0 .45rem}.side-tabs{background:var(--sunk);border-radius:999px;flex:none;gap:4px;margin-bottom:.5rem;padding:3px;display:none}.side-tabs button{min-height:2rem;box-shadow:none;color:var(--muted);background:0 0;border-color:#0000;flex:1;justify-content:center;font-weight:700}.side-tabs button.active,.side-tabs button.active:hover:not(:disabled){background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm);border-color:#0000}@media (height<=860px){.game-wide .side-tabs{display:flex}.game-wide .side-players>.log-panel,.game-wide .side-log>.players-panel{display:none}.game-wide .sidebar>.players-panel,.game-wide .sidebar>.log-panel{flex:1;min-height:0;margin-bottom:0;overflow-y:auto}.game-wide .sidebar>.players-panel h3,.game-wide .sidebar>.log-panel h3{display:none}}.game-wide .sidebar>.card.build-panel{padding:.6rem .5rem}.game-wide .build{gap:4px}.game-wide .build-btn{min-height:54px;padding:3px 1px;font-size:.66rem}.game-wide .build-btn .cost{font-size:.66rem}.turn-action:disabled{opacity:.6;cursor:default;animation:none;background:var(--accent)!important;border-color:var(--accent)!important;color:var(--on-accent)!important}.spacer{flex:1}.tabs{background:var(--sunk);border-radius:999px;align-self:flex-start;gap:2px;margin-bottom:.75rem;padding:3px;display:inline-flex}.tabs button{min-height:2rem;box-shadow:none;color:var(--muted);background:0 0;border-color:#0000;padding:.3em .95em;font-weight:700}.tabs button:hover:not(:disabled){color:var(--ink);background:0 0;border-color:#0000}.tabs button.active,.tabs button.active:hover:not(:disabled){color:var(--ink);background:var(--card);box-shadow:var(--shadow-sm)}.panel{border-top:1px solid var(--line);margin-top:.6rem;padding-top:.6rem}.notice{background:var(--paper);border-radius:var(--radius-sm);padding:.5rem .7rem}.user-list{margin:0;padding:0;list-style:none}.user-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem 0;display:flex}.google-button{min-height:44px}.home{isolation:isolate;grid-template:"title art""play play""games games"minmax(6rem,1fr)/minmax(0,1fr) minmax(0,1fr);gap:.6rem;height:100dvh;padding:.75rem;display:grid;position:relative}.island-art{z-index:-1;background:#2b6f99;width:100%;height:100%;position:absolute;inset:0}.island-ship{transform-box:fill-box;transform-origin:50% 100%;animation:3.4s ease-in-out infinite island-rock}.island-drift{animation:9s ease-in-out infinite island-drift}.island-wake{animation:3.4s ease-in-out infinite island-wake}.island-art .fleet-wake{fill:none;stroke:#d6eef6;stroke-opacity:.7;stroke-width:1.6px;stroke-linecap:round}.island-cheer{fill:#fff;stroke:#1d2630;stroke-width:5px;paint-order:stroke;stroke-linejoin:round;font-weight:900}.island-art.still .island-ship,.island-art.still .island-drift,.island-art.still .island-wake{animation:none}.island-art:has(.island-show.resting) :is(.island-ship,.island-drift,.island-wake){animation-play-state:paused}@keyframes island-rock{0%,to{transform:rotate(-7deg)}50%{transform:translateY(1.5px)rotate(7deg)}}@keyframes island-drift{50%{transform:translate(5px,-1.5px)}}@keyframes island-wake{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.island-ship,.island-drift,.island-wake{animation:none}}.home-title{color:#fff;text-shadow:0 1px 4px #05192899;grid-area:title;align-self:start}.home-title h1{letter-spacing:-.035em;align-items:center;gap:.35em;margin:0;font-size:2rem;font-weight:800;line-height:1.05;display:flex}.home-logo{filter:drop-shadow(0 1px 3px #05192880);flex:none;width:.95em;height:.95em}.home-title p{color:#ffffffeb;margin:.35rem 0 .55rem;font-size:.95rem;font-weight:500;line-height:1.35}.home-resources{text-shadow:none;flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.home-resources li{background:#081e308c;border:1px solid #ffffff47;border-radius:999px;padding:.12rem .55rem;font-size:.85rem;font-weight:600}.home-resources span{margin-left:.25em;display:none}.home-art{grid-area:art;min-height:9rem}.home-menu-button{z-index:1;max-width:100%;box-shadow:var(--shadow-md);border-color:#0000;grid-area:art;place-self:start end;overflow:hidden}.home-menu-button .who{text-overflow:ellipsis;min-width:0;overflow:hidden}.home-menu-caret{color:var(--muted)}.home .card{box-shadow:var(--shadow-lg);border-color:#0000;margin:0}.home h2{margin-bottom:.6rem;font-size:1.15rem}.home .card p:not(.home-or){margin:.35rem 0}.home-play{grid-area:play}.home-games{flex-direction:column;grid-area:games;min-height:0;display:flex}.home-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem .6rem;display:grid}.home-fields label{font-size:.82rem}.home-fields button{min-height:2.75rem;font-size:1rem}.home input{font-size:1rem}.home-fields .wide{grid-column:1/-1}.home-fields button{justify-content:center}.home-or{align-items:center;gap:.6rem;margin:.85rem 0 .6rem;display:flex}.home-or:before,.home-or:after{content:"";border-top:1px solid var(--line);flex:1}.home-play .row{margin:0}.home-play .error{margin:.5rem 0 0}.home-games .room-list{overscroll-behavior:contain;flex:1;min-height:0;margin:0 -.5rem;overflow-y:auto}.home-games .room-list li{border-bottom-color:var(--line);padding:0}.home-games .room-list li:last-child{border-bottom:none}.home-games .room-list a{border-radius:var(--radius-sm);transition:background-color .14s var(--ease-out);flex-direction:column;gap:.1rem;padding:.6rem;display:flex}.home-games .room-list a:hover{background:var(--sunk)}.home-games .room-list a:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.room-title code{color:var(--muted);letter-spacing:.06em;font-weight:600}.room-go{width:1.1rem;height:1.1rem;color:var(--muted);flex:none}.home-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;padding:1rem;display:flex}.home-empty svg{width:1.6rem;height:1.6rem;color:var(--primary);margin-bottom:.35rem}.home-empty p{max-width:28ch;margin:0!important}.home-empty p:first-of-type{font-weight:700}.room-title{align-items:center;gap:.3rem;min-width:0;display:flex}.room-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-title .badge{background:color-mix(in srgb, var(--primary) 14%, var(--card));color:var(--ink);flex:none;margin-left:0}@media (width<=599px){.home-resources{gap:.2rem}.home-resources li{padding:0 .3rem;font-size:.8rem}.home-menu-button .who{display:none}}@media (width<=359px){.home-title p{display:none}}@media (width>=600px){.home{grid-template:"title menu""art art"minmax(12rem,1fr)"play play""games games"minmax(10rem,1fr)/minmax(0,1fr) auto;gap:.9rem;padding:1rem 1.25rem}.home-title h1{font-size:2.6rem}.home-title p{font-size:1.05rem}.home-resources li{font-size:.95rem}.home-resources span{display:inline}.home-menu-button{grid-area:menu}.home-play,.home-games{justify-self:center;width:min(100%,640px)}}@media (width>=720px) and (orientation:landscape){.home{grid-template:"title menu""title play""art play""art games"minmax(0,1fr)/minmax(0,1fr) minmax(320px,420px)}.home-art{min-height:0}.home-play,.home-games{justify-self:stretch;width:auto}}@media (orientation:landscape) and (height<=500px){.home{grid-template:"title play menu""art play games"minmax(0,1fr)/minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr);gap:.6rem;padding:.6rem .75rem}.home-title h1{font-size:1.7rem}.home-title p,.home-resources{display:none}.home-play{align-self:start}.home-menu-button{justify-self:end}}.home.members{grid-template-rows:auto auto auto;align-content:start;height:auto;min-height:100dvh}.home.members .home-games{align-self:start}@media (width<=599px){.home.members .home-art{min-height:8rem}}.home-play>.card{margin:0}@media (width>=600px){.home.members{grid-template-rows:auto minmax(14rem,1fr) auto auto;align-content:stretch}}@media (width>=720px) and (orientation:landscape){.home.members{grid-template-rows:auto auto auto 1fr}}@media (orientation:landscape) and (height<=500px){.home.members{grid-template-rows:auto 1fr}}.home-menu>.card{box-shadow:none;border:0;margin:0;padding:0}.home-menu>.card form{gap:.75rem}.home-menu p{margin:0}.home-menu{gap:1.1rem}.home-menu .home-settings{border-top:1px solid var(--line);padding-top:1rem}.home-settings{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem;display:grid}.home-settings .theme-setting{margin:0}label.home-load{flex-direction:row;align-self:flex-start;font-size:1rem;position:relative}.home-load input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.lobby-page{isolation:isolate;grid-template:"head""players"minmax(10rem,auto)"rules""art"minmax(0,1fr)"start"/minmax(0,1fr);gap:.6rem;height:100dvh;padding:.75rem;display:grid;position:relative}.lobby-page .card{box-shadow:var(--shadow-lg);border-color:#0000;margin:0}.lobby-page input,.lobby-rules-modal input,.lobby-rules-modal select{font-size:1rem}.lobby-head{color:#fff;text-shadow:0 1px 4px #05192899;grid-area:head;align-items:center;gap:.5rem;min-width:0;display:flex}.lobby-head h1{-webkit-line-clamp:2;overflow-wrap:anywhere;letter-spacing:-.03em;-webkit-box-orient:vertical;flex:1;min-width:0;margin:0;font-size:1.3rem;font-weight:800;line-height:1.15;display:-webkit-box;overflow:hidden}.lobby-head button{color:var(--ink);text-shadow:none;box-shadow:var(--shadow-md);border-color:#0000;flex:none}.lobby-head button.lobby-delete{color:var(--danger)}.lobby-art{grid-area:art;min-height:0}.lobby-card-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.lobby-card-head h2{margin:0}.lobby-players{flex-direction:column;grid-area:players;min-height:0;display:flex}.lobby-players>*{flex:none}.lobby-invite{border-radius:var(--radius-md);background:var(--sunk);align-items:center;gap:.4rem;margin-bottom:.75rem;padding:.5rem .5rem .5rem .8rem;display:flex}.lobby-code-box{flex-direction:column;flex:1 0 auto;line-height:1.15;display:flex}.lobby-code{font:800 1.45rem/1.1 var(--font);font-variant-numeric:tabular-nums;letter-spacing:.14em}.lobby-invite button{flex:none}.seats{overscroll-behavior:contain;flex:0 auto;min-height:2.5rem;margin:0 -.5rem;padding:0;list-style:none;overflow-y:auto}.seats li{border-radius:8px;align-items:center;gap:.4rem;min-height:2.5rem;padding:.2rem .5rem;display:flex}.seats li.mine{background:color-mix(in srgb, var(--primary) 10%, transparent)}.seats .seat-actions .icon{width:2rem;min-width:2rem;height:2rem;min-height:2rem}.seats .badge{flex:none;margin-left:0}.seats .online,.seats .offline{flex:none;margin-left:.1rem}.seats .muted{flex:none}.seat-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.lobby-name{flex:0 11rem;min-width:4rem;padding:.25em .5em;font-weight:600}.seat-actions{flex:none;gap:.3rem;margin-left:auto;display:flex}.colors{border-top:1px solid var(--line);grid-template-columns:auto repeat(8,minmax(0,2rem));justify-content:space-between;align-items:center;gap:.45rem;margin-top:.5rem;padding-top:.5rem;display:grid}.swatch{aspect-ratio:1;border:0;border-radius:50%;width:100%;height:auto;min-height:0;padding:0;box-shadow:inset 0 0 0 1px #00000040}.swatch:hover:not(:disabled){box-shadow:inset 0 0 0 1px #00000040, 0 0 0 2px var(--card), 0 0 0 4px var(--field);background-image:none}.swatch.selected{box-shadow:0 0 0 2px var(--card), 0 0 0 4px var(--ink)}.swatch:disabled{opacity:.55;cursor:not-allowed;position:relative;background-image:linear-gradient(135deg, transparent calc(50% - 1.5px), var(--card) calc(50% - 1.5px), var(--card) calc(50% + 1.5px), transparent calc(50% + 1.5px))!important}.lobby-rules{grid-area:rules}.lobby-chips{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.lobby-chips li{background:var(--sunk);white-space:nowrap;border-radius:999px;padding:.2rem .65rem;font-size:.85rem;font-weight:500}.lobby-chips li.house{background:color-mix(in srgb, var(--accent) 22%, var(--card))}.lobby-start{grid-area:start;grid-template-columns:minmax(0,1fr);align-content:end;min-width:0;display:grid}.lobby-start>.card{max-width:none;margin:0}.lobby-go{align-items:center;gap:.75rem;display:flex}.lobby-go p{flex:1;min-width:0;margin:0}button.lobby-start-button{flex:none;justify-content:center;min-width:9.5rem;min-height:3rem;padding:.65em 1.4em;font-size:1.1rem;font-weight:800}.lobby-pulse{background:var(--accent);border-radius:50%;flex:none;width:.75rem;height:.75rem;animation:1.6s ease-in-out infinite lobby-pulse}.lobby-pulse.still{animation:none}@keyframes lobby-pulse{50%{opacity:.3;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.lobby-pulse{animation:none}}.lobby-start .join p{margin:.5rem 0 .35rem}.lobby-fieldset{min-width:0;min-inline-size:0}.lobby-fieldset>p{margin:0 0 .6rem}.lobby-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:.7rem .75rem;display:grid}.lobby-form .wide{grid-column:1/-1}.lobby-form select,.lobby-form input:not([type=checkbox]){width:100%}.lobby-form input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--primary);flex:none;margin:.1rem 0 0}.lobby-form h3,.lobby-form p{margin:0}.lobby-form h3{border-top:1px solid var(--line);margin-top:.3rem;padding-top:.7rem}.lobby-shuffle{align-self:end;padding-bottom:.45rem}.lobby-done{justify-content:center;width:100%;min-height:2.75rem;margin-top:1rem}@media (width<=599px){.lobby-page .hide-narrow{display:none}}@media (width<=359px){.lobby-page .hide-tiny{display:none}.lobby-code{font-size:1.15rem}}@media (width>=600px){.lobby-page{grid-template:"head head""art art"minmax(0,1fr)"players rules""players start"/minmax(0,1fr) minmax(0,1fr);gap:.9rem;padding:1rem 1.25rem}.lobby-head h1{font-size:2.1rem}.lobby-players{max-height:34rem}.lobby-rules{align-self:start}}@media (width>=720px) and (orientation:landscape){.lobby-page{grid-template:"head head""art players"minmax(0,auto)"art rules""art."minmax(0,1fr)"art start"/minmax(0,1fr) minmax(340px,440px)}.lobby-players{max-height:none}.seats li{min-height:2.2rem;padding-block:.1rem}}@media (orientation:landscape) and (height<=500px){.lobby-page{grid-template:"head head""players rules""players art"minmax(0,1fr)"players start"/minmax(0,1fr) minmax(0,1fr);gap:.6rem;padding:.6rem .75rem}.lobby-head h1{font-size:1.3rem}.lobby-players{max-height:none}.lobby-page .hide-narrow{display:none}}:root[data-status-corner]{--status-corner:132px;--status-corner-height:60px}:root[data-status-corner] .game-compact .status-row,:root[data-status-corner] .game-topbar{padding-right:var(--status-corner)}:root[data-status-corner] .home-menu-button{margin-right:calc(var(--status-corner) - .75rem)}:root[data-status-corner] .lobby-head{padding-right:calc(var(--status-corner) - .75rem)}@media (width<=599px){:root[data-status-corner] .lobby-head h1{font-size:1.1rem}}:root[data-status-corner] .modal-backdrop{padding-top:var(--status-corner-height)}:root[data-status-corner] .modal{max-height:calc(100dvh - var(--status-corner-height) - 1rem)}
