/* NOVAPLAY · Phoenix Rise. All selectors are scoped to the disposable overlay. */
.np-splash{--np-gold:#ebc579;--np-muted:#b7ac97;--np-tempo:1;position:fixed;inset:0;z-index:2147483000;isolation:isolate;overflow:hidden;box-sizing:border-box;background:#030303;color:#eee5d3;font:13px/1.5 Arial,"Microsoft YaHei",sans-serif;display:grid;place-items:center;padding:calc(24px + env(safe-area-inset-top,0px)) calc(24px + env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) calc(24px + env(safe-area-inset-left,0px));opacity:1;transition:opacity 280ms ease;touch-action:manipulation}
.np-splash *{box-sizing:border-box}.np-splash[data-tempo=swift]{--np-tempo:.64}.np-splash[data-state=exiting]{opacity:0;pointer-events:none}.np-splash[data-state=disposed]{display:none}.np-splash[hidden]{display:none!important}
.np-atmosphere{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 46%,#97714216 0,transparent 45%);opacity:0;animation:np-atmosphere calc(2.6s * var(--np-tempo)) ease forwards}
.np-composition{position:relative;width:100%;max-width:520px;display:flex;align-items:center;flex-direction:column;transform:translateY(-12px)}
.np-brand{width:min(78vw,49vh,430px);height:min(78vw,49vh,430px);max-width:100%;position:relative;flex:none;mix-blend-mode:screen}
.np-brand svg{width:100%;height:100%;overflow:visible;display:block;mix-blend-mode:screen}.np-brand-image{mix-blend-mode:screen}.np-phoenix{opacity:0;animation:np-phoenix calc(.43s * var(--np-tempo)) linear both}
.np-wing{transform-box:view-box;transform-origin:56.3% 51.5%;animation:np-wingsnap calc(.62s * var(--np-tempo)) linear both}
.np-wordmark{opacity:0;mix-blend-mode:normal;transform-origin:50% 64%;animation:np-wordmark calc(.22s * var(--np-tempo)) cubic-bezier(.12,.82,.2,1) calc(.42s * var(--np-tempo)) both}
.np-brand>svg{position:relative;z-index:2;pointer-events:none;mix-blend-mode:normal}.np-letter{animation:np-letter-hop 5s linear calc(var(--letter-delay) * var(--np-tempo)) infinite both}.np-splash[data-tempo=swift] .np-letter{animation-name:np-letter-hop-swift}.np-reset-motion .np-wordmark,.np-reset-motion .np-letter{animation:none!important}
.np-traces{fill:none;stroke:#ffe5a2;stroke-width:3.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px #efb84d)}
.np-trace{stroke-dasharray:1;stroke-dashoffset:1;animation:np-trace calc(.52s * var(--np-tempo)) cubic-bezier(.12,.8,.2,1) calc(var(--d) * var(--np-tempo)) both}
.np-spark{fill:#fff0bf;opacity:0;animation:np-spark calc(.48s * var(--np-tempo)) ease calc(var(--d) * var(--np-tempo)) both;filter:drop-shadow(0 0 9px #f2bc4b)}
.np-orbit{display:none}
.np-halo{position:absolute;inset:12%;border-radius:50%;background:radial-gradient(ellipse,#e0ac480b,transparent 64%);opacity:0;animation:np-breathe 4.6s ease-in-out calc(1s * var(--np-tempo)) infinite}
.np-loading{width:min(248px,72vw);text-align:center;margin-top:28px;position:relative;min-height:4px}
.np-track{height:2px;border-radius:2px;background:#e9c68422;overflow:hidden;position:relative}
.np-fill{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#9d7131,#f5d99e);transition:transform 160ms linear;box-shadow:0 0 12px #eab95755}
.np-splash[data-progress=unknown] .np-fill{transform:scaleX(0)!important}.np-splash[data-progress=unknown] .np-track:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#eed6a6aa,transparent);width:35%;animation:np-indeterminate 2.2s ease-in-out infinite}
.np-sr-only{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.np-retry{appearance:none;width:44px;height:44px;min-height:44px;border:1px solid #a3844d;background:#1c1710;color:#f5ddad;padding:10px;border-radius:50%;cursor:pointer;margin-top:18px}.np-retry svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.np-retry:hover{background:#322615}.np-retry:focus-visible{outline:2px solid #ffdf9d;outline-offset:4px}.np-retry[hidden]{display:none}.np-fallback{display:none;position:absolute;inset:0;align-items:center;justify-content:center;color:#edcf8e;font:bold clamp(24px,7vw,46px)/1.1 Georgia,serif;letter-spacing:.06em}.np-brand.np-image-failed svg{display:none}.np-brand.np-image-failed .np-fallback{display:flex}
.np-splash[data-state=error] .np-track{background:#ad81554d}.np-splash[data-state=error] .np-track:after{display:none}.np-splash[data-state=error] .np-fill{background:#c49d68}.np-splash[data-state=error] .np-status{color:#f0d6ab}
.np-splash[data-paused=true] *{animation-play-state:paused!important}
.np-splash[data-intro=preparing] .np-brand{visibility:hidden}.np-splash[data-intro=preparing] .np-brand *{animation-play-state:paused!important}
@keyframes np-phoenix{0%{opacity:0}37%,74%{opacity:.48}100%{opacity:1}}
@keyframes np-wingsnap{0%{transform:scale(.27,.76) rotate(-8deg)}51.61%{transform:scale(.235,.74) rotate(-8deg);animation-timing-function:cubic-bezier(.08,.84,.12,1)}74.19%{transform:scale(1.005,1.002) rotate(.15deg);animation-timing-function:cubic-bezier(.2,0,.4,1)}100%{transform:none}}
@keyframes np-wordmark{0%{opacity:0;transform:translateY(5px);clip-path:inset(0 50%)}100%{opacity:1;transform:none;clip-path:inset(0)}}
/* One 340 ms hop within each 5 s cycle. Only translation changes; glyphs never fade or swap. */
@keyframes np-letter-hop{0%{transform:translateY(0);animation-timing-function:cubic-bezier(.18,.65,.3,1)}2.856%{transform:translateY(-46px);animation-timing-function:cubic-bezier(.55,0,.82,.4)}6.8%,100%{transform:translateY(0)}}
@keyframes np-letter-hop-swift{0%{transform:translateY(0);animation-timing-function:cubic-bezier(.18,.65,.3,1)}1.82784%{transform:translateY(-46px);animation-timing-function:cubic-bezier(.55,0,.82,.4)}4.352%,100%{transform:translateY(0)}}
@keyframes np-trace{0%{stroke-dashoffset:1;opacity:0}12%{opacity:.9}67%{stroke-dashoffset:0;opacity:.9}100%{stroke-dashoffset:0;opacity:0}}
@keyframes np-spark{0%,100%{opacity:0}38%{opacity:.8}75%{opacity:.22}}
@keyframes np-orbit{0%{opacity:0;transform:scale(.78) rotate(-18deg)}35%{opacity:.32}100%{opacity:0;transform:scale(1.08) rotate(18deg)}}
@keyframes np-copy{to{opacity:1}}@keyframes np-atmosphere{to{opacity:1}}@keyframes np-breathe{0%,100%{opacity:.25;transform:scale(.96)}50%{opacity:.85;transform:scale(1.05)}}@keyframes np-indeterminate{0%{transform:translateX(-115%)}100%{transform:translateX(400%)}}
@media(max-height:480px){.np-composition{transform:none}.np-brand{width:min(55vh,42vw,270px);height:min(55vh,42vw,270px)}.np-loading{margin-top:18px}.np-splash[data-state=error] .np-brand{width:43vh;height:43vh}.np-splash[data-state=error] .np-loading{margin-top:9px}}
@media(max-width:360px){.np-loading{margin-top:24px}}
.np-splash[data-reduced=true] *,.np-splash[data-reduced=true] *:before,.np-splash[data-reduced=true] *:after{animation:none!important;transition:none!important}.np-splash[data-reduced=true] .np-phoenix,.np-splash[data-reduced=true] .np-wordmark,.np-splash[data-reduced=true] .np-signature,.np-splash[data-reduced=true] .np-atmosphere{opacity:1;transform:none;clip-path:none}.np-splash[data-reduced=true] .np-traces,.np-splash[data-reduced=true] .np-orbit,.np-splash[data-reduced=true] .np-spark{display:none}.np-splash[data-reduced=true][data-progress=unknown] .np-track:after{width:100%;opacity:.35}
.np-fx-canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}.np-advanced>svg>g:not(.np-wordmark){visibility:hidden}.np-splash[data-fx=webgl] .np-halo{background:radial-gradient(ellipse,#f0b83712,transparent 68%)}
@media(prefers-reduced-motion:reduce){.np-splash{transition:none}.np-splash *,.np-splash *:before,.np-splash *:after{animation:none!important;transition:none!important}.np-splash .np-phoenix,.np-splash .np-wordmark,.np-splash .np-signature,.np-splash .np-atmosphere{opacity:1;transform:none;clip-path:none}.np-splash .np-traces,.np-splash .np-orbit,.np-splash .np-spark{display:none}.np-splash[data-progress=unknown] .np-track:after{width:100%;opacity:.35}}
