:root{color-scheme:dark;--ink:#edf0f8;--muted:#adb8ce;--gold:#f3cc73;--line:#3c4563;--panel:#192239;--purple:#8f78c7}*{box-sizing:border-box}body{margin:0;background:#101624;color:var(--ink);font:16px/1.5 Arial,Helvetica,sans-serif}.app{max-width:1560px;margin:auto;padding:18px 22px}.top{display:flex;align-items:center;min-height:40px;margin-bottom:14px}h1{font-size:20px;letter-spacing:.06em;margin:0;color:var(--gold)}h1 small{display:inline-block;font-size:12px;color:#aeb8cc;margin-left:14px;letter-spacing:.12em;font-weight:400}.layout{display:grid;grid-template-columns:minmax(0,1fr) 274px;gap:14px;align-items:start}.game-column{min-width:0}.game-frame{border:1px solid #515b78;border-radius:12px 12px 0 0;overflow:hidden;background:#101a2b}.board{position:relative;aspect-ratio:3/2;background:#263244;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}canvas:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}.battle-hud{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:0;background:#1c2840;border-bottom:1px solid #56617b;padding:10px 6px}.hud-badge{display:flex;justify-content:center;align-items:center;gap:10px;min-width:0;padding:0 10px;border-right:1px solid #46516b}.hud-badge:last-child{border:0}.hud-icon{font-size:27px;line-height:1;color:#c9cee3}.hud-label{display:block;font-size:12px;color:#bec8db;letter-spacing:.06em;font-weight:700}.hud-badge b{display:block;font-size:24px;font-weight:800;line-height:1.2;color:#f4f5fa;font-variant-numeric:tabular-nums;white-space:nowrap}.faith-badge b,.faith-badge .hud-icon{color:var(--gold)}.hope-badge .hud-icon{color:#bfaae9}.enemies-badge .hud-icon{color:#e6a4a9}.toolbar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px;background:#1c2840;border:1px solid #515b78;border-top:0;border-radius:0 0 12px 12px}.toolbar>div{display:flex;gap:7px;flex-wrap:wrap}.btn{min-height:42px;padding:9px 13px;border:1px solid #55617c;border-radius:7px;background:#263149;color:#eef0f9;font-size:14px;font-weight:700;cursor:pointer}.btn.primary{background:var(--gold);color:#201c2a;border-color:var(--gold)}.btn:disabled{opacity:.45;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(1.1)}button:focus-visible,summary:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #77cde6;outline-offset:3px}[hidden],.toolbar>[hidden]{display:none!important}.toast{font-size:14px;color:var(--muted);min-height:24px;margin:9px 3px}.shop{background:var(--panel);border:1px solid #4b4565;border-radius:12px;padding:16px;color:var(--ink)}.shop-heading{font-size:12px;letter-spacing:.13em;color:#b7afcb;margin:0 0 12px;font-weight:700}.hero-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:18px}.card{padding:0;background:#222b42;border:2px solid #43465e;border-radius:7px;overflow:hidden;cursor:pointer;position:relative;min-width:0;height:86px}.card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.card .portrait{width:100%;height:100%;object-fit:cover;object-position:50% 24%;display:block}.card>div{position:absolute;inset:auto 0 0;background:#101827de;padding:3px}.card h3{margin:0;font-size:12px;color:#f3f1f8;font-weight:700}.card p,.card .cost,.card .air-tag{display:none}.weapon-kicker{margin:0 0 8px;font-size:12px;color:#d0bee8}.hero-description{font-size:14px;line-height:1.5;color:var(--muted);margin:0 0 15px}.weapon-title{display:flex;align-items:center;gap:8px;justify-content:space-between}.weapon-title h2{font-size:21px;line-height:1.15;margin:0;color:#fff;font-weight:800}.sound-preview{width:34px;height:34px;flex:none;border:1px solid #63577b;border-radius:50%;background:#302a47;color:#dfd5f1;font-size:20px;cursor:pointer}.weapon-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.weapon-tags span{font-size:12px;color:#c6dddf;border:1px solid #40586b;border-radius:5px;padding:3px 7px;background:#1e3343}.weapon-meters{display:grid;gap:13px;margin:22px 0}.meter-row{display:grid;grid-template-columns:60px 1fr 32px;gap:7px;align-items:center}.meter-row label{font-size:14px;color:#c4ccdf}.meter-row b{font-size:12px;text-align:right;color:#c4ccdf;font-variant-numeric:tabular-nums}.meter{height:10px;background:#0b1221;border:1px solid #47506a;border-radius:4px;overflow:hidden;position:relative}.meter:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5% - 2px),#142039 calc(12.5% - 2px),#142039 12.5%)}.meter i{height:100%;display:block}.meter.speed i{background:#a9c889}.meter.range i{background:#81c5dd}.meter.damage i{background:#e4a275}.weapon-cost{display:flex;justify-content:space-between;align-items:center;margin:0 0 13px;padding-top:15px;border-top:1px solid var(--line)}.weapon-cost span{font-size:12px;color:var(--muted);letter-spacing:.08em}.weapon-cost strong{font-size:23px;color:var(--gold)}.inspect>.btn{width:100%}.placement-hint{font-size:14px;line-height:1.5;color:#bac3d7}.panel-details{border-top:1px solid var(--line);padding-top:12px;margin-top:17px}.panel-details summary{font-size:14px;color:#c6b5e1;cursor:pointer}.panel-details p{font-size:14px;line-height:1.5;color:#bdc7da}.panel-details label{font-size:14px}.panel-details select{margin:5px 0 10px}.panel-details .btn{width:100%;background:transparent}.path-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:16px}.path-switch button{min-width:0;padding:10px 7px;font-size:14px;background:#242b41;border:1px solid #5c5372;border-radius:7px;color:#ced1df;cursor:pointer}.path-switch button.active{background:#493b62;border-color:#c1a2e7;color:#fff}.utility-row{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;margin-top:0}.utility{font-size:14px;color:#b8c4d8}.utility>summary{cursor:pointer;padding:8px 0}.utility[open]{flex-basis:100%;background:#192239;border:1px solid #3c4563;border-radius:9px;padding:8px 16px}.utility[open]>summary{color:var(--gold)}.utility p{font-size:14px;line-height:1.6;max-width:750px}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:850px;border-top:1px solid #3a4861;padding:10px 0}.options-grid h2{font-size:16px}.options-grid label{display:block;font-size:14px;margin:12px 0}.options-grid .btn{margin:6px 4px 0 0}select{display:block;width:100%;padding:9px;border:1px solid #687082;border-radius:6px;background:#24334b;color:#fff;font-size:14px}input[type=range]{vertical-align:middle;accent-color:var(--gold);margin-left:10px}#expansions h2{font-size:16px}#expansions .btn{margin:4px 8px 4px 0}.loading,.result{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#172139ed;padding:25px;text-align:center}.result h2{font-size:32px;color:var(--gold)}.result p{max-width:420px}.boss{display:none;position:absolute;left:8%;top:10%;width:84%;background:#211b36f2;border:1px solid #9a7db0;border-radius:10px;padding:15px;gap:15px;align-items:center;pointer-events:none}.boss.show{display:flex}.boss img{width:80px;height:100px;object-fit:contain}.boss span{font-size:12px;color:#c9a6e5}.boss h2{font-size:22px;margin:5px 0}.boss p{font-size:14px}.air-warning{color:#d8b8ed}.lesson-panel{display:grid;grid-template-columns:84px minmax(0,1fr);gap:18px;background:#231f36;border:1px solid #8c77ac;border-top:3px solid #b298d5;border-radius:0 0 12px 12px;padding:20px}.lesson-portrait{width:84px;height:96px;object-fit:cover;object-position:top;border-radius:9px;border:1px solid #ad94c7}.eyebrow,#lesson-speaker{font-size:12px;letter-spacing:.07em;color:#c3aade;margin:0 0 7px}.lesson-copy h2{font-size:23px;line-height:1.25;margin:0 0 9px}.lesson-copy p{margin:0 0 12px;max-width:720px}.lesson-copy .lesson-note{color:#bdb5d0;font-size:14px}.lesson-copy a{color:#aadce9}.lesson-actions{display:flex;gap:8px;flex-wrap:wrap}.lesson-choices{display:grid;gap:8px;margin:12px 0}.lesson-choice{text-align:left;font:inherit;color:#ebe8f4;padding:10px 14px;background:#302a46;border:1px solid #625573;border-radius:7px;cursor:pointer}.lesson-choice.answered{border-color:#accfab;background:#29443a}#lesson-feedback:empty{display:none}#lesson-feedback{color:#d1e8c3;font-size:14px}.enemy-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.enemy-guide>div{display:flex;gap:10px;align-items:center}.enemy-guide img{width:56px;height:70px;object-fit:contain}.enemy-guide b,.enemy-guide span{display:block}.enemy-guide span{color:var(--muted);font-size:12px;margin-top:3px}
@media(max-width:1050px){.app{padding:12px}.layout{grid-template-columns:minmax(0,1fr) 246px;gap:10px}.shop{padding:12px}.hud-badge{padding:0 6px;gap:6px}.hud-icon{display:none}.hud-badge b{font-size:22px}.hud-label{font-size:12px}.enemy-guide{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.layout{grid-template-columns:1fr}.shop{display:grid;grid-template-columns:140px minmax(0,1fr);gap:0 18px}.shop-heading{grid-column:1/-1}.hero-list{align-content:start;grid-template-columns:1fr;gap:8px;margin:0}.card{height:74px}.weapon-meters{margin:16px 0}.options-grid{grid-template-columns:1fr}.boss img{width:45px;height:65px}.boss h2{font-size:18px}h1 small{display:block;margin:3px 0 0}.toolbar .btn{padding:8px 10px}.lesson-panel{grid-template-columns:56px minmax(0,1fr);padding:14px;gap:12px}.lesson-portrait{width:56px;height:66px}}
@media(max-width:430px){.app{padding:8px}.shop{grid-template-columns:94px minmax(0,1fr);gap:0 12px}.card{height:64px}.weapon-title h2{font-size:18px}.hud-badge{padding:0 3px}.hud-badge b{font-size:20px}.meter-row{grid-template-columns:48px 1fr 27px;gap:5px}.meter-row label{font-size:12px}.lesson-panel{display:block}.lesson-portrait{display:none}.enemy-guide{grid-template-columns:1fr}.hero-description{font-size:14px}.path-switch{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Hero dossier and battlefield instruments */
.layout{grid-template-columns:minmax(0,1fr) 310px;gap:16px}.shop{padding:14px;background:#171d30;border-color:#55506c}.shop-heading{margin-bottom:10px}.hero-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:14px}.card{height:64px;border-radius:6px}.card h3{font-size:12px;letter-spacing:-.02em}.card .portrait{object-position:50% 25%}.hero-feature{position:relative;height:180px;overflow:hidden;border:1px solid var(--hero-color);border-radius:9px;background:#101a30;margin-bottom:15px}.hero-feature>img{position:absolute;right:0;top:0;width:180px;height:180px;object-fit:contain}.hero-feature:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101a30 0%,#101a30b3 29%,transparent 67%),linear-gradient(0deg,#101a30a8,transparent 50%);pointer-events:none}.hero-feature-caption{position:absolute;left:13px;right:10px;bottom:13px;z-index:1}.hero-feature-caption span{display:block;color:var(--hero-color);font-size:12px;max-width:125px;line-height:1.3;margin-bottom:6px}.hero-feature-caption h2{font-size:28px;line-height:1;margin:0;letter-spacing:-.03em;color:#fff;text-shadow:0 2px 8px #0a1225}.hero-story{border-bottom:1px solid #3c4059;margin-bottom:14px;padding-bottom:3px}.hero-story p{font-size:14px;line-height:1.5;color:#c9d0e0;margin:0 0 12px}.hero-story p>span{display:block;font-size:12px;letter-spacing:.09em;color:#ad9ccc;margin-bottom:3px;font-weight:700}.weapon-kicker{font-size:12px;color:#a9b6ca;margin-bottom:8px}.weapon-title h2{font-size:19px}.weapon-meters{margin:16px 0;gap:10px}.weapon-cost{padding-top:11px;margin-bottom:10px}.placement-hint{font-size:12px;margin:8px 0}.panel-details{margin-top:12px;padding-top:9px}.battle-hud{padding:12px;gap:9px;background:linear-gradient(180deg,#2a2543,#161c2d);border-bottom:2px solid #78653e;grid-template-columns:repeat(4,minmax(0,1fr))}.hud-badge{position:relative;justify-content:flex-start;gap:10px;padding:10px 12px 13px;border:1px solid #5a5471;border-radius:8px;background:linear-gradient(145deg,#293149,#11192a);box-shadow:inset 0 1px #ffffff13,0 3px 0 #0b101e;overflow:hidden}.hud-badge:last-child{border:1px solid #5a5471}.hud-icon{display:grid;place-items:center;width:34px;height:38px;flex:none;border-radius:6px;background:#0c1425;border:1px solid #4d4862;font-size:24px;color:#e5dce9;text-shadow:0 2px #080b14}.hud-label{font-size:12px;letter-spacing:.07em;color:#b7c2d9}.hud-badge b{font-size:25px;line-height:1.15;margin-top:2px;letter-spacing:-.02em}.faith-badge{border-color:#947c48}.faith-badge .hud-icon{color:#f4cf77;border-color:#75613a;background:#30291d}.hope-badge .hud-icon{color:#c6a7ef}.round-badge:after,.hope-badge:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#b5a3e8 var(--fill,0%),#39364f var(--fill,0%))}.hope-badge:after{background:linear-gradient(90deg,#b5a3e8 var(--fill),#39364f var(--fill))}
@media(max-width:1120px){.layout{grid-template-columns:minmax(0,1fr) 286px;gap:10px}.hud-badge{padding:9px 8px 12px;gap:6px}.hud-icon{width:26px;height:32px;font-size:21px}.hud-badge b{font-size:21px}.battle-hud{padding:9px;gap:6px}}
@media(max-width:960px) and (min-width:761px){.hud-icon{display:none}.hud-badge{justify-content:center}.hud-badge b{font-size:20px}.hud-label{letter-spacing:0}}
@media(max-width:760px){.layout{grid-template-columns:1fr}.shop{display:block}.hero-list{grid-template-columns:repeat(4,minmax(0,1fr))}.card{height:76px}.hero-feature{height:200px}.hero-feature>img{width:200px;height:200px}.hero-feature-caption h2{font-size:34px}.hero-story{display:grid;grid-template-columns:1fr 1fr;gap:16px}.hero-feature-caption span{max-width:none}.weapon-meters{max-width:none}.hud-icon{display:grid}}
@media(max-width:500px){.battle-hud{grid-template-columns:1fr 1fr;gap:7px;padding:9px}.hud-badge{padding:7px 11px 10px;gap:10px}.hud-badge b{font-size:23px}.hud-icon{width:30px;height:34px}.card{height:65px}.hero-story{display:block}.hero-feature-caption h2{font-size:30px}.path-switch{grid-template-columns:1fr 1fr}}
/* Battle console: map, deployment dock, and independently scrolling profile. */
body{background:#0b101b}.app{--map-ratio:1.5;width:min(1440px,calc(100% - 24px),calc((100svh - 240px)*var(--map-ratio) + 316px));max-width:none;padding:0;margin:0 auto}.top{min-height:46px;margin:0;justify-content:center}.top h1{font-size:17px;letter-spacing:.1em}.top h1 small{font-size:11px}.layout{grid-template-columns:minmax(0,1fr) 296px;gap:12px;align-items:start}.game-frame{border:1px solid #716246;border-radius:8px 8px 0 0}.battle-hud{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:0 12px;min-height:44px;background:#202435;border:0;border-bottom:1px solid #716246}.hud-badge,.hud-badge:last-child{display:flex;gap:7px;padding:6px 4px;min-width:0;background:none;border:0;border-radius:0;box-shadow:none;overflow:visible}.hud-badge>div{display:flex;gap:7px;align-items:baseline}.hud-icon{display:block;width:auto;height:auto;font-size:19px;line-height:1;background:none!important;border:0!important;border-radius:0;text-shadow:none}.hud-label{font-size:11px;letter-spacing:.03em;color:#a9b4c8}.hud-badge b{font-size:20px;margin:0;line-height:1.1}.round-badge:after,.hope-badge:after{display:none}.hero-dock{padding:10px;background:#202435;border:1px solid #716246;border-top:0}.hero-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0}.hero-dock .card{display:flex;align-items:center;height:58px;border:1px solid #50556d;border-radius:5px;background:#141b2d;padding:0;gap:7px;text-align:left}.hero-dock .card.selected{border-color:#f3cc73;box-shadow:inset 0 -3px #f3cc73;background:#2c2934}.hero-dock .card .portrait{width:48px;height:100%;object-fit:cover;object-position:50% 20%;flex:none}.hero-dock .card>div{position:static;background:none;padding:0;min-width:0}.hero-dock .card h3{font-size:12px;letter-spacing:0}.hero-dock .card .cost{display:block;color:#eaca83;font-size:12px;margin-top:3px}.hero-dock .card p,.hero-dock .card .air-tag{display:none}.toolbar{padding:8px 10px;gap:6px;border-color:#716246;background:#171e2f;border-radius:0 0 8px 8px}.toolbar>div{gap:5px}.toolbar .btn{min-height:34px;padding:6px 10px;font-size:12px;border-radius:4px}.toolbar #start{min-width:108px}.toast{font-size:12px;margin:6px 0;line-height:1.4;min-height:18px}.shop{max-height:calc(100svh - 92px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#766589 #171d30;padding:12px;background:#1b2032;border:1px solid #59516a;border-radius:8px}.shop-heading{font-size:11px;margin-bottom:10px}.hero-feature{height:164px;margin-bottom:12px;border:0;border-radius:5px}.hero-feature>img{width:164px;height:164px}.hero-feature-caption h2{font-size:27px}.hero-feature-caption span{font-size:12px;max-width:110px}.hero-story p{font-size:14px;line-height:1.45;margin-bottom:10px}.hero-story p>span{font-size:11px;margin-bottom:3px}.hero-story{margin-bottom:11px}.weapon-title h2{font-size:18px}.weapon-meters{margin:13px 0;gap:8px}.weapon-cost strong{font-size:21px}.utility-row{gap:18px;margin:0 0 12px}.utility>summary{font-size:12px;padding:5px 0}.lesson-panel{border-radius:0;border-bottom:0}.lesson-panel:not([hidden])~.hero-dock{opacity:.5}.placement-controls{align-items:center}
@media(max-width:1100px){.hero-dock .card{gap:5px}.hero-dock .card .portrait{width:36px}.hud-label{font-size:10px}.hud-badge b{font-size:18px}.battle-hud{padding:0 7px}}
@media(max-height:650px) and (min-width:761px){.app{width:min(1200px,calc(100% - 24px))}.shop{max-height:620px}}
@media(max-width:900px){.app{width:calc(100% - 20px)}.layout{grid-template-columns:minmax(0,1fr) 270px;gap:9px}.hero-dock .card{display:block;height:67px;text-align:center;position:relative}.hero-dock .card .portrait{width:100%;height:100%}.hero-dock .card>div{position:absolute;inset:auto 0 0;background:#111827e8;padding:2px}.hero-dock .card .cost{display:none}.hud-icon{display:none}.hud-badge>div{display:block}.battle-hud{min-height:48px}.hud-label{display:block}.hud-badge b{font-size:18px}.hero-feature{height:150px}.hero-feature>img{width:150px;height:150px}}
@media(max-width:760px){.app{width:calc(100% - 16px)}.top{min-height:48px}.top h1 small{display:inline-block;margin-left:10px}.layout{grid-template-columns:1fr}.shop{max-height:none;overflow:visible}.hero-dock .card{display:flex;text-align:left;position:relative;height:58px}.hero-dock .card .portrait{width:43px}.hero-dock .card>div{position:static;background:none;padding:0}.hero-dock .card .cost{display:block}.hero-feature{height:180px}.hero-feature>img{width:180px;height:180px}.hero-story{display:grid;grid-template-columns:1fr 1fr;gap:15px}.hero-feature-caption span{max-width:none}.battle-hud{display:flex;min-height:44px}.hud-badge>div{display:flex}.hud-icon{display:block}.hud-label{font-size:11px}.utility-row{margin-top:10px}.toolbar .btn{min-height:38px}}
@media(max-width:480px){.hud-icon{display:none}.hud-badge>div{display:block}.hud-label{font-size:10px}.hud-badge b{font-size:19px}.battle-hud{padding:3px 9px}.hero-dock{padding:8px}.hero-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-dock .card{height:48px;gap:8px}.hero-dock .card .portrait{width:48px}.hero-story{display:block}.top h1{font-size:16px}.top h1 small{font-size:10px;margin-left:8px}}
/* Horizontal command deck */
.app{width:min(1080px,calc(100% - 28px));margin:auto}.top{justify-content:flex-start;height:46px}.layout{display:flex;flex-direction:column;gap:0}.game-column{width:100%;background:#131b29;border:1px solid #3e475b;border-radius:10px 10px 0 0;overflow:hidden}.game-frame{width:min(100%,calc(54svh * var(--map-ratio)));margin:auto;border:0;border-radius:0}.battle-hud{background:#101724;border-bottom:1px solid #505875;min-height:39px}.hud-label{color:#99a7bb}.hud-badge b{font-size:19px}.hero-dock{border:0;border-top:1px solid #3e475b;background:#1b2537;padding:9px 12px}.hero-list{gap:9px}.hero-dock .card{height:54px;display:flex;text-align:left;background:#101a2c;border:1px solid #46536a;border-radius:5px;gap:12px}.hero-dock .card .portrait{width:55px;height:100%;object-fit:cover}.hero-dock .card>div{position:static;background:none;padding:0}.hero-dock .card h3{font-size:14px}.hero-dock .card .cost{display:block;font-size:12px}.toolbar{border:0;border-radius:0;background:#101724;padding:8px 12px}.toolbar .btn{font-size:12px;min-height:36px}.toolbar #auto-rounds[aria-pressed=true]{border-color:#b69ad5;color:#dec5f5;background:#302840}.toast{padding:0 12px;margin:5px 0 8px}.shop{width:100%;max-height:none;overflow:visible;border:1px solid #3e475b;border-top:0;border-radius:0 0 10px 10px;background:#1a2032;padding:16px}.inspect{display:grid;grid-template-columns:170px minmax(0,1fr) 290px;gap:22px;align-items:start}.hero-feature{height:198px;margin:0;border:1px solid #5a526e;background:#11182a}.hero-feature>img{width:170px;height:170px;top:0}.hero-feature:after{background:linear-gradient(0deg,#10182a 0%,#10182acc 18%,transparent 65%)}.hero-feature-caption{left:10px;bottom:12px}.hero-feature-caption h2{font-size:25px}.hero-feature-caption span{max-width:none;font-size:12px}.hero-story{display:block;margin:0;padding:0;border:0}.hero-story p{font-size:14px;line-height:1.55;margin-bottom:16px}.hero-story p>span{font-size:11px;letter-spacing:.12em;color:#d1b3e9}.profile-controls{border-left:1px solid #41445a;padding-left:20px;min-width:0}.profile-controls>.btn{width:100%}.weapon-kicker{font-size:11px;margin-bottom:8px}.weapon-title h2{font-size:18px}.weapon-tags{margin-top:7px}.weapon-meters{margin:11px 0;gap:7px}.weapon-cost{padding-top:8px;margin-bottom:8px}.weapon-cost strong{font-size:20px}.panel-details{margin-top:10px}.utility-row{margin-top:8px}.lesson-panel{border-radius:0}.profile-controls .placement-hint{margin-bottom:0}
@media(max-width:900px){.app{width:calc(100% - 20px)}.inspect{grid-template-columns:145px minmax(0,1fr) 245px;gap:14px}.profile-controls{padding-left:14px}.hero-feature{height:184px}.hero-feature>img{width:145px;height:145px}.hero-feature-caption h2{font-size:23px}.hero-dock .card{height:54px}.hero-dock .card .portrait{width:43px}.hero-dock .card h3{font-size:12px}}
@media(max-width:700px){.game-frame{width:100%}.inspect{grid-template-columns:130px minmax(0,1fr);gap:15px}.profile-controls{grid-column:1/-1;border-left:0;border-top:1px solid #41445a;padding:14px 0 0}.hero-feature{height:175px}.hero-feature>img{width:130px;height:130px}.hero-feature-caption h2{font-size:22px}.hero-story p{font-size:14px;line-height:1.45;margin-bottom:10px}.hero-dock .card{gap:6px}.hero-list{gap:6px}.hero-dock .card .portrait{width:35px}.hero-dock .card h3{font-size:12px}.top h1 small{font-size:10px}.shop{padding:12px}}
@media(max-width:480px){.hero-list{grid-template-columns:1fr 1fr}.hero-dock .card .portrait{width:45px}.hero-dock .card{height:48px;gap:10px}.toolbar>div{gap:5px}.hero-feature-caption span{font-size:11px}.hero-feature-caption h2{font-size:21px}.inspect{grid-template-columns:120px minmax(0,1fr);gap:12px}.hero-feature>img{width:120px;height:130px}}
/* One-screen playfield, shop rail, and contextual tower window. */
html,body{width:100%;height:100%;overflow:hidden}body{background:#121425}.app{--rail:176px;width:100%;height:100dvh;max-width:none;display:grid;grid-template-rows:36px minmax(0,1fr);padding:0 8px 8px;margin:0}.top{height:36px;min-height:0;display:flex;justify-content:space-between;padding:0 7px}.top h1{font-size:16px}.top .btn{min-height:28px;padding:3px 12px;font-size:12px}.layout{position:relative;display:grid;align-items:stretch;grid-template-columns:minmax(0,1fr) var(--rail);grid-template-rows:minmax(0,1fr);gap:0;min-height:0;height:100%;border:2px solid #786047;border-radius:8px;overflow:hidden;background:#182638}.game-column{position:relative;width:auto;min-width:0;min-height:0;border:0;border-radius:0;overflow:hidden;display:flex;flex-direction:column;background:#182638}.game-frame{display:grid;grid-template-rows:44px minmax(0,1fr);width:100%;height:100%;min-height:0;flex:1;margin:0;border:0;background:#162336}.board{place-self:center;flex:none;max-width:100%;max-height:100%;border-radius:0}.battle-hud{grid-row:1;min-height:44px;display:flex;justify-content:space-between;background:#151b2ce8;padding:0 12px;border-bottom:1px solid #53516b}.hud-badge,.hud-badge:last-child{padding:4px 0;gap:7px}.hud-badge>div{display:flex;gap:6px;align-items:baseline}.hud-label{font-size:11px}.hud-badge b{font-size:22px;text-shadow:0 2px #070d1b}.hud-icon{display:block;color:#d7b9ee}.game-column>.toast{position:absolute;left:8px;bottom:7px;max-width:calc(100% - 16px);background:#101827da;border-radius:4px;padding:4px 8px;margin:0;font-size:12px;pointer-events:none;z-index:2}.hero-dock{grid-column:2;grid-row:1;min-height:0;padding:9px;display:flex;flex-direction:column;gap:12px;border:0;border-left:2px solid #88704b;background:#3e344c;overflow:auto;scrollbar-width:thin}.hero-dock:before{content:'HEROES';display:block;text-align:center;font-size:16px;font-weight:900;letter-spacing:.06em;color:#ffe2a0}.hero-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-content:start}.hero-dock .card{position:relative;display:block;height:98px;padding:0;background:#1b2841;border:2px solid #8b819f;box-shadow:0 2px #221b30;border-radius:7px;overflow:hidden;text-align:center}.hero-dock .card .portrait{width:100%;height:100%;object-fit:cover;object-position:50% 20%}.hero-dock .card>div{position:absolute;inset:auto 0 0;background:#111a2be8;padding:3px 0}.hero-dock .card h3{font-size:11px;color:#fff}.hero-dock .card .cost{display:block;color:#ffe196;font-size:14px;font-weight:900;margin:0}.hero-dock .card.selected{border-color:#ffe092;box-shadow:0 0 0 1px #ffce65}.toolbar{margin-top:auto;display:flex;flex-direction:column;background:none;border:0;padding:0;gap:7px}.toolbar>div{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%}.toolbar #start,.toolbar #auto-rounds{grid-column:1/-1}.toolbar .btn{min-width:0;min-height:36px;padding:6px 3px;font-size:12px}.toolbar #start{min-width:0;min-height:46px;font-size:14px}.toolbar .placement-controls{grid-template-columns:1fr}.shop{position:absolute;z-index:8;top:52px;width:286px;max-width:calc(100% - var(--rail) - 24px);max-height:calc(100% - 64px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:12px;background:#252b42;border:2px solid #ab91c8;border-radius:10px;box-shadow:0 8px 24px #0008}.inspect{display:flex;flex-direction:column;gap:0}.close-profile{position:sticky;top:0;float:right;z-index:2;margin:-5px -5px 3px 5px;min-height:28px;height:28px;width:28px;padding:0;font-size:23px;background:#564466;border-color:#c1a3dd}.popup-abilities{display:flex;gap:4px;flex-wrap:wrap;min-height:29px;margin:0 25px 7px 0}.popup-abilities span{font-size:12px;padding:3px 6px;background:#163e4c;border:1px solid #558894;border-radius:4px;color:#c3f3f8}.hero-feature{width:100%;height:154px;flex:none;margin-bottom:12px;border:1px solid #5b536e}.hero-feature>img{width:154px;height:154px}.hero-feature-caption h2{font-size:26px}.hero-feature-caption span{font-size:12px}.hero-story{display:block;width:100%;margin-bottom:8px}.hero-story p{font-size:13px;line-height:1.4;margin-bottom:8px}.hero-story p>span{font-size:11px}.profile-controls{border:0;padding:0;width:100%;grid-column:auto}.profile-controls .weapon-tags{display:none}.profile-controls .weapon-meters{margin:10px 0}.profile-controls .btn{min-height:36px}.profile-controls .weapon-title h2{font-size:18px}.utility-row{position:fixed;inset:48px max(12px,calc((100vw - 760px)/2)) 16px;z-index:30;display:block;overflow:auto;padding:16px 20px;margin:0;background:#1b2338;border:2px solid #9b85b6;border-radius:12px;box-shadow:0 0 0 100vmax #080d18c9}.utility{display:block;margin-top:10px}.utility[open]{padding:10px}.utility>summary{font-size:15px}.lesson-panel{position:absolute;z-index:15;left:10px;right:10px;bottom:10px;max-height:calc(100% - 64px);overflow-y:auto;border:2px solid #ac91cc;border-radius:10px;box-shadow:0 6px 24px #0009}.lesson-panel:not([hidden])~.hero-dock{opacity:1}.lesson-copy p{font-size:14px}.lesson-copy h2{font-size:20px}
@media(max-width:760px){.app{--rail:138px;padding:0 4px 4px}.hero-dock{padding:6px}.hero-dock .card{height:84px}.hero-dock .card h3{font-size:10px}.hero-dock .card .cost{font-size:12px}.hero-dock .card .portrait{width:100%;height:100%}.hero-list{grid-template-columns:1fr 1fr;gap:5px}.hud-icon{display:none}.hud-badge>div{display:block}.hud-label{font-size:10px}.hud-badge b{font-size:18px}.battle-hud{padding:0 7px}.toolbar .btn{font-size:11px}.shop{width:270px;padding:10px}.hero-story{display:block}.hero-feature{height:140px}.hero-feature>img{width:140px;height:140px}.hero-feature-caption h2{font-size:25px}}
@media(max-width:480px){.app{--rail:104px;grid-template-rows:32px minmax(0,1fr)}.top{height:32px}.top h1{font-size:14px}.top h1 small{display:none}.hero-dock{padding:5px;gap:8px}.hero-dock:before{font-size:13px}.hero-list{grid-template-columns:1fr}.hero-dock .card{height:64px}.hero-dock .card .portrait{object-position:50% 25%}.hero-dock .card h3{font-size:11px}.hero-dock .card .cost{font-size:12px}.toolbar>div{grid-template-columns:1fr 1fr;gap:4px}.toolbar .btn{min-height:30px;font-size:10px}.toolbar #start{font-size:12px}.hud-label{font-size:9px}.hud-badge b{font-size:16px}.battle-hud{padding:0 5px}.shop{max-width:calc(100% - 20px);left:8px;right:auto;top:48px;width:280px;max-height:calc(100% - 56px)}.lesson-panel{left:5px;right:5px;padding:10px}.game-column>.toast{font-size:10px}}

/* The viewport grid owns height; content must not shrink either column. */
.layout>.game-column,.layout>.hero-dock{align-self:stretch;height:100%;min-height:0}.game-column>.game-frame{flex:1 1 0;min-height:0;height:100%}
/* Edge-to-edge map with grouped in-game counters. */
.app{grid-template-rows:minmax(0,1fr);padding:0;height:100dvh}.layout{height:100%;border-width:0;border-radius:0}.game-column>.game-frame{position:relative;display:block;width:100%;height:100%;flex:1 1 0;overflow:hidden}.board{position:absolute;inset:0;place-self:auto;margin:0;aspect-ratio:auto!important;max-width:none;max-height:none}.battle-hud{position:absolute;z-index:4;left:14px;right:14px;top:12px;display:flex;justify-content:space-between;align-items:flex-start;min-height:0;padding:0;background:none;border:0;pointer-events:none;gap:14px}.hud-cluster{display:flex;align-items:stretch;gap:8px;padding:5px;background:#171c2ce8;border:1px solid #b8a179;border-radius:13px;box-shadow:0 3px 0 #11172599,0 6px 14px #0b111440}.hud-badge,.hud-badge:last-child{display:flex;align-items:center;gap:9px;min-width:87px;padding:5px 10px;background:none;border:0;box-shadow:none}.hud-badge+.hud-badge{border-left:1px solid #72647a; border-radius:0}.hud-badge>div{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.hud-label{font-size:10px;font-weight:800;letter-spacing:.09em;color:#c1cada;line-height:1}.hud-badge b{font-size:28px;line-height:1.05;font-weight:900;color:#fff;text-shadow:0 2px 0 #080e1c;letter-spacing:-.03em}.faith-badge b{color:#ffdc78}.hope-badge b{color:#fff}.hud-icon{display:block;font-size:34px;line-height:1;width:auto;height:auto;color:#ffd06b;text-shadow:0 2px 0 #070d1d}.hope-badge .hud-icon{color:#f78d9c}.enemies-badge b{color:#e9c6f8}.round-badge b{white-space:nowrap}.hero-dock{background:linear-gradient(90deg,#43394e,#302d42);border-left:3px solid #ad9260;padding-top:10px}.hero-dock:before{display:none}.rail-brand{text-align:center;color:#ffdc8c;font-weight:900;letter-spacing:.06em;font-size:16px;margin-bottom:-4px}.hero-dock>#menu-toggle{min-height:30px;font-size:12px;background:#24283c;border-color:#8c789f}.shop{top:90px;max-height:calc(100% - 102px)}.hero-dock .toolbar{padding-bottom:5px}.boss{top:95px}.utility-row{top:12px}.game-column>.toast{bottom:10px;background:#101827e0;color:#d0d9e7}
@media(max-width:900px){.battle-hud{left:9px;right:9px;top:9px;gap:8px}.hud-cluster{gap:0;padding:4px}.hud-badge,.hud-badge:last-child{min-width:70px;padding:4px 8px;gap:6px}.hud-badge b{font-size:24px}.hud-icon{font-size:27px}.hud-label{font-size:9px}.shop{top:82px;max-height:calc(100% - 94px)}}
@media(max-width:600px){.hud-cluster{border-radius:8px;padding:3px}.hud-icon{display:none}.hud-badge,.hud-badge:last-child{min-width:0;padding:4px 6px}.hud-badge b{font-size:19px}.hud-label{font-size:8px;letter-spacing:0}.battle-hud{gap:5px;left:5px;right:5px;top:6px}.rail-brand{font-size:12px}.hero-dock{border-left-width:2px}.shop{top:66px;max-height:calc(100% - 76px)}}
@media(max-width:480px){.app{grid-template-rows:minmax(0,1fr);padding:0}.hud-badge b{font-size:17px}.hud-badge,.hud-badge:last-child{padding:4px}.hud-cluster{padding:2px}.hud-label{font-size:8px}.shop{top:66px!important;max-height:calc(100% - 76px)}}
/* Compact shop controls and softer HUD typography. */
.hero-dock{gap:10px}.hero-dock .toolbar{margin-top:3px;padding:10px 0 0;border-top:1px solid #8f7c9e;gap:7px}.toolbar>div{align-items:stretch}.toolbar #mute{grid-column:1/-1}.toolbar .btn{width:100%;height:38px;min-height:38px;border-radius:5px}.toolbar #start{height:44px;min-height:44px}.toolbar #auto-rounds{height:36px;min-height:36px}.game-column>.toast{position:absolute;left:-10000px;bottom:auto;width:1px;height:1px;max-width:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.battle-hud{font-family:'Trebuchet MS',Verdana,sans-serif}.hud-cluster{background:linear-gradient(150deg,#1c3444f2,#172335f2);border-color:#88aeb3;border-radius:10px;box-shadow:0 3px 0 #0c162b80,0 6px 14px #0b111430}.hud-label{font-family:'Trebuchet MS',Verdana,sans-serif;color:#accbd0;font-weight:700;font-size:11px;letter-spacing:.07em}.hud-badge b{font-family:'Trebuchet MS',Verdana,sans-serif;font-weight:800;font-size:29px;letter-spacing:.01em;color:#edf5f3;text-shadow:0 2px #0d1c2b;font-variant-numeric:tabular-nums}.hud-badge+.hud-badge{border-left-color:#527685}.faith-badge b,.faith-badge .hud-icon{color:#f3d8a0}.hope-badge .hud-icon{color:#8fdbc5}.enemies-badge b{color:#badbe6}.round-badge b{color:#f5f1e6}.hud-icon{font-family:'Trebuchet MS',Verdana,sans-serif}
@media(max-width:900px){.hud-badge b{font-size:25px}.hud-label{font-size:10px}}
@media(max-width:600px){.hud-badge b{font-size:19px}.hud-label{font-size:8px;letter-spacing:0}}
@media(max-width:480px){.hud-badge b{font-size:17px}.toolbar .btn{height:32px;min-height:32px}.toolbar #start{height:38px;min-height:38px}}

/* Clear, game-native feedback for purchasing and pausing. */
.hero-dock .card:disabled{cursor:not-allowed;filter:saturate(.45) brightness(.62);border-color:#626275;box-shadow:none}
.hero-dock .card:disabled .cost{color:#c7b8a1}
.pause-indicator{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px 20px;border:1px solid #9bc7c5;border-radius:8px;background:#142630e8;color:#f4eddc;font:800 20px/1 'Trebuchet MS',Verdana,sans-serif;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 7px 24px #08101899;pointer-events:none}
.site-return{display:flex;align-items:center;justify-content:center;min-height:30px;padding:5px 7px;border:1px solid #6f8790;border-radius:5px;background:#233342;color:#d8ece8;font:600 12px/1.2 'Trebuchet MS',Verdana,sans-serif;text-decoration:none;text-align:center}
.site-return:hover{background:#2b4250;color:#fff7e8;border-color:#9bb9b8}
.battle-hud>.hud-cluster:first-child{gap:11px;padding:0;background:none;border:0;border-radius:0;box-shadow:none}
.battle-hud>.hud-cluster:first-child .hud-badge,.battle-hud>.hud-cluster:first-child .hud-badge:last-child{min-width:0;padding:0;gap:5px;border:0;background:none;box-shadow:none}
.battle-hud>.hud-cluster:first-child .hud-badge>div{display:block}
.hope-badge .hud-label,.faith-badge .hud-label{display:none}
.hope-badge .hud-icon{display:block;width:auto;height:auto;color:#f22d3e!important;font:900 35px/1 Arial,sans-serif;text-shadow:0 2px 0 #86101c,0 0 2px #fff}
.faith-badge .hud-icon{display:block;width:35px;height:35px;background:none!important;border:0!important}
.faith-badge .hud-icon img{display:block;width:35px;height:35px;object-fit:contain}
.hope-badge b,.faith-badge b{color:#fff!important;font-size:29px!important;line-height:1!important;text-shadow:-2px -2px 0 #182033,2px -2px 0 #182033,-2px 2px 0 #182033,2px 2px 0 #182033,0 3px 0 #182033}
.lesson-choice:disabled{cursor:default;opacity:.68}
.lesson-choice.answered:disabled{opacity:1}
.damage-bonus-indicator{position:absolute;z-index:5;left:50%;top:14px;transform:translateX(-50%);padding:6px 10px;border:1px solid #8cc9b3;border-radius:6px;background:#183a35e8;color:#dff9e9;font:700 12px/1.2 'Trebuchet MS',Verdana,sans-serif;box-shadow:0 3px 12px #07131288;pointer-events:none}
.reward-indicator{position:absolute;z-index:7;left:50%;bottom:18px;transform:translateX(-50%);padding:9px 15px;border:1px solid #d7bb78;border-radius:7px;background:#2d263beF;color:#ffe7a8;font:800 15px/1.2 'Trebuchet MS',Verdana,sans-serif;box-shadow:0 6px 18px #080b1699;pointer-events:none;white-space:nowrap}
@media(max-width:600px){.damage-bonus-indicator{top:58px;font-size:10px}.reward-indicator{bottom:10px;font-size:12px}}
.sell-tower{margin-top:7px!important;border-color:#a95d69!important;background:#492c39!important;color:#ffe0e2!important}
.sell-tower:hover:not(:disabled){background:#613344!important;border-color:#d7838d!important}
.placement-status{position:absolute;z-index:7;bottom:12px;left:12px;max-width:calc(100% - 24px);padding:8px 12px;border:1px solid #75ceaf;border-radius:6px;background:#132d2eee;color:#defff0;font:600 14px/1.3 'Trebuchet MS',Verdana,sans-serif;pointer-events:none}.placement-status.blocked{border-color:#f48493;color:#ffe0e5;background:#3a2331ee}
.chapter-journal-row{display:grid;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid #546076}.chapter-journal-row strong{font-size:14px}.chapter-journal-row .btn{margin:0;text-align:left}
.villain-roster{flex:none}.villain-card.boss-card{display:block;position:relative;inset:auto;width:auto;margin:0;padding:0;border-color:var(--boss-color);background:radial-gradient(circle at 50% 33%,#3d3356,#17172b 72%)}.villain-card.boss-card img{filter:hue-rotate(var(--boss-hue))}
.villain-grid .villain-card{height:82px}.villain-grid .villain-card span{min-height:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;white-space:normal;font-size:9px;line-height:1.1}.villain-grid .villain-card span small{display:block;margin:0 0 2px}
.villain-roster{margin-top:2px;padding-top:10px;border-top:1px solid #8f7c9e;color:#e9edf4;font-family:'Trebuchet MS',Verdana,sans-serif}
.rail-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:6px;margin-bottom:7px}.rail-section-title b{font-size:10px;letter-spacing:.09em;color:#e7d4ee}.rail-section-title span{font-size:9px;color:#aebbc9}
.villain-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:stretch}.villain-card{position:relative;height:68px;overflow:hidden;border:1px solid #60677d;border-radius:6px;background:radial-gradient(circle at 50% 33%,#36415c,#171d2e 70%)}.villain-card img{display:block;width:100%;height:50px;object-fit:contain;object-position:center}.villain-card.heavy img{transform:scale(1.12);filter:brightness(.78)}.villain-card.boss{border-color:var(--boss-color);background:radial-gradient(circle at 50% 33%,#3d3356,#17172b 72%)}.villain-card.boss img{filter:hue-rotate(var(--boss-hue)) saturate(1.12)}.villain-card span{position:absolute;inset:auto 0 0;min-height:18px;padding:3px 2px 2px;background:#101827ed;color:#f2f0f6;font-size:8px;font-weight:700;line-height:1.05;text-align:center;white-space:nowrap}.villain-card span small{margin-right:3px;color:var(--boss-color);font-size:8px;font-weight:900}
@media(max-width:600px){.battle-hud>.hud-cluster:first-child{gap:7px}.hope-badge .hud-icon{display:block;font-size:28px}.faith-badge .hud-icon,.faith-badge .hud-icon img{display:block;width:29px;height:29px}.hope-badge b,.faith-badge b{font-size:23px!important}}
@media(max-width:480px){.rail-section-title{display:block}.rail-section-title span{display:block;margin-top:2px}.villain-grid{grid-template-columns:1fr}.villain-card{height:56px}.villain-card img{height:40px}.battle-hud>.hud-cluster:first-child{gap:5px}.hope-badge .hud-icon{display:block;font-size:24px}.faith-badge .hud-icon,.faith-badge .hud-icon img{display:block;width:25px;height:25px}.hope-badge b,.faith-badge b{font-size:20px!important}}
.villain-card.boss-card img{filter:none}
/* Compact movable armory, version 16 */
#hero-shop{width:460px;max-width:calc(100% - 24px);max-height:calc(100% - 64px);padding:12px;touch-action:auto}
#hero-shop .inspect{display:block;width:100%}
#hero-shop .close-profile{position:absolute;right:12px;top:12px;margin:0;float:none}
.profile-drag{display:flex;justify-content:space-between;align-items:center;width:calc(100% - 36px);border:0;background:transparent;color:#fff1c7;font:bold 17px Trebuchet MS,sans-serif;padding:0 0 10px;cursor:grab;touch-action:none;text-align:left}
.profile-drag:active{cursor:grabbing}.profile-drag span{font-size:10px;font-weight:normal;color:#a9b9c5}
#hero-shop .popup-abilities{margin:0 0 9px;min-height:0}#hero-shop .popup-abilities span{font-size:11px;padding:2px 5px}
.compact-hero-row{display:grid;grid-template-columns:116px minmax(0,1fr);gap:14px;align-items:center}
.compact-portrait{width:116px;height:120px;object-fit:cover;object-position:top;border:1px solid #6c6684;border-radius:5px;background:#141d30}
.compact-stats{min-width:0}.compact-stats .weapon-kicker{font-size:10px;margin:0 0 4px}.compact-stats .weapon-title h2{font-size:16px;line-height:1.2;margin:0}.compact-stats .sound-preview{width:28px;height:28px;min-width:28px;font-size:17px}
.compact-stats .weapon-meters{margin:9px 0 0;gap:6px}.compact-stats .meter-row{grid-template-columns:46px minmax(25px,1fr) 32px;gap:6px;font-size:12px}.compact-stats .meter-row label{font-size:12px}
.compact-description{font-size:13px;line-height:1.4;margin:10px 0 7px;color:#dae2eb}.current-stats{font-size:11px;color:#a9bac9;margin:0 0 7px}
#hero-shop .path-switch{margin:8px 0;gap:6px}#hero-shop .path-switch button{padding:7px;font-size:12px}
.compact-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.compact-actions .btn{flex:1;white-space:normal;min-height:34px;padding:6px 9px;font-size:12px;margin:0}
.compact-target{display:flex;gap:12px;align-items:center;font-size:12px;color:#b9c5d5;margin-top:8px}.compact-target select{margin:0;padding:5px;font-size:12px;flex:1}
/* Small comic dialogue: read the message, Continue, then choose a response. */
#legacy-lesson-panel{left:16px;right:16px;bottom:16px;width:auto;max-width:780px;margin:auto;padding:16px 18px 16px 120px;display:block;max-height:calc(100% - 40px);background:#171924f5;border:3px solid #f8efd7;border-radius:2px;box-shadow:7px 7px 0 #8065a5,0 10px 30px #0008;overflow:auto}
#legacy-lesson-panel[hidden],#lesson-choices[hidden]{display:none!important}
#legacy-lesson-panel .lesson-portrait{display:block;position:absolute;left:8px;bottom:0;width:106px;height:160px;object-fit:cover;object-position:top;border:0;border-radius:0;clip-path:polygon(12% 0,100% 5%,94% 100%,0 100%,0 18%)}
#lesson-speaker{display:inline-block;background:#f8efd7;color:#292135;padding:3px 12px;margin:0 0 8px;font:bold 12px Trebuchet MS,sans-serif;transform:rotate(-2deg)}
#legacy-lesson-panel .lesson-copy h2{font-size:13px;color:#bcaed0;line-height:1.3;margin:0 0 6px}
#legacy-lesson-panel #lesson-text{font:bold 16px/1.4 Trebuchet MS,Verdana,sans-serif;color:#fff5e0;margin-bottom:10px}
#legacy-lesson-panel .lesson-note{font-size:11px;line-height:1.3;margin-bottom:8px;color:#aebec5}
#legacy-lesson-panel .lesson-actions{justify-content:flex-end}#legacy-lesson-panel .lesson-actions .btn{font-size:12px;padding:5px 14px;min-height:32px;background:#292333;color:#f8efd7;border:1px solid #afa3bd;border-radius:2px}
#legacy-lesson-panel #lesson-continue{background:#f8efd7;color:#272135;border-color:#f8efd7}
#legacy-lesson-panel .lesson-choices{gap:7px;margin:12px 0}
#legacy-lesson-panel .lesson-choice{position:relative;background:#242331;color:#faf2dc;border:2px solid #f4e9ce;border-left:7px solid #a78fcb;border-radius:0;padding:9px 12px;text-align:left;font:bold 13px/1.35 Trebuchet MS,Verdana,sans-serif;box-shadow:3px 3px 0 #080c16;transition:background .12s,transform .12s}
#legacy-lesson-panel .lesson-choice:nth-child(2){margin-left:8px}#legacy-lesson-panel .lesson-choice:nth-child(3){margin-left:16px}
#legacy-lesson-panel .lesson-choice:hover:not(:disabled),#legacy-lesson-panel .lesson-choice:focus-visible{background:#f8efd7;color:#252033;transform:translateX(-3px);outline:2px solid #a88cda;outline-offset:2px}
#legacy-lesson-panel .lesson-choice.answered{background:#c5e8d2;color:#172c24;border-color:#c5e8d2}#legacy-lesson-panel #lesson-feedback{font-size:13px;line-height:1.35;margin:8px 0}
@media(max-width:600px){#hero-shop{width:410px}.compact-hero-row{grid-template-columns:90px minmax(0,1fr);gap:9px}.compact-portrait{width:90px;height:110px}#legacy-lesson-panel{left:7px;right:7px;bottom:10px;padding:12px 12px 12px 70px}#legacy-lesson-panel .lesson-portrait{width:61px;height:110px;left:2px}#legacy-lesson-panel #lesson-text{font-size:14px}.compact-stats .weapon-title h2{font-size:14px}}
@media(max-width:480px){#hero-shop{top:40px;width:calc(100% - 16px)}.profile-drag span{font-size:9px}}
@media(prefers-reduced-motion:reduce){#legacy-lesson-panel .lesson-choice{transition:none}}
/* Art-directed game interface — version 17 */
@font-face{font-family:Barlow;src:url('fonts/Barlow-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Barlow;src:url('fonts/Barlow-SemiBold.ttf') format('truetype');font-weight:600 900;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('fonts/BarlowCondensed-Bold.ttf') format('truetype');font-weight:700 900;font-display:swap}
:root{--ink:#f6f0e5;--muted:#b7aec8;--gold:#dcc28b;--line:#534762;--panel:#211b31;--purple:#b699e1;--ui-font:Barlow,'Segoe UI',sans-serif;--display-font:'Barlow Condensed','Arial Narrow',sans-serif}
body,.app,button,select,input,.battle-hud,.villain-roster,.hud-badge b,.hud-label,.hud-icon,.reward-indicator,.placement-status{font-family:var(--ui-font)}
button,select{font-weight:600}h1,h2,h3,.rail-brand,.rail-section-title b,.profile-drag{font-family:var(--display-font)}
.hero-dock{background:linear-gradient(165deg,#2f2541,#191624 72%);border-left:2px solid #8e749e;scrollbar-color:#746180 #211b31}
.rail-brand{font-size:23px;letter-spacing:.08em;color:#ead6aa;line-height:1.05;padding:4px 0 8px;border-bottom:1px solid #655071}
.hero-dock .btn,.hero-dock>#menu-toggle,.site-return{background:#30263f;border:1px solid #655471;color:#e4dceb;border-radius:5px;box-shadow:0 2px 0 #100e1b;font-family:var(--ui-font);font-weight:600;letter-spacing:.01em}
.hero-dock .toolbar{border-color:#53455f}.hero-dock .toolbar #start{background:#c7b3de;border-color:#dccbef;color:#24192f;font-size:15px;font-weight:600}
.hero-dock .toolbar #auto-rounds[aria-pressed=true]{background:#253837;border-color:#5e9084;color:#c4e7db}
.hero-dock .card{border:1px solid #796388;border-radius:7px;box-shadow:0 3px 0 #120e1d}
.hero-dock .card>div{background:linear-gradient(0deg,#21172ff5,#21172fe8);padding:3px 1px}
.hero-dock .card h3{font-family:var(--display-font);font-size:15px;font-weight:700;letter-spacing:.025em;color:#fbf1de}
.hero-dock .card.selected{border-color:#dfc48a;box-shadow:0 0 0 1px #dfc48a,0 3px 0 #171120}
.hero-dock .card .cost{font-family:var(--ui-font);font-size:13px;font-weight:600;color:#eee2c9;line-height:1.15}
.energy-price{display:inline-flex;gap:3px;align-items:center;vertical-align:middle;white-space:nowrap;font-variant-numeric:tabular-nums}.energy-price img{width:20px;height:20px;object-fit:contain;flex:none}.hero-dock .card .energy-price img{width:19px;height:19px}
.battle-hud>.hud-cluster{background:none;border:0;border-radius:0;box-shadow:none;padding:0;gap:16px}
.battle-hud .hud-badge,.battle-hud .hud-badge+.hud-badge{background:none;border:0;box-shadow:none;min-width:0;padding:3px 0}
.round-badge .hud-label,.enemies-badge .hud-label{display:none}
.battle-hud .hud-badge b{font-family:var(--display-font);font-size:34px;letter-spacing:.015em;color:#fff5df;text-shadow:2px 2px 0 #141222,-1px -1px 0 #141222,1px -1px 0 #141222,-1px 1px 0 #141222,0 3px 5px #141222;font-weight:700}
.battle-hud .enemies-badge b{color:#e3d2ff}.battle-hud>.hud-cluster:last-child{gap:24px;align-items:center}
.rail-section-title b{font-size:13px;letter-spacing:.08em;color:#d4bfec}.rail-section-title span{color:#b3a7c1;font-size:10px}
.villain-roster{border-color:#574761}.villain-card,.villain-card.boss-card{border-color:#655474;border-radius:5px;background:radial-gradient(ellipse at 50% 30%,#3a2a50,#1e192b 75%)}
.villain-grid .villain-card span{background:#211a2deF;font-family:var(--ui-font);font-weight:600;font-size:10px;color:#f0e7f7}.villain-card span small{color:#c6aedc;font-family:var(--display-font)}
#hero-shop{background:linear-gradient(135deg,#2c233b,#201a2e);border:1px solid #a28ab9;border-radius:9px;box-shadow:0 12px 35px #0e0a1d99}
.profile-drag{font-family:var(--display-font);font-size:22px;color:#e9d4ac}.profile-drag span{font-family:var(--ui-font);color:#b0a0c0}
#hero-shop .popup-abilities span{background:#353049;border-color:#6e5c85;color:#ddcdee;font-family:var(--ui-font)}
.compact-description,.current-stats,.compact-target,.compact-stats .weapon-kicker{font-family:var(--ui-font)}.compact-description{color:#e0d6e8;font-size:14px}.current-stats{color:#b9aaca}
.compact-stats .weapon-title h2{font-family:var(--display-font);font-size:21px;color:#f2e4c8}.compact-actions .btn{font-family:var(--ui-font);background:#3a2e4d;border-color:#806798;color:#e9dff2}.compact-actions .btn.primary{background:#c7b3de;color:#24192f;border-color:#decdf0}
.compact-target select,.utility select{background:#2e243d;border:1px solid #695677;color:#f3eafa}.meter{border-color:#625172;background:#181222;border-radius:2px}.meter:after{display:none}.meter.speed i{background:#95c9b3}.meter.range i{background:#b7a2dc}.meter.damage i{background:#d9b578}
.utility-row{background:#231d32;border-color:#887299;color:#eee3f4}.utility[open]{background:#2e253d;border-color:#574560}.utility-row .btn{background:#3a2d4c;border-color:#806797;color:#ece2f4}.utility-row h2{font-family:var(--display-font);color:#e2cfad}
/* Portrait breaks above the frame; polygon layers create an actual speech silhouette. */
#legacy-lesson-panel{isolation:isolate;left:14px;right:14px;bottom:24px;max-width:900px;max-height:calc(100% - 110px);padding:24px 24px 20px 220px;background:none;border:0;border-radius:0;box-shadow:none;overflow:visible}
#legacy-lesson-panel:before{content:'';position:absolute;z-index:-2;inset:-5px -6px -6px 150px;background:#f9efd8;clip-path:polygon(5% 10%,98% 0,100% 92%,18% 98%,7% 86%,2% 97%,0 76%,4% 60%,0 40%,6% 33%);filter:drop-shadow(0 5px 0 #130e20)}
#legacy-lesson-panel:after{content:'';position:absolute;z-index:-1;inset:0 0 0 156px;background:linear-gradient(110deg,#16101fFA,#24172eeF);clip-path:polygon(5% 10%,98% 0,100% 92%,18% 98%,7% 86%,2% 97%,0 76%,4% 60%,0 40%,6% 33%)}
#legacy-lesson-panel .lesson-portrait{z-index:-1;left:0;bottom:-2px;width:210px;height:290px;object-fit:cover;object-position:50% 0;border:0;border-radius:0;clip-path:polygon(14% 0,90% 4%,100% 32%,95% 100%,0 100%,0 25%);filter:drop-shadow(4px 2px 0 #100d19)}
#legacy-lesson-panel .lesson-copy{position:relative;max-height:calc(100dvh - 180px);overflow-y:auto;padding:8px 4px 12px;scrollbar-width:thin;scrollbar-color:#957ba5 #24172e}
#legacy-lesson-panel #lesson-speaker{font-family:var(--display-font);font-size:22px;line-height:1;letter-spacing:.035em;transform:rotate(-5deg);background:#f8edcf;color:#24192d;padding:6px 24px 7px 16px;clip-path:polygon(0 8%,92% 0,100% 88%,4% 100%);margin:0 0 13px}
#legacy-lesson-panel .lesson-copy h2{font-family:var(--ui-font);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#bda7d3;margin:0 0 7px}
#legacy-lesson-panel #lesson-text{font-family:var(--ui-font);font-size:19px;font-weight:600;line-height:1.35;color:#fff2dc;margin:0 0 12px}
#legacy-lesson-panel .lesson-note{font-family:var(--ui-font);color:#c3b3cc;font-size:12px}
#legacy-lesson-panel .lesson-actions .btn{font-family:var(--display-font);font-size:17px;letter-spacing:.02em;border:0;background:#473451;color:#efe2f6;padding:6px 15px;clip-path:polygon(4% 0,100% 8%,95% 100%,0 91%)}
#legacy-lesson-panel #lesson-continue{background:#f0dbab;color:#261a32}
#legacy-lesson-panel .lesson-choice{font-family:var(--ui-font);font-weight:600;font-size:15px;border:0;border-radius:0;background:#f2e8cf;color:#271d33;box-shadow:none;clip-path:polygon(3% 0,100% 9%,96% 100%,0 90%);padding:13px 20px;transition:transform .12s,background .12s}
#legacy-lesson-panel .lesson-choice:nth-child(2){margin-left:12px}#legacy-lesson-panel .lesson-choice:nth-child(3){margin-left:24px}
#legacy-lesson-panel .lesson-choice:hover:not(:disabled),#legacy-lesson-panel .lesson-choice:focus-visible{background:#d6bee9;color:#20152b;transform:translateX(-6px);outline:0;text-decoration:underline;text-underline-offset:3px}
#legacy-lesson-panel #lesson-feedback{font-family:var(--ui-font);color:#b4dfcb;font-size:14px}
@media(max-width:700px){#legacy-lesson-panel{padding-left:125px;bottom:16px;max-height:calc(100% - 70px)}#legacy-lesson-panel .lesson-portrait{width:125px;height:210px}#legacy-lesson-panel:before{left:78px}#legacy-lesson-panel:after{left:84px}#legacy-lesson-panel #lesson-text{font-size:16px}#legacy-lesson-panel #lesson-speaker{font-size:19px}.battle-hud>.hud-cluster:last-child{gap:14px}.battle-hud .hud-badge b{font-size:27px}}
@media(max-width:480px){#legacy-lesson-panel{left:4px;right:4px;padding:12px 10px 12px 70px}#legacy-lesson-panel .lesson-portrait{width:80px;height:155px}#legacy-lesson-panel:before{left:35px}#legacy-lesson-panel:after{left:41px}#legacy-lesson-panel .lesson-copy{max-height:calc(100dvh - 145px)}#legacy-lesson-panel #lesson-text{font-size:14px}#legacy-lesson-panel .lesson-choice{font-size:13px;padding:11px 14px}#legacy-lesson-panel .lesson-note{font-size:10px}.battle-hud>.hud-cluster:last-child{gap:10px}.battle-hud .hud-badge b{font-size:23px}.hero-dock .card h3{font-size:14px}}
@media(prefers-reduced-motion:reduce){#legacy-lesson-panel .lesson-choice{transition:none}}
/* Clean portrait/frame junction and unobscured shop portraits — version 18 */
.battle-hud .enemies-badge{display:none!important}
.hero-dock .card{display:grid;grid-template-rows:minmax(0,1fr) 36px;height:122px;text-align:center;padding:0}
.hero-dock .card .portrait{display:block;width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 15%}
.hero-dock .card>div{position:static;inset:auto;padding:2px 0;background:#241c31;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hero-dock .card h3{font-size:14px;line-height:1.1;margin:0}.hero-dock .card .cost{line-height:1;margin-top:1px}.hero-dock .card .energy-price img{width:16px;height:16px}
.hero-moral{position:relative;margin:9px 0 6px;padding:8px 10px;background:#393048;border:1px solid #766386;border-radius:3px 11px 11px 11px;color:#eee3cf;font:400 13px/1.35 var(--ui-font)}
.hero-moral>span{display:block;color:#cdb5e0;font:700 11px/1.3 var(--display-font);letter-spacing:.09em;margin-bottom:3px}
/* Independent, non-overlapping portrait and speech layers eliminate the dark wedge. */
#legacy-lesson-panel{padding:22px 24px 20px 215px}
#legacy-lesson-panel:before{inset:-5px -6px -6px 188px;clip-path:polygon(0 6%,98% 0,100% 94%,3% 100%);filter:none}
#legacy-lesson-panel:after{inset:0 0 0 194px;clip-path:polygon(0 6%,98% 0,100% 94%,3% 100%);background:#241b30}
#legacy-lesson-panel .lesson-portrait{z-index:0;left:0;bottom:8px;width:180px;height:250px;object-fit:cover;object-position:50% 0;clip-path:polygon(0 3%,96% 0,100% 97%,4% 100%);filter:none;border:2px solid #bba4cd;background:#201a30}
#legacy-lesson-panel .lesson-copy{z-index:1;padding:8px 4px 12px}
.quick-abilities{position:absolute;z-index:9;bottom:16px;left:16px;display:flex;gap:8px;pointer-events:none}
.quick-ability{pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:62px;height:68px;padding:5px;border:2px solid #98d8d1;border-radius:15px;background:linear-gradient(150deg,#273f49,#211b36);box-shadow:0 4px 0 #151325,0 5px 15px #1118;color:#d0fff4;font:600 12px/1.1 var(--ui-font);cursor:pointer}
.quick-ability svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round}.quick-ability:disabled{cursor:default;color:#b4acc4;border-color:#756885;background:#2a2537;box-shadow:0 3px 0 #151325}.quick-ability:focus-visible{outline:3px solid #f3dfb2;outline-offset:3px}.quick-ability:not(:disabled):hover{background:#36555b;transform:translateY(-2px)}
.board:has(.quick-ability:not([hidden])) .placement-status{left:90px;max-width:calc(100% - 106px)}
@media(max-width:700px){#legacy-lesson-panel{padding-left:128px}#legacy-lesson-panel:before{left:110px}#legacy-lesson-panel:after{left:116px}#legacy-lesson-panel .lesson-portrait{width:103px;height:170px}}
@media(max-width:480px){.hero-dock .card{height:98px;grid-template-rows:minmax(0,1fr) 32px}.hero-dock .card h3{font-size:13px}.hero-dock .card .cost{font-size:12px}#legacy-lesson-panel{padding:12px 10px 12px 77px}#legacy-lesson-panel:before{left:65px}#legacy-lesson-panel:after{left:71px}#legacy-lesson-panel .lesson-portrait{width:60px;height:112px}.quick-abilities{left:9px;bottom:10px}.quick-ability{width:52px;height:58px;font-size:11px}.quick-ability svg{width:29px;height:29px}}
@media(prefers-reduced-motion:reduce){.quick-ability:not(:disabled):hover{transform:none}}
/* Approved hero panel: current values first, explicit upgrade comparison. */
#hero-shop{width:510px;padding:14px;border:2px solid #655a88;border-radius:14px;background:linear-gradient(135deg,#29203b,#191529);box-shadow:0 0 0 3px #17132699,0 12px 32px #0006}
#hero-shop .profile-drag{width:calc(100% - 38px);justify-content:flex-start;gap:12px;font-size:27px;text-transform:uppercase;letter-spacing:.035em;border-bottom:1px solid #55476c;margin-bottom:12px;padding-bottom:10px;touch-action:none}
#hero-shop .profile-drag .drag-grip{font-size:24px;color:#9baddd}#hero-shop .hero-tier{margin-left:auto;font:700 14px var(--display-font);color:var(--hero-accent);border:1px solid #645a89;padding:5px 9px;border-radius:5px}
#hero-shop .compact-hero-row{grid-template-columns:124px minmax(0,1fr);gap:12px}#hero-shop .compact-portrait{width:124px;height:142px;border:1px solid #6a72a9;border-radius:6px}
#hero-shop .weapon-title h2{font:700 25px/1.1 var(--display-font);color:#f4ecd9}.current-coverage{font-size:14px;color:#b5bee0;margin:6px 0}
.stat-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.stat-tiles>div{border:1px solid #5b4a7c;border-radius:6px;padding:7px 3px;text-align:center;background:#33294355}.stat-tiles span{display:block;font:700 12px var(--display-font);color:#aebadb}.stat-tiles b{display:block;font:700 29px/1.1 var(--display-font);color:#f5edd6;margin-top:3px}.current-traits{font-size:12px;color:#b8c6e7;margin:7px 0 0}
.hero-purpose{margin:12px 0;padding:2px 0 2px 10px;border-left:3px solid var(--hero-accent);font:italic 14px/1.35 var(--ui-font);color:#bbcae9}
.next-upgrade{border-top:1px solid #5c4a74;padding-top:10px}.upgrade-eyebrow{font:700 13px var(--display-font);letter-spacing:.14em;color:#a8b7dc}.next-upgrade h2{font:700 24px/1.1 var(--display-font);margin:4px 0 8px;color:#f4ecd9}
.stat-changes{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;border:1px solid #53456c;border-radius:7px;padding:5px 10px}.stat-changes>div{display:flex;justify-content:space-between;gap:6px;font-size:13px;padding:5px 0;color:#c6bfdb;border-bottom:1px solid #51436355}.stat-changes b{color:var(--hero-accent)}.stat-changes i{font-style:normal;color:#9ca8c7;padding:0 3px}.branch-summary{font-size:13px;line-height:1.35;color:#c4bfd4;margin:7px 0}
#hero-shop .compact-actions>.btn.primary{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;background:var(--hero-accent);border:1px solid #ffffff66;color:#191729;font:700 21px var(--display-font);padding:8px 12px;clip-path:polygon(2% 0,98% 0,100% 15%,100% 85%,98% 100%,2% 100%,0 85%,0 15%)}
#hero-shop .energy-price img{width:23px;height:23px}.armory-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #514365;margin-top:10px;padding-top:8px}.armory-footer .compact-target{margin:0;flex:1;max-width:240px}.armory-footer .sell-tower{background:transparent!important;border:1px solid #6c4b65!important;margin:0!important;color:#ed9fac!important;font:600 14px var(--ui-font);padding:5px 8px;min-height:32px}.shortcut-note{font-size:11px;color:#a2accb;margin:7px 0 0}.purchase-abilities,.maxed-label{font-size:14px;line-height:1.4;color:#d0c8df}
/* Approved dialogue: cutout bust, small mouth-directed bubble, independent replies. */
#legacy-lesson-panel{--portrait:240px;--bubble:310px;--reply:300px;left:0;right:8px;bottom:0;max-width:none;max-height:none;margin:0;padding:0;display:grid;grid-template-columns:var(--portrait) minmax(0,var(--bubble));align-items:end;gap:0;background:none;border:0;box-shadow:none;overflow:visible;isolation:isolate;pointer-events:none}
#legacy-lesson-panel:before,#legacy-lesson-panel:after{display:none}
#legacy-lesson-panel .lesson-portrait{position:relative;left:auto;bottom:auto;width:var(--portrait);height:var(--portrait);object-fit:contain;clip-path:none;border:0;filter:none;background:none;z-index:0;grid-column:1;grid-row:1;margin:0}
#legacy-lesson-panel .lesson-portrait.bibleman-facing-right{transform:scaleX(-1)}
#legacy-lesson-panel .lesson-copy{grid-column:2;grid-row:1;position:relative;z-index:1;margin:0 0 18px -4px;padding:25px 18px 14px 20px;max-height:none;overflow:visible;background:none;pointer-events:auto;isolation:isolate}
#legacy-lesson-panel .lesson-copy:before{content:'';position:absolute;z-index:-2;inset:0;background:#f9eed6;clip-path:polygon(0 0,21% 18%,83% 14%,98% 33%,100% 80%,91% 100%,15% 95%,8% 82%,7% 36%)}
#legacy-lesson-panel .lesson-copy:after{content:'';position:absolute;z-index:-1;inset:4px;background:#241a30;clip-path:polygon(0 0,21% 18%,83% 14%,98% 33%,100% 80%,91% 100%,15% 95%,8% 82%,7% 36%)}
#legacy-lesson-panel #lesson-speaker{position:absolute;top:6px;left:36px;margin:0;padding:4px 13px;font:700 17px var(--display-font);transform:rotate(-4deg);background:#f6eacb;color:#241a30}
#legacy-lesson-panel #lesson-title,#legacy-lesson-panel #lesson-note{display:none}
#legacy-lesson-panel #lesson-text{font:600 17px/1.3 var(--ui-font);color:#fbf0dc;margin:13px 0 5px;padding:0 1px}
#legacy-lesson-panel .lesson-actions{gap:6px;justify-content:flex-end;margin:6px 0 0}#legacy-lesson-panel .lesson-actions .btn{font:600 12px var(--ui-font);min-height:28px;padding:4px 6px;clip-path:none;background:none!important;color:#f1dcb2!important;box-shadow:none}

#legacy-lesson-panel.responding{grid-template-columns:var(--portrait) minmax(0,var(--bubble)) minmax(0,var(--reply))}
#legacy-lesson-panel .lesson-choices{position:relative;grid-column:3;grid-row:1;align-self:end;margin:0 0 26px 8px;display:grid;gap:7px;pointer-events:auto}
#legacy-lesson-panel .lesson-choice{margin:0!important;font:600 14px/1.25 var(--ui-font);padding:11px 16px 11px 23px;min-height:40px;background:#f5ecd5;color:#221a2d;clip-path:polygon(8% 6%,93% 0,100% 45%,94% 90%,0 100%,5% 76%);border:0;box-shadow:none}
#legacy-lesson-panel .lesson-choice:hover:not(:disabled),#legacy-lesson-panel .lesson-choice:focus-visible{background:#c6a4e6;transform:translateX(-4px);color:#251833}
#legacy-lesson-panel #lesson-feedback{font:600 14px/1.3 var(--ui-font);color:#d1edc3;margin:14px 0 6px}#legacy-lesson-panel #lesson-sources{font-size:12px;margin:10px 0}
@media(max-width:1000px){#legacy-lesson-panel{--portrait:195px;--bubble:265px;--reply:245px}#legacy-lesson-panel #lesson-text{font-size:15px}#legacy-lesson-panel .lesson-choice{font-size:13px;padding-left:18px}}
@media(max-width:800px){#legacy-lesson-panel{--portrait:155px;--bubble:245px;--reply:230px}#legacy-lesson-panel.responding{grid-template-columns:var(--portrait) minmax(0,var(--bubble));}#legacy-lesson-panel .lesson-choices{grid-column:2;grid-row:1;margin:0 0 160px 0}#legacy-lesson-panel .lesson-copy{grid-row:1}}
@media(max-width:600px){#hero-shop{width:440px}.stat-tiles b{font-size:24px}#hero-shop .compact-hero-row{grid-template-columns:95px minmax(0,1fr)}#hero-shop .compact-portrait{width:95px;height:120px}#hero-shop .weapon-title h2{font-size:21px}.stat-changes{gap:0 8px;font-size:12px}#legacy-lesson-panel{--portrait:105px;--bubble:215px;right:2px}#legacy-lesson-panel .lesson-copy{padding:23px 13px 10px 17px}#legacy-lesson-panel #lesson-text{font-size:14px}#legacy-lesson-panel .lesson-choices{margin-bottom:170px}#legacy-lesson-panel #lesson-speaker{font-size:15px;left:22px}}
@media(max-width:430px){#legacy-lesson-panel{--portrait:75px;--bubble:200px}.stat-tiles span{font-size:10px}.stat-changes{grid-template-columns:1fr}#hero-shop .profile-drag{font-size:23px}.armory-footer{gap:6px}.shortcut-note{font-size:10px}}
#legacy-lesson-panel .lesson-copy:before,#legacy-lesson-panel .lesson-copy:after{clip-path:polygon(10% 0,85% 0,99% 22%,100% 78%,90% 100%,12% 96%,0 78%,0 22%)}
#legacy-lesson-panel .speech-tail{position:absolute;z-index:-1;width:calc(var(--portrait)*.36);height:44px;left:calc(var(--portrait)*-.34);top:calc(100% - var(--portrait)*.45 + 18px);overflow:visible;pointer-events:none}
#legacy-lesson-panel #lesson-speaker{top:-10px}
/* White dialogue lettering and border, with more room beside the speaker. */
#legacy-lesson-panel .lesson-copy{margin-left:20px}
#legacy-lesson-panel .lesson-copy:before{background:#fff}
#legacy-lesson-panel #lesson-text,#legacy-lesson-panel #lesson-feedback,#legacy-lesson-panel #lesson-sources{color:#fff}
#legacy-lesson-panel #lesson-speaker{background:#fff;color:#241a30}
#legacy-lesson-panel .lesson-actions #lesson-continue{color:#fff!important}
#legacy-lesson-panel .lesson-choice{background:#fff;color:#241a30}
#legacy-lesson-panel .speech-tail{width:calc(var(--portrait)*.25);left:calc(var(--portrait)*-.23)}
@media(max-width:600px){#legacy-lesson-panel .lesson-copy{margin-left:10px}}
/* Placement copy stays light, readable and clear of the battlefield. */
.placement-status,.placement-status.blocked{background:none;border:0;box-shadow:none;border-radius:0;padding:4px 0;color:#fff;font:600 14px/1.35 Barlow,sans-serif;text-shadow:0 1px 4px #101321,0 1px 2px #101321}
.placement-status.blocked{color:#ffd5de}
/* Beacon City is now the complete campaign map; keep the menu concise. */
label[for="district"],#district,#district-brief,#load-district{display:none!important}
/* Direct hero deployment: click previews, dragging places without an extra step. */
.hero-list .card{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .12s ease,opacity .12s ease,border-color .12s ease}
.hero-list .card img{-webkit-user-drag:none;pointer-events:none}
.hero-list .card.dragging{cursor:grabbing;opacity:.58;transform:scale(.96);border-color:#fff}
body.hero-dragging #placement-controls{display:none!important}
/* HQ damage feedback: a tight impact shake plus a localized warning flash. */
.board:after{content:'';position:absolute;z-index:6;inset:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 91% 51%,#fff2c9aa 0 3%,#ff5f6c55 7%,transparent 23%)}
.board.hq-impact{animation:hq-impact-shake .36s cubic-bezier(.2,.8,.3,1)}
.board.hq-impact:after{animation:hq-impact-flash .42s ease-out}
#hq-status.hq-damaged{animation:hq-health-hit .42s ease-out}
@keyframes hq-impact-shake{0%,100%{transform:translate(0)}12%{transform:translate(-5px,1px) rotate(-.12deg)}27%{transform:translate(4px,-2px) rotate(.1deg)}44%{transform:translate(-3px,1px)}62%{transform:translate(2px,-1px)}80%{transform:translate(-1px,0)}}
@keyframes hq-impact-flash{0%{opacity:.95;transform:scale(.9)}45%{opacity:.55}100%{opacity:0;transform:scale(1.08)}}
@keyframes hq-health-hit{0%,100%{filter:none;transform:scale(1)}22%{filter:brightness(1.6) saturate(1.4);transform:scale(1.06)}55%{filter:brightness(1.15);transform:scale(.99)}}
@media(prefers-reduced-motion:reduce){.board.hq-impact,#hq-status.hq-damaged{animation:none}.board.hq-impact:after{animation:hq-impact-flash .3s ease-out}}
.compact-portrait.mirrored-portrait{transform:scaleX(-1)}
.leaderboard-dialog{width:min(520px,calc(100vw - 28px));max-height:min(720px,calc(100dvh - 28px));padding:0;border:2px solid #bea15f;border-radius:14px;background:#151a2b;color:#fff;box-shadow:0 24px 80px #050711cc;font-family:var(--ui-font,Arial,sans-serif)}
.leaderboard-dialog::backdrop{background:#080b14cc;backdrop-filter:blur(4px)}
.leaderboard-shell{padding:22px}.leaderboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #544b6a;padding-bottom:14px}.leaderboard-head h2{margin:3px 0 0;color:#ffda75;font-size:27px}.leaderboard-kicker{margin:0;color:#8fe8ff;font-size:11px;font-weight:800;letter-spacing:.14em}.leaderboard-close{width:40px;height:40px;border:1px solid #716583;border-radius:8px;background:#2a2740;color:#fff;font-size:24px;cursor:pointer}.leaderboard-status,.leaderboard-identity{color:#cbd4e6;font-size:14px}.leaderboard-identity{padding:10px 12px;border:1px solid #3c7890;border-radius:7px;background:#122a3b;color:#aeeeff}.leaderboard-rows{display:grid;gap:7px;margin:15px 0}.leaderboard-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid #444b66;border-radius:7px;background:#20263a}.leaderboard-row b{color:#8fe8ff}.leaderboard-row strong{color:#ffda75}.leaderboard-row.is-player{border-color:#70d9bc;background:#1e3b38}.leaderboard-empty{padding:24px;text-align:center;color:#aeb8ca;border:1px dashed #50596f;border-radius:8px}
