.boss-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;padding:0;background:#06161b;color:#f4f0df;overflow:hidden;overscroll-behavior:none}
.boss-dialog::backdrop{background:#031017}
.battle-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:0 max(16px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(16px,env(safe-area-inset-left));max-width:1440px;margin:auto}
.battle-hud{display:grid;grid-template-columns:1fr minmax(220px,1.4fr) 44px;gap:28px;align-items:center;padding:14px 0 10px}
.battle-eyebrow{font-size:10px;letter-spacing:2px;color:#d9b984;font-weight:600}.boss-heading h2{margin:3px 0 0;font-family:'Space Grotesk',sans-serif;font-size:33px;letter-spacing:-1px;line-height:1}.boss-heading h2 span{display:block;margin-top:5px;font-size:10px;font-weight:500;letter-spacing:2px;color:#9fb8b3}
.bar-label{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:11px;letter-spacing:1px;margin-bottom:6px;font-family:'Space Grotesk',sans-serif}.boss-health-track,.player-health-track{position:relative;height:12px;border:1px solid #a0bfb144;border-radius:3px;background:#162b30;overflow:hidden}.boss-health-track>span,.player-health-track>span{height:100%;display:block;width:100%;background:#ee789c;transition:width .08s linear}.boss-health-track>i{position:absolute;left:35%;top:0;height:100%;width:2px;background:#142d32aa}.boss-health-track>i+i{left:70%}.boss-supply{display:flex;align-items:center;justify-content:flex-end;gap:5px;height:20px;color:#c9b5c0;font-size:10px}.boss-supply img{height:19px;width:19px;object-fit:contain;image-rendering:pixelated}.battle-pause{width:42px;height:42px;border:1px solid #59706f;background:#163239;border-radius:7px;font-size:18px}
.battle-stage{position:relative;min-height:0;overflow:hidden;border:1px solid #506c65;border-radius:10px;background:#233c39;isolation:isolate;touch-action:none}.battle-scenery{position:absolute;inset:0;background:linear-gradient(#04202b15,#071c2650),url('/assets/boss-arena.png') center/100% 100%;z-index:-1}.battle-stage canvas{width:100%;height:100%;display:block;outline:none;touch-action:none}
.battle-actor{position:absolute;aspect-ratio:1;pointer-events:none;transform:translate(-50%,-67%);filter:drop-shadow(0 4px 2px #061b2099);will-change:left,top;z-index:2}.battle-actor>.npc-sprite,.battle-actor>.player-sprite{width:100%;height:100%;display:block}.battle-dad{z-index:1}.battle-dad.hit{filter:drop-shadow(0 0 7px #fcf0af) brightness(1.25)}.battle-dad.stunned{filter:drop-shadow(0 0 13px #82efed)}.held-pepto{display:none;position:absolute;width:46%;height:46%;object-fit:contain;left:46%;top:5%;transform:rotate(-58deg);image-rendering:pixelated}.drinking .held-pepto{display:block;animation:pepto-sip .45s ease-in-out infinite alternate}.drinking>.npc-sprite{rotate:-5deg}.battle-player.invulnerable{opacity:.5}.battle-player.dashing{filter:drop-shadow(0 0 12px #8ee8ec);opacity:.8}.battle-player-dot{position:absolute;left:calc(50% - 3px);top:65%;width:6px;height:6px;border-radius:50%;background:#eaffff;box-shadow:0 0 4px #55eeeb}
.battle-callout{position:absolute;left:50%;top:10px;transform:translateX(-50%);max-width:94%;background:#09222eea;color:#ffdc98;padding:10px 18px;border:1px solid #ddc08380;border-radius:5px;font-size:12px;letter-spacing:1px;text-align:center;z-index:3;pointer-events:none}.battle-callout.pepto{background:#431d39ef;border-color:#f498c3;color:#ffe0ec}.battle-callout[hidden]{display:none}.battle-countdown{position:absolute;inset:0;display:grid;place-items:center;font-family:'Space Grotesk',sans-serif;font-size:100px;font-weight:700;text-shadow:0 4px 30px #04232c;z-index:5;pointer-events:none}.battle-countdown[hidden]{display:none}
.battle-overlay{position:absolute;inset:0;z-index:6;display:grid;place-items:center;background:#03171bc7;backdrop-filter:blur(3px);padding:20px;overflow:auto}.battle-overlay[hidden]{display:none}.battle-card{width:min(480px,100%);margin:auto;text-align:center;padding:26px 30px;background:#0a242cef;border:1px solid #70918a77;border-radius:12px;box-shadow:0 18px 80px #001b25a0}.battle-card h3{font-family:'Space Grotesk',sans-serif;font-size:clamp(34px,4vw,52px);font-weight:500;line-height:1.04;letter-spacing:-2px;margin:17px 0;color:#f5d597}.battle-card>p{font-size:14px;line-height:1.6;color:#c2d2cc;max-width:350px;margin:0 auto 18px}.battle-brief{border-top:1px solid #54716b55;margin:16px 0;text-align:left}.battle-brief p{font-size:13px;color:#bacec7;line-height:1.55;margin:12px 0}.battle-brief b{color:#f2e4c2}.battle-card-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.battle-start,.battle-leave,.battle-info{min-height:44px;border-radius:5px;padding:11px 18px;font-size:14px}.battle-start{background:#e8bd77;color:#13282e;font-weight:650}.battle-leave{background:#ffffff09;border:1px solid #648278;color:#d0ddd5}.battle-info{margin-top:12px;background:transparent;color:#8de6dc;text-decoration:underline}.battle-card .battle-result{padding:12px 0;color:#ebca96;border-block:1px solid #67827755;font-size:12px}
.battle-controls{display:flex;align-items:center;gap:24px;min-height:90px;padding:12px 0}.player-vitals{width:150px;flex-shrink:0}.player-health-track{height:9px}.player-health-track>span{background:#88d4bb}#battle-time{display:block;margin-top:5px;font-family:'Space Grotesk',sans-serif;color:#8faaa3;font-size:11px}.battle-key-hint{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#c3d5cd}.battle-key-hint small{font-size:11px;color:#95aaa5}.battle-key-hint kbd{padding:0 5px}.battle-abilities{display:flex;gap:10px;margin-left:auto}.ability{min-width:125px;height:57px;background:#12333d;border:1px solid #6d9f9e;border-radius:7px;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center}.ability>span{font-size:14px;font-weight:600}.ability kbd{margin-left:5px;font-size:9px}.ability small{font-family:'Space Grotesk',sans-serif;letter-spacing:1.5px;font-size:10px;color:#a5ebe5}.ability.counter{border-color:#b891bd;background:#38213b}.ability.counter small{color:#efb9e1}.ability:disabled{opacity:.5}.ability.interrupt-ready{background:#73335e;border-color:#ffc7e5;box-shadow:0 0 15px #f77cad55}.battle-stick{display:none}
@keyframes pepto-sip{to{transform:rotate(-70deg) translate(-2px,-2px)}}
@media(max-width:700px),(pointer:coarse){.battle-key-hint{display:none}.battle-stick{display:block;position:relative;flex-shrink:0;width:82px;height:82px;border:1px solid #6c999f80;border-radius:50%;background:#12323b;touch-action:none;user-select:none}.stick-knob{position:absolute;left:50%;top:50%;width:35px;height:35px;transform:translate(-50%,-50%);border-radius:50%;background:#91babc55;border:1px solid #a9e0df;pointer-events:none}.stick-cross{position:absolute;inset:0;display:grid;place-items:center;color:#bcece333;font-size:52px;pointer-events:none}.stick-label{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:8px;letter-spacing:1px;color:#a2c6c4;pointer-events:none}.battle-controls{gap:12px}.player-vitals{width:100px}.ability{min-width:95px}.ability kbd{display:none}}
@media(max-width:600px){.battle-shell{padding-inline:10px}.battle-hud{grid-template-columns:1fr 36px;gap:6px 10px;padding:10px 0 6px}.boss-heading h2{font-size:24px;display:flex;align-items:center;gap:10px}.boss-heading h2 span{font-size:8px;margin:0;letter-spacing:1.3px}.battle-eyebrow{font-size:8px;letter-spacing:1.5px}.boss-vitals{grid-row:2;grid-column:1/-1}.bar-label{font-size:10px;margin-bottom:4px}.boss-health-track{height:10px}.boss-supply{height:17px;font-size:9px}.battle-pause{grid-column:2;grid-row:1;width:36px;height:36px}.battle-controls{display:grid;grid-template-columns:82px 1fr;gap:5px 12px;min-height:126px;padding:7px 0}.player-vitals{width:auto;grid-column:2;grid-row:1}.battle-stick{grid-row:1/3;grid-column:1}.battle-abilities{grid-column:2;grid-row:2;margin:0;gap:7px}.ability{min-width:0;flex:1;height:49px}.ability>span{font-size:13px}.ability small{font-size:9px}#battle-time{display:none}.battle-stage{border-radius:7px}.battle-card{padding:20px 18px}.battle-card h3{font-size:37px;margin:12px 0}.battle-card>p{font-size:13px;margin-bottom:12px}.battle-brief p{font-size:12px;margin:9px 0}.battle-card-actions{gap:7px}.battle-start,.battle-leave{font-size:12px;padding:10px 13px}.battle-overlay{padding:12px}.battle-callout{font-size:10px;padding:8px 12px}.battle-card .battle-eyebrow{font-size:9px}}
@media(max-height:550px) and (min-width:601px){.battle-hud{padding:5px 0;gap:16px}.boss-heading h2{font-size:25px}.boss-heading .battle-eyebrow,.boss-heading h2 span,.boss-supply{display:none}.battle-controls{min-height:65px;padding:5px 0;gap:14px}.battle-stick{display:block;width:55px;height:55px;position:relative;border:1px solid #63979b;border-radius:50%;background:#16363e;touch-action:none}.stick-knob{position:absolute;left:50%;top:50%;width:26px;height:26px;border-radius:50%;background:#91babc55;border:1px solid #a9e0df;transform:translate(-50%,-50%)}.stick-cross,.stick-label{display:none}.battle-key-hint{display:none}.ability{height:48px}.battle-overlay{padding:10px;display:block}.battle-overlay[hidden]{display:none}.battle-card{padding:16px 24px;max-width:600px}.battle-card h3{font-size:30px;margin:9px 0}.battle-card h3 br{display:none}.battle-brief{display:flex;gap:16px}.battle-brief p{flex:1;font-size:11px}.battle-card>p{font-size:12px;max-width:none;margin-bottom:8px}.battle-card .battle-eyebrow{font-size:9px}.battle-card-actions button{min-height:38px;padding:8px 16px}}
@media(prefers-reduced-motion:reduce){.drinking .held-pepto{animation:none}.battle-overlay{backdrop-filter:none}}
@media(max-height:700px) and (max-width:600px){.battle-overlay{padding:7px}.battle-card{padding:12px}.battle-card h3{font-size:27px;letter-spacing:-1px;margin:7px 0}.battle-card h3 br{display:none}.battle-card>p{font-size:11px;line-height:1.4;margin-bottom:7px}.battle-brief{margin:7px 0}.battle-brief p{font-size:11px;line-height:1.35;margin:6px 0}.battle-card .battle-eyebrow{font-size:8px;letter-spacing:1px}.battle-start,.battle-leave{padding:8px;font-size:11px}}

@media(max-height:700px) and (max-width:600px){.battle-card h3{font-size:26px}}
@media(max-height:550px) and (min-width:601px){.battle-card{width:min(650px,100%);padding:12px 20px}.battle-brief{margin:8px 0}.battle-brief p{margin:6px 0;line-height:1.4}.battle-card h3{font-size:28px;margin:7px 0}.battle-card-actions button{min-height:40px}}

.battle-brief[hidden],.battle-result[hidden],.battle-info[hidden]{display:none}

.battle-callout{top:auto;bottom:10px}

/* Four-move combat deck and expiring input-chain feedback. */
.ammo-label{display:flex;align-items:center;gap:4px;white-space:nowrap}.ammo-label img{width:23px;height:20px;object-fit:contain;image-rendering:pixelated}
.combo-meter{width:228px;min-width:0;flex-shrink:0;color:#9ab9b7}.combo-meter>span{display:block;min-height:24px;font-size:10px;line-height:1.25;letter-spacing:.8px;font-weight:650}.combo-track{height:4px;background:#2c444b;overflow:hidden;border-radius:4px}.combo-track i{display:block;height:100%;background:#7adce0;width:0}.combo-meter small{display:block;font-size:9px;margin-top:4px;letter-spacing:.5px}.combo-meter.active{color:#c8f6f4}.combo-meter.finisher{color:#ffdda0}.finisher .combo-track i{background:#ffdda0}
.battle-abilities{gap:7px}.ability{min-width:92px}.ability.volley{border-color:#9da6d4;background:#222d50}.ability.parry{border-color:#77cad5;background:#143b45}.ability.combo-ready{border-color:#f4d594;box-shadow:0 0 12px #f4cd7350}.enraged .boss-health-track>span{background:#ff565f}.battle-key-hint{font-size:10px;flex:1}.battle-controls{gap:18px}
@media(max-width:1100px){.battle-key-hint{display:none}.combo-meter{width:205px}.ability{min-width:82px}.battle-controls{gap:12px}}
@media(max-width:700px){
 .battle-controls{display:grid;grid-template-columns:82px minmax(0,1fr);grid-template-rows:auto auto auto;gap:6px 12px;min-height:185px;padding:7px 0}
 .player-vitals{grid-column:2;grid-row:1;width:auto}.battle-stick{grid-row:1/4;grid-column:1;align-self:center}
 .combo-meter{grid-row:2;grid-column:2;width:auto}.combo-meter>span{font-size:9px;letter-spacing:.3px;min-height:22px}.combo-meter small{font-size:8px;margin-top:3px}
 .battle-abilities{display:grid;grid-template-columns:1fr 1fr;grid-row:3;grid-column:2;margin:0;gap:5px}.ability{height:44px;min-width:0;gap:3px}.ability>span{font-size:12px}.ability small{font-size:8px}.ability kbd{display:none}
 #battle-time{display:none}.bar-label{font-size:9px}.ammo-label img{height:16px;width:20px}
}
@media(max-height:700px) and (max-width:600px){
 .battle-card h3{font-size:25px}.battle-card .battle-eyebrow{font-size:7px;letter-spacing:.6px}
 .battle-brief p{font-size:10px;margin:5px 0;line-height:1.3}.battle-card>p{font-size:10px}.battle-card{padding:10px}.battle-card-actions button{min-height:40px}
 .battle-controls{min-height:177px;gap:4px 10px}.combo-meter>span{min-height:20px;font-size:8px}
}
@media(max-height:550px) and (min-width:601px){
 .battle-controls{display:grid;grid-template-columns:110px 55px minmax(0,1fr);grid-template-rows:55px 24px;gap:3px 12px;min-height:90px;padding:3px 0}
 .player-vitals{grid-column:1;grid-row:1;width:auto}.battle-stick{grid-column:2;grid-row:1}
 .battle-abilities{grid-column:3;grid-row:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;width:100%;gap:6px}
 .ability{height:44px;min-width:0}.ability kbd{display:none}
 .combo-meter{grid-column:1/-1;grid-row:2;width:auto;display:grid;grid-template-columns:minmax(0,1fr) 90px 150px;align-items:center;gap:12px}.combo-meter>span{font-size:9px;min-height:0}.combo-meter small{margin:0;text-align:right;font-size:8px}.combo-track{height:3px}
 .battle-card{padding:10px 16px}.battle-brief p{font-size:10px;margin:4px 0}.battle-card h3{font-size:26px;margin:5px 0}.battle-card>p{font-size:11px}
}

@media(max-height:550px) and (min-width:601px){.battle-controls{grid-template-columns:130px 55px minmax(0,1fr)}.player-vitals .bar-label strong{white-space:nowrap}}

/* Final phase form and the fictional donut-business defeat scene. */
.dad-phase3{display:none;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.battle-dad.final-form>.npc-sprite{display:none}.battle-dad.final-form>.dad-phase3{display:block;animation:dad-overload .7s ease-out}
.battle-dad.final-form .held-pepto{width:32%;height:32%;left:49%;top:8%}
@keyframes dad-overload{0%{transform:scale(.7);filter:brightness(1.8)}55%{transform:scale(1.09)}100%{transform:scale(1);filter:brightness(1)}}
.boss-dialog[data-state="won"] .battle-controls{display:none}
.boss-dialog[data-state="won"] .battle-actor{visibility:hidden}
.boss-dialog[data-state="won"] .battle-overlay{background:#06171bd9}
.boss-dialog[data-state="won"] .battle-card{width:min(670px,100%);padding:20px 25px;border-color:#dca78b77;background:linear-gradient(145deg,#102c34f5,#291b29f5)}
.boss-dialog[data-state="won"] .battle-card h3{margin:10px 0;font-size:40px;color:#f5ce91}
.boss-dialog[data-state="won"] .battle-card>p{margin-bottom:10px}
.dad-defeat{margin:7px 0 12px}.dad-defeat[hidden]{display:none}
.defeat-scene{display:grid;grid-template-columns:minmax(150px,.95fr) minmax(0,1.1fr);gap:14px;align-items:center}
.defeat-portrait{position:relative;min-width:0;overflow:hidden;height:210px;display:flex;align-items:center;justify-content:center;padding-bottom:18px}
.defeat-portrait>img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;animation:dad-sob .6s ease-in-out infinite alternate;filter:drop-shadow(0 6px 5px #0007)}
.defeat-caption{position:absolute;bottom:0;left:0;right:0;color:#c9b1a7;font-size:9px;letter-spacing:1px;text-align:center;z-index:3}
.money-fall{position:absolute;inset:0;pointer-events:none;z-index:1}
.money-fall>span{position:absolute;left:var(--drop-x);top:0;color:#fb8392;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:20px;animation:money-drop 2.5s var(--drop-delay) linear infinite}
.defeat-ledger{min-width:0;text-align:left}.ledger-label{font-size:10px;letter-spacing:2px;color:#d6bdb2;display:block}
#defeat-profit{font-family:'Space Grotesk',sans-serif;font-size:clamp(27px,4vw,43px);line-height:1.2;color:#ff8795;display:block;white-space:nowrap;margin:5px 0}
.money-status{font-size:9px;letter-spacing:1px;color:#f3a79f;min-height:12px;display:block}
.profit-chart{width:100%;max-width:270px;height:55px;display:block;margin:8px 0;overflow:visible}.chart-grid{stroke:#bd88952b;stroke-width:1;fill:none}.chart-fall{stroke:#ff7e95;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:320;stroke-dashoffset:0;animation:profit-crash 4.6s cubic-bezier(.2,.8,.3,1) both}
.bankrupt-stamp{display:inline-block;padding:7px 12px;color:#ff9aa4;border:3px double #f5909d;font-family:'Space Grotesk',sans-serif;font-weight:700;letter-spacing:3px;font-size:19px;transform:rotate(-7deg) scale(1.4);opacity:0;transition:transform .35s,opacity .25s}
.settled .bankrupt-stamp{transform:rotate(-7deg) scale(1);opacity:1}
.defeat-costs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;padding:10px 0;border-block:1px solid #a27c783d}
.defeat-costs>span{font-size:8px;letter-spacing:1px;color:#bda7a8}.defeat-costs strong{display:block;margin-top:4px;font-size:14px;font-family:'Space Grotesk',sans-serif;color:#ecb2ad;letter-spacing:0}
.boss-dialog[data-state="won"] .battle-result{border:0;margin:0 auto 8px;padding:0;font-size:11px}.boss-dialog[data-state="won"] .battle-info{margin-top:3px;font-size:12px;min-height:38px;padding:7px 12px}
@keyframes dad-sob{to{transform:translateY(3px) rotate(-1deg)}}
@keyframes money-drop{0%{transform:translateY(-30px) rotate(-14deg);opacity:0}15%{opacity:.9}85%{opacity:.7}100%{transform:translateY(220px) rotate(22deg);opacity:0}}
@keyframes profit-crash{from{stroke-dashoffset:320}to{stroke-dashoffset:0}}
@media(max-width:600px){
 .boss-dialog[data-state="won"] .battle-card{padding:14px 12px}.boss-dialog[data-state="won"] .battle-card h3{font-size:30px;margin:8px 0}
 .boss-dialog[data-state="won"] .battle-card>p{font-size:12px;margin-bottom:8px}
 .defeat-scene{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:5px}.defeat-portrait{height:166px;padding-bottom:20px}
 .defeat-caption{font-size:7px;letter-spacing:.5px}.ledger-label{font-size:8px;letter-spacing:1px}
 #defeat-profit{font-size:27px}.money-status{font-size:7px;letter-spacing:.4px}.profit-chart{height:40px;margin:6px 0}
 .bankrupt-stamp{font-size:13px;letter-spacing:2px;padding:5px 7px}.defeat-costs{gap:5px;padding:8px 0;margin-top:8px}
 .defeat-costs>span{font-size:7px;letter-spacing:.5px}.defeat-costs strong{font-size:12px}
 .boss-dialog[data-state="won"] .battle-result{font-size:9px;line-height:1.4}.money-fall>span{font-size:15px}
}
@media(max-height:700px) and (max-width:600px){
 .boss-dialog[data-state="won"] .battle-card{padding:11px 10px}.boss-dialog[data-state="won"] .battle-card h3{font-size:25px;margin:6px 0}.boss-dialog[data-state="won"] .battle-card>p{font-size:10px;margin-bottom:4px}
 .defeat-portrait{height:138px}.dad-defeat{margin:4px 0 8px}#defeat-profit{font-size:24px}.profit-chart{height:33px}
 .boss-dialog[data-state="won"] .battle-info{min-height:35px;font-size:10px;margin-top:0}.bankrupt-stamp{font-size:11px}
}
@media(max-height:550px) and (min-width:601px){
 .boss-dialog[data-state="won"] .battle-card{width:min(750px,100%);padding:10px 18px;display:grid;grid-template-columns:1.2fr 1fr;gap:2px 20px;align-items:center}
 .boss-dialog[data-state="won"] .battle-card>.battle-eyebrow,.boss-dialog[data-state="won"] .battle-card h3,.boss-dialog[data-state="won"] #battle-card-copy,.boss-dialog[data-state="won"] .battle-result,.boss-dialog[data-state="won"] .battle-card-actions,.boss-dialog[data-state="won"] .battle-info{grid-column:2}
 .boss-dialog[data-state="won"] .dad-defeat{grid-column:1;grid-row:1/8;margin:0}.boss-dialog[data-state="won"] .battle-card h3{font-size:27px;margin:4px 0}
 .defeat-portrait{height:160px}.defeat-scene{gap:7px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
 #defeat-profit{font-size:27px}.bankrupt-stamp{font-size:12px;padding:5px 7px}.money-status{font-size:7px;letter-spacing:.3px}.defeat-caption{font-size:7px}
 .boss-dialog[data-state="won"] .battle-result{font-size:9px}.boss-dialog[data-state="won"] .battle-info{font-size:10px}
 .defeat-costs strong{font-size:12px}.defeat-costs>span{font-size:7px}
}
@media(prefers-reduced-motion:reduce){.battle-dad.final-form>.dad-phase3,.defeat-portrait>img,.money-fall>span,.chart-fall{animation:none}.money-fall{display:none}.bankrupt-stamp{transition:none}}

