/* Battle IA deep layers: energetic Arena Grid, deterministic local scoring, lightweight DOM only. */
body[data-project=battle-ai] .back-stage{background:radial-gradient(ellipse at 50% 25%,#28113b 0,#100718 40%,#030309 78%)}
body[data-project=battle-ai] .back-stage::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 19%,#a56bff18 19.2%,transparent 19.5% 80.5%,#ff477e16 80.8%,transparent 81%),repeating-linear-gradient(90deg,transparent 0 72px,#b56cff0a 73px 74px);mask-image:linear-gradient(#000,transparent 84%)}
.battle-arena-projection,.battle-challenge-projection{left:4%;right:4%;top:11%;height:clamp(20rem,40dvh,32rem);max-height:calc(100dvh - var(--presentation-floor-bottom) - 5.5rem);overflow:auto;border-color:#bb74ff73;background:linear-gradient(145deg,#1b0929f3,#090511ed);box-shadow:0 0 34px #a35eff1d,inset 0 0 30px #ff4f9610}
.battle-engine-title,.challenge-blueprint-title{text-align:center;padding:.45rem;color:#bda8ce;font:.67rem/1.45 monospace}.battle-engine-title>*,.challenge-blueprint-title>*{display:block}.battle-engine-title strong,.challenge-blueprint-title strong{color:#f2ddff;font-size:.9rem;letter-spacing:.16em}.battle-engine-title span,.challenge-blueprint-title span{color:#896d9d;font-size:.6rem}
.battle-challenges{display:flex;justify-content:center;gap:.4rem;padding:.35rem;flex-wrap:wrap}.battle-challenges button{min-width:86px;font-size:.64rem}.battle-challenges button[aria-pressed=true]{border-color:#f0d5ff;background:#42156a;color:#fff;box-shadow:0 0 12px #c268ff47}
.battle-brief{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;align-items:center;gap:.35rem;padding:.4rem .55rem;border-block:1px solid #a267dc36;color:#a88abf;font:.61rem/1.4 monospace}.battle-brief strong{color:#eddaff}.battle-brief button{font-size:.65rem}
.battle-stage{display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:center;gap:.7rem;padding:.7rem}.battle-stage article{position:relative;min-height:78px;display:grid;place-content:center;text-align:center;border:1px solid #8a51b8;background:radial-gradient(circle,#6f2fa828,#160821 70%);color:#c7a3dc;font:.62rem/1.4 monospace}.battle-stage article[data-competitor=B]{border-color:#d94f88;background:radial-gradient(circle,#d94f8824,#210916 70%)}.battle-stage article strong{color:#fff;font-size:.76rem}.battle-stage article>*{display:block}.battle-stage article.is-ready{box-shadow:0 0 24px #bd65ff66;transform:scale(1.02)}
.battle-pipeline{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;align-items:center}.battle-pipeline>*{padding:.3rem;text-align:center;border:1px solid #59356e;color:#a882bd;font:.58rem/1.3 monospace}.battle-pipeline b{border-color:#e17aff;color:#fff}
.battle-evaluation{padding:.4rem .55rem}.battle-evaluation header{display:flex;justify-content:space-between;color:#8f6da0;font:.6rem/1.4 monospace}.battle-evaluation header strong{color:#edcfff}.battle-score-row{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:.35rem;margin-top:.22rem;text-align:center;color:#c9a1df;font:.6rem/1.3 monospace}.battle-score-row>*{padding:.24rem;border-bottom:1px solid #78429750}.battle-score-row span:last-child{color:#ff8db5}.battle-evaluation>p{margin:.4rem 0 0;padding:.35rem;border-left:2px solid #c76bff;background:#291039;color:#f0d9ff;font:.65rem/1.4 monospace}
.holo-fight{position:relative;min-height:clamp(14rem,29dvh,20rem);margin:.35rem .55rem .75rem;overflow:hidden;border:1px solid #925bd35e;background:radial-gradient(ellipse at 50% 70%,#37115a70 0,#0a0714 52%,#03040a 100%);isolation:isolate}
.holo-fight::before{position:absolute;inset:0;z-index:5;content:"";pointer-events:none;opacity:.24;background:repeating-linear-gradient(0deg,transparent 0 3px,#bfefff14 4px 5px);mix-blend-mode:screen;animation:holo-scan 5.2s linear infinite}
.holo-fight::after{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(90deg,#35dfff08,transparent 28% 72%,#ef55ff09),radial-gradient(circle at 50% 72%,transparent 0 26%,#d37eff12 27%,transparent 28%)}
.holo-fight__data,.holo-fight__round{position:absolute;z-index:6;top:.55rem;display:grid;gap:.18rem;color:#83eaff;font:.54rem/1.25 monospace;letter-spacing:.1em;text-shadow:0 0 8px currentColor}
.holo-fight__data{left:.65rem;padding:.35rem .45rem;border-left:1px solid #4deaff80;background:#071b2775}.holo-fight__data--magenta{right:.65rem;left:auto;text-align:right;color:#f77dff;border-right:1px solid #f05eff80;border-left:0;background:#25092075}.holo-fight__data b{color:#e5fbff}.holo-fight__round{left:50%;translate:-50% 0;place-items:center;color:#dcbfff}.holo-fight__round strong{font-size:1rem;color:#fff}.holo-fight__round span{font-size:.48rem;color:#b697c9}
.holo-fight__ring{position:absolute;inset:3.4rem 7% .35rem;perspective:700px;transform-style:preserve-3d}
.holo-orbit{position:absolute;z-index:0;left:50%;bottom:2%;width:72%;height:43%;translate:-50% 0;border:1px solid #a770ff7d;border-radius:50%;transform:rotateX(68deg);box-shadow:0 0 12px #925dff55,inset 0 0 18px #a966ff28;animation:holo-orbit 4.4s linear infinite}.holo-orbit--inner{width:48%;height:28%;bottom:9%;border-color:#57eaff8a;animation-direction:reverse;animation-duration:3.1s}
.holo-fighter{--holo:#59ecff;position:absolute;z-index:3;bottom:16%;left:28%;width:3.4rem;height:8.2rem;color:var(--holo);filter:drop-shadow(0 0 3px currentColor) drop-shadow(0 0 10px currentColor);opacity:.79;transform-origin:50% 100%;animation:holo-cyan-fight 8s cubic-bezier(.55,.02,.35,1) infinite,holo-glitch 2.7s steps(1,end) infinite}
.holo-fighter--magenta{--holo:#f05cff;left:auto;right:28%;scale:-1 1;animation-name:holo-magenta-fight,holo-glitch;animation-delay:0s,-1.1s}
.holo-fighter i{position:absolute;display:block;background:linear-gradient(90deg,transparent,currentColor 18% 82%,transparent);box-shadow:0 0 8px currentColor}.holo-head{top:0;left:50%;width:1.45rem;height:1.55rem;translate:-50% 0;border:1px solid currentColor;border-radius:50%;background:radial-gradient(circle at 50% 42%,#fff8 0 4%,transparent 5%),linear-gradient(90deg,transparent,currentColor 48% 52%,transparent)!important}.holo-torso{top:1.65rem;left:50%;width:2.3rem;height:3.25rem;translate:-50% 0;clip-path:polygon(18% 0,82% 0,100% 72%,66% 100%,34% 100%,0 72%);opacity:.72;background:repeating-linear-gradient(0deg,currentColor 0 1px,transparent 2px 8px)!important;border-inline:1px solid currentColor}.holo-limb{width:.58rem;height:3.35rem;border-radius:70%;transform-origin:50% 8%}.holo-arm{top:1.85rem}.holo-arm--front{left:.35rem;rotate:-35deg;animation:holo-cyan-strike 8s ease-in-out infinite}.holo-arm--back{right:.35rem;rotate:34deg}.holo-leg{top:4.65rem;height:3.65rem}.holo-leg--front{left:1rem;rotate:10deg}.holo-leg--back{right:1rem;rotate:-11deg}.holo-fighter--magenta .holo-arm--front{animation-name:holo-magenta-strike}.holo-fighter--magenta .holo-leg--front{animation:holo-magenta-kick 8s ease-in-out infinite}
.holo-impact{position:absolute;z-index:4;left:50%;top:45%;width:.65rem;height:.65rem;translate:-50% -50%;border:1px solid #fff;border-radius:50%;opacity:0;box-shadow:0 0 9px #fff,0 0 20px #61eaff,0 0 34px #f05cff;animation:holo-impact 8s ease-out infinite}.holo-particles{position:absolute;inset:0;z-index:2;opacity:.48;background-image:radial-gradient(circle,#5decff 0 1px,transparent 1.5px),radial-gradient(circle,#f168ff 0 1px,transparent 1.5px);background-size:43px 37px,59px 47px;background-position:0 0,18px 11px;mask-image:radial-gradient(ellipse at 50% 55%,#000,transparent 69%);animation:holo-particles 5s linear infinite}
.challenge-blueprint-title--builder{border-top:1px solid #76509255;padding-top:.7rem}
@keyframes holo-cyan-fight{0%,10%,100%{transform:translateX(0) rotate(0)}18%{transform:translateX(18%) rotate(-3deg)}28%{transform:translateX(72%) rotate(8deg)}38%{transform:translateX(36%) rotate(-11deg)}50%{transform:translateX(58%) rotate(5deg)}62%{transform:translateX(12%) rotate(-4deg)}74%,88%{transform:translateX(-10%) rotate(0)}}
@keyframes holo-magenta-fight{0%,10%,100%{transform:translateX(0) rotate(0)}18%{transform:translateX(12%) rotate(2deg)}28%{transform:translateX(-12%) rotate(-9deg)}38%{transform:translateX(34%) rotate(12deg)}50%{transform:translateX(-72%) rotate(-6deg)}62%{transform:translateX(-25%) rotate(5deg)}74%,88%{transform:translateX(10%) rotate(0)}}
@keyframes holo-cyan-strike{0%,19%,36%,100%{rotate:-35deg}23%,30%{rotate:-104deg}43%,49%{rotate:25deg}52%,58%{rotate:-112deg}}
@keyframes holo-magenta-strike{0%,31%,100%{rotate:-35deg}36%,43%{rotate:-110deg}47%,54%{rotate:18deg}}
@keyframes holo-magenta-kick{0%,42%,60%,100%{rotate:10deg}48%,55%{rotate:78deg;translate:0 -1rem}}
@keyframes holo-impact{0%,22%,31%,47%,56%,100%{opacity:0;scale:.4}25%,50%{opacity:1;scale:2.2}}
@keyframes holo-glitch{0%,91%,95%,100%{clip-path:none}92%{clip-path:inset(22% 0 53%);translate:2px 0}94%{clip-path:inset(61% 0 9%);translate:-2px 0}}
@keyframes holo-orbit{to{rotate:1turn}}
@keyframes holo-particles{to{background-position:43px -37px,-41px -36px}}
@keyframes holo-scan{to{background-position:0 100px}}
.challenge-builder{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;padding:.55rem}.challenge-builder section{display:flex;gap:.25rem;flex-wrap:wrap;padding:.4rem;border:1px solid #63377c}.challenge-builder section>strong{flex-basis:100%;color:#d9b6ed;font:.62rem/1.4 monospace}.challenge-builder button{font-size:.58rem;padding:.25rem}.challenge-builder button[aria-pressed=true]{border-color:#ff8cba;background:#4b1430;color:#fff}.battle-challenge-projection>[data-blueprint-generate]{display:block;margin:0 auto;font-size:.65rem}
.challenge-blueprint-output{margin:.45rem .55rem;padding:.4rem;border:1px solid #9759b9;background:#13091c;color:#aa86bb;font:.61rem/1.4 monospace}.challenge-blueprint-output strong{display:block;color:#f0d8ff}.challenge-blueprint-output div{display:flex;gap:.45rem;flex-wrap:wrap}.challenge-blueprint-output span{border-left:2px solid #d26fff;padding-left:.3rem}
.future-game-layer{display:grid;gap:.25rem;margin:.4rem .55rem;padding:.45rem;border:1px solid #584069;color:#9c83aa;font:.6rem/1.4 monospace}.future-game-layer b{color:#eacfff}.future-game-layer small{color:#ff96bc}.battle-event-scale,.battle-future-links{display:flex;gap:.35rem;flex-wrap:wrap;padding:.35rem .55rem}.battle-event-scale span,.battle-future-links span{padding:.27rem;border:1px dashed #5b3b6c;color:#91779e;font:.58rem/1.4 monospace}.battle-future-links span{flex:1;min-width:260px}
body[data-back-view=battle-arena-core] .room-scene>:is(.project-wall,.prompt-nav,.briefing-controls,.prompt-status),body[data-back-view=battle-challenge-lab] .room-scene>:is(.project-wall,.prompt-nav,.briefing-controls,.prompt-status),body[data-back-view=battle-arena-core] [data-journey-status],body[data-back-view=battle-challenge-lab] [data-journey-status]{visibility:hidden;pointer-events:none}
@media(max-width:760px){.battle-arena-projection,.battle-challenge-projection{left:3%;right:3%;top:11%;height:clamp(17rem,38dvh,27rem)}.battle-brief{grid-template-columns:1fr}.battle-stage{grid-template-columns:1fr 1fr}.battle-pipeline{grid-column:1/-1;grid-row:2}.challenge-builder{grid-template-columns:1fr 1fr}.battle-evaluation header{display:grid}.battle-score-row{grid-template-columns:.8fr 1.4fr .8fr}.battle-future-links span{min-width:0;flex-basis:100%}.holo-fight{min-height:13rem}.holo-fight__ring{inset:3.7rem 1% .2rem}.holo-fighter{left:25%;scale:.86}.holo-fighter--magenta{right:25%;left:auto;scale:-.86 .86}.holo-fight__data{font-size:.46rem}.holo-fight__round{top:.4rem}}
@media(max-width:430px){.challenge-builder{grid-template-columns:1fr}.battle-challenges button{min-width:72px}.battle-stage{gap:.35rem;padding:.45rem}.battle-stage article{min-height:64px}.battle-pipeline{grid-template-columns:repeat(2,1fr)}.holo-fight{margin-inline:.3rem}.holo-fight__data span{display:none}.holo-fighter{left:22%;scale:.72}.holo-fighter--magenta{right:22%;left:auto;scale:-.72 .72}}
@media(prefers-reduced-motion:reduce){.battle-stage article.is-ready{transform:none;box-shadow:none}.holo-fight::before,.holo-orbit,.holo-fighter,.holo-fighter .holo-limb,.holo-impact,.holo-particles{animation:none}.holo-fighter--cyan{transform:translateX(10%)}.holo-fighter--magenta{transform:translateX(-10%);scale:-1 1}}
