/* The jump belongs to the world. This layer carries only light and typography. */
.warp-journey{position:absolute;z-index:5;inset:0;overflow:hidden;pointer-events:none;color:var(--ivory,#f2f0df);isolation:isolate}
.warp-journey[hidden]{display:none}
.warp-iris{position:absolute;inset:-20%;opacity:0;background:radial-gradient(ellipse at 65% 45%,transparent 15%,#11102000 32%,#14101f70 78%);transition:opacity .8s ease;mix-blend-mode:multiply}
.warp-light-sweep{position:absolute;inset:-80%;opacity:0;transform:translate3d(-30%,-10%,0) rotate(-24deg);background:linear-gradient(90deg,transparent 41%,#c7a4ff08 45%,#e7ddff24 49.5%,#dcf9b53d 50%,#c7a4ff0a 54%,transparent 59%);mix-blend-mode:screen}
.warp-coordinate{position:absolute;top:clamp(108px,16vh,170px);left:7.3%;display:flex;flex-direction:column;align-items:flex-start;gap:10px;opacity:0;transform:translateY(14px);animation:warp-type-enter .5s .1s cubic-bezier(.2,.7,.2,1) forwards;text-shadow:0 2px 26px #07100b}
.warp-coordinate-label,.warp-location,.warp-stage,.warp-flight-line{font:10px/1.5 var(--mono,monospace);letter-spacing:.16em}
.warp-coordinate-label{color:#f1eee3a6}
.warp-location{font-size:9px;color:var(--lime,#d6f596);letter-spacing:.15em}
.warp-digits{display:flex;gap:1px;font:400 clamp(22px,3vw,40px)/1 var(--mono,monospace);letter-spacing:-.06em;perspective:300px}
.warp-digits i{display:inline-block;font-style:normal;width:.62em;text-align:center;transform-origin:50% 60%;backface-visibility:hidden}
.warp-digits i.separator{width:.38em;color:var(--lime,#d6f596);opacity:.65}
.warp-copy{position:absolute;left:7.1%;right:7%;bottom:clamp(140px,19vh,200px);transform-origin:left bottom;text-shadow:0 4px 50px #08120d80;transition:opacity .4s,transform .8s cubic-bezier(.16,.75,.25,1),filter .5s;animation:warp-type-enter .65s cubic-bezier(.2,.7,.2,1) both}
.warp-stage{display:block;color:var(--lime,#d6f596);margin-bottom:20px}
.warp-copy h2{white-space:pre-line;font:800 italic clamp(72px,9.3vw,164px)/.81 var(--display,sans-serif);letter-spacing:-.045em;margin:0;max-width:11ch;text-transform:uppercase;text-wrap:balance}
.warp-copy p{font:400 clamp(12px,1.1vw,16px)/1.6 var(--body,sans-serif);margin:25px 0 0;color:#f1eee3bc;max-width:30em}
.warp-copy p:empty{display:none}
.warp-flight-line{position:absolute;left:7.3%;right:7.3%;bottom:clamp(101px,12vh,126px);display:flex;gap:20px;align-items:center;font-size:9px;color:#e7eadd9c;transition:opacity .4s}
.warp-flight-line i{height:1px;flex:1;max-width:210px;position:relative;background:linear-gradient(90deg,#d6f59677,#d6f5960a);overflow:hidden}
.warp-flight-line i::after{content:'';position:absolute;inset:0;width:35%;background:linear-gradient(90deg,transparent,#d6f596,transparent);transform:translateX(-120%);animation:warp-path-light 1.1s ease-in-out infinite}
.warp-journey[data-stage="launch"] .warp-iris{opacity:.55}
.warp-journey[data-stage="launch"] .warp-light-sweep{animation:warp-ignition .9s cubic-bezier(.4,0,.8,.4) both}
.warp-journey[data-stage="travel"] .warp-iris{opacity:1}
.warp-journey[data-stage="travel"] .warp-light-sweep{animation:warp-through 2.3s ease-in-out both}
.warp-journey[data-stage="travel"] .warp-copy{animation:none;opacity:.78;transform:translate3d(0,5px,0) scale(.97);filter:blur(.35px)}
.warp-journey[data-stage="travel"] .warp-stage{color:#d4c2f5}
.warp-journey[data-stage="reveal"] .warp-copy{animation:warp-arrival .7s cubic-bezier(.16,.8,.25,1) both}
.warp-journey[data-stage="reveal"] .warp-light-sweep{animation:warp-arrival-light .9s ease-out both}
.warp-journey[data-stage="reveal"] .warp-iris{opacity:0}
.warp-journey[data-stage="reveal"] .warp-flight-line i::after{animation:none;transform:translateX(200%);transition:transform .5s}
.warp-journey[data-stage="settle"] .warp-copy{animation:none;opacity:0;transform:translate3d(0,-22px,0);filter:blur(4px)}
.warp-journey[data-stage="settle"] .warp-coordinate,.warp-journey[data-stage="settle"] .warp-flight-line{animation:none;opacity:0;transition:opacity .3s}
body[data-warp] [data-warp]{cursor:progress}
/* Animate direct children as the mobile layout may use display:contents. */
.arrival-copy>*{transition:opacity .65s ease,filter .65s ease,translate .7s cubic-bezier(.2,.7,.2,1)}
.portrait-motion{transform-origin:52% 48%;transition:transform 1s cubic-bezier(.22,.68,.22,1),filter .8s,opacity .8s}
.portrait-caption,.deck-footnote{transition:opacity .5s}
body[data-warp="launch"] .arrival-copy>*,body[data-warp="travel"] .arrival-copy>*,body[data-warp="reveal"] .arrival-copy>*{opacity:0;filter:blur(5px);translate:0 -13px;pointer-events:none}
body[data-warp="launch"] .portrait-motion{transform:translate3d(1.5%,0,0) scale(.82) rotate(-3deg);filter:brightness(1.3) saturate(.8);transition-duration:.9s}
body[data-warp="travel"] .portrait-motion{transform:translate3d(5%,-4%,0) scale(.075) rotate(-14deg);filter:blur(7px) brightness(2);opacity:0;transition:transform .65s cubic-bezier(.7,0,.8,.4),opacity .45s .15s,filter .6s}
body[data-warp="reveal"] .portrait-motion{transform:translate3d(0,0,0) scale(.92);filter:blur(0) brightness(1.12);opacity:1;transition:transform .85s cubic-bezier(.1,.8,.2,1),opacity .65s,filter .8s}
body[data-warp="settle"] .portrait-motion{transform:translate3d(0,0,0) scale(1);filter:blur(0) brightness(1);opacity:1}
body[data-warp] .portrait-caption,body[data-warp] .deck-footnote{opacity:0;pointer-events:none}
body[data-warp] .capp{animation-play-state:paused}
#main-viewport>.scene-view:not(.deck-view){transition:opacity .4s}
body[data-warp="launch"] #main-viewport>.scene-view:not(.deck-view),body[data-warp="travel"] #main-viewport>.scene-view:not(.deck-view),body[data-warp="reveal"] #main-viewport>.scene-view:not(.deck-view){opacity:0;transition:opacity .4s}
body.page-hidden .warp-journey *{animation-play-state:paused!important}
@keyframes warp-type-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes warp-arrival{from{opacity:0;transform:translateY(25px);filter:blur(10px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes warp-path-light{to{transform:translateX(400%)}}
@keyframes warp-ignition{0%{opacity:0;transform:translate3d(-35%,0,0) rotate(-24deg)}70%{opacity:.65}100%{opacity:0;transform:translate3d(25%,0,0) rotate(-24deg)}}
@keyframes warp-through{0%{opacity:0;transform:translate3d(-24%,0,0) rotate(-24deg)}25%{opacity:.5}70%{opacity:.2}100%{opacity:0;transform:translate3d(24%,0,0) rotate(-24deg)}}
@keyframes warp-arrival-light{0%{opacity:.8;transform:translate3d(5%,0,0) rotate(-24deg)}100%{opacity:0;transform:translate3d(28%,0,0) rotate(-24deg)}}
@media(max-width:800px){
 .warp-coordinate{top:109px;left:7%;gap:9px}.warp-coordinate-label,.warp-location{font-size:9px}.warp-digits{font-size:28px}.warp-copy{left:7%;right:7%;bottom:28%}.warp-copy h2{font-size:clamp(67px,12.5vw,104px);max-width:10ch}.warp-stage{font-size:9px;letter-spacing:.11em;margin-bottom:17px}.warp-copy p{font-size:13px;max-width:25ch;margin-top:20px}.warp-flight-line{left:7%;right:7%;bottom:116px;gap:12px;font-size:8px;letter-spacing:.09em}.warp-flight-line i{max-width:120px}.warp-iris{background:radial-gradient(ellipse at 65% 45%,transparent 10%,#14101f00 25%,#14101f99 80%)}
}
@media(max-height:650px) and (min-width:801px){.warp-coordinate{top:91px}.warp-copy{bottom:125px}.warp-copy h2{font-size:92px}.warp-copy p{margin-top:14px}.warp-stage{margin-bottom:12px}.warp-flight-line{bottom:90px}}
@media(max-height:520px){.warp-coordinate{top:83px;left:auto;right:7%;align-items:flex-end}.warp-copy{bottom:110px}.warp-copy h2{font-size:clamp(56px,10vw,76px)}.warp-copy p{display:none}.warp-stage{max-width:23ch}.warp-flight-line{bottom:86px}}
@media(prefers-reduced-motion:reduce){
 .warp-journey *,body[data-warp] .portrait-motion{animation:none!important;transition:opacity .15s!important;transform:none!important;filter:none!important}
 .warp-coordinate{opacity:1}.warp-light-sweep,.warp-iris{display:none}.warp-copy h2{font-size:clamp(58px,8vw,120px)}.warp-flight-line i::after{animation:none}.arrival-copy>*{transition:opacity .15s!important;filter:none!important;translate:none!important}body[data-warp="travel"] .portrait-motion{opacity:.35}
}
