:root{--bg: #f6f1e7;--surface: #fffdf8;--text: #2b2418;--muted: #7a6d58;--accent: #8a5a19;--border: #d9cdb6;--danger: #a3312a;--warn: #b7791f;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #1c1915;--surface: #26221c;--text: #efe6d4;--muted: #a99c84;--accent: #d9a24e;--border: #3d362c;--danger: #e0675e;--warn: #e0a84a;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,sans-serif}main{max-width:640px;margin:0 auto;padding:16px}form{display:grid;gap:12px}label{display:grid;gap:4px;font-size:14px;color:var(--muted)}input,button{font:inherit;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text)}button{background:var(--accent);color:var(--surface);border:none;cursor:pointer;min-height:44px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 12px;border-radius:8px;background:var(--accent);color:var(--surface);text-decoration:none;font:inherit;cursor:pointer}.error{color:var(--danger)}a{color:var(--accent)}header.topbar{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"brand nav right";align-items:center;gap:8px 16px;padding:6px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar .brand-group{grid-area:brand;display:flex;align-items:center;gap:12px;min-width:0}.topbar .brand{font-size:18px;letter-spacing:.02em}.godmode-button{min-height:32px;padding:4px 10px;font-size:12px;font-weight:700;letter-spacing:.06em}.godmode-section{display:grid;gap:8px}.godmode-section h3{margin:0;font-size:16px}.godmode-facts{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0}.godmode-facts dt{color:var(--muted)}.godmode-facts dd{margin:0}.godmode-skips,.godmode-custom{display:flex;flex-wrap:wrap;gap:8px}.godmode-custom input{width:6em}.godmode-accounts{list-style:none;margin:0;padding:0;display:grid;gap:6px}.godmode-accounts button{width:100%;text-align:left}.godmode-accounts button[aria-current=true]{border-color:var(--accent)}.godmode-queue{display:block;font-size:13px}.topnav{grid-area:nav;display:flex;justify-content:center;gap:2px}.topnav a{padding:10px 14px;color:var(--muted);font-weight:600;text-decoration:none;border-radius:8px 8px 0 0}.topnav a:hover{color:var(--text);background:var(--bg)}.topnav a.active{color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}.topbar-right{grid-area:right;justify-self:end;display:flex;gap:12px;align-items:center;min-width:0}.topbar-right select{min-width:0;max-width:16em;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;font-size:14px}.topbar-right .who{color:var(--muted);font-size:14px;white-space:nowrap}.topbar-right button{min-height:36px;padding:6px 12px;font-size:14px}.hero-badge{display:grid;min-width:0;max-width:14em;flex-shrink:1;font-size:13px;line-height:1.25;text-decoration:none;color:var(--text)}.hero-badge-text{display:flex;min-width:0;white-space:nowrap;font-weight:600}.hero-badge-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.hero-badge-rest{white-space:pre}.hero-badge-status{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(min-width:1280px){header.topbar{grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr)}}@media(min-width:761px)and (max-width:1279px){header.topbar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"brand right" "nav nav";padding-bottom:0}}.hero-panel{display:grid;gap:8px}.hero-panel p,.hero-mansion p{margin:0}.hero-name-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hero-name-row input{flex:1 1 10em;min-width:0}.hero-xp{display:grid;gap:4px}.hero-xp progress{width:100%;accent-color:var(--accent)}.hero-attributes{list-style:none;padding:0;margin:0;display:grid;gap:8px}.hero-attributes button{min-width:44px}.statusbar{position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 2px 6px #0000000f}.statusbar .resource-bar{max-width:960px;margin:0 auto;padding:6px 16px}@media(max-width:760px){header.topbar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"brand right" "nav nav";padding-bottom:0}.topnav{min-width:0;justify-content:safe center;overflow-x:auto;scrollbar-width:none}.topnav a{padding:8px 10px;white-space:nowrap}.topbar-right{gap:8px;justify-self:stretch;justify-content:flex-end}.topbar-right .who{display:none}.topbar-right:has(.hero-badge){display:grid;grid-template-columns:minmax(0,1fr) auto;justify-items:end;row-gap:2px}.topbar-right:has(.hero-badge) select{max-width:min(11em,100%)}.hero-badge{order:1;grid-column:1 / -1;max-width:100%;justify-items:end;padding-bottom:2px}.hero-badge-status{display:none}.topbar-right select{max-width:11em;text-overflow:ellipsis}.topbar-right button{white-space:nowrap}.topbar .brand-group{flex-shrink:0;white-space:nowrap}}h1{margin:0 0 12px;font-size:24px}h2{margin:0;font-size:18px}.muted,.cost,.rate,.level{color:var(--muted);font-size:14px}.secondary{background:transparent;color:var(--accent);border:1px solid var(--border)}button:disabled{opacity:.5;cursor:not-allowed}.tabs{display:flex;gap:8px;margin-bottom:12px;overflow-x:auto}.tabs button{flex:1 0 auto;white-space:nowrap}.tabs [aria-selected=false]{background:var(--surface);color:var(--text);border:1px solid var(--border)}.options,.cards,.queue ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;display:grid;gap:8px}.row{grid-template-columns:1fr auto auto;align-items:center}.timer{font-variant-numeric:tabular-nums}.panel{position:fixed;left:0;right:0;bottom:0;z-index:40;max-height:80vh;overflow-y:auto;background:var(--bg);box-shadow:0 -2px 10px #0000001a;border-top:1px solid var(--border);padding:16px;display:grid;gap:12px}@media(min-width:700px){.panel{left:50%;right:auto;width:640px;transform:translate(-50%);border:1px solid var(--border);border-radius:12px 12px 0 0}}fieldset.thirds{border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;gap:12px;padding:8px 12px}.choice{display:flex;gap:6px;align-items:center;color:var(--text)}.expansion{margin-top:16px}main:has(.map){max-width:960px}main:has(.admin-page){max-width:none;padding:0}:root{--res-wood: #006e32;--res-clay: #b5502a;--res-iron: #758693;--res-crop: #dfa724;--tile: #efe7d6;--tile-line: #d2c4a8;--flag-own: var(--accent);--flag-other: #5b4f86}@media(prefers-color-scheme:dark){:root{--tile: #2c2720;--tile-line: #40382d;--flag-other: #a99be0}}.mapview{position:relative;width:100%;aspect-ratio:2 / 1.7320508;margin:22px 0}svg.hexmap{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;background:var(--tile-line);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}svg.hexmap:active{cursor:grabbing}svg.mapframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}svg.mapframe polygon{fill:none;stroke:var(--border);stroke-width:2;vector-effect:non-scaling-stroke}.pan-edge{position:absolute;transform:translate(-50%,-50%);width:40px;height:40px;min-height:0;padding:0;border-radius:50%;background:var(--surface);color:var(--accent);border:1px solid var(--border);box-shadow:0 1px 4px #00000026;display:grid;place-items:center;font-size:14px;z-index:1}.pan-edge svg{display:block;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.pan-edge:hover{background:var(--accent);color:var(--surface)}.map-error{position:absolute;left:50%;bottom:12%;transform:translate(-50%);background:var(--surface);padding:4px 10px;border-radius:8px;margin:0}.tile{cursor:pointer}.tile polygon{fill:var(--tile);stroke:var(--tile-line);stroke-width:1;vector-effect:non-scaling-stroke}.tile.cropper7 polygon{fill:color-mix(in srgb,var(--res-crop) 40%,var(--tile))}.tile.cropper9 polygon{fill:color-mix(in srgb,var(--res-crop) 70%,var(--tile))}.tile.cropper15 polygon{fill:var(--res-crop);stroke:#a8862a}.tile.oasis_wood polygon{fill:var(--res-wood)}.tile.oasis_clay polygon{fill:var(--res-clay)}.tile.oasis_iron polygon{fill:var(--res-iron)}.tile.oasis_crop polygon{fill:var(--res-crop)}.tile.oasis_wood_crop polygon{fill:url(#g-oasis_wood_crop)}.tile.oasis_clay_crop polygon{fill:url(#g-oasis_clay_crop)}.tile.oasis_iron_crop polygon{fill:url(#g-oasis_iron_crop)}.tile[data-owned=own] polygon{stroke:var(--flag-own);stroke-width:3}.tile[data-owned=other] polygon{stroke:var(--flag-other);stroke-width:3}.s-wood{stop-color:var(--res-wood)}.s-clay{stop-color:var(--res-clay)}.s-iron{stop-color:var(--res-iron)}.s-crop{stop-color:var(--res-crop)}.tile.own polygon{fill:color-mix(in srgb,var(--accent) 35%,var(--tile))}.tile.taken polygon{fill:color-mix(in srgb,var(--flag-other) 25%,var(--tile))}.tile .flag{fill:var(--flag-other);stroke:var(--surface);stroke-width:1;vector-effect:non-scaling-stroke}.tile.own .flag{fill:var(--flag-own)}.tile text{font-size:11px;font-weight:600;text-anchor:middle;fill:#fff;paint-order:stroke;stroke:#00000073;stroke-width:2px;pointer-events:none}.tile:hover polygon,.tile:focus-visible polygon{stroke:var(--text);stroke-width:2}.tile:focus{outline:none}.tile.home polygon{stroke:var(--accent);stroke-width:3}.tile.selected polygon{stroke:var(--text);stroke-width:3;stroke-dasharray:4 3}.map-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.map-bar button{min-width:44px}.map-info{flex:1 1 220px;margin:0;color:var(--muted);font-size:14px}.legend{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted)}.legend li{display:flex;align-items:center;gap:4px}.sw{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--tile-line)}.sw.own{background:var(--flag-own)}.sw.taken{background:var(--flag-other)}.sw.cropper7{background:color-mix(in srgb,var(--res-crop) 40%,var(--tile))}.sw.cropper9{background:color-mix(in srgb,var(--res-crop) 70%,var(--tile))}.sw.cropper15{background:var(--res-crop)}.sw.oasis-wood{background:var(--res-wood)}.sw.oasis-clay{background:var(--res-clay)}.sw.oasis-iron{background:var(--res-iron)}.sw.oasis-crop{background:var(--res-crop)}.rate.negative{color:var(--danger);font-weight:600;animation:crop-flash 1s ease-in-out infinite}@keyframes crop-flash{50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.rate.negative{animation:none}}h3{margin:0;font-size:16px}h4{margin:8px 0 0;font-size:14px;color:var(--muted)}.army,.troops{display:grid;gap:8px}.army-units{list-style:none;padding:0;margin:0;display:grid;gap:8px}.army-units .locked{opacity:.6}.train-row{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.train-row input{width:7em}.troops ul{margin:0;padding-left:18px}.send,.reinforcements{margin-top:16px;display:grid;gap:8px}.send-target{display:flex;gap:8px;flex-wrap:wrap}.send-target input{width:6em}.send-units{list-style:none;padding:0;margin:0;display:grid;gap:6px}.send-units li{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.send-units input{width:7em}fieldset.choices{border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;gap:12px;padding:8px 12px}.card.incoming{border-color:var(--danger);border-width:2px}.reports .unread a{font-weight:600}.report-army table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.report-army th,.report-army td{text-align:left;padding:2px 8px 2px 0}.info{padding-left:18px}.pager{display:flex;gap:8px;margin-top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;flex:none}.res-wood{background:var(--res-wood)}.res-clay{background:var(--res-clay)}.res-iron{background:var(--res-iron)}.res-crop{background:var(--res-crop)}.cost-line{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:14px}.cost-cells{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 10px;font-variant-numeric:tabular-nums}.cost-cell{display:flex;align-items:center;gap:4px}.cost-cell.short{color:var(--danger);font-weight:600}.cost-cell .shortfall{margin-left:2px}.cost-extra{color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}body.modal-open{overflow:hidden}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000073;display:grid;place-items:center}.modal{background:var(--bg);width:100%;height:100%;overflow-y:auto;outline:none;display:grid;grid-template-rows:auto 1fr}@media(min-width:700px){.modal{width:min(560px,calc(100vw - 32px));height:auto;max-height:calc(100vh - 64px);border:1px solid var(--border);border-radius:12px}}@media(min-width:700px){.modal.modal-wide{width:min(760px,calc(100vw - 32px))}}.modal-head{position:sticky;top:0;z-index:1;background:var(--bg);display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--border)}.modal-close{min-width:44px;font-size:22px;line-height:1;padding:6px 10px}.modal-body{padding:16px;display:grid;gap:12px;align-content:start}.tabpanel{display:grid;gap:12px}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:calc(16px + max(var(--chat-h, 0px),env(safe-area-inset-bottom)));z-index:60;display:grid;gap:8px;width:min(480px,calc(100vw - 32px));pointer-events:none}.toast{pointer-events:auto;cursor:pointer;padding:10px 14px;border-radius:8px;background:var(--text);color:var(--bg);box-shadow:0 2px 8px #00000040}.toast.success{border-left:6px solid var(--res-wood)}.toast.error{background:var(--danger);color:#fff}.option-rows{list-style:none;margin:0;padding:0;display:grid;gap:6px}.option-row{background:var(--surface);border:1px solid var(--border);border-radius:8px;display:grid;gap:4px}.option-head{display:grid;gap:2px;text-align:left;background:transparent;color:var(--text);padding:8px 12px;min-height:44px}.requirements{margin:0 12px 8px;padding-left:18px;color:var(--danger);font-size:14px}.option-details{display:grid;gap:8px;padding:0 12px 12px}.effects{list-style:none;margin:0;padding:0;font-size:14px}.group-toggle{justify-self:start}.max-level{font-weight:600;margin:0}.resource-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:6px}.resource{position:relative;display:grid;gap:2px;text-align:left;min-height:0;padding:6px 8px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:13px;font-variant-numeric:tabular-nums}.resource .res-name{display:flex;align-items:center;gap:4px;color:var(--muted)}.resource.warn .res-amount{color:var(--warn);font-weight:600}.resource.full .res-amount{color:var(--danger);font-weight:600}.resource .fill{display:block;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.resource .fill>span{display:block;height:100%}.resource .eta{position:absolute;top:100%;left:0;z-index:6;margin-top:4px;padding:4px 8px;border-radius:6px;background:var(--text);color:var(--bg);white-space:nowrap;font-size:13px}.resource.population{align-content:start}@media(max-width:480px){.resource-bar{grid-template-columns:repeat(4,minmax(0,1fr))}.resource.population{grid-column:1 / -1;display:flex;gap:6px;padding:2px 8px}}.village h1{font-size:20px;margin-bottom:4px}.queue-strip{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:4px}.queue-strip li{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:2px 4px 2px 10px;background:var(--surface);border:1px solid var(--border);border-radius:8px;font-size:14px}.queue-strip button{min-height:32px;padding:4px 10px}.movement-summary{margin:0 0 8px;display:grid;gap:6px}.summary-toggle{display:grid;gap:2px;text-align:left;min-height:0;padding:6px 10px;background:var(--surface);color:var(--text);border:1px solid var(--border);font-size:14px}.summary-toggle .danger{color:var(--danger);font-weight:600}.movement-rows{list-style:none;margin:0;padding:0;display:grid;gap:6px}.hex-board{position:relative;width:100%;max-width:560px;margin:0 auto 16px;container-type:inline-size}.hex{position:absolute;padding:0;min-height:0;border-radius:0;background:var(--border);color:var(--text);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);transform:scale(.95)}.hex-face{position:absolute;top:3px;right:3px;bottom:3px;left:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--surface);clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.hex[data-res]{color:#fff}.hex[data-res=wood] .hex-face{background:var(--res-wood)}.hex[data-res=clay] .hex-face{background:var(--res-clay)}.hex[data-res=iron] .hex-face{background:var(--res-iron)}.hex[data-res=crop]{color:#2b2418}.hex[data-res=crop] .hex-face{background:var(--res-crop)}.hex.empty .hex-face{background:var(--bg);color:var(--muted)}.hex:hover .hex-face{filter:brightness(1.08)}.hex.busy{background:var(--accent)}.hex.busy .hex-face{top:5px;right:5px;bottom:5px;left:5px}.hex:focus-visible{outline:none;background:var(--text)}.hex-level{font-size:max(18px,7cqw);font-weight:700;line-height:1}.hex[data-res] .hex-level{text-shadow:0 1px 2px rgb(0 0 0 / .25)}.hex[data-res=crop] .hex-level{text-shadow:none}.hex:not([data-res]) .hex-level{font-size:max(15px,5cqw);color:var(--accent)}.hex-timer{font-size:max(11px,2.8cqw);font-weight:600}.hex-dot{position:absolute;top:12%;left:50%;translate:-50% 0;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #2b2418}.hex:not([data-res]) .hex-dot{top:50%;left:auto;right:9%;translate:0 -50%;background:var(--res-wood);box-shadow:0 0 0 2px var(--surface)}.hex.link{background:var(--accent)}.hex-name{max-width:72%;font-size:max(11px,2.9cqw);font-weight:600;line-height:1.15;text-align:center;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.hex.link .hex-name{font-size:max(12px,3.4cqw)}:root{--wall-stone: #b3a68e;--wall-edge: #857659;--wall-text: #fffdf8}@media(prefers-color-scheme:dark){:root{--wall-stone: #5e5546;--wall-edge: #3b342a;--wall-text: #efe6d4}}.wall{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;min-height:0;border-radius:0;background:none;pointer-events:none}.wall svg{display:block;width:100%;height:100%;overflow:visible}.wall-stone{pointer-events:all;cursor:pointer}.wall-stone{fill:var(--wall-stone);stroke:var(--wall-edge);stroke-width:.06;stroke-linejoin:round}.wall-level{fill:var(--wall-text);font-size:.42px;font-weight:700;text-anchor:middle;dominant-baseline:central;pointer-events:none}.wall-timer{fill:var(--accent);font-size:.32px;font-weight:600;text-anchor:middle;dominant-baseline:hanging;pointer-events:none}.wall-dot{fill:var(--res-wood);stroke:var(--surface);stroke-width:.05}.wall.empty .wall-stone{fill:var(--bg);stroke:var(--border);stroke-width:.08}.wall.empty .wall-level{fill:var(--muted)}.wall.busy .wall-stone{stroke:var(--accent);stroke-width:.1}.wall:focus-visible{outline:none}.wall:focus-visible .wall-stone{stroke:var(--text);stroke-width:.12}.wall:hover .wall-stone{filter:brightness(1.06)}.trade{display:grid;gap:10px}.trade-form{display:grid;gap:8px}.trade-filters{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:end}.trade-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.trade-list li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.pager{display:flex;gap:8px}.time-chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.stack{display:flex;flex-direction:column;gap:8px;max-width:480px}.inline{display:inline-flex;gap:6px;align-items:center}.confirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tile.rel-alliance polygon{stroke:#2f7d4f;stroke-width:3}.tile.rel-confed polygon{stroke:#2d6fb3;stroke-width:3}.tile.rel-nap polygon{stroke:#b58a1d;stroke-width:3}.sw.rel-alliance{background:#2f7d4f}.sw.rel-confed{background:#2d6fb3}.sw.rel-nap{background:#b58a1d}.pin{stroke:var(--surface);stroke-width:1;vector-effect:non-scaling-stroke}.pin-target,.sw.pin{fill:#b3261e;background:#b3261e}.pin-danger{fill:#6b1d1d}.pin-rally{fill:#2f7d4f}.pin-note{fill:#5b4f86}.warroom h3{margin-top:16px}.linklike{background:none;border:none;color:var(--accent);padding:0;text-align:left;cursor:pointer}.token,.messages .unread a{font-weight:600}.messages>a:first-child{display:inline-block;margin-bottom:12px}.message h1{margin:0;overflow-wrap:anywhere}.message .muted{margin:0}.message-body{margin:4px 0;overflow-wrap:anywhere}.message-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--border)}.message-actions>*{min-width:120px}@media(max-width:480px){.message-actions{flex-direction:column}.message-actions>*{width:100%}}body{padding-bottom:var(--chat-h, 0px)}.chat{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;pointer-events:none}.chat-panel{pointer-events:auto;width:100%;max-width:960px;display:flex;flex-direction:column;color:var(--text);background:var(--surface);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;box-shadow:0 -4px 16px #3c280a1a}.chat-head{display:flex;align-items:stretch;padding:0 6px 0 8px}.chat:not(.min) .chat-head{border-bottom:1px solid var(--border)}.chat-tabs{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.chat-tab{background:none;border:none;border-radius:0;min-height:40px;padding:8px 12px;color:var(--muted);font-weight:600;font-size:14px;line-height:1.5;white-space:nowrap;flex:0 0 auto}.chat-tab:hover{color:var(--text)}.chat-tab[aria-selected=true]{color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}.chat-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-left:6px;vertical-align:middle}.chat-toggle{flex:0 0 auto;align-self:center;background:none;border:none;min-height:40px;width:40px;padding:0;display:grid;place-items:center;color:var(--muted);border-radius:8px}.chat-toggle:hover{background:var(--bg);color:var(--text)}.chat-toggle svg{width:18px;height:18px;transition:transform .15s}.chat.min .chat-toggle svg{transform:rotate(180deg)}.chat-body{display:flex;flex-direction:column}.chat-pins{margin:0;padding:6px 12px;list-style:none;font-size:13px;overflow-wrap:anywhere;background:color-mix(in srgb,var(--accent) 11%,var(--surface));border-bottom:1px solid var(--border)}.chat-pins li{display:flex;gap:8px;align-items:baseline;justify-content:space-between}.chat-pin-label{color:var(--accent);font-weight:600}.chat-log{list-style:none;margin:0;padding:6px 0;height:clamp(120px,26vh,240px);overflow-y:auto;font-size:14px;overflow-wrap:anywhere}.chat-log li{padding:3px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:8px;align-items:start}.chat-log li:hover{background:var(--bg)}.chat-log time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;padding-top:2px}.chat-log b{color:var(--text)}.chat-log li.chat-empty{display:block;color:var(--muted)}.chat-pin-btn{background:none;border:none;min-height:0;padding:0 4px;border-radius:4px;color:var(--muted);font-size:12px;line-height:20px;opacity:0}.chat-pin-btn:hover,.chat-pin-btn:focus-visible{color:var(--accent)}:is(.chat-log,.chat-pins) li:is(:hover,:focus-within) .chat-pin-btn{opacity:1}.chat-form{display:flex;gap:8px;padding:8px;border-top:1px solid var(--border)}.chat-form input{flex:1;min-width:0;padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.chat-form button{min-height:0;padding:9px 16px;border-radius:8px;font-weight:600}@media(max-width:700px){.chat-panel{border-left:none;border-right:none}.chat-form{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.chat.min .chat-head{padding-bottom:env(safe-area-inset-bottom)}.chat-pin-btn{opacity:.7}}.oasis-info{display:grid;gap:4px}.oasis-info p{margin:0}.oasis-animals,.oasis-reach{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px}.oasis-reach{margin-top:8px}.link-tabs{display:flex;gap:2px;margin-bottom:8px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border)}.link-tabs a{padding:10px 12px;color:var(--muted);font-weight:600;text-decoration:none;white-space:nowrap}.link-tabs a:hover{color:var(--text)}.link-tabs a.active{color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}.link-tabs.sub{border-bottom:none;margin-bottom:12px}.link-tabs.sub a{padding:6px 10px;font-size:14px;border-radius:8px}.link-tabs.sub a.active{box-shadow:none;background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.ranking-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.ranking-tools select{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit}.ranking-search{display:flex;gap:8px;flex:1 1 14em}.ranking-search input{flex:1;min-width:0}table.ranking{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);font-size:14px;font-variant-numeric:tabular-nums}.ranking th,.ranking td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.ranking th{color:var(--muted);font-weight:600;background:var(--bg)}.ranking .num{text-align:right;white-space:nowrap}.ranking tr.hl td{background:color-mix(in srgb,var(--accent) 16%,var(--surface));font-weight:600}.ranking a{text-decoration:none}.ranking a:hover{text-decoration:underline}@media(max-width:480px){.ranking .opt{display:none}.ranking th,.ranking td{padding:6px}}.ranking caption{text-align:left;font-weight:600;padding:0 0 4px}.ranking tbody th{text-align:left;background:var(--surface);color:var(--muted);font-weight:400}.ranking tr.spacer td{height:8px;padding:0;background:var(--bg)}.top10 h2{margin:0 0 8px;font-size:18px}.top10-grid{display:grid;gap:16px;align-items:start}.top10 .ranking{table-layout:fixed}.top10 .ranking th:first-child{width:3.5em}.top10 .ranking th:last-child{width:6.5em}@media(min-width:640px){.top10-grid{grid-template-columns:1fr 1fr}}.general,.profile{display:grid;gap:16px;align-content:start}.profile h1,.profile h2,.profile>p{margin:0}.general tbody th,.profile-facts th{width:60%}:root{--medal-attackers: #b3352b;--medal-defenders: #2f7d3a;--medal-climbers: #2f62b3;--medal-robbers: #7a3fa8;--medal-ink: #fffdf8;--medal-gold: #d4a017;--medal-silver: #b4b9bf;--medal-bronze: #b0703c}@media(prefers-color-scheme:dark){:root{--medal-attackers: #e0675e;--medal-defenders: #5bb366;--medal-climbers: #6b9be6;--medal-robbers: #b184dc;--medal-ink: #1c1915;--medal-gold: #e6b93a;--medal-silver: #c9cdd2;--medal-bronze: #c98a52}}.medals{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.medal{position:relative;width:30px;height:46px;display:flex;justify-content:center}.medal:before{content:"";position:absolute;top:0;right:0;bottom:6px;left:0;background:var(--ribbon);clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%)}.medal-attackers{--ribbon: var(--medal-attackers)}.medal-defenders{--ribbon: var(--medal-defenders)}.medal-climbers{--ribbon: var(--medal-climbers)}.medal-robbers{--ribbon: var(--medal-robbers)}.medal-place{position:relative;margin-top:3px;color:var(--medal-ink);font-size:13px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.medal-gold:after,.medal-silver:after,.medal-bronze:after{content:"";position:absolute;bottom:0;left:50%;translate:-50% 0;width:16px;height:16px;border-radius:50%;background:var(--emblem);border:2px solid var(--surface);box-sizing:border-box}.medal-gold{--emblem: var(--medal-gold)}.medal-silver{--emblem: var(--medal-silver)}.medal-bronze{--emblem: var(--medal-bronze)}.world-banner{margin:0;padding:8px 16px;text-align:center;font-size:14px;background:var(--warn);color:var(--bg)}.world-banner.ended{background:var(--accent)}.world-banner+.world-banner.announcement{border-top:1px solid color-mix(in srgb,var(--bg) 40%,transparent)}.lockout{max-width:640px;margin:0 auto;padding:16px;display:grid;gap:12px}.muted-line{margin:0;padding:8px 10px;border-radius:6px;background:var(--surface-2, rgb(127 127 127 / .12));overflow-wrap:anywhere}.world-closed{max-width:640px;margin:0 auto;padding:16px;display:grid;gap:12px}.admin-page{--ok: #3f7d3a;max-width:1440px;margin:0 auto;padding:24px;display:grid;gap:16px}@media(max-width:600px){.admin-page{padding:16px}}.admin-columns{display:grid;gap:16px;align-items:start}.admin-col{display:grid;gap:16px;min-width:0}@media(min-width:1000px){.admin-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(prefers-color-scheme:dark){.admin-page{--ok: #7cc06f}}.admin-card{padding:16px;gap:12px}.admin-card h1,.admin-card h2{margin:0}.admin-card h1{font-size:22px}.admin-card h2{font-size:16px}.admin-card-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.admin-card-head>:last-child{margin-left:auto}.admin-status{border-left:4px solid var(--border)}.admin-status-running{border-left-color:var(--ok)}.admin-status-paused{border-left-color:var(--warn)}.admin-status-ended{border-left-color:var(--accent)}.admin-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid currentColor;color:var(--muted);white-space:nowrap}.admin-pill:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.admin-pill-running{color:var(--ok)}.admin-pill-paused{color:var(--warn)}.admin-pill-ended{color:var(--accent)}.admin-pill-failed{color:var(--danger)}.admin-current-reason{margin:0;padding:10px 12px;border-radius:8px;background:var(--bg);font-size:15px}.admin-facts{display:flex;flex-wrap:wrap;gap:8px 32px;margin:0}.admin-facts dt,.admin-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.admin-facts dd{margin:0}.admin-facts code{font-size:14px}.admin-reason{gap:10px}.admin-presets{display:flex;flex-wrap:wrap;gap:8px}.admin-chip{min-height:36px;padding:6px 12px;border-radius:999px;font-size:14px;background:transparent;color:var(--text);border:1px solid var(--border)}.admin-chip:hover{border-color:var(--accent)}.admin-chip[aria-pressed=true]{border-color:var(--accent);background:var(--bg);color:var(--accent)}.admin-page textarea{font:inherit;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);resize:vertical}.admin-page textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.admin-reason-foot{display:flex;justify-content:space-between;gap:12px}.admin-reason button[type=submit]{justify-self:start;min-width:140px}.admin-danger{background:var(--danger)}.admin-small{min-height:32px;padding:4px 12px;font-size:14px}.admin-schedule{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.admin-when{display:grid;gap:2px}.admin-checks{list-style:none;margin:0;padding:0;display:grid}.admin-checks li{display:grid;grid-template-columns:20px minmax(120px,max-content) 1fr;gap:4px 12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--border)}.admin-checks li:first-child{border-top:none}.admin-check-icon{color:var(--ok);font-weight:700}.admin-check-name{font-weight:600}.admin-check-detail{color:var(--muted);font-size:14px;overflow-wrap:anywhere}.admin-check-failed .admin-check-icon,.admin-check-failed .admin-check-name{color:var(--danger)}@media(max-width:520px){.admin-checks li{grid-template-columns:20px 1fr}.admin-check-detail{grid-column:2}}.admin-dev summary{cursor:pointer;list-style-position:inside}.admin-dev summary h2{display:inline}.admin-page .tabs{margin-bottom:0}.admin-page .tabpanel{gap:16px}.admin-failed{list-style:none;margin:0;padding:0;display:grid;gap:6px}.admin-failed summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.admin-failed-error{flex-basis:100%;color:var(--danger);overflow-wrap:anywhere}.admin-failed-stack{margin:6px 0 0;padding:8px;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.abuse-tab{display:grid;gap:16px;min-width:0}.abuse-chips{display:flex;flex-wrap:wrap;gap:8px}.abuse-tab .abuse-chips:first-child{margin-bottom:-4px}.abuse-stack{display:grid;gap:10px;min-width:0}.abuse-scroll{overflow-x:auto;max-width:100%}.abuse-table{border-collapse:collapse;width:100%;font-size:14px}.abuse-table th,.abuse-table td{text-align:left;padding:7px 8px;border-top:1px solid var(--border);vertical-align:middle}.abuse-table th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-top:none}.abuse-table td.n,.abuse-table th.n{text-align:right;font-variant-numeric:tabular-nums}.abuse-table tr.abuse-selected td{background:var(--bg)}.abuse-table tr.abuse-selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.abuse-wrap{overflow-wrap:anywhere;min-width:160px}.abuse-link{background:none;border:none;padding:0;min-height:0;color:var(--text);font:inherit;text-align:left;cursor:pointer}.abuse-link:hover b{color:var(--accent)}.abuse-pill{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;margin:0 4px 2px 0;border-radius:999px;font-size:12px;font-weight:700;border:1px solid currentColor;white-space:nowrap}.abuse-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.abuse-report{color:var(--danger)}.abuse-flag{color:var(--warn)}.abuse-wood{color:var(--res-wood)}.abuse-clay{color:var(--res-clay)}.abuse-iron{color:var(--res-iron)}.abuse-crop{color:var(--res-crop)}.abuse-high{color:var(--danger)}.abuse-items{list-style:none;margin:0;padding:0;display:grid}.abuse-item{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;width:100%;min-height:0;padding:7px 8px;background:transparent;color:var(--text);border:none;border-top:1px solid var(--border);border-radius:0;font:inherit;text-align:left;cursor:pointer}.abuse-items li:first-child .abuse-item{border-top:none}.abuse-item[aria-pressed=true]{background:var(--bg);box-shadow:inset 3px 0 0 var(--accent)}.abuse-when{margin-left:auto}.abuse-linked{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:4px 10px;border:1px dashed var(--border);border-radius:10px}.abuse-rule{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:8px;border-top:1px solid var(--border)}.abuse-items li:first-child.abuse-rule{border-top:none}.abuse-rule-text{flex:1 1 240px}.abuse-retired .abuse-rule-text{color:var(--muted);text-decoration:line-through}.abuse-close{display:grid;gap:8px;flex:1 1 280px}.abuse-close label{display:grid;gap:4px}.abuse-actions{display:flex;gap:8px;flex-wrap:wrap}.abuse-side{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}.abuse-nav{display:grid;gap:4px;align-content:start}.abuse-nav-title{padding:0 10px 4px}.abuse-nav-item{min-height:0;padding:7px 10px;text-align:left;background:transparent;color:var(--text);border:none;border-radius:8px;font:inherit;cursor:pointer}.abuse-nav-item:hover{background:var(--bg)}.abuse-nav-item[aria-current=true]{background:var(--bg);color:var(--accent);font-weight:700;box-shadow:inset 3px 0 0 var(--accent)}.abuse-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.abuse-filters select,.abuse-picker input{font:inherit;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.abuse-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid var(--border);border-radius:999px;font-size:14px}.abuse-tag-x{min-height:0;width:22px;height:22px;padding:0;border-radius:50%;background:transparent;color:var(--muted);border:none;font-size:16px;line-height:1;cursor:pointer}.abuse-picker{display:grid;gap:6px;justify-items:start}.abuse-picker-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.abuse-meta{font-size:13px}.abuse-body{overflow-wrap:anywhere;white-space:pre-wrap}.abuse-more{justify-self:start}.abuse-chat{list-style:none;margin:0;padding:0;display:grid}.abuse-chat li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;padding:6px 8px;border-top:1px solid var(--border)}.abuse-chat li:first-child{border-top:none}.abuse-chat-anchor{background:var(--bg);box-shadow:inset 3px 0 0 var(--warn)}.abuse-flagtag{margin-left:auto;color:var(--warn);font-size:12px;font-weight:700;text-transform:uppercase}.abuse-thread{display:grid;gap:6px;padding:8px 0;border-top:1px solid var(--border)}.abuse-thread h4{margin:0;font-size:15px}.abuse-message{padding:6px 10px;border-radius:8px;background:var(--bg);display:grid;gap:2px;max-width:640px}.abuse-message-out{justify-self:end}@media(max-width:899px){.abuse-side{grid-template-columns:minmax(0,1fr)}.abuse-nav{grid-auto-flow:column;overflow-x:auto}.abuse-nav-title{display:none}}.abuse-case-layout{display:grid;gap:16px;align-items:start}.abuse-case-layout>*{min-width:0}@media(min-width:1200px){.abuse-case-layout{grid-template-columns:380px minmax(0,1fr)}}.chat-log b.chat-system{color:var(--muted);font-style:italic}:root{--notice: #8b1a1a}@media(prefers-color-scheme:dark){:root{--notice: #e06b6b}}.chat-log li.chat-notice,.chat-log li.chat-notice b.chat-system{color:var(--notice);font-weight:600;font-style:normal}.admin-chart text{fill:var(--muted);font-size:11px}.admin-chart-grid{stroke:var(--border)}.admin-chart-paused{fill:color-mix(in srgb,var(--accent) 12%,transparent)}.admin-ladder{display:grid;gap:6px}.admin-rung{display:grid;grid-template-columns:80px 1fr 90px;gap:8px;align-items:center;font-size:14px}.admin-rung-n{text-align:right}.admin-track{height:12px;border-radius:6px;background:var(--bg);border:1px solid var(--border);overflow:hidden}.admin-fill{height:100%;background:var(--ok)}.admin-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.admin-tile{display:grid;gap:2px;align-content:start;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-width:0}.admin-tile b{font-size:24px;font-variant-numeric:tabular-nums}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-grid>.card{min-width:0}@media(max-width:999px){.admin-grid{grid-template-columns:minmax(0,1fr)}}.admin-figures{display:flex;flex-wrap:wrap;gap:12px 32px}.admin-figure{display:grid;gap:2px}.admin-figure b{font-size:28px;font-variant-numeric:tabular-nums}.admin-callout{border-color:var(--warn);display:grid;gap:4px}.admin-download{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:8px;background:var(--accent);color:var(--bg);font-weight:600;text-decoration:none}.admin-heat td,.admin-heat th{white-space:nowrap}.abuse-table tr.admin-paused-row td{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--accent) 10%,transparent) 6px 12px)}.admin-card details>summary{cursor:pointer;margin:8px 0;color:var(--muted)}.abuse-tab{grid-template-columns:minmax(0,1fr)}.abuse-tab>*,.admin-card{min-width:0}.admin-card details{min-width:0;max-width:100%}.abuse-dialog-columns{display:grid;gap:16px}@media(min-width:900px){.abuse-dialog-columns{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}}.abuse-field-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.admin-link{background:none;border:none;padding:0;min-height:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit;font-size:13px}.abuse-player-header .admin-card-head>:last-child{margin-left:auto}.abuse-player-actions{align-items:flex-start}.abuse-player-switch{position:relative;min-width:220px}.abuse-player-switch .abuse-picker-list{position:absolute;right:0;top:100%;z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px;min-width:100%}.abuse-player-landing input[type=search]{font-size:18px;padding:12px 14px;width:100%;max-width:560px}.modal-wide .stack{max-width:none}.modal textarea{font:inherit;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);resize:vertical;width:100%;box-sizing:border-box}
