/* One non-interactive renderer; sponsor strips and linked banner artwork are untouched. */
.fortune-fx-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none!important;z-index:2147482990;contain:strict;user-select:none}
/* Keep the animated rings beneath the calendar and its dimmed backdrop while it is open. */
body[data-fortune-fx="main"]:has(>#rokuyoCal:not([hidden]))>.fortune-fx-canvas{z-index:10999}
.fortune-motion-on .fortune-title-foil{animation:fortuneTitleFoil 9s ease-in-out infinite}
@keyframes fortuneTitleFoil{0%,65%,100%{filter:brightness(1)}78%{filter:brightness(1.14)}88%{filter:brightness(1.03)}}
/* The new renderer owns these atmospheric layers, preventing doubled rings and excessive points. */
:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="main"] .ts-sky,:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="main"] .cm-dust,
:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="main"] .cm-orbit,:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="main"] .hero-stars,
:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="menu"] .dt-orbit,:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="menu"] .dt-mote,
:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="menu"] .dt-mist,:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="menu"] .dt-aurora,
:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="menu"] .dt-light-veil{display:none!important}
:is(.fortune-fx-ready,.fortune-fx-enabled) [data-fortune-fx="main"] .restored-hero::after{display:none!important}
/* These explicit opt-ins intentionally retain the same visual experience with OS reduced motion. */
.fortune-motion-on body.hero2 .hero-art::before{animation:sacredHeroDrift 12s linear infinite alternate!important}
.fortune-motion-on body.hero2 .hero-art::after{animation:sacredHeroDrift 12s linear infinite alternate,heroSwap 24s ease-in-out infinite!important}
.fortune-motion-on .sister-touch-light{display:block!important}
.fortune-motion-on .sister-touch-light,.fortune-motion-on .reading-button-halo{background:transparent!important;box-shadow:0 0 17px 3px #c1a57166}
.fortune-motion-on .hero-star{animation:fortuneSoftStar 6s ease-in-out infinite!important}
@keyframes fortuneSoftStar{0%,100%{opacity:.2}50%{opacity:.6}}
/* Give an image transition a painted edge without changing the approved artwork or its crop. */

/* Preserve the previously requested slow meteor and idle portraits in the same mode. */
.fortune-motion-on [data-fortune-fx="menu"] .dt-streak{display:block!important;animation:dtStreak 10s linear infinite!important}
.fortune-motion-on body:not(.theme-pop) .home-portal .chara-img{animation:portraitBreathe 5.5s ease-in-out var(--portrait-delay,0s) infinite!important}
/* A deliberate, short focal moment for the selected sign; never intercepts input. */
.fortune-focus{position:fixed;inset:0;z-index:2147482995;pointer-events:none!important;background:radial-gradient(circle at var(--focus-x) var(--focus-y),transparent 115px,#35284a26 340px);animation:fortuneFocusVeil 1s ease-out both}
.fortune-focus-core{position:absolute;left:var(--focus-x);top:var(--focus-y);width:174px;height:174px;margin:-87px 0 0 -87px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,#fffaf1 20%,#f2e7f8ed 57%,#d8c0eb80 72%,transparent 74%);box-shadow:0 0 30px 12px #cab0e680,0 0 70px 22px #e7c89655;animation:fortuneFocusBloom 1s cubic-bezier(.2,.7,.2,1) both}
.fortune-focus-core::before,.fortune-focus-core::after{content:"";position:absolute;inset:-13px;border-radius:50%;border:1px solid #ddba72;box-shadow:0 0 10px #e8c58088;animation:fortuneFocusRing 1s ease-out both}
.fortune-focus-core::after{inset:-26px;border-color:#bda3d2aa;animation-delay:.08s}
.fortune-focus-core img{position:relative;width:100px;height:100px;object-fit:contain;filter:drop-shadow(0 4px 5px #9f79b044)}
.fortune-focus-core b{position:relative;margin-top:2px;color:#6b497c;font:700 19px/1.4 "Yu Gothic",sans-serif;letter-spacing:.08em;text-shadow:0 1px 0 #fff}
@keyframes fortuneFocusVeil{0%{opacity:0}16%,70%{opacity:1}100%{opacity:0}}
@keyframes fortuneFocusBloom{0%{transform:scale(.64);opacity:0}22%{transform:scale(1);opacity:1}70%{transform:scale(1.055);opacity:1}100%{transform:scale(1.15);opacity:0}}
@keyframes fortuneFocusRing{0%{transform:scale(.6);opacity:0}24%{opacity:.9}100%{transform:scale(1.28);opacity:0}}
