.destiny-stage{background:#101023;animation:stage-in .15s ease both;isolation:isolate}
.destiny-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-3;animation:destiny-dim 2.8s linear both;background:#101023}
.destiny-scene .paper{max-width:740px;margin:auto}.destiny-scene [data-confirmed]{border-color:#ffe2a4;background:#665037;box-shadow:0 0 24px #ebc07870;transform:scale(1.025)}
.destiny-veil{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse,#30243d44,#080b19);animation:destiny-veil 2.8s ease both}
.destiny-content{text-align:center;position:relative;width:min(92vw,550px);padding:20px;z-index:1}
.confirmed-label{color:#e0c18a;font-size:13px;margin:0;animation:confirmed-in 2.8s linear both}
.confirmed-text{color:#f6ead6;font-size:17px;line-height:1.8;margin:8px 0 20px;animation:confirmed-in 2.8s linear both}
.destiny-ring{width:150px;height:150px;margin:15px auto;border:1px solid #ddbd7770;border-radius:50%;display:grid;place-items:center;font-size:48px;color:#f2d39c;box-shadow:0 0 35px #d4b47625,inset 0 0 30px #d4b47618;animation:destiny-ring 2.8s ease both}
.destiny-reading{font-family:serif;font-size:clamp(15px,4vw,21px);animation:destiny-reading 2.8s linear both}
.destiny-ready{position:absolute;bottom:20px;left:0;width:100%;font-family:serif;font-size:24px;color:#ffe3ad;animation:destiny-ready 2.8s linear both}
.destiny-particles{position:absolute;inset:0;pointer-events:none;z-index:-1}.mote{position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:#f2d5a2;box-shadow:0 0 12px #f5dbaa;animation:mote-gather 2.8s ease both}
.mote-0{--x:-42vw;--y:-30vh}.mote-1{--x:42vw;--y:-30vh}.mote-2{--x:-36vw;--y:30vh}.mote-3{--x:38vw;--y:30vh}.mote-4{--x:-45vw;--y:0vh}.mote-5{--x:45vw;--y:0vh}.mote-6{--x:0vw;--y:-42vh}.mote-7{--x:0vw;--y:42vh}.mote-8{--x:25vw;--y:-35vh}.mote-9{--x:-25vw;--y:35vh}.mote-10{--x:-28vw;--y:-24vh}.mote-11{--x:28vw;--y:24vh}
@keyframes destiny-dim{0%{opacity:1;transform:scale(1)}35%{opacity:.28}75%,100%{opacity:0;transform:scale(.97)}}
@keyframes destiny-veil{0%{opacity:.1}50%{opacity:.8}100%{opacity:1}}
@keyframes confirmed-in{0%{opacity:1}24%{opacity:1}42%,100%{opacity:0}}
@keyframes destiny-ring{0%{opacity:0;transform:scale(1.4) rotate(-30deg)}30%{opacity:.4}72%{opacity:1;transform:scale(.85) rotate(20deg)}100%{opacity:.4;transform:scale(1) rotate(30deg)}}
@keyframes destiny-reading{0%,20%{opacity:0}37%,70%{opacity:1}80%,100%{opacity:0}}
@keyframes destiny-ready{0%,74%{opacity:0;transform:translateY(6px)}84%,100%{opacity:1;transform:translateY(0)}}
@keyframes mote-gather{0%,12%{opacity:0;transform:translate(var(--x),var(--y)) scale(.3)}25%{opacity:.8}78%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(0,0) scale(.2)}}
.effects-off .destiny-stage{display:none}
/* Keep the opaque cover across phase changes; only its contents animate. */
.reveal-stage{opacity:1;animation:none}
body.reveal-active #main>.paper{visibility:hidden}
/* Super rare: one reveal, then a longer celestial celebration. */
.reveal-stage.ultra{background:radial-gradient(ellipse at 50% 42%,#313650,#211538 45%,#080d20 78%)}
.ultra-nebula{position:absolute;inset:-15%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 25% 35%,#8656b963,transparent 46%),radial-gradient(ellipse at 75% 65%,#46acbf52,transparent 48%),radial-gradient(ellipse at center,#d6a46130,transparent 55%);animation:ultra-nebula 8.4s ease both}
.ultra-sunburst{position:absolute;inset:-35%;pointer-events:none;background:repeating-conic-gradient(from 12deg,transparent 0deg 11deg,#dfcbff20 12deg 13deg,transparent 15deg 24deg);mask-image:radial-gradient(ellipse,#0000 15%,#0008 32%,transparent 68%);animation:ultra-rays 8.4s ease both}
.ultra-rings{position:absolute;width:min(115vw,820px);aspect-ratio:1;pointer-events:none;animation:ultra-rings 8.4s ease both}
.ultra-rings i{position:absolute;inset:8%;border-radius:50%;border:1px solid #e6c77988;box-shadow:0 0 25px #ccb07618,inset 0 0 25px #ccb07618;transform:rotate(-25deg) scaleY(.63)}
.ultra-rings i:nth-child(2){inset:15%;border-color:#91e5f699;transform:rotate(32deg) scaleY(.7)}
.ultra-rings i:nth-child(3){inset:2%;border:1px dashed #d6a9ec66;transform:rotate(70deg) scaleY(.72)}
.ultra-shards{position:absolute;inset:0;pointer-events:none}.shard{position:absolute;left:50%;top:50%;font:22px/1 serif;color:#e5d1ff;text-shadow:0 0 14px #97e6ee;animation:ultra-shard 8.4s ease both}
.shard:nth-child(3n){color:#e4c786;font-size:14px}.shard:nth-child(3n+1){color:#92e5ec}
.shard-0{--sx:-42vw;--sy:-32vh}.shard-1{--sx:42vw;--sy:32vh}.shard-2{--sx:-34vw;--sy:25vh}.shard-3{--sx:34vw;--sy:-25vh}.shard-4{--sx:-40vw;--sy:0vh}.shard-5{--sx:40vw;--sy:0vh}.shard-6{--sx:0vw;--sy:-38vh}.shard-7{--sx:0vw;--sy:38vh}.shard-8{--sx:23vw;--sy:-36vh}.shard-9{--sx:-23vw;--sy:36vh}.shard-10{--sx:-28vw;--sy:-24vh}.shard-11{--sx:28vw;--sy:24vh}.shard-12{--sx:-16vw;--sy:-33vh}.shard-13{--sx:16vw;--sy:33vh}.shard-14{--sx:-40vw;--sy:17vh}.shard-15{--sx:40vw;--sy:-17vh}
.ultra-honor{position:absolute;top:max(35px,6dvh);left:5%;width:90%;text-align:center;pointer-events:none;animation:ultra-honor 8.4s ease both;z-index:2}
.ultra-honor span{display:block;font-family:Georgia,serif;font-size:clamp(18px,4.5vw,29px);letter-spacing:6px;color:#ffe3a0;text-shadow:0 0 20px #c1a0ef99,0 0 40px #dbb77755}
.ultra-honor small{display:block;margin-top:5px;color:#dfcdea;font-family:serif;font-size:12px;letter-spacing:2px}
.reveal-stage.ultra .reveal-aura{animation:ultra-aura 8.4s ease both}
.reveal-stage.ultra .reveal-stars{animation:ultra-stars 8.4s ease both}
.reveal-stage.ultra .reveal-orbit{animation:ultra-rings 8.4s ease both}
.reveal-stage.ultra .card-stage{width:min(68vw,300px);max-height:58dvh}
@keyframes ultra-nebula{0%{opacity:.15;transform:scale(1.2) rotate(-8deg)}30%{opacity:.45}48%{opacity:.85;transform:scale(1) rotate(0deg)}80%{opacity:.75}100%{opacity:.5;transform:scale(1.12) rotate(8deg)}}
@keyframes ultra-rays{0%,24%{opacity:0;transform:scale(.5) rotate(-8deg)}36%{opacity:.7;transform:scale(1) rotate(0)}75%{opacity:.35}100%{opacity:.15;transform:scale(1.2) rotate(18deg)}}
@keyframes ultra-rings{0%{opacity:0;transform:scale(.6) rotate(-25deg)}24%{opacity:.5}38%{opacity:.9;transform:scale(1) rotate(0)}100%{opacity:.4;transform:scale(1.1) rotate(35deg)}}
@keyframes ultra-shard{0%,28%{opacity:0;transform:translate(0,0) scale(.2)}35%{opacity:1}70%{opacity:.85;transform:translate(var(--sx),var(--sy)) scale(1) rotate(90deg)}100%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(.6) rotate(160deg)}}
@keyframes ultra-honor{0%,32%{opacity:0;transform:translateY(8px) scale(.92)}40%,85%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:.8}}
@keyframes ultra-aura{0%{opacity:0;transform:scale(1.3)}28%{opacity:.6;transform:scale(.8)}38%{opacity:.95;transform:scale(1.2)}100%{opacity:.55;transform:scale(1.3) rotate(18deg)}}
@keyframes ultra-stars{0%{opacity:0;transform:scale(1.4) rotate(-8deg)}30%{opacity:.8;transform:scale(.85)}40%{opacity:1;transform:scale(1)}100%{opacity:.45;transform:scale(1.3) rotate(12deg)}}
@media(max-height:700px){.reveal-stage.ultra>.eyebrow{visibility:hidden}.ultra-honor{top:20px}.ultra-honor span{font-size:18px;letter-spacing:4px}.ultra-honor small{font-size:10px}.reveal-stage.ultra .card-stage{max-height:54dvh}}
@media(max-height:600px) and (orientation:landscape){.ultra-honor{top:10px;width:30%;left:2%}.ultra-honor span{font-size:14px;letter-spacing:1px}.ultra-honor small{font-size:10px}.reveal-stage.ultra .card-stage{height:65dvh;max-height:none}.reveal-stage.ultra>.eyebrow{display:none}}
@media(max-height:600px) and (orientation:landscape){.destiny-ring{height:70px;width:70px;font-size:28px;margin:4px auto}.destiny-content{padding:0}.confirmed-text{margin:3px}.destiny-ready{bottom:0}.destiny-reading{margin:8px}}

/* The symbol and gathering particles share one geometric centre. */
.destiny-focus{position:relative;width:150px;height:150px;margin:15px auto}
.destiny-focus .destiny-ring{width:100%;height:100%;margin:0}
.destiny-ring svg{display:block;width:48px;height:48px;fill:none;stroke:currentColor;stroke-width:4}
.destiny-focus .destiny-particles{z-index:1}
.destiny-focus .mote{margin:-2px 0 0 -2px}
/* A single heading block avoids collision with the generic reveal eyebrow. */
.reveal-stage.ultra>.eyebrow{display:none}
.ultra-honor{display:flex;flex-direction:column;gap:8px;line-height:1.5}
.ultra-honor span,.ultra-honor small{position:static;margin:0;line-height:1.5}
@media(max-height:600px) and (orientation:landscape){.destiny-focus{width:70px;height:70px;margin:4px auto}.destiny-ring svg{width:28px;height:28px}}
