/* The dialog's top layer keeps the celebration above every card and traps focus. */
.legendary-scene{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:#fff0bc;overflow:hidden}
.legendary-scene::backdrop{background:#03100de8;animation:legendary-dim .4s ease both}
.celebrating-legendary{overflow:hidden}
.legendary-source{visibility:hidden}
.legendary-stage{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 24px 90px;gap:22px}
.legendary-card{position:relative;flex:none;width:min(310px,65vw,calc((100dvh - 260px)*.805));aspect-ratio:330/410;perspective:1100px}
.legendary-card .rotator{transition:transform .8s cubic-bezier(.2,.65,.2,1)}
.legendary-unveiled .rotator{transform:rotateY(180deg)}
.legendary-card .is-holo .mc-label:after{animation-play-state:paused;opacity:0}
.legendary-read .legendary-card .is-holo .mc-label:after{animation-play-state:running;opacity:1}
.legendary-card .mc-connector i{animation:legendary-pin .7s calc(var(--pin)*65ms) ease both}
.legendary-trace{position:absolute;inset:0;border-radius:8%;pointer-events:none;background:linear-gradient(0deg,transparent 20%,#ffe6a4aa 49%,transparent 52%);background-size:100% 250%;mix-blend-mode:screen;animation:legendary-trace 1.15s ease both}
.legendary-aura{position:absolute;left:50%;top:43%;width:min(580px,95vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#d7ad4d33,transparent 65%);opacity:0;pointer-events:none}
.legendary-unveiled .legendary-aura{animation:legendary-wave 1.5s ease-out both}
.legendary-aura:after{content:'';position:absolute;inset:18%;border:1px solid #f3d69588;border-radius:50%;box-shadow:0 0 50px #d8a84233,inset 0 0 35px #d8a84222}
.legendary-caption{position:relative;text-align:center;max-width:min(540px,90vw);opacity:0}
.legendary-caption strong{font:12px monospace;letter-spacing:5px}
.legendary-caption p{font:clamp(18px,3vw,28px)/1.2 Georgia,serif;margin:12px 0 0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.legendary-read .legendary-caption{animation:caption-in .35s ease both}
.legendary-skip{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);min-height:44px;color:#ffedbb;border-color:#e7cb7766;background:#11251e}
.legendary-leaving .legendary-caption,.legendary-leaving .legendary-aura{visibility:hidden}
.legendary-settled{animation:legendary-settle 1.2s ease-out both}
.legendary-settled .rotator{transition:none}
.reveal-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes legendary-dim{from{opacity:0}to{opacity:1}}
@keyframes legendary-pin{0%{filter:brightness(1)}45%,100%{filter:brightness(1.8);box-shadow:0 0 12px #ffe8a8}}
@keyframes legendary-trace{0%{opacity:0;background-position:0 100%}30%{opacity:.8}100%{opacity:0;background-position:0 0}}
@keyframes legendary-wave{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.3)}}
@media(prefers-reduced-motion:reduce){.legendary-scene{display:none}.legendary-settled{outline:1px solid #e4bd68;outline-offset:3px;border-radius:10px}}

.legendary-fragments{position:absolute;inset:0;pointer-events:none}
.legendary-fragments i{position:absolute;left:50%;top:55%;width:3px;height:6px;background:#f4d998;box-shadow:0 0 8px #edc86c;animation:legendary-gather .9s var(--delay) ease-in both}
.legendary-unveiled .legendary-trace{animation:legendary-trace .8s ease both}
@keyframes legendary-gather{0%{opacity:0;transform:translate(var(--x),var(--y)) rotate(30deg)}35%{opacity:.8}100%{opacity:0;transform:translate(0,0) rotate(100deg)}}

@keyframes legendary-settle{from{filter:drop-shadow(0 0 16px #e4bd6888)}to{filter:drop-shadow(0 0 0 transparent)}}
