:root{--bg:#121715;--panel:#1b221f;--panel2:#242b24;--line:#424b3b;--text:#eee9dc;--muted:#b1b5a6;--gold:#d5b577;--green:#94b6a0;--red:#c98270}
body{background:radial-gradient(ellipse at 80% 0,#5b57301a,transparent 55%),#121715}.topbar{border-bottom-color:#655b3e66}.brand-glyph{color:#d5b577;text-shadow:0 0 30px #d5b57722}.panel,.monster-card,.auth-card{background:linear-gradient(145deg,#22291fe6,#181f1de6)}.button{border-radius:2px}.primary{box-shadow:inset 0 0 0 1px #ffe4ad33,0 5px 22px #0003}.primary:hover:not(:disabled){background:#ebce95}.secondary{background:#202820}.welcome-scene:after{background:linear-gradient(180deg,#111b17c7,#17201844 60%,#10151066)}.scene-image{inset:0;width:100%;height:100%;object-fit:cover;object-position:62% center;opacity:.8}.scene-copy{padding-top:64px}.scene-copy h1{font-size:clamp(36px,4.1vw,59px);text-shadow:0 3px 24px #000}.city-banner{min-height:410px}.city-banner:before{background:linear-gradient(90deg,#101a16ed,#16201688 51%,#14201d11)}.city-banner h2{text-shadow:0 2px 20px #0006}.city-banner>img{object-position:60% 50%}.portrait-choice img{object-fit:cover;aspect-ratio:4/5}.large-portrait{aspect-ratio:4/5;object-fit:cover}.monster-art{height:410px;background:#17201a}.monster-art>img{object-fit:cover;object-position:center 28%}.monster-art:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 -40px 40px -40px #131b17}.chamber-number,.floor-number{background:#111b17bb;padding:2px 8px;border:1px solid #b59d6844}.path-monster img{object-position:50% 25%}.path-monster.locked img{filter:saturate(.75);opacity:.77}.path-monster strong{min-height:49px}.build-preview{min-height:116px}.preview-energy{display:block;margin-top:10px;color:var(--gold);font-size:10px}.battle-rules{font-size:11px}.damage-line{display:flex;justify-content:space-between;font-size:12px;margin-top:18px}.damage-line strong{color:var(--gold);font-weight:500}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-left:6px;vertical-align:middle;box-shadow:0 0 9px #d5b57777}
.battle-page .page-heading h1{font-size:clamp(30px,3.4vw,47px)}.battle-page .page-heading p{font-size:12px;max-width:740px}.battle-arena{display:grid;grid-template-columns:minmax(0,1fr) 240px minmax(0,1fr);gap:26px;padding:32px;border:1px solid #80704a77;border-radius:4px;background:linear-gradient(#101a16a6,#101713e8),url('/assets/slavic/dungeon.png') center 40%/cover;box-shadow:0 20px 70px #0004,inset 0 0 80px #0004;isolation:isolate;align-items:center;position:relative}.battle-arena:before,.battle-arena:after{content:"✧";position:absolute;color:#bba06c88;font:25px Georgia,serif;top:8px}.battle-arena:before{left:12px}.battle-arena:after{right:12px}.fighter{min-width:0;border:1px solid #9d8d5c66;background:#171e18f2;border-radius:3px;overflow:hidden;box-shadow:0 10px 30px #0005}.fighter-art{height:300px;position:relative;background:#19231c}.fighter-art>img{width:100%;height:100%;object-fit:cover;object-position:center 27%;display:block}.fighter-art:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 60%,#151f17c7)}.fighter-tag{position:absolute;bottom:13px;left:19px;right:12px;z-index:1;font-size:8px;letter-spacing:2px;color:#e9d4a5}.fighter-info{padding:20px}.fighter-info h2{font-size:clamp(21px,2vw,29px);line-height:1.2;overflow-wrap:anywhere;min-height:36px}.fighter-info>p{font-size:11px;min-height:24px;margin:6px 0 16px}.fighter-health{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px;font-size:11px}.fighter-health strong{font-size:19px;font-weight:500;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.fighter-health small{font-size:11px;color:var(--muted);font-weight:400}.fighter .health-bar{height:7px}.fighter.is-defeated .fighter-art>img{filter:grayscale(.75);opacity:.45}.energy-list{display:grid;gap:12px;margin-top:23px}.energy-row>div:first-child{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:10px;margin-bottom:4px}.energy-row small{font-size:10px;font-variant-numeric:tabular-nums}.energy-row small span{color:#89917f}.energy-bar{height:3px;background:#354034;border-radius:1px;overflow:hidden}.energy-bar>span{height:100%;display:block;background:#d5b577;transition:width .25s ease}.energy-1 .energy-bar>span{background:#bda380}.energy-2 .energy-bar>span{background:#83bba5}.energy-3 .energy-bar>span{background:#91a7b7}.energy-inactive{opacity:.38}.compact-energy{grid-template-columns:1fr 1fr;gap:15px 28px;margin:20px 0 25px}.round-control{text-align:center;min-width:0;display:flex;flex-direction:column;align-items:center;gap:17px}.round-control>.eyebrow{font-size:8px;letter-spacing:2px}.round-seal{width:148px;height:148px;border:1px solid #b3975c88;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;box-shadow:0 0 0 8px #b3975c0a,inset 0 0 45px #b3975c0c;background:#121c15b3}.round-seal:before{content:"";position:absolute;inset:9px;border:1px solid #b3975c3b;border-radius:50%}.round-seal>small{font-size:8px;letter-spacing:3px;color:var(--muted);margin-top:4px}.round-seal>strong{font:59px/1.15 Georgia,serif;color:var(--gold)}.round-seal>span{font-size:18px;color:#aa925e}.round-control .button{font-size:12px;gap:10px;width:100%;min-height:54px;padding:12px 10px}.round-note{font-size:10px;line-height:1.9;color:#b6bba8}.forfeit-button{font-size:10px;text-decoration:underline;text-underline-offset:5px}.round-control .error{font-size:10px;margin:0;max-width:230px}.round-recap{margin-top:22px;padding:23px 28px}.recap-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:18px}.recap-grid>div{display:flex;flex-direction:column;gap:5px}.recap-grid>div+div{border-left:1px solid var(--line);padding-left:26px}.recap-grid>div>strong{font:30px/1.3 Georgia,serif;color:var(--text)}.recap-grid>div>strong>span{font:11px "Segoe UI",sans-serif;color:var(--muted)}.recap-grid>div>small{font-size:11px;color:var(--muted)}.recap-grid .critical-text{color:#e6bd78}.recap-grid .dodge-text{color:#91bba8}.before-round{font-size:12px;line-height:1.8;margin-top:15px}.battle-links{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin:3px 0 22px}.battle-links>.muted{margin-top:18px;margin-left:auto;font-size:10px}.battle-log{margin-top:20px}.battle-log td>strong{display:block;font-size:17px;font-weight:500}.battle-log td>strong>span{font-size:10px;font-weight:400;color:var(--muted)}.battle-table-scroll{overflow:auto}.battle-help{margin-top:18px;font-size:12px}.battle-help summary{color:var(--gold);cursor:pointer}.battle-help p{margin-top:14px;max-width:850px;line-height:1.9}
@media(min-width:1500px){.fighter-art{height:340px}}@media(max-width:1100px){.battle-arena{grid-template-columns:minmax(0,1fr) 195px minmax(0,1fr);gap:17px;padding:24px 20px}.fighter-art{height:260px}.fighter-info{padding:17px}.fighter-info h2{font-size:23px}.round-control .button{font-size:11px}.round-seal{width:130px;height:130px}.round-seal>strong{font-size:51px}}
@media(max-width:820px){.battle-arena{grid-template-columns:1fr 1fr;gap:16px;padding:22px 18px}.round-control{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:95px 1fr;gap:10px 20px;text-align:left;align-items:center}.round-control>.eyebrow{grid-column:2;align-self:end}.round-seal{grid-column:1;grid-row:1/5;width:90px;height:90px}.round-seal>strong{font-size:34px}.round-seal>small{font-size:6px}.round-seal>span{font-size:12px}.round-control .button{grid-column:2;font-size:12px;max-width:380px;min-height:47px}.round-control>.round-note{grid-column:2;font-size:10px;line-height:1.5}.round-note br{display:none}.round-control>.forfeit-button{grid-column:2;justify-self:start;padding:0;margin:4px 0}.round-control>.error{grid-column:1/-1;max-width:none}.fighter-art{height:260px}.fighter-info h2{min-height:51px;font-size:22px}.battle-page .page-heading.compact>.status-pill{display:none}.battle-links>.muted{margin-left:0;width:100%;margin-top:0}.battle-links{gap:0 25px}.city-banner{min-height:360px}}
@media(max-width:720px){.scene-image{inset:0;width:100%;height:100%;opacity:.75;object-position:60% 50%}.welcome-scene{min-height:335px}.scene-copy{padding:28px}.scene-copy h1{font-size:39px}.monster-art{min-height:310px}.monster-copy h2{font-size:25px}.monster-path{grid-template-columns:repeat(3,1fr)}.fighter-art{height:220px}.fighter-info{padding:15px}.fighter-health{align-items:flex-start;flex-direction:column;gap:3px}.fighter-health strong{font-size:18px}.fighter-info>p{min-height:32px}.energy-list{gap:11px;margin-top:18px}.energy-row>div:first-child{font-size:9px}.energy-row small{font-size:9px}.round-recap .section-top{align-items:flex-start;gap:10px;flex-wrap:wrap}.round-recap{padding:20px}.recap-grid>div>strong{font-size:26px}.recap-grid>div>small{font-size:10px;line-height:1.6}.battle-page .page-heading{padding-top:30px}.battle-page .page-heading h1{font-size:32px}.battle-page .page-heading p{font-size:11px}.compact-energy{margin-bottom:25px}}
@media(max-width:430px){.battle-arena{gap:11px;padding:17px 11px}.fighter-art{height:175px}.fighter-tag{font-size:6px;letter-spacing:1px;left:11px;bottom:10px}.fighter-info{padding:12px 10px}.fighter-info h2{font-size:19px;min-height:47px}.fighter-info>p{font-size:9px;margin:5px 0 12px;min-height:28px}.fighter-health strong{font-size:16px}.fighter-health small{font-size:9px}.fighter-health>span{font-size:9px}.fighter .health-bar{height:5px}.energy-row>div:first-child{flex-wrap:wrap;gap:1px}.energy-row small{font-size:8px;white-space:nowrap}.energy-row>div:first-child>span{width:100%}.energy-list{gap:9px}.round-control{grid-template-columns:75px 1fr;gap:9px 13px;margin-top:5px}.round-seal{width:72px;height:72px}.round-seal:before{inset:5px}.round-seal>strong{font-size:29px}.round-seal>small{font-size:5px;letter-spacing:2px}.round-seal>span{font-size:10px}.round-control>.eyebrow{font-size:7px;letter-spacing:1.2px}.round-control .button{font-size:11px;min-height:47px;padding:9px}.round-control>.round-note{font-size:9px}.round-control>.forfeit-button{font-size:9px;line-height:1.6}.recap-grid{gap:12px}.recap-grid>div+div{padding-left:13px}.recap-grid>div>strong{font-size:24px}.round-recap{padding:17px}.round-recap>.section-top>.eyebrow{font-size:8px}.round-recap .muted{font-size:10px}.battle-links .text-link{font-size:10px}.battle-help{padding:17px}.battle-help p{font-size:11px}.city-banner>div{padding:24px}.monster-art{min-height:300px}.compact-energy .energy-row>div:first-child>span{width:auto}}
@media(prefers-reduced-motion:reduce){.energy-bar>span{transition:none}}
@media(max-width:600px){.battle-arena{align-items:start}.round-control{grid-row:1;position:sticky;top:8px;z-index:3;background:#172019f5;border:1px solid #796b4b;padding:12px;border-radius:3px;margin:0;box-shadow:0 8px 25px #0005}.fighter-player{grid-row:2;grid-column:1}.fighter-enemy{grid-row:2;grid-column:2}.round-control>.eyebrow,.round-control>.round-note{display:none}.round-control .round-seal{grid-row:1/3}.round-control .button{grid-row:1}.round-control .forfeit-button{grid-column:2;grid-row:2}.round-control>.error:empty{display:none}.round-control>.error:not(:empty){grid-column:1/-1;grid-row:3}}
