/* One continuous arrival: orbit, atmosphere, surface, touchdown. */
.launch-rocket{transform:translateX(-50%) translateY(var(--rocket-y,0)) scale(var(--rocket-scale,1))}
.flight-smoke{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#launch-smoke{z-index:2}.launch-vapour{opacity:calc(var(--vapour,0) * .28)}
.landing-journey{height:620vh;padding:0;overflow:visible;scroll-margin-top:-90px}
.landing-sticky{position:sticky;top:0;height:100svh;min-height:640px;overflow:hidden;background:transparent;padding:115px var(--pad) 60px;isolation:isolate}
.landing-sticky>.section-label,.landing-sticky>.approach-title,.landing-sticky>.process-list{position:relative;z-index:10;opacity:var(--process-reveal,0);transform:translateY(calc((1 - var(--process-reveal,0)) * 30px));pointer-events:none}
.landing-sticky>.section-label{color:#b4d6e5;border-color:#87d5ef33}
.landing-sticky>.approach-title{display:block;margin:30px 0 22px;width:43%;text-shadow:0 3px 25px #0008}
.landing-sticky .approach-title h2{font-size:clamp(42px,5.2vw,76px);line-height:.98}
.landing-sticky .approach-title p{font-size:12px;color:#abc1d0;line-height:1.8;margin-top:18px}
.landing-sticky>.process-list{margin-left:0;width:43%;max-width:560px}
.landing-sticky .process-list article{gap:18px;padding:12px 0;opacity:.65;transition:opacity .3s}
.landing-sticky .process-list article.active{opacity:1}.landing-sticky .process-list h3{font-size:14px;margin-bottom:6px}.landing-sticky .process-list p{font-size:10px;line-height:1.7;color:#bad0dc}.landing-sticky .process-list article>span:last-child{font-size:7px}
.landing-art{inset:0;z-index:0;overflow:hidden}
.orbital-arrival{position:absolute;inset:0;opacity:var(--orbit-opacity,1)}
.orbital-arrival .destination-earth{left:73%;top:50%;width:58vmin;height:58vmin;max-width:none;transform:translate(-50%,-50%) scale(var(--planet-zoom,.42));transform-origin:50% 50%;will-change:transform}
.orbital-arrival .destination-earth>img{width:100%;height:100%;object-fit:contain;filter:saturate(.85)}
.transfer-rocket{position:absolute;left:var(--transfer-x,35%);top:var(--transfer-y,67%);width:140px;height:210px;transform:translate(-50%,-50%) rotate(58deg) scale(var(--transfer-scale,.7));opacity:var(--transfer-opacity,0);filter:drop-shadow(-12px 12px 18px #79d5ff88)}.transfer-rocket img{width:100%;height:100%;object-fit:contain}
.transfer-rocket:after{content:'';position:absolute;left:46%;top:96%;width:9%;height:130px;background:linear-gradient(#d4ffff,#2cddc577,transparent);filter:blur(5px)}
.arrival-target{position:absolute;left:12%;top:34%;color:#b0e8f1;font:10px monospace;letter-spacing:2px;opacity:calc(1 - var(--process-reveal,0))}.arrival-target span{display:block}.arrival-target i{display:block;width:130px;border-top:1px solid #5cc6df66;margin:25px 0}.arrival-target small{font-size:8px;color:#6f9fb8}
.surface-arrival{position:absolute;inset:0;opacity:var(--surface-opacity,0)}
.alien-landscape{position:absolute;inset:0;transform:scale(var(--surface-scale,1.12));transform-origin:72% 82%;will-change:transform}.alien-landscape img{display:block;width:100%;height:100%;object-fit:cover;object-position:72% 82%}
.surface-shade{position:absolute;inset:0;background:linear-gradient(90deg,#020d1cce 0%,#020d1c88 37%,transparent 62%),linear-gradient(0deg,#030d1c70,transparent 35%)}
.surface-arrival .landing-rocket{position:absolute;left:68%;top:auto;bottom:15%;width:clamp(95px,10vw,160px);height:clamp(143px,15vw,240px);transform:translateY(var(--surface-ship-y,-100vh));transform-origin:50% 100%;filter:drop-shadow(0 0 10px #90dfff22);z-index:4;will-change:transform}
.surface-arrival .landing-rocket img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.surface-arrival .landing-rocket:after{top:97%;left:46%;width:8%;height:80px;opacity:var(--surface-engine,0);background:linear-gradient(#e8ffff,#6af4ffd0 25%,#238bf966 70%,transparent);filter:blur(4px)}
.touchdown-shadow{position:absolute;left:67%;bottom:13.5%;width:13%;height:3.5%;border-radius:50%;background:radial-gradient(ellipse,#000b,transparent 70%);filter:blur(5px);opacity:var(--touchdown,0);transform:scale(calc(.35 + var(--touchdown,0) * .65));z-index:3}
#landing-smoke{z-index:5}
.welcome-party{position:absolute;left:84%;bottom:15%;width:clamp(70px,9vw,135px);z-index:6;opacity:var(--welcome,0);transform:translateY(calc((1 - var(--welcome,0)) * 12px))}
.welcome-party>img{display:block;width:100%;height:auto;filter:drop-shadow(0 6px 3px #0009);animation:welcome-breathe 5s ease-in-out infinite;transform-origin:50% 100%}
.welcome-message{position:absolute;bottom:110%;left:50%;transform:translateX(-50%);text-align:center;color:#adffef;border:1px solid #5ae8e755;background:#05263b9e;backdrop-filter:blur(8px);padding:10px 16px;box-shadow:0 0 25px #238bf922;white-space:nowrap}.welcome-message:after{content:'';position:absolute;top:100%;left:50%;height:20px;width:1px;background:linear-gradient(#5ae8e788,transparent)}.welcome-message span{display:block;font:12px monospace;letter-spacing:3px}.welcome-message small{display:block;font:6px monospace;letter-spacing:1.5px;margin-top:6px;color:#78b8c9}
.atmosphere-pass{position:absolute;inset:-15%;z-index:7;pointer-events:none;opacity:var(--atmosphere,0);background:radial-gradient(ellipse at 65% 40%,#b8e5ebd9,#4c8b9ee6 45%,#122d40d9 80%);filter:blur(22px);transform:scale(calc(1 + var(--atmosphere,0) * .25))}
.arrival-chapter{position:absolute;left:var(--pad);right:var(--pad);bottom:30px;z-index:12;display:flex;align-items:center;gap:20px;color:#b4d9e4;font:8px monospace;letter-spacing:1.5px}.arrival-chapter>div{height:1px;background:#6bb9c438;flex:1}.arrival-chapter i{display:block;height:1px;width:var(--arrival-progress,0);background:#66e5e9}.arrival-chapter small{font:7px monospace;color:#8eb4c3}
@keyframes welcome-breathe{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-2px) rotate(.7deg)}}
@media(min-height:900px){.landing-sticky{padding-top:135px}.landing-sticky>.approach-title{margin:55px 0 35px}.landing-sticky .approach-title h2{font-size:6.1vw}.landing-sticky .approach-title p{font-size:14px;line-height:2;margin-top:25px}.landing-sticky .process-list article{padding:20px 0}.landing-sticky .process-list h3{font-size:17px}.landing-sticky .process-list p{font-size:12px}.surface-arrival .landing-rocket{height:270px;width:180px}.welcome-party{width:135px}}
@media(max-width:700px){.landing-journey{height:660vh}.landing-sticky{padding:95px 8vw 38px}.landing-sticky>.section-label{font-size:6px}.landing-sticky>.section-label>span:last-child{display:none}.landing-sticky>.approach-title{margin:22px 0 15px;width:65%}.landing-sticky .approach-title h2{font-size:10vw}.landing-sticky .approach-title p{font-size:9px;line-height:1.7;margin-top:12px}.landing-sticky>.process-list{width:53%}.landing-sticky .process-list article{gap:9px;padding:8px 0}.landing-sticky .process-list h3{font-size:11px;margin-bottom:4px}.landing-sticky .process-list p{font-size:8px;line-height:1.6}.landing-sticky .process-list article>span{font-size:6px}.landing-sticky .process-list article>span:last-child{display:none}.alien-landscape img{object-position:72% 82%}.surface-shade{background:linear-gradient(90deg,#020d1cc4,transparent 85%)}.orbital-arrival .destination-earth{left:70%;top:50%;width:85vw;height:85vw}.transfer-rocket{width:75px;height:112px}.arrival-target{left:10%;top:27%;font-size:7px;letter-spacing:1px}.arrival-target small{font-size:6px}.surface-arrival .landing-rocket{left:64%;bottom:15%;width:70px;height:105px}.surface-arrival .landing-rocket:after{height:44px;filter:blur(2px)}.touchdown-shadow{left:61%;width:24%;bottom:13.8%}.welcome-party{left:83%;width:55px;bottom:14%}.welcome-message{padding:7px 8px;left:25%}.welcome-message span{font-size:7px;letter-spacing:1.4px}.welcome-message small{font-size:4px;letter-spacing:.6px}.arrival-chapter{bottom:26px;left:8vw;right:8vw;font-size:5px;letter-spacing:.6px;gap:10px}.arrival-chapter small{display:none}}
body.reduced .landing-journey{height:auto}body.reduced .landing-sticky{position:relative;height:100svh;min-height:640px}body.reduced .surface-arrival .landing-rocket{transform:none}body.reduced .welcome-party>img{animation:none}body.reduced .orbital-arrival,body.reduced .atmosphere-pass,body.reduced .flight-smoke{display:none}body.reduced .surface-arrival{opacity:1}body.reduced .arrival-chapter{display:none}
@media(min-width:701px) and (max-height:899px){.landing-sticky>.approach-title{margin:24px 0 16px}.landing-sticky .approach-title h2{font-size:clamp(42px,4.5vw,64px)}.landing-sticky .approach-title p{font-size:11px;margin-top:12px}.landing-sticky .process-list article{padding:9px 0}.landing-sticky .process-list h3{font-size:13px;margin-bottom:4px}.landing-sticky .process-list p{font-size:10px;line-height:1.6}}
@media(max-width:700px){.welcome-party{left:77%;width:100px}.welcome-message{left:52%}.welcome-message span{font-size:8px}.landing-sticky .process-list h3{font-size:12px}.landing-sticky .process-list p{font-size:9px}}
/* Keep the portfolio directory available without a separate page between flight scenes. */
.work-library{position:absolute;top:108px;left:9vw;right:9vw;z-index:20;pointer-events:none}
.work-library .work-index{margin:0;padding:0;border:0;background:transparent;pointer-events:none}
.work-library .work-index summary{margin-left:auto;width:205px;padding:4px 0 12px;background:transparent;font-size:9px;pointer-events:auto;gap:15px}
.work-library .work-index summary small{font-size:6px}.work-library .index-toggle{font-size:17px}
.work-library .work-index[open]{padding:18px 24px;background:#041322f5;border:1px solid #69c9e44d;box-shadow:0 20px 80px #0008;max-height:calc(100svh - 230px);overflow:auto;pointer-events:auto;backdrop-filter:blur(18px)}
.work-library .work-index[open] summary{position:sticky;top:-18px;background:#041322;z-index:3;width:100%;font-size:11px;padding:12px 0 20px}
.work-library .work-filter{margin-top:15px}.work-library .reference-link{padding:18px 0;margin-top:25px;font-size:10px;background:transparent}
.work-sticky>.section-label>span:last-child{margin-right:245px}
@media(min-height:900px){.work-library{top:123px}}
@media(max-width:700px){.work-library{top:90px}.work-library .work-index summary{width:128px;font-size:6px;padding:3px 0 9px}.work-library .work-index summary small{font-size:4px}.work-library .index-toggle{font-size:13px}.work-sticky>.section-label>span:last-child{display:none}.work-library .work-index[open]{padding:10px 14px;max-height:calc(100svh - 180px)}.work-library .work-index[open] summary{top:-10px;font-size:9px}.work-library .project-grid{grid-template-columns:1fr;gap:0}.work-library .project-card .thumb{height:58px}.work-library .work-filter{gap:12px}.work-library .work-filter button{font-size:8px}}
