/* Live adaptation of E v002: local Cyrillic fonts, enamel and aged brass. */
@font-face{font-family:Plex;src:url('/assets/ui/fonts/IBMPlexSans-Variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:"PT Serif";src:url('/assets/ui/fonts/PT_Serif-Web-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:"PT Serif";src:url('/assets/ui/fonts/PT_Serif-Web-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--text:#ece2cc;--muted:#b3aa97;--amber:#d7b778;--line:#82704d66;--panel:#15191bed;--sans:Plex,Arial,sans-serif;--title:"PT Serif",Georgia,serif}
body{font-family:var(--sans);font-size:15px;font-variant-numeric:tabular-nums;background:#101315}
button{transition:background .14s,border-color .14s,color .14s;touch-action:manipulation}
button:not(:disabled):hover{filter:none;background-color:#353a39;border-color:var(--amber)}
button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;border-style:dashed}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #e0c283;outline-offset:3px}
.smallcaps,.eyebrow,.micro,.labelrow,label,.serial,.textbutton{font-family:var(--sans)}
.smallcaps,.eyebrow,.labelrow,label{font-size:12px;letter-spacing:.1em}.micro{font-size:12px;line-height:1.6}.textbutton{font-size:14px;min-height:36px}
.primary{min-height:52px;background:#c9a45c;color:#15191b;font:600 17px var(--sans);border:1px solid #e0c283;padding:13px 20px}
.primary:not(:disabled):hover{background:#e0c283;color:#101315}.secondary{font:15px var(--sans);min-height:42px;background:#202629;border:1px solid #63665c;padding:10px 16px}
input,select{font:15px var(--sans);min-height:44px;background:#191f22;border:1px solid #50554e;border-radius:2px;padding:9px 12px}
#masthead{top:28px;left:4vw;right:4vw}#masthead .smallcaps{font-size:10px}#sound{padding:6px 12px;border:1px solid #82704d44}
#vignette{background:linear-gradient(90deg,#0b1015ed 0%,#0b1015cf 26%,#0b101518 49%,#0b101500 72%,#0b101566),linear-gradient(0deg,#0b1015ed,transparent 25%)}
#menu{left:4vw;top:19vh;width:340px;max-height:calc(81vh - 30px);padding:0 4px 24px 0;scrollbar-color:#776e5a transparent}
#menu>.eyebrow{font-size:10px;letter-spacing:.14em}h1{font:700 clamp(64px,6.1vw,84px)/.96 var(--title);letter-spacing:-.045em;margin:26px 0 22px}h1>span{margin-top:0}.title-line{height:1px;margin-top:14px}
.lead{font:22px var(--title);margin:16px 0 10px}.intro{font:14px/1.7 var(--sans);margin-bottom:28px;color:#b5b3a4}
#homeActions{display:grid;gap:10px}#homeActions .secondary{display:flex;justify-content:space-between;text-align:left}#homeActions .secondary span{font:12px var(--mono);color:var(--muted)}#homeActions .textbutton{text-align:left;padding:8px 2px}#homeActions .micro{margin:16px 0 0;color:#9f9e90}
#menu:not([data-view=home]){top:14vh}#menu:not([data-view=home]) h1{font-size:54px;display:flex;align-items:baseline;gap:14px;margin:20px 0}#menu:not([data-view=home]) h1>span{display:inline}#menu:not([data-view=home]) .title-line,#menu:not([data-view=home]) .intro,#menu:not([data-view=home]) .lead{display:none}
.setupheading{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin:12px 0 20px}.fieldrow{grid-template-columns:1fr;gap:15px}.fieldrow label{font-size:11px}.fieldrow+button{margin-top:24px}.joinrow{grid-template-columns:.8fr 1.4fr;gap:7px;margin-top:10px}.joinrow input{font-size:14px;letter-spacing:1px}.joinrow button{font-size:13px;padding:10px}
#setupHint{margin:16px 0}#poster{left:auto;top:98px;right:4%;bottom:auto}.serial{font-size:10px;letter-spacing:.12em;color:#b8b6a0}
#characterSelect{position:fixed;inset:0;z-index:2;pointer-events:none}#characterSelect button{pointer-events:auto}
.heroInfo{position:absolute;right:4vw;top:26vh;width:225px;text-shadow:0 2px 10px #0007}.heroInfo h2{font:32px/1.15 var(--title);margin:16px 0 12px}.heroInfo>p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 22px}
#classDetail{font:14px/1.6 var(--sans);border-top:1px solid var(--line);padding:18px 0;min-height:0;color:#b9b5a7}#classDetail b{display:block;color:var(--amber);font-weight:500;margin-bottom:6px}#heroBranches{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}#heroBranches span{font-size:11px;color:#a7a99c;border:1px solid #6a6a5844;padding:3px 7px}#preSkills{width:100%;font-size:14px}
.heroRoster{position:absolute;left:37%;right:4vw;bottom:38px;max-width:760px;margin:auto}.heroRoster>.labelrow{margin-bottom:10px;font-size:10px;letter-spacing:.1em}#heroStatus{font-size:10px;letter-spacing:0;text-align:right;color:#99a79c}.classgrid{gap:8px}.classcard{display:flex;align-items:center;justify-content:center;gap:10px;min-height:65px;padding:12px 10px;font:14px var(--sans);color:#bdb8a9;background:#151c20de;border:1px solid #54574b}.classcard .classicon{font:22px var(--mono);margin:0}.classcard.selected{background:#51472a66;border:1px solid #e0c283;box-shadow:inset 0 -3px #c9a45c;color:#f6efe0}.classcard.selected:after{display:none}
#heroUnavailable{position:absolute;left:61%;top:44%;transform:translate(-50%,-50%);text-align:center;width:260px;color:#b8b4a3}#heroUnavailable strong{display:block;font:24px var(--title);color:var(--amber);margin-bottom:14px}#heroUnavailable span{font-size:13px;line-height:1.7}
#heroTurn{position:absolute;left:61%;bottom:155px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;color:#b8b9a7;font:11px var(--sans)}#heroTurn button{border:1px solid #9b895050;background:#10171bbd;font-size:23px;color:#d7c292;width:37px;height:37px}body.playing #characterSelect{display:none}
.lobbycode{background:#202629;padding:14px}.lobbycode .smallcaps{font-size:10px}.lobbycode strong{font-size:30px}.member{font-size:14px;gap:8px}.member small{font:10px var(--sans)}#members{margin:12px 0}.member>i{font-size:20px}
/* The fight keeps only the essential bar; construction opens its own tool row. */
.hudtop{top:18px;left:20px;right:20px;gap:20px}.clockpanel,.basepanel,.resources,.playerpanel,#minimapFrame,.toolbar button{background:var(--panel);border:1px solid var(--line);border-radius:3px;box-shadow:0 3px 18px #0003}
.clockpanel{min-width:220px;padding:11px 15px;gap:5px 14px}.clockpanel strong{font:30px var(--title)}.clockpanel>.smallcaps{font-size:11px}.clockpanel>span:last-child{font:10px var(--sans);letter-spacing:.03em}
.basepanel{width:300px;padding:12px 16px}.basepanel .labelrow{font-size:11px;letter-spacing:.05em}#team{font:11px var(--sans);flex-wrap:wrap;gap:8px}
.resources{max-width:310px;gap:7px 18px;padding:12px 16px;font:11px var(--sans)}.resources>span{display:flex;align-items:center;gap:7px}.resources img{width:21px;height:21px}.resources strong{font:24px var(--title);margin:0}.resources small{font:10px var(--sans);letter-spacing:.03em}
#objective{font:13px var(--sans);top:115px;left:20px;padding:9px 12px;max-width:400px;background:var(--panel)}#event{top:115px;left:auto;right:20px;transform:none;max-width:350px;font:13px/1.5 var(--sans);padding:10px 15px}
.hudbottom{left:20px;right:20px;bottom:18px;gap:18px}.playerpanel{width:230px;padding:14px 16px}#playerName{font-size:11px;letter-spacing:.04em}.vitals strong{font-size:27px}.vitals strong:nth-of-type(2){font-size:23px}.vitals span{font:10px var(--sans);letter-spacing:.04em}#skillLabel{font:12px var(--sans);margin-top:12px}#stealthState{font-size:10px;margin-top:5px}
.actionpanel{gap:9px;min-width:0}.toolbar{gap:6px;flex-wrap:wrap;justify-content:center}.toolbar button{min-height:40px;padding:8px 11px;font:13px var(--sans);color:#c7c4b7}.toolbar button.active{border-color:#e0c283;color:#e0c283}.toolbar button kbd{margin-right:6px}
kbd{font:11px var(--mono);border:1px solid #74776288;border-radius:2px;padding:2px 5px;color:#ece2cc;background:#ffffff06}.controls{display:flex;gap:8px 14px;flex-wrap:wrap;justify-content:center;font:10px var(--sans);max-width:650px;color:#b1b3a3}.controls kbd{font-size:9px;padding:1px 3px;margin-right:2px}
#builds{display:none;gap:6px;width:100%;max-width:680px}.constructing #builds{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.buildbutton{position:relative;min-width:0;min-height:88px;padding:10px 5px 7px;font:12px var(--sans);background:#151b1fee;color:#d4cbb8}.buildbutton img{display:block;width:27px;height:27px;margin:0 auto 6px}.buildbutton>kbd{position:absolute;left:5px;top:5px;font-size:10px;padding:1px 3px;margin:0}.buildbutton small{font:10px var(--sans);color:#c9b98d;margin-top:4px}.buildbutton .buildReason{color:#dba84a;font-size:9px}.buildbutton.selected{border-color:#e0c283;background:#433b28ed;box-shadow:inset 0 -2px #c9a45c}.buildbutton:disabled{opacity:.55}
#constructionActions{width:100%;max-width:680px;justify-content:space-between;gap:8px;padding:6px 8px;background:#151b1fee}#constructionActions button{min-height:34px;font:12px var(--sans);padding:6px 9px}#constructionActions span{font:10px var(--sans);text-align:center}#constructionActions #cancelBuild{color:#e7c7aa}
#minimapFrame{width:190px;padding:8px}#minimapFrame>span{font:10px var(--sans)}#context{bottom:170px;font:13px/1.5 var(--sans);max-width:650px;padding:9px 16px}.constructing #context{bottom:250px}
#zoomControls{bottom:200px;left:20px}#zoomControls span{display:none}#zoomControls button{min-height:30px}#help{bottom:174px;right:20px;width:32px;height:32px}#performance{bottom:182px;right:65px;font:10px var(--mono)}
#interactionPrompt{font:14px var(--sans);max-width:320px}#interactionPrompt strong{font-size:14px}#interactionPrompt small{font:11px var(--sans)}#interactionPrompt kbd{font-size:17px}
dialog{background:#181f22;border:1px solid #8c7954;padding:28px;font:15px var(--sans)}.dialoghead h2,dialog>h2{font-family:var(--title);font-size:30px;letter-spacing:0}.dialoghead .eyebrow{font-size:11px}.close{min-width:36px;min-height:36px}.helpgrid p{font-size:14px}.helpgrid b{font:12px var(--sans)}#skillsInfo{font:13px var(--sans)}.skillnode strong{font:15px var(--sans)}.skillnode span{font:13px/1.5 var(--sans)}.skillnode small{font:11px var(--sans)}.maplegend,#journal{font:13px/1.7 var(--sans)}#settingsDialog{width:540px}#musicControls label{font-size:14px}#toast{font:14px var(--sans);max-width:90vw;background:#202a2b;bottom:24px}#connection{font:12px var(--sans)}
@media(max-height:800px){#menu{top:17vh}#menu:not([data-view=home]){top:14vh}h1{font-size:70px;margin:20px 0}.intro{margin-bottom:22px}.heroInfo{top:23vh}.heroInfo h2{font-size:29px}.heroRoster{bottom:25px}.classcard{min-height:58px}#heroTurn{bottom:130px}.heroInfo>p{margin-bottom:15px}#classDetail{padding:14px 0}#heroBranches{margin-bottom:14px}#poster{top:90px}}
@media(max-width:1250px){#menu{width:305px}.heroInfo{right:3vw;width:205px}.heroInfo h2{font-size:28px}.heroRoster{left:34%;right:3vw}.hudbottom{gap:10px;left:15px;right:15px}.playerpanel{width:205px}#minimapFrame{width:165px}.toolbar button{padding:8px;font-size:12px}.controls{gap:8px}.buildbutton{font-size:11px}.buildbutton small{font-size:9px}}
@media(max-width:1050px){.heroInfo{display:none}.heroRoster{left:36%;right:3vw}.classcard{flex-direction:column;gap:5px;font-size:12px}.classcard .classicon{font-size:18px}#heroTurn,#heroUnavailable{left:67%}.heroRoster>.labelrow{font-size:9px}.heroRoster>.labelrow span:last-child{display:none}.hudtop{gap:10px}.basepanel{width:230px}.resources{max-width:250px}.hudbottom{gap:10px}.playerpanel{width:190px}#minimapFrame{display:none}.actionpanel{max-width:650px}.constructing #context{bottom:240px}}
@media(max-width:760px){#menu{left:20px;width:290px;top:115px;max-height:calc(100vh - 240px)}#menu:not([data-view=home]){top:100px}#menu>.eyebrow{font-size:9px}#masthead{left:20px;right:20px;top:20px}h1{font-size:60px}.heroRoster{left:20px;right:20px;bottom:20px}.heroRoster>.labelrow{font-size:9px}.classcard{min-height:60px}.heroInfo,#heroTurn,#heroUnavailable{display:none}#poster{display:none}.hudtop{left:10px;right:10px}.clockpanel{min-width:170px;padding:8px}.clockpanel strong{font-size:24px}.clockpanel>.smallcaps{font-size:9px}.resources{max-width:180px;padding:8px}.resources strong{font-size:20px}.basepanel{width:180px;padding:8px}.hudbottom{left:10px;right:10px}.playerpanel{width:170px;padding:10px}.toolbar button{font-size:11px;padding:6px}.controls{display:none}.buildbutton{font-size:10px}.buildbutton small{font-size:8px}#context{max-width:90vw}.heroRoster{pointer-events:auto}}
@media(prefers-reduced-motion:reduce){button,.bar i,#toast{transition:none}}

@media(max-height:800px){#heroTurn{bottom:110px}#heroTurn button{width:28px;height:28px;font-size:20px}}
.constructing .controls{visibility:hidden}
#team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin-top:10px}
.teamMember{min-width:0;display:grid;grid-template-columns:1fr auto;gap:2px 5px;border-left:2px solid var(--role);padding-left:6px}
.teamName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:11px var(--sans)}.teamStatus{font:9px var(--mono);color:#b2b3a6;align-self:center}.teamHealth{grid-column:1/-1;height:2px;background:#fff1}.teamHealth i{display:block;height:100%;background:var(--role)}
.teamMember[data-state=down]{border-color:#e3a177}.teamMember[data-state=down] .teamStatus{color:#edb28e}.teamMember[data-state=offline],.teamMember[data-state=dead]{opacity:.5}
#stealthState[data-state=seen]{color:#ec9a83}#stealthState[data-state=heard],#stealthState[data-state=search],#stealthState[data-state=loud]{color:#e2c27e}#stealthState[data-state=quiet]{color:#b4c69a}
.noiseReadout{display:flex;align-items:center;gap:10px;margin-top:6px;font:9px var(--sans);color:#a6ab9d}.noiseTrack{height:3px;flex:1;background:#ffffff15}.noiseTrack i{display:block;height:100%;width:0;background:#d8bc7d;transition:width .12s linear}
#rescuePanel{position:fixed;left:50%;bottom:195px;transform:translateX(-50%);width:340px;max-width:85vw;padding:16px 20px;background:#201d1cee;border:1px solid #b48c64;pointer-events:none;border-radius:3px}
#rescuePanel>div{display:flex;justify-content:space-between;align-items:center}#rescuePanel strong{font:12px var(--sans);letter-spacing:.08em;color:#e9c29c}#rescueSeconds{font:26px var(--title);color:#f1d4b3}#rescueDetail{font:13px/1.5 var(--sans);margin:8px 0 12px;color:#cdc6b5}.rescueTrack{display:block;height:4px;background:#ffffff12}.rescueTrack i{display:block;height:100%;width:0;background:#a8c79a;transition:width .1s linear}
#rescuePanel.urgent{border-color:#d68c75}.allyMarker{position:fixed;left:0;top:0;pointer-events:none;font:12px var(--sans);color:#f0c9a6;background:#201e1de8;border:1px solid #b18d68;padding:6px 10px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:3px}.allyMarker.urgent{color:#ffc2ad;border-color:#d68c75}

#team .teamName,#team .teamHealth{display:block}#team .teamHealth i{height:100%;border-radius:0}
#rescuePanel{top:158px;bottom:auto}

#loadingPanel{position:fixed;z-index:200;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(520px,90vw);padding:30px;background:#172421;border:1px solid #a68d59;box-shadow:0 0 0 100vmax #0b1212d9;color:#e8dcc0;display:grid;gap:16px}#loadingPanel[hidden]{display:none}#loadingPanel progress{width:100%;accent-color:#d2ae6d}#loadingPanel div{display:flex;gap:12px}#loadingError{overflow-wrap:anywhere;color:#e1a18b;font-size:13px}
#weaponFeedback{position:fixed;left:50%;bottom:185px;transform:translateX(-50%);padding:6px 12px;background:#16211edb;border:1px solid #a79a73;color:#ddd0ae;font:12px var(--sans);pointer-events:none}#weaponFeedback[data-kind=hit]{color:#bdd6a3;border-color:#82966e}

#armoryDialog{width:min(860px,94vw)}#armoryList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.armoryCard{border:1px solid #92826966;padding:16px;display:flex;flex-direction:column;gap:9px}.armoryCard h3,.armoryCard p{margin:0}.armoryCard p{color:#c4bead;flex:1}.armoryCard small{color:#b7a985}.armoryCard.locked{opacity:.65}.armoryCard button{margin-top:6px}#armoryUpgrade{margin-top:20px}@media(max-width:650px){#armoryList{grid-template-columns:1fr}}

#interactionPrompt{gap:6px;padding:4px 7px 7px;max-width:190px;border-color:#cbb88799;border-radius:3px;background:#202721d9;box-shadow:0 1px 5px #0004;font:12px var(--sans)}#interactionPrompt strong{font-size:12px;font-weight:500;line-height:1.15}#interactionPrompt small{font-size:9px;line-height:1;margin-top:2px}#interactionPrompt small:empty{display:none}#interactionPrompt kbd{width:21px;height:22px;min-width:21px;font-size:12px;box-shadow:none}#interactionPrompt .interactionTrack{height:2px;bottom:2px;left:3px;right:3px}
