/* Approved arena prototype, scoped to the server-backed boss replay. */
#scarlet-bag-v30 .boss-arena-page{height:100%;min-height:410px;padding:0;display:grid;grid-template-rows:40px minmax(200px,1fr) 180px;overflow:hidden}
#scarlet-bag-v30 .boss-arena-heading{height:54px;margin:0;padding:4px var(--heading-inset) 0;display:grid;align-content:center;align-items:center;background:linear-gradient(#21121ce8,#1c131c99 62%,transparent)}
#scarlet-bag-v30 .boss-arena-heading h2{font:25px/1.2 var(--sc-font-display);color:var(--sc-paper)}
#scarlet-bag-v30 .boss-arena-heading button{background:none;border:0;padding:5px 0;min-height:30px;color:#c5af88;font:13px var(--sc-font-display);cursor:pointer}
#scarlet-bag-v30 .boss-arena-back{display:flex;align-items:center;gap:7px}
#scarlet-bag-v30 .boss-arena-back img{width:20px;height:20px;object-fit:contain}
#scarlet-bag-v30 .boss-arena-stage{position:relative;display:block;min-height:0;border:0;padding:0;isolation:isolate;overflow:hidden;container-type:size;--arena-headroom:80px;--arena-ground-clearance:20px;background:#15202b}
#scarlet-bag-v30 .boss-arena-stage:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(#160f18b8,transparent 85px),linear-gradient(90deg,#110c162e,transparent 24%,transparent 76%,#110c162e)}
#scarlet-bag-v30 .boss-arena-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;opacity:1;z-index:-2}
#scarlet-bag-v30 .boss-arena-status{position:absolute;top:10px;left:17%;width:66%;z-index:3;text-align:center;filter:drop-shadow(0 2px 4px #000)}
#scarlet-bag-v30 .boss-arena-title{display:flex;gap:6px;align-items:center;justify-content:center}
#scarlet-bag-v30 .boss-arena-title img{width:26px;height:26px;object-fit:contain}
#scarlet-bag-v30 .boss-arena-title h2{font:21px/1.2 var(--sc-font-display);color:#f0d5a1;margin:0;text-shadow:0 2px 5px #000,0 0 12px #000}
#scarlet-bag-v30 .boss-arena-hp{position:relative;margin-top:6px}
#scarlet-bag-v30 .boss-arena-hp .meter{height:18px;margin:0}
#scarlet-bag-v30 .boss-number{position:absolute;inset:0;display:grid;place-items:center;font:12px var(--sc-font-ui);color:#eddcc4;margin:0;font-variant-numeric:tabular-nums;text-shadow:0 1px 3px #000}
#scarlet-bag-v30 .boss-figure{container-type:size;position:absolute;bottom:var(--arena-ground-clearance);left:50%;width:min(76cqw,300px);height:min(480px,max(40px,calc(100cqh - var(--arena-headroom) - var(--arena-ground-clearance))));transform:translateX(-50%);transform-origin:center 90%;z-index:2}
#scarlet-bag-v30 .boss-body{width:100%;height:100%;object-fit:contain;object-position:center bottom;position:relative;z-index:1;display:block;filter:brightness(var(--sprite-brightness,1)) saturate(var(--sprite-saturation,1));transition:filter 1s,opacity 1s,translate 1s,rotate 1s}
#scarlet-bag-v30 .boss-figure.defeated .boss-body{filter:brightness(.38) saturate(.35);opacity:.75}
#scarlet-bag-v30 .boss-hit-layer{position:absolute;inset:0;pointer-events:none}
#scarlet-bag-v30 .boss-impact{position:absolute;left:15%;top:22%;width:70%;height:45%;object-fit:contain;opacity:0}
#scarlet-bag-v30 .boss-damage{position:absolute;left:62%;top:32%;font:30px var(--sc-font-display);color:#eedbc0;opacity:0;text-shadow:0 2px 5px #140604,0 0 8px #000;font-variant-numeric:tabular-nums}
#scarlet-bag-v30 .boss-damage.critical{color:#ffb172;font-size:36px}
#scarlet-bag-v30 .boss-arena-foot{position:absolute;bottom:0;left:0;right:0;height:33px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(transparent,#29151df5);z-index:4;font:12px var(--sc-font-display);color:#bcb1a0}
#scarlet-bag-v30 .boss-history{padding:5px 8px 8px;min-height:0}
#scarlet-bag-v30 .boss-drum{position:relative;height:100%;perspective:800px;touch-action:pan-x;outline-offset:-3px}
#scarlet-bag-v30 .boss-turn-card{position:absolute;inset:9px 0 0;height:calc(100% - 9px);margin:0;display:flex;align-items:center;justify-content:center;padding:20px 15px 13px;gap:16px;transform-origin:center top;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .25s,filter .3s}
#scarlet-bag-v30 .boss-turn-card[data-depth="0"]{transform:translateY(0);opacity:1;z-index:3}
#scarlet-bag-v30 .boss-turn-card[data-depth="1"]{transform:translateY(-8px) scale(.95);filter:brightness(.6);opacity:.68;z-index:2;pointer-events:none}
#scarlet-bag-v30 .boss-turn-card[data-depth="2"]{transform:translateY(-15px) scale(.9);filter:brightness(.4);opacity:.4;z-index:1;pointer-events:none}
#scarlet-bag-v30 .boss-turn-card.past{transform:translateY(-24px) scale(.84);opacity:0;visibility:hidden;pointer-events:none;z-index:0}
#scarlet-bag-v30 .boss-turn-card.future{transform:translateY(48px) scale(1.03);opacity:0;visibility:hidden;pointer-events:none;z-index:0}
#scarlet-bag-v30 .boss-turn-label{position:absolute;left:14px;top:8px;color:#a08a6b;font:12px var(--sc-font-display);max-width:65%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#scarlet-bag-v30 .boss-turn-index{position:absolute;right:11px;top:8px;color:#ae9270;font:10px var(--sc-font-ui);letter-spacing:.5px}
#scarlet-bag-v30 .boss-cast{position:relative;width:70px;height:70px;flex-shrink:0;isolation:isolate}
#scarlet-bag-v30 .boss-spell-icon{width:100%;height:100%;object-fit:cover;border:1px solid #a28c60;position:relative;z-index:1}
/* The critical burst extends beyond the spell; the global img max-width must not squash it. */
#scarlet-bag-v30 .boss-critical-fx{position:absolute;inset:-25%;width:150%;max-width:none;height:150%;object-fit:contain;z-index:0;pointer-events:none}
#scarlet-bag-v30 .boss-turn-mana{position:absolute;inset:0;z-index:2;display:block;padding:0;margin:0}
#scarlet-bag-v30 .boss-turn-mana>.duel-mana-cost.spell-mana-badge{position:absolute;top:2px;right:2px}
#scarlet-bag-v30 .boss-block-cost{position:absolute;top:calc(100% + 2px);right:0;display:flex;gap:3px;align-items:center;font:10px var(--sc-font-ui);white-space:nowrap}
#scarlet-bag-v30 .boss-block-cost .duel-mana-cost{position:static}
#scarlet-bag-v30 .boss-attack-arrow{width:55px;height:30px;object-fit:contain}
#scarlet-bag-v30 .enemy-turn .boss-attack-arrow{rotate:180deg}
#scarlet-bag-v30 .boss-hit-value{min-width:70px;text-align:center;color:#e2c7a5}
#scarlet-bag-v30 .boss-hit-value strong{font:28px var(--sc-font-display)}
#scarlet-bag-v30 .boss-hit-value small{font:11px var(--sc-font-ui);display:block;color:#bd926c;margin-top:4px}
#scarlet-bag-v30 .enemy-turn .boss-hit-value{color:#d78c83}
#scarlet-bag-v30 .boss-result{gap:13px;justify-content:flex-start;padding:22px 14px 9px}
#scarlet-bag-v30 .boss-result-icon{width:65px;height:85px;object-fit:contain;flex-shrink:0}
#scarlet-bag-v30 .boss-result-copy{flex:1;min-width:0}
#scarlet-bag-v30 .boss-result h3{font:23px var(--sc-font-display);color:#e5c692;margin:0 0 7px}
#scarlet-bag-v30 .boss-result p{font:12px var(--sc-font-ui);color:#b6a48d;margin:0}
#scarlet-bag-v30 .boss-result.is-defeat h3{color:#c58e82}
#scarlet-bag-v30 .boss-result-rewards{display:flex;flex-wrap:wrap;gap:7px}
#scarlet-bag-v30 .boss-result-rewards .reward-tile{width:39px;height:39px}
#scarlet-bag-v30 .boss-player-impact{position:absolute;inset:0;pointer-events:none;z-index:5;animation:boss-impact .65s both}
#scarlet-bag-v30 .boss-player-impact .boss-impact{inset:10%;width:80%;height:80%;opacity:1}
#scarlet-bag-v30 .boss-figure.strike{animation:boss-recoil .5s}
#scarlet-bag-v30 .strike .boss-impact{animation:boss-impact .65s both}
#scarlet-bag-v30 .strike .boss-damage{animation:boss-damage 1s both}
@keyframes boss-impact{0%{opacity:0;scale:.6}18%{opacity:1;scale:1.04}65%{opacity:.7}100%{opacity:0;scale:1.1}}
@keyframes boss-recoil{0%,100%{translate:0 0}15%{translate:5px 1px}35%{translate:-3px 0}60%{translate:1px 0}}
@keyframes boss-damage{0%{opacity:0;translate:0 10px}20%,75%{opacity:1}100%{opacity:0;translate:0 -35px}}
@media(max-width:380px){#scarlet-bag-v30 .boss-turn-card{gap:10px;padding-inline:8px}#scarlet-bag-v30 .boss-cast{width:60px;height:60px}#scarlet-bag-v30 .boss-attack-arrow{width:44px}#scarlet-bag-v30 .boss-arena-status{left:13%;width:74%}#scarlet-bag-v30 .boss-arena-title h2{font-size:18px}}
@media(max-height:740px){#scarlet-bag-v30 .boss-arena-page{grid-template-rows:36px minmax(180px,1fr) 151px;min-height:367px}#scarlet-bag-v30 .boss-arena-heading{height:36px}#scarlet-bag-v30 .boss-cast{width:56px;height:56px}#scarlet-bag-v30 .boss-result-icon{width:52px;height:67px}}
html[data-motion="reduced"] #scarlet-bag-v30 .boss-turn-card,html[data-motion="reduced"] #scarlet-bag-v30 .boss-body{transition:none}html[data-motion="reduced"] #scarlet-bag-v30 .boss-figure.strike,html[data-motion="reduced"] #scarlet-bag-v30 .strike .boss-impact,html[data-motion="reduced"] #scarlet-bag-v30 .strike .boss-damage,html[data-motion="reduced"] #scarlet-bag-v30 .boss-player-impact{animation:none}
#scarlet-bag-v30 .boss-reward-amount{display:flex;align-items:center;gap:4px;font:12px var(--sc-font-ui);color:#e4cda4}
#scarlet-bag-v30 .boss-reward-amount img{width:21px;height:23px;object-fit:contain}

/* One persistent bottom control, matching PvP: skip, then return to the boss. */
#scarlet-bag-v30 .boss-arena-controls{position:relative;z-index:4;align-self:end;margin:0}
#scarlet-bag-v30 .boss-arena-controls .boss-arena-control{flex:none;width:220px;max-width:100%;min-height:44px;padding:9px 18px;font-size:15px}

/* Authored arenas keep the backdrop, sprite and ground contacts in one plane. */
#scarlet-bag-v30 .boss-arena-world{--world-height:calc(max(calc(100cqw / var(--arena-ratio)),100cqh) * var(--arena-zoom,1));--actor-height:min(calc(var(--world-height) * var(--figure-height)),max(40px,calc(100cqh - var(--arena-headroom) - var(--arena-ground-clearance))));position:absolute;left:50%;top:min(0px,calc(100cqh - var(--arena-ground-clearance) - var(--world-height) * var(--figure-bottom)));transform:translateX(-50%);width:calc(var(--world-height) * var(--arena-ratio));height:var(--world-height);isolation:isolate}
#scarlet-bag-v30 .boss-arena-world>.boss-arena-background{object-fit:fill;z-index:0}
#scarlet-bag-v30 .boss-figure.composed-figure{bottom:auto;transform:none;z-index:2}
#scarlet-bag-v30 .composed-figure .boss-body{position:relative;z-index:1;filter:brightness(var(--sprite-brightness,1)) saturate(var(--sprite-saturation,1))}
#scarlet-bag-v30 .composed-figure.defeated .boss-body{filter:brightness(.38) saturate(.35)}
#scarlet-bag-v30 .composed-figure .boss-hit-layer{z-index:2}
/* Keep the authored feet point in the same world coordinates as the ground.
   Shrinking the actor around its top moved it onto fences when history grew.
   Move the whole backdrop camera instead; all contacts stay with the actor. */
#scarlet-bag-v30 .boss-figure.composed-figure{left:var(--figure-center,50%)!important;top:auto!important;bottom:calc((1 - var(--figure-bottom)) * 100%);width:calc(var(--actor-height) * var(--figure-ratio))!important;height:var(--actor-height)!important;transform:translateX(-50%)}
#scarlet-bag-v30 .boss-hit-value.is-dodged strong{font-size:17px;color:#b1c9c2}

/* Fit the portrait and its ground contacts into the exact same rectangle. */
#scarlet-bag-v30 .boss-sprite{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(100cqw,calc(100cqh * var(--sprite-ratio,.666667)));height:min(100cqh,calc(100cqw / var(--sprite-ratio,.666667)))}
/* The foundry cutout has transparent space below the leading foot. Bring
   the portrait and its contact shadows down together to the floor anchor. */
#scarlet-bag-v30 .boss-figure[data-portrait="gornovoy-cutout-v1"] .boss-sprite{transform:translate(-50%,4.3%)}

/* Contact strokes follow the cutout soles; no oval or projected duplicate. */
#scarlet-bag-v30 .boss-foot-contacts{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible;fill:none;stroke:#080706;stroke-width:14;stroke-linecap:round;stroke-linejoin:round;opacity:.78;filter:blur(.45px)}

/* A large reward batch gets the whole result card width, not a narrow scroll pane. */
#scarlet-bag-v30 .boss-result.has-many-rewards{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;justify-content:normal;gap:8px;padding:24px 12px 10px}
#scarlet-bag-v30 .boss-result.has-many-rewards .boss-result-icon{grid-column:1;grid-row:1;width:30px;height:34px;justify-self:center}
#scarlet-bag-v30 .boss-result.has-many-rewards .boss-result-copy{display:contents}
#scarlet-bag-v30 .boss-result.has-many-rewards h3{grid-column:2;grid-row:1;align-self:center;margin:0}
#scarlet-bag-v30 .boss-result.has-many-rewards .boss-result-rewards{grid-column:1 / -1;min-width:0;align-items:center;gap:6px}
#scarlet-bag-v30 .boss-result.has-many-rewards p{grid-column:1 / -1}
#scarlet-bag-v30 .boss-result-rewards .reward-tile{flex:0 0 39px;min-width:0;padding:2px}
#scarlet-bag-v30 .boss-result-rewards .reward-tile:has(.reward-tile-amount){padding-bottom:12px}
#scarlet-bag-v30 .boss-result-rewards .reward-tile-art{width:30px;height:30px;max-width:100%;max-height:100%}

/* Wide fang artwork must fit inside the square attack slot without cropping. */
#scarlet-bag-v30 .boss-spell-icon.boss-basic-icon{box-sizing:border-box;object-fit:contain;object-position:center;padding:10px;background:#19151c}
