.world-transition[hidden]{display:none}.world-transition{position:fixed;inset:0;z-index:1000;overflow:hidden;pointer-events:auto;isolation:isolate}.transition-lift{position:absolute;inset:0;will-change:transform}.transition-surface{position:absolute;inset:0 0 -400px;background:var(--destination);z-index:2}.transition-actor{position:absolute;left:68%;top:0;width:0;height:0;z-index:1;transform:scale(.34);transform-origin:0 0}.character-pose{position:absolute;width:320px;height:600px;background:url('assets/andres-poses.png') no-repeat;background-size:2172px 724px;opacity:0}.pose-grab{left:-220px;top:-550px;background-position:-310px 0}.pose-pull{left:-270px;top:-360px;background-position:-920px 0}.pose-lift{left:-295px;top:-220px;background-position:-1540px 0}.landing:before{content:'';position:absolute;inset:0;background:var(--preview-color,#ff6b35);opacity:0;pointer-events:none;transition:opacity .2s;z-index:0}.landing:has(.mk:focus-visible){--preview-color:var(--marketing-surface)}.landing:has(.sc:focus-visible){--preview-color:var(--supply-surface)}.landing:has(.world-choice:focus-visible):before{opacity:.065}@media(hover:hover) and (pointer:fine){.landing:has(.mk:hover){--preview-color:var(--marketing-surface)}.landing:has(.sc:hover){--preview-color:var(--supply-surface)}.landing:has(.world-choice:hover):before{opacity:.065}}@media(max-width:650px){.transition-actor{left:74%;transform:scale(.27)}}@media(prefers-reduced-motion:reduce){.landing:before{transition:none}.transition-actor{display:none}}

.transition-snapshot{position:absolute;top:0;left:0;width:100%;pointer-events:none}.transition-snapshot .world-enter{animation:none!important}

/* Keep the body in front of the surface so the lifting effort stays legible. */
.transition-actor{z-index:3;left:66%;transform:scale(.46);filter:drop-shadow(0 3px 2px #00000020)}.character-pose{height:600px}.transition-surface{box-shadow:0 -1px 0 #ffffff30}.pose-grab,.pose-pull,.pose-lift{background-position:initial}@media(max-width:650px){.transition-actor{left:79%;transform:scale(.34)}}

/* Home is a dark curtain lowered from above by the rope character. */
.returning-home .transition-surface{inset:auto 0 0;height:calc(200dvh + 400px);box-shadow:0 1px 0 #ffffff30}.returning-home .transition-actor{left:24%;filter:none}.returning-home .transition-actor:before{content:'';position:absolute;left:-1px;bottom:0;width:3px;height:6000px;background:#bfc1ba;box-shadow:1px 0 #34372f;z-index:-1}.returning-home .character-pose{height:724px}body:not([data-world=landing]):before{content:'';position:fixed;inset:0 0 auto;height:180px;background:linear-gradient(#242522 0%,#242522e8 48%,#24252200 100%);opacity:0;pointer-events:none;z-index:19;transition:opacity .22s}body:not([data-world=landing]):has(.wordmark:focus-visible):before{opacity:1}body:not([data-world=landing]):has(.wordmark:focus-visible) .header{color:#f2f2e9}@media(hover:hover) and (pointer:fine){body:not([data-world=landing]):has(.wordmark:hover):before{opacity:1}body:not([data-world=landing]):has(.wordmark:hover) .header{color:#f2f2e9}body:not([data-world=landing]) .wordmark:hover{color:#ddfa78}}@media(max-width:650px){.returning-home .transition-actor{left:27%}}@media(prefers-reduced-motion:reduce){body:not([data-world=landing]):before{transition:none}}

/* The panel ends above the hands; both travel in the same coordinate system. */
.returning-home{--curtain-gap:100px}
.returning-home .transition-actor{z-index:3}
.returning-home .transition-surface{top:auto;bottom:calc(100% + var(--curtain-gap));transform:none;z-index:2}
.returning-home .transition-actor:before{height:calc(100px / .46);bottom:0;left:-1px;width:3px;background:#bfc1ba;box-shadow:1px 0 #34372f}
@media(max-width:650px){.returning-home{--curtain-gap:74px}.returning-home .transition-actor:before{height:calc(74px / .34)}}

/* Shared destination surfaces keep the handoff continuous with each opening. */
.world-transition .transition-surface{background:var(--destination);background-size:100vw 100dvh}
.returning-home .transition-surface{background:var(--home-background);background-size:100vw 100dvh;background-position:center bottom;background-repeat:repeat-y}
body:not([data-world=landing]):before{background:linear-gradient(#242522,#292e2ee8 48%,#24252200)}
