/* Spatial card presentation. Original combat engine remains authoritative. */
#s-battle{max-width:1100px;margin:auto}.arena{isolation:isolate;perspective:1100px;min-height:510px;padding:55px 30px 28px;background:#080d20;border:1px solid #83dbff44;box-shadow:0 30px 100px #0009,inset 0 0 90px #396ac522}.arena .realm{opacity:.55;filter:saturate(.8) brightness(.65);transform:scale(1.12);animation:realmBreath 22s ease-in-out infinite alternate}.arena::before{content:'';position:absolute;width:110%;height:95%;left:-5%;top:34%;background:repeating-linear-gradient(90deg,#70dcff14 0 1px,transparent 1px 45px),repeating-linear-gradient(0deg,#70dcff14 0 1px,transparent 1px 45px),radial-gradient(ellipse,#346caf55,transparent 65%);border:2px solid #80dcff77;border-radius:50%;transform:rotateX(65deg);box-shadow:0 0 50px #39d6ff44,inset 0 0 65px #818aff33;pointer-events:none}.duel{gap:28px;perspective:1100px;transform-style:preserve-3d;align-items:center}.fighter{perspective:900px;transform-style:preserve-3d}.fighter>div:first-child{transform-style:preserve-3d}.fighter .card{max-width:255px;transform:rotateY(var(--yaw)) rotateX(5deg) translateZ(22px);box-shadow:0 4px 0 #152237,0 8px 0 #080e1b,0 26px 35px #000b,0 0 35px color-mix(in srgb,var(--fc) 25%,transparent);border:1px solid color-mix(in srgb,var(--fc) 65%,white);transition:transform .25s,box-shadow .25s;will-change:transform}#f-p{--yaw:14deg}#f-e{--yaw:-14deg}.card::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 20%,#c9f6ff22 39%,transparent 56%);background-position:var(--glint,50%) 50%;background-size:220% 100%;mix-blend-mode:screen}.fighter .art{position:relative}.fighter .meta{background:linear-gradient(135deg,#11213bef,#070c1cf5);padding:13px}.fighter .nm{font-size:18px;letter-spacing:.06em}.fighter .hpwrap{margin:24px auto 0;width:100%;max-width:255px;background:#070e20d9;padding:10px;border:1px solid #96ceff25;border-radius:12px;box-shadow:0 12px 24px #0006}.hpbar{height:10px;box-shadow:0 0 16px #70eaff22}.duel>.vs{font-size:20px;letter-spacing:.18em;color:#c3eafa;border:1px solid #89ddff55;border-radius:50%;padding:22px 17px;background:#081327d9;box-shadow:0 0 45px #649fff44}.advline{margin-top:22px!important;letter-spacing:.1em;font-size:10px}.actions{gap:10px}.act{background:linear-gradient(145deg,#172842,#0a1123);border:1px solid #9bbcfb33;box-shadow:0 4px 0 #030711;transition:transform .15s,box-shadow .15s}.act:not(:disabled):hover{transform:translateY(-4px);box-shadow:0 8px 24px #56c9ff22;border-color:#9edfff}.act:active{transform:translateY(1px)}.log{background:#090f20bb;border:1px solid #a2ceff17;border-radius:12px;padding:12px}.turn{letter-spacing:.1em}.grid{perspective:1300px}.grid .card{transition:transform .25s,box-shadow .25s;transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:0 6px 0 #080d19,0 16px 25px #0007}.grid .card:hover{transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(18px);box-shadow:0 10px 0 #080d19,0 25px 40px #0009,0 0 25px #7ae6ff33}.fighter .lunge-r{animation:spatialRight .4s!important}.fighter .lunge-l{animation:spatialLeft .4s!important}.fighter .shake{animation:spatialHit .4s!important}.battle-energy{position:absolute;z-index:8;pointer-events:none;height:5px;border-radius:50%;background:white;box-shadow:0 0 12px var(--beam),0 0 28px var(--beam);transform-origin:left center}.impact-ring{position:absolute;width:80px;height:80px;border:3px solid var(--beam);border-radius:50%;z-index:9;pointer-events:none;box-shadow:0 0 25px var(--beam);animation:impact .65s ease-out forwards}.fxl.go{mix-blend-mode:screen}.arena.critical{animation:arenaImpact .32s}.fighter.ko .card{transform:rotateY(var(--yaw)) rotateZ(9deg) translateY(30px);opacity:.5}.arena-tag{position:absolute;top:16px;left:22px;color:#abe4ff;font-size:9px;letter-spacing:.24em;z-index:3}.arena-tag::before{content:'●';color:#70ffd2;margin-right:8px}@keyframes spatialRight{50%{transform:translateX(45px) translateZ(100px) rotateY(-12deg) rotateZ(5deg)}}@keyframes spatialLeft{50%{transform:translateX(-45px) translateZ(100px) rotateY(12deg) rotateZ(-5deg)}}@keyframes spatialHit{25%{transform:translateZ(-30px) rotateY(-15deg)}75%{transform:translateZ(10px) rotateY(8deg)}}@keyframes impact{from{opacity:1;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) scale(3)}}@keyframes arenaImpact{50%{filter:brightness(1.5)}}@keyframes realmBreath{to{transform:scale(1.2) translateX(2%)}}@media(max-width:600px){.arena{padding:42px 10px 15px;min-height:340px}.duel{gap:8px}.duel>.vs{padding:12px 7px;font-size:11px}.fighter .card{max-width:190px}.fighter .nm{font-size:12px}.fighter .meta{padding:8px}.fighter .hpwrap{margin-top:15px;padding:6px}.arena-tag{font-size:8px}.advline{letter-spacing:0}.fighter{--yaw:8deg!important}#f-e{--yaw:-8deg!important}}@media(prefers-reduced-motion:reduce){.arena .realm,.fighter .card,.impact-ring,.arena.critical{animation:none!important;transition:none!important}.battle-energy{display:none}.grid .card{transform:none!important}}
/* V6: full battle stage and command deck */
body:has(#s-battle.on){background:#030811}#app:has(#s-battle.on){max-width:1440px;padding:0 24px 24px}#s-battle{max-width:none;font-family:var(--sans)}#s-battle .bar{height:66px;background:#050b15e8;border-bottom:1px solid #8edbff22}#s-battle .bar .mid{font-family:var(--sans);font-weight:700;font-size:11px;color:#bce9ff}.arena{min-height:570px;border-radius:4px 4px 28px 28px;padding:54px 10% 25px;margin-top:0;background:#081426}.arena .realm{opacity:.7;filter:brightness(.45) saturate(.75);mask-image:linear-gradient(#000, #0009 70%,transparent)}.arena::after{background:linear-gradient(90deg,#061425c9,transparent 35%,transparent 65%,#130d29bb),linear-gradient(0deg,#050c1d,transparent 55%);z-index:0}.duel{z-index:2;grid-template-columns:1fr 130px 1fr;gap:25px}.fighter .card{width:100%;max-width:280px;border-radius:16px 16px 5px 5px;overflow:hidden}.fighter .art{aspect-ratio:4/5;height:auto}.fighter .art img{width:100%;height:100%;object-fit:cover}.fighter .meta{position:absolute;bottom:0;left:0;right:0;padding:40px 16px 14px;background:linear-gradient(transparent,#071425ee 50%,#071425);border-top:0}.fighter .nm{font-size:21px;font-family:var(--sans);font-weight:800}.fighter .tt{font-family:var(--sans);font-size:11px}.fighter .fac{font-size:9px}.fighter>div:first-child::before{content:'';position:absolute;left:8%;right:8%;height:65px;bottom:-28px;border-radius:50%;background:radial-gradient(ellipse,#92f9ff55,#284a7d77 45%,#030c20 65%);border:2px solid #80deff99;box-shadow:0 8px 0 #162f49,0 12px 0 #070d1e,0 0 35px #5bcfff55;transform:rotateX(38deg);z-index:-1}.fighter .hpwrap{max-width:290px;margin-top:33px;border-radius:5px;background:#061325e6}.fighter .hpbar .fill{background:linear-gradient(90deg,#36c6b3,#adffe0);box-shadow:0 0 14px #72ffd6}#f-e .hpbar .fill{background:linear-gradient(90deg,#9959e8,#f9a8e4)}.duel>.vs{width:95px;height:95px;display:grid;place-items:center;padding:0;justify-self:center;border-style:dashed;color:#a2e8ff;font-size:20px;background:radial-gradient(#23659355,#080d23cc);box-shadow:0 0 0 12px #8adfff08,0 0 0 13px #8adfff22,0 0 65px #8c6cff33}.battle-heading{position:absolute;top:18px;left:25px;right:25px;display:flex;justify-content:space-between;align-items:center;z-index:3;font-size:10px;letter-spacing:.18em;color:#a1c6db}.battle-heading b{color:#78ffe0;font-size:9px}.arena-tag{display:none}.advline{position:relative;z-index:2;margin-top:25px!important;color:#a0dccf}.command-deck{position:relative;z-index:3;display:grid;grid-template-columns:210px 1fr;gap:22px;margin:-3px 20px 0;padding:22px;background:linear-gradient(120deg,#0c1c30,#10172b);border:1px solid #8ab6d733;border-radius:18px;box-shadow:0 22px 60px #0008}.command-status{border-right:1px solid #aacfff22;padding-right:15px;display:flex;justify-content:center;flex-direction:column}.command-status small{font-size:9px;letter-spacing:.2em;color:#7e9dbb}.command-status .turn{font-family:var(--sans);text-align:left;color:#b5ffe7;font-weight:750;font-size:17px;letter-spacing:0;margin:10px 0}.command-status p{font-size:10px;color:#91a9bd;margin:0}.actions{display:grid;grid-template-columns:repeat(4,1fr);margin:0;gap:12px}.act{position:relative;min-height:118px;padding:42px 14px 13px;text-align:left;border-radius:9px;font-family:var(--sans);overflow:hidden}.act::before{content:'✦';position:absolute;top:10px;left:14px;font-size:21px;color:#98f5ee;text-shadow:0 0 20px #8affed}.act:nth-child(2)::before{content:'◎';color:#b9a0ff}.act:nth-child(3)::before{content:'↗';color:#ffca8c}.act:nth-child(4)::before{content:'◇';color:#88caff}.act b{font-family:var(--sans);font-size:12px;letter-spacing:.02em;text-transform:uppercase}.act span{font-size:10px;line-height:1.5;color:#a2b9ce}.act:disabled{opacity:.5}.act .cdb{top:8px;right:8px;left:auto;font-size:9px}#s-battle .log{margin:15px 22px 0;min-height:65px;max-height:90px;font-size:11px;background:#060d18;border:0;border-left:2px solid #436e8a}#s-battle .np{font-size:10px;opacity:.75}.float{z-index:15!important;font-family:var(--sans)!important;font-weight:900!important;font-size:32px!important}.fxl{z-index:4}.battle-energy{height:8px}.impact-ring{border-width:4px}.particle-hit{position:absolute;width:5px;height:5px;background:var(--beam);box-shadow:0 0 12px var(--beam);pointer-events:none;z-index:12;border-radius:50%}
@media(max-width:800px){#app:has(#s-battle.on){padding:0 10px 20px}.arena{padding:45px 18px 20px;min-height:440px}.duel{grid-template-columns:1fr 70px 1fr;gap:12px}.duel>.vs{width:55px;height:55px;font-size:14px}.command-deck{grid-template-columns:1fr;margin:0 0;gap:12px;padding:15px}.command-status{border:0;flex-direction:row;align-items:center;justify-content:space-between;padding:0}.command-status .turn{font-size:13px;margin:0}.command-status p{display:none}.act{min-height:105px;padding:36px 10px 10px}.actions{gap:8px}.fighter .nm{font-size:16px}}
@media(max-width:500px){.arena{min-height:350px;padding:50px 9px 15px}.duel{grid-template-columns:1fr 35px 1fr;gap:5px}.duel>.vs{width:30px;height:30px;font-size:9px;box-shadow:0 0 0 5px #8adfff11}.fighter .meta{padding:25px 8px 8px}.fighter .nm{font-size:13px}.fighter .tt{font-size:9px}.fighter .fac{font-size:7px}.fighter .hpwrap{margin-top:23px}.battle-heading{left:12px;right:12px;font-size:8px;letter-spacing:.07em}.battle-heading b{font-size:7px}.actions{grid-template-columns:repeat(2,1fr)}.act{min-height:88px;padding:30px 10px 8px}.act::before{top:4px;font-size:18px}.advline{font-size:8px}.command-status small{font-size:8px}}

/* Arena 2027: cinematic presentation; original battle engine preserved */
.arena{background:radial-gradient(ellipse at 50% 110%,#184a6a,#071328 52%,#030611);box-shadow:inset 0 -35px 90px #26b9dd24,0 30px 90px #000c}
.arena .realm{filter:brightness(.56) saturate(1.15) contrast(1.12)}
.arena-stage-grid{position:absolute;left:-10%;right:-10%;bottom:-20%;height:60%;pointer-events:none;z-index:1;background:repeating-linear-gradient(90deg,#70dcff25 0 1px,transparent 1px 52px),repeating-linear-gradient(0deg,#70dcff25 0 1px,transparent 1px 52px);transform:perspective(420px) rotateX(65deg);mask-image:linear-gradient(transparent,#000 50%,transparent);animation:gridDrift 10s linear infinite}
.arena-stage-motes{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.arena-stage-motes i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#b9f7ff;box-shadow:0 0 10px #4df1ff;animation:moteFloat var(--duration) linear infinite;animation-delay:var(--delay)}
.fighter.is-striking .card{animation:arenaStrike .55s cubic-bezier(.2,.9,.2,1)!important}.fighter.is-hit .card{animation:arenaHit .5s ease-out!important}.fighter.is-healing .card{animation:arenaHeal .8s ease-out!important}
.arena-shockwave{position:absolute;z-index:10;pointer-events:none;left:var(--x);top:var(--y);width:20px;height:20px;border:3px solid var(--beam,#8defff);border-radius:50%;box-shadow:0 0 22px var(--beam,#8defff);animation:shockwave .65s ease-out forwards}
@keyframes gridDrift{to{background-position:52px 0,0 52px}}@keyframes moteFloat{0%{transform:translateY(45px);opacity:0}20%{opacity:.6}85%{opacity:.4}100%{transform:translateY(-90px);opacity:0}}
@keyframes arenaStrike{0%,100%{transform:rotateY(var(--yaw)) translateZ(22px)}45%{transform:rotateY(0deg) translateZ(105px) scale(1.065);filter:brightness(1.4)}}
@keyframes arenaHit{0%,100%{transform:rotateY(var(--yaw)) translateZ(22px)}20%{transform:translateX(-9px) rotateZ(-3deg);filter:brightness(2)}45%{transform:translateX(8px) rotateZ(2deg)}}
@keyframes arenaHeal{50%{filter:brightness(1.6) drop-shadow(0 0 26px #70ffbc)}}
@keyframes shockwave{from{transform:translate(-50%,-50%) scale(.2);opacity:1}to{transform:translate(-50%,-50%) scale(10);opacity:0}}
@media(max-width:600px){.arena-stage-grid{height:40%;bottom:-15%}.arena-stage-motes i:nth-child(n+13){display:none}}
@media(prefers-reduced-motion:reduce){.arena-stage-grid,.arena-stage-motes i,.arena-shockwave,.fighter.is-striking .card,.fighter.is-hit .card,.fighter.is-healing .card{animation:none!important}}
