.archive-portal-veil{position:fixed;inset:0;z-index:10000;pointer-events:none;opacity:0;background:radial-gradient(ellipse at var(--portal-x,50%) var(--portal-y,50%),transparent 0%,rgb(232 184 74 / .16) 28%,rgb(122 31 31 / .4) 56%,#101612 100%)}
.archive-portal-message{position:absolute;left:24px;right:24px;bottom:10vh;text-align:center;font:600 18px 'Cinzel',serif;letter-spacing:.08em;color:#e6d3a8;text-shadow:0 2px 12px #101612}
.archive-portal-veil::before{content:"";position:absolute;inset:0;opacity:0;background:repeating-linear-gradient(to bottom,transparent 0 9px,rgb(232 184 74 / .12) 10px 11px,transparent 12px 17px)}
@media(prefers-reduced-motion:no-preference){
 body.portal-departing .archive-portal-veil{animation:archive-veil .62s ease-in both}
 body.portal-departing main{animation:archive-dissolve .62s ease-in both;transform-origin:var(--portal-x,50%) var(--portal-y,50%)}
 body.portal-frequency .archive-portal-veil::before{animation:frequency-bands .76s steps(9,end) both}
 body.portal-frequency main{animation:frequency-depart .76s steps(9,end) both;mask-image:repeating-linear-gradient(to bottom,#000 0 8px,transparent 9px 12px)}
 .archive-scene[data-depth-active] .scene-viewport{transform:perspective(1000px) translateY(var(--archive-depth,0px)) rotateX(var(--archive-tilt,0deg));will-change:transform}
 @keyframes archive-veil{from{opacity:0}to{opacity:1}}
 @keyframes archive-dissolve{from{opacity:1;transform:scale(1);filter:blur(0)}to{opacity:.08;transform:scale(.94);filter:blur(6px)}}
 @keyframes frequency-bands{0%{opacity:0;transform:scaleY(.7)}45%{opacity:.8}100%{opacity:0;transform:scaleY(1.14)}}
 @keyframes frequency-depart{0%{opacity:1;filter:none;transform:scale(1)}40%{opacity:.82;filter:contrast(1.3);transform:scaleX(1.012)}100%{opacity:0;filter:blur(7px);transform:scaleX(.9)}}
}
@media(prefers-reduced-motion:reduce){.archive-portal-veil{display:none}.scene-viewport{transform:none!important}}
