:root{--ink:#e6edf0;--muted:#9bafb9;--gold:#d7bd85;--edge:#b7d3e32b;--panel:#132736f2}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;background:#dceaf1;color:var(--ink);font:13px system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--edge);background:#9dc4db08;padding:8px 10px;border-radius:3px}button:hover,button.active{background:#d7bd8524;border-color:#d7bd8590;color:#f4ddab}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}[hidden]{display:none!important}#game{position:absolute;inset:0}#game canvas{display:block;touch-action:none}header{height:72px;position:absolute;inset:0 0 auto;display:flex;align-items:center;padding:0 22px;gap:12px;background:#102331fa;border-bottom:1px solid #d7bd853b;z-index:5}header button{font-size:10px;padding:7px}.brand{display:flex;gap:11px;align-items:center;margin-right:28px}.sigil{font-size:36px;color:var(--gold)}.brand strong{font:27px Georgia,serif;letter-spacing:6px}.brand small{display:block;font-size:8px;letter-spacing:2.2px;color:var(--muted);margin-top:4px}.world-state{font-size:9px;letter-spacing:1px}.world-state i{display:inline-block;width:5px;height:5px;background:#bcd594;border-radius:50%;margin-right:7px}.world-state small{display:block;letter-spacing:0;font-size:9px;color:var(--muted);margin-top:6px}.stocks{margin-left:auto;display:flex;gap:23px;margin-right:16px}.stocks>span{display:grid;grid-template-columns:20px auto;column-gap:7px}.stocks em{font-style:normal;grid-row:span 2;font-size:23px;color:var(--gold)}.stocks b{font:19px system-ui;font-variant-numeric:tabular-nums}.stocks small{font-size:7px;letter-spacing:1px;color:var(--muted)}.glass{position:absolute;background:var(--panel);border:1px solid var(--edge);box-shadow:0 8px 28px #122b4030;backdrop-filter:blur(12px)}.brief{left:18px;top:90px;bottom:132px;width:256px;padding:18px;overflow:auto;scrollbar-width:thin;scrollbar-color:#496071 #142636}.brief.hide{display:none}.eyebrow{font-size:8px;letter-spacing:1.8px;color:var(--gold)}h1{font:23px/1.2 Georgia,serif;font-weight:400;margin:13px 0 8px;color:#f0e9d8}.intro{font-size:10px;line-height:1.8;color:var(--muted);margin:0 0 18px}.tabs{display:flex;border-bottom:1px solid var(--edge);gap:5px;padding-bottom:10px;margin-bottom:14px}.tabs button{flex:1;font-size:11px;padding:7px 5px}.pane h3{font-size:9px;letter-spacing:1.3px;margin:15px 0 10px;color:var(--gold)}.buildgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.buildgrid button{font-size:11px;text-align:left;padding:9px 7px;min-height:49px}.buildgrid small{display:block;margin-top:5px;color:var(--muted);font-size:8px;line-height:1.35}.hint{font-size:9px!important;color:var(--muted);line-height:1.7!important;margin:12px 0}.pane p{font-size:11px;line-height:1.7}.split{display:flex;gap:6px;margin:10px 0}.split button{flex:1;font-size:11px;padding:8px 4px}.danger{color:#e9aaa3}.wide{display:block;width:100%;font-size:10px;text-align:left;margin-top:6px}.pane label{display:block;font-size:10px;color:var(--muted);margin:13px 0 7px}#jobSelect{width:100%;background:#1c3445;color:var(--ink);padding:9px;border:1px solid var(--edge);font-size:11px}.keyline{display:flex;justify-content:space-between;gap:6px;font-size:9px;margin:12px 0;color:var(--muted)}kbd{font:8px system-ui;color:#d7bd85}.village-status{top:90px;right:18px;width:236px;padding:16px}.village-status strong{display:block;font:16px Georgia;margin:12px 0}.reserves{display:flex;gap:13px;font-size:10px;color:var(--muted);border-top:1px solid var(--edge);padding-top:10px}#heroStatus{font-size:9px;color:var(--muted);margin-top:10px}#respawn{width:100%;margin-top:10px;color:var(--gold)}.commandbar{bottom:24px;left:18px;right:272px;min-height:92px;display:flex;padding:10px;gap:12px;align-items:center}.selection-info{display:flex;gap:12px;align-items:center;width:190px;padding:0 10px;flex-shrink:0}.unitmark{font:30px Georgia;color:var(--gold)}.selection-info b{font-size:11px;font-weight:500;display:block}.selection-info small{display:block;font-size:9px;line-height:1.5;color:var(--muted);margin-top:6px}.commands{display:flex;gap:6px;flex:1}.commands button{flex:1;position:relative;min-width:55px;height:69px;padding:5px}.commands button>span{display:block;font-size:23px;color:var(--gold)}.commands b{display:block;font-size:9px;font-weight:500;margin-top:6px}.commands kbd{position:absolute;top:4px;right:5px;color:var(--muted)}.mapbox{right:18px;bottom:24px;width:236px}.maphead,.mapfoot{height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 11px;font-size:8px;letter-spacing:1px;color:var(--muted)}.maphead b{color:var(--gold);font-weight:400}#minimap{width:234px;height:160px;display:block;cursor:crosshair}.mapfoot button{border:0;background:none;padding:0;font-size:10px;color:var(--gold)}.corner{position:absolute;bottom:7px;left:20px;letter-spacing:2px;font-size:6px;color:#334d60;pointer-events:none}.toast{position:absolute;bottom:134px;left:50%;transform:translateX(-50%);background:#142a3bed;border:1px solid #d7bd8580;padding:13px 19px;max-width:480px;font-size:11px;color:#f0dfb7;pointer-events:none;opacity:0;transition:opacity .2s;text-align:center;z-index:9}.toast.show{opacity:1}#selectionRect{position:absolute;pointer-events:none;display:none;border:1px solid #efd89d;background:#e7cd8d18}#orderMarker{position:absolute;width:32px;height:32px;border:1px solid #d4ac53;border-radius:50%;pointer-events:none;opacity:0;transform:translate(-50%,-50%)}#orderMarker.show{animation:order .65s ease-out}@keyframes order{from{opacity:1;scale:.6}to{opacity:0;scale:1.4}}#hoverInfo{left:290px;top:90px;padding:10px 14px;pointer-events:none;font-size:10px;max-width:300px;color:#dae7ed}#chatPanel{bottom:255px;right:18px;width:270px;padding:13px;z-index:10}#chatPanel .eyebrow{display:flex;justify-content:space-between;align-items:center}#chatClose{border:0;padding:0 4px;font-size:17px}#chatLog{height:130px;overflow:auto;font-size:10px;line-height:1.7;overflow-wrap:anywhere;margin:8px 0}#chatLog div{padding:3px 0}#chatForm{display:flex;gap:5px}#chatInput{width:100%;min-width:0;border:1px solid var(--edge);background:#0d2030;padding:8px;color:var(--ink);font-size:10px}.emotes{display:flex;gap:5px;margin-top:7px}.emotes button{padding:4px 8px}.telemetry{top:230px;right:18px;padding:10px;font-size:10px;z-index:12}.telemetry small{display:block;font-size:8px;color:var(--muted);margin-top:6px}.meter{height:2px;background:#ffffff20;margin-top:6px}.meter span{display:block;height:100%;background:var(--gold)}#loadError{position:absolute;inset:30% 25%;padding:30px;background:#142636;text-align:center;z-index:30}#loadError button{background:var(--gold);color:#142636}@media(max-width:1100px){.world-state{display:none}.stocks{gap:14px}.brand{margin-right:10px}.brief{width:235px;left:12px}.commandbar{left:12px;right:258px}.selection-info{width:140px;padding:0}.village-status,.mapbox{right:12px;width:230px}#minimap{width:228px}.commands button{min-width:45px}#hoverInfo{left:262px}.commands b{font-size:8px}}@media(max-height:720px){.intro{display:none}.brief h1{font-size:20px;margin-bottom:12px}.brief{padding:13px}.buildgrid button{min-height:40px;padding:6px}.mapbox{width:190px}#minimap{width:188px;height:128px}.village-status{font-size:10px;padding:10px}.commandbar{right:220px}.selection-info{width:150px}}@media(max-width:760px){header{padding:0 10px;gap:5px;height:62px}.brand{margin-right:4px}.brand strong{font-size:21px;letter-spacing:3px}.brand small{font-size:6px;letter-spacing:1px}.sigil{font-size:25px}.stocks{gap:9px;margin-right:4px}.stocks em{display:none}.stocks>span{grid-template-columns:auto}.stocks b{font-size:15px}.stocks small{font-size:6px}header button{font-size:8px;padding:6px}.brief{top:75px;bottom:115px;width:220px}.village-status{top:75px;width:180px;padding:10px}.village-status strong{font-size:13px}.mapbox{bottom:118px;width:155px}#minimap{width:153px;height:105px}.commandbar{left:10px;right:10px;bottom:15px;min-height:82px;padding:7px}.selection-info{display:none}.commands button{height:65px}.toast{bottom:120px;width:70vw;max-width:450px}#hoverInfo{display:none}.brief .intro{display:none}.brief h1{font-size:19px}#chatPanel{bottom:270px}#music{display:none}}

.staff-row{display:grid;grid-template-columns:1fr 28px 24px 28px;align-items:center;gap:3px;margin:5px 0;font-size:11px}.staff-row button{padding:4px;font-size:16px}.staff-row b{text-align:center;font-variant-numeric:tabular-nums}button:disabled{opacity:.35;cursor:default}.worker-row{display:flex;gap:5px;margin:6px 0}.worker-row button{width:78px;flex-shrink:0;padding:5px;font-size:10px}.worker-row select{min-width:0;flex:1;background:#1c3445;color:var(--ink);border:1px solid var(--edge);padding:5px;font-size:10px}details{margin:12px 0}summary{color:var(--gold);font-size:10px;cursor:pointer}#workerList{margin-top:9px}#playersOnline{font-size:10px;color:#a6d8e4;margin-top:10px}

#speechLayer{position:fixed;inset:0;pointer-events:none;z-index:4}.speech-bubble{position:absolute;transform:translate(-50%,-100%);max-width:240px;width:max-content;white-space:pre-wrap;overflow-wrap:anywhere;padding:9px 13px;border:1px solid #c5cfc9;border-radius:12px;background:#f5f4ebf5;color:#203744;font:13px/1.45 system-ui;box-shadow:0 3px 12px #13273525;text-align:center}.speech-bubble:after{content:"";position:absolute;bottom:-6px;left:calc(50% - 6px);width:10px;height:10px;background:#f5f4eb;border-right:1px solid #c5cfc9;border-bottom:1px solid #c5cfc9;transform:rotate(45deg)}#speechComposer{position:fixed;z-index:25;left:50%;top:50%;transform:translate(-50%,-50%);width:min(390px,90vw);padding:15px;border-radius:8px;border-color:#d7bd8570}#speechComposer label{display:block;color:var(--gold);font-size:9px;letter-spacing:1.5px;margin-bottom:10px}.speech-entry{display:flex;gap:8px}#speechInput{width:100%;min-width:0;border:1px solid var(--edge);background:#0c2030;color:var(--ink);padding:10px;border-radius:4px;font-size:14px}#speechCancel{font-size:21px;padding:3px 10px}#speechComposer small{display:block;margin-top:10px;color:var(--muted);font-size:10px}

#game canvas{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 19 19'%3E%3Cpath d='M9 2v14M2 9h14' stroke='%23f7f4e9' stroke-width='3'/%3E%3Cpath d='M9 2v14M2 9h14' stroke='%23243945' stroke-width='1'/%3E%3C/svg%3E") 9 9,crosshair!important}#deathScreen{position:fixed;z-index:15;left:50%;top:50%;transform:translate(-50%,-50%);width:min(340px,88vw);padding:23px;text-align:center;border-color:#d7bd8599;border-radius:8px}#deathScreen h2{font:23px Georgia;color:#f0e9d8;margin:14px 0}#deathScreen p{font-size:12px;color:var(--muted);line-height:1.5}#reviveNow{display:block;width:100%;padding:12px;margin-top:18px;background:#d7bd85;color:#162b3b;font-weight:600}#deathScreen small{display:block;font-size:10px;color:var(--muted);margin-top:12px}

/* Context information shares one flow, so long construction text cannot overlap the clock. */
#contextHUD{position:fixed;left:290px;top:140px;width:340px;max-width:calc(100vw - 570px);display:flex;flex-direction:column;align-items:flex-start;gap:8px;z-index:24;pointer-events:none}
#contextHUD.topdown{top:90px}
#contextHUD>#worldClock2d,#contextHUD>#view2dBar,#contextHUD>#hoverInfo,#contextHUD>#workStatus{position:static!important;inset:auto!important;transform:none!important;margin:0;max-width:100%;width:auto;overflow-wrap:anywhere}
#contextHUD>#view2dBar{pointer-events:auto;flex-wrap:wrap}
#contextHUD>#hoverInfo:not([hidden]){display:block}
@media(max-width:1100px){#contextHUD{left:262px;max-width:calc(100vw - 520px)}}
@media(max-width:760px){#contextHUD{left:242px;max-width:calc(100vw - 444px)}#contextHUD.topdown{top:75px}}

.commandbar .commands{max-width:calc(100vw - 380px);overflow-x:auto}.commandbar .commands button{flex-shrink:0}.commandbar .commands button:disabled{opacity:.3;cursor:default}

#birdVolume[hidden]{display:none!important}

body.frost-aiming #game canvas{cursor:none!important}

#selectionBadge{position:absolute;right:0;bottom:calc(100% + 5px);padding:4px 9px;border:1px solid #bdc7ba45;border-radius:4px;background:#17262de6;color:#ede8d8;font-size:11px;letter-spacing:.02em;pointer-events:none}
#selectionBadge[hidden]{display:none}
#villageAlerts{position:fixed;z-index:33;right:14px;bottom:clamp(170px,25vh,230px);max-width:min(302px,52vw);max-height:31vh;overflow:auto;display:grid;gap:5px;pointer-events:auto}
#villageAlerts[hidden]{display:none}.flow-alert{border:1px solid #93846570;border-left:3px solid #dfb86e;border-radius:5px;background:#192b35f4;color:#f6e5bf;padding:8px 10px;font:12px/1.45 system-ui}
#offhandShield[aria-pressed=true]{border-color:#caa869;color:#f5dfb2}

#lookReticle{transition:opacity .25s,width .35s,height .35s}#lookReticle .ranged-ring{opacity:0;transition:opacity .35s}body.frost-ranged-aim #lookReticle{width:29px!important;height:29px!important}body.frost-ranged-aim #lookReticle .ranged-ring{opacity:1}body.frost-out-of-range #lookReticle{opacity:.28}
