/* Shared presentation; components and their React runtime are bundled locally. */
#loading.phase-loading{position:fixed;inset:0;z-index:200;background:#0b0d15;gap:0;opacity:1;transition:opacity .4s ease;overflow:hidden}
#loading.phase-loading.is-ready{opacity:0;pointer-events:none}
.phase-load-content{display:flex;flex-direction:column;align-items:center;gap:0}
.phase-load-ball{width:min(320px,78vw);height:min(320px,78vw)}
.phase-load-ball canvas{width:100%;height:100%;pointer-events:none}
.phase-load-track{width:148px;height:2px;margin-top:-10px;background:#30334a;overflow:hidden;border-radius:2px}
.phase-load-track>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#767db2,#b9b7d8 65%,#e6ac80);transform-origin:left;transition:transform .35s ease;box-shadow:0 0 8px #b9b7d860}
.phase-ball-fallback{width:62%;height:62%;margin:19%;border-radius:50%;background:radial-gradient(circle at 35% 25%,#b9b7d8aa,transparent 30%),radial-gradient(circle at 50% 60%,#37336566,#0b0d15 64%,#b9b7d8 69%,transparent 71%);box-shadow:inset 0 0 24px #8c86c744}
body.journey-loading phase-navigation{visibility:hidden;pointer-events:none}
.opening{isolation:isolate}
#phase-home-atmosphere{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;mask-image:linear-gradient(180deg,transparent,#000 20%,#000 72%,transparent);filter:saturate(1.05)}
#phase-home-atmosphere::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b0d15c9,transparent 65%),radial-gradient(ellipse at 73% 43%,#0b0d15c0,transparent 60%);pointer-events:none}
.opening-object{z-index:1}.opening-bottom{z-index:2}
@media(max-width:760px){#phase-home-atmosphere{opacity:.38}.phase-load-ball{width:260px;height:260px}}
@media(prefers-reduced-motion:reduce){#loading.phase-loading,.phase-load-track>span{transition:none}}

