/* One focal event at a time; fixed overlays cannot resize the battlefield. */
.range-board099{width:100%;min-width:0}.range-ticks099{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;margin:6px 0}.range-ticks099>span{border:1px solid #415266;border-radius:4px;text-align:center;background:#14212f;display:grid;grid-template-rows:19px 20px 16px;min-width:0}.range-ticks099 b{font-size:12px}.range-ticks099 i{font-size:22px;line-height:20px;font-style:normal}.range-ticks099 small{font-size:10px}.range-ticks099 .aim099{border-color:#f1cc72;background:#3d3421;color:#ffe3a1}.range-ticks099 .target099{box-shadow:inset 0 -3px #e78085}.range-ticks099 .aim099.target099{background:#344f3c;border-color:#95d8a5}.range-board099>small{font-size:11px;color:#bccbdc}
.room90.prophecy-fired99{background:#5b5330;box-shadow:0 0 20px #f5e3a0}
.duel-intro99{position:fixed;inset:12vh 7vw auto;height:min(62vh,440px);z-index:130;display:grid;grid-template-columns:1fr 70px 1fr;align-items:center;pointer-events:none;filter:drop-shadow(0 16px 22px #0009)}
.intro-fighter99{height:100%;position:relative;overflow:hidden;background:linear-gradient(145deg,#233d50,#101621);border:1px solid #d8bc75;border-radius:12px;animation:intro-arrive99 .45s ease-out;isolation:isolate}
.intro-fighter99.ai{background:linear-gradient(215deg,#553038,#111723);animation-name:intro-enemy99}
.intro-fighter99 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;z-index:1}
.intro-emblem99{position:absolute;inset:12% 0;text-align:center;font-size:110px;color:#d9c88c55}
.intro-fighter99 .intro-emblem99{font-size:110px}
.intro-fighter99>div{position:absolute;z-index:2;bottom:0;left:0;right:0;padding:28px 22px 20px;background:linear-gradient(transparent,#080e19 35%);display:grid;gap:5px;color:#fff}
.intro-fighter99 small{color:#dccc9a;font-size:13px}.intro-fighter99 strong{font-size:clamp(24px,4vw,44px);letter-spacing:.08em}.intro-fighter99 span{font-size:16px}.versus99{text-align:center;font-size:28px;color:#ffe8a8;text-shadow:0 0 16px #cc9746}
.duel-intro99>button{pointer-events:auto;position:absolute;bottom:-48px;left:50%;transform:translateX(-50%);min-height:40px;white-space:nowrap;border:1px solid #cfb77b;background:#142233;color:#f9e4b0;border-radius:8px;padding:8px 20px}
.card-flight99{position:fixed;z-index:125;pointer-events:none;width:43px;height:63px;margin:-31px -21px;display:grid;place-items:center;color:#f5d998;font-size:25px;border:2px solid #c6ae75;border-radius:5px;background:repeating-linear-gradient(45deg,#1a3547 0 5px,#213e52 5px 10px);box-shadow:0 4px 12px #0008,inset 0 0 0 3px #112535;animation:card-flight99 var(--flight-ms99) cubic-bezier(.22,.65,.32,1) both}
.flight-label99{position:fixed;z-index:126;pointer-events:none;transform:translateX(-50%);font-size:12px;padding:4px 7px;border-radius:5px;background:#101e2fee;color:#f3dca7;white-space:nowrap}
.signature99{position:fixed;z-index:120;width:300px;max-width:calc(100vw - 28px);transform:translate(-50%,-50%);pointer-events:none;display:grid;text-align:center;justify-items:center;color:#ffe8ab;background:radial-gradient(ellipse,#152636ee 20%,#132334b8 55%,transparent 73%);padding:18px;animation:moment-arrive99 var(--moment-ms99) ease both}
.signature99>strong{font-size:21px;text-shadow:0 2px 4px #000}.signature99>span,.signature99>small{font-size:12px;color:#f7eacc;background:#101927ce;padding:3px 7px;border-radius:4px;margin-top:4px;max-width:100%;overflow-wrap:anywhere}
.signature-graphic99{width:138px;height:138px;filter:drop-shadow(0 0 10px currentColor)}.signature-graphic99 svg{width:100%;height:100%;fill:#23374899;stroke:currentColor;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.moment-shatter{color:#f5b960}.moment-shatter svg{transform-origin:50% 85%;animation:hammer-slam99 .65s ease-in both}
.moment-manifest{color:#a296e9;background:radial-gradient(ellipse,#231a40ee 35%,transparent 72%)}.moment-manifest svg{animation:eye-awaken99 1s ease both}
.moment-prophecy{color:#b6d9ff}.moment-prophecy svg{animation:star-bloom99 1s ease both}
.moment-puppet{color:#e8aad7}.moment-puppet svg{stroke-dasharray:230;animation:threads-pull99 1s ease both}
.moment-rebirth{color:#a4f3bc}.moment-rebirth svg{animation:rebirth99 1s ease both}
.moment-feast{color:#f4d99a}.moment-feast svg{animation:plate99 .8s ease both}
.moment-cauldron{color:#c4a5f7}.moment-cauldron svg{animation:brew99 1s ease both}
.moment-find{color:#fff0bd}.moment-find svg{animation:found99 .75s ease both}
.signature-focus99{outline:2px solid #eed28a!important;outline-offset:2px}.astro-star82.reserved099{position:relative;box-shadow:inset 0 0 12px #a8ccff30;border-color:#a4bfe1}.astro-star82.reserved099:after{content:'✦';position:absolute;right:5px;top:3px;color:#e7dcaa;font-size:15px;text-shadow:0 0 6px #dbdfff}.astro-star82.prophecy-fired99{background:#445879!important;box-shadow:0 0 18px #b6d9ff}
.still99,.still99 *{animation:none!important}
.signature99 svg{animation-duration:var(--moment-ms99)!important}.signature-graphic99{position:relative}.signature-portrait99{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;opacity:.5;z-index:-1;mask-image:radial-gradient(ellipse,#000 25%,transparent 72%);animation:rebirth99 var(--moment-ms99) ease both}.ingredient99{position:absolute;left:15%;top:0;font-style:normal;font-size:22px;animation:ingredient99 var(--moment-ms99) ease both;animation-delay:calc(var(--ingredient99)*80ms)}.ingredient99:nth-of-type(2){left:70%}.ingredient99:nth-of-type(3){left:45%}.puppet-strings99{position:absolute;inset:-25px 22px 60%;border-left:1px solid currentColor;border-right:1px solid currentColor;transform:skew(-12deg);animation:threads-pull99 var(--moment-ms99) ease both}.signature-graphic99[data-slot="1"]{transform:scaleX(-1)}.magic-link99{position:fixed;z-index:124;pointer-events:none;font-size:35px;color:#e2c1ff;text-shadow:0 0 14px #b79bff;animation:card-flight99 var(--flight-ms99) ease both}
@keyframes ingredient99{0%{opacity:0;transform:translateY(-30px)}20%{opacity:1}80%,100%{opacity:0;transform:translateY(70px) scale(.2)}}
@keyframes intro-arrive99{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:none}}@keyframes intro-enemy99{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}
@keyframes card-flight99{0%{opacity:0;transform:rotate(12deg) scale(.75)}15%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(var(--flight-x99),var(--flight-y99)) rotate(-4deg) scale(.9)}}
@keyframes moment-arrive99{0%{opacity:0;scale:.8}18%,75%{opacity:1;scale:1}100%{opacity:0;scale:1.04}}
@keyframes hammer-slam99{0%{transform:rotate(-55deg) translateY(-20px)}55%{transform:rotate(12deg) translateY(12px)}70%{transform:rotate(-5deg)}100%{transform:none}}
@keyframes eye-awaken99{from{transform:scaleY(.1);opacity:0}to{transform:scaleY(1);opacity:1}}
@keyframes star-bloom99{from{transform:rotate(-60deg) scale(.1)}to{transform:rotate(0) scale(1)}}
@keyframes threads-pull99{0%{stroke-dashoffset:230;transform:translateY(-15px)}60%{stroke-dashoffset:50}100%{stroke-dashoffset:0;transform:none}}
@keyframes rebirth99{0%{transform:scale(.4);opacity:0}45%{transform:scale(1.2);opacity:.8}100%{transform:scale(1);opacity:1}}
@keyframes plate99{0%{transform:translateY(32px) scale(.5)}75%{transform:translateY(-4px) scale(1.05)}100%{transform:none}}
@keyframes brew99{0%{transform:translateY(12px) rotate(-8deg)}40%{transform:rotate(8deg)}70%{transform:rotate(-4deg)}100%{transform:none}}
@keyframes found99{0%{transform:scale(1.5);opacity:0}60%{transform:scale(.9);opacity:1}100%{transform:scale(1)}}
@media(max-width:600px){.duel-intro99{inset:15vh 12px auto;height:260px;grid-template-columns:1fr 34px 1fr}.intro-fighter99>div{padding:25px 10px 14px}.intro-fighter99 strong{font-size:23px}.intro-fighter99 span{font-size:13px}.versus99{font-size:18px}.signature-graphic99{width:105px;height:105px}.signature99{width:250px}}
@media(max-height:480px){.duel-intro99{top:35px;height:220px}.signature-graphic99{width:85px;height:85px}}
@media(prefers-reduced-motion:reduce){.duel-intro99 *,.signature99,.signature99 *{animation:none!important}.card-flight99{display:none}}
