:root{color-scheme:dark;--pink:#ff46b5;--blue:#39baff;--muted:#b7c1d2;--line:#ffffff24}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#03050b;color:#f5f6ff;font:16px/1.65 'DM Sans',sans-serif}a{color:inherit;text-underline-offset:5px}button,input,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.shell{max-width:1180px;padding:0 32px;margin:auto;position:relative;z-index:1}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0;border-bottom:1px solid var(--line)}.brand{text-decoration:none;letter-spacing:.17em;font-weight:700;font-size:15px}.brand small{display:block;font-size:12px;color:var(--muted);letter-spacing:.35em}nav{display:flex;gap:25px}nav a{text-decoration:none;font-size:14px;min-height:44px;display:flex;align-items:center}#motion{border:1px solid var(--line);border-radius:25px;padding:8px 14px;background:#090d18;color:var(--muted);font-size:13px}.hero{display:grid;grid-template-columns:1fr 1.1fr;gap:55px;align-items:center;padding:70px 0 95px}.mascot img{width:100%;height:auto;display:block;animation:mascotFloat 6s ease-in-out infinite alternate;filter:drop-shadow(-6px 0 12px #ff46b54d) drop-shadow(6px 0 15px #39baff44)}.eyebrow{font-size:12px!important;text-transform:uppercase;letter-spacing:.18em;color:var(--pink);font-weight:600;margin:0 0 18px}h1,h2{font-family:'Playfair Display',serif;line-height:1.06;margin:0;font-weight:600}h1{font-size:clamp(70px,8vw,112px);letter-spacing:-.045em;background:linear-gradient(90deg,var(--pink),#a88aff,var(--blue),var(--pink));background-size:300% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:colorDrift 8s ease-in-out infinite alternate}h2{font-size:clamp(32px,4vw,48px);letter-spacing:-.025em}h3{font-size:22px;line-height:1.3;margin:12px 0}p{color:var(--muted)}.status{font-size:13px;border:1px solid #39baff66;border-radius:30px;display:inline-block;padding:4px 12px;margin:26px 0 0;color:#c6e7ff}.lead{font-size:19px;max-width:450px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin:25px 0}.actions>a:not(.button){font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:30px;background:linear-gradient(100deg,#ba237e,#325cc6);color:white;padding:13px 23px;min-height:48px;font-weight:600;transition:box-shadow .25s,transform .25s}.button:hover,.button:focus-visible,#play:hover{box-shadow:0 0 18px #ff46b566,0 0 32px #39baff44;transform:translateY(-2px)}.button:active{transform:scale(.98)}.player{display:flex;align-items:center;gap:16px;background:#080d18e8;border:1px solid var(--line);border-radius:16px;padding:17px;margin-top:30px}.player>div{flex:1;min-width:0}.player strong{font-size:14px}.player p{font-size:12px;margin:2px 0}#play{width:48px;height:48px;flex-shrink:0;border:1px solid #ff46b599;border-radius:50%;background:#852158;color:white}#progress{width:100%;height:20px;min-height:20px;accent-color:var(--pink);padding:0;border:0;background:transparent}main>section:not(.hero){padding:70px 0;border-top:1px solid var(--line)}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px}.detail{margin-top:30px;padding:24px;border-left:2px solid var(--blue);background:#080d18ed}.detail p{margin-bottom:0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px}.cards article{padding:28px;background:#080d18ed;border:1px solid var(--line);border-radius:16px}.cards span{font-size:13px;color:var(--blue)}.cards p{margin-bottom:0}form{display:grid;gap:10px;align-content:start;background:#080d18f5;border:1px solid var(--line);border-radius:20px;padding:28px}label{font-size:14px}input,textarea{width:100%;min-width:0;min-height:48px;border:1px solid #ffffff30;border-radius:9px;background:#050913;padding:10px 12px;color:#fff;font-size:16px}textarea{resize:vertical}.consent{display:flex;align-items:flex-start;gap:10px;color:var(--muted);margin:8px 0}.consent input{width:18px;min-height:18px;height:18px;margin-top:4px;flex-shrink:0}.small{font-size:12px;line-height:1.6;margin:7px 0}.form-status{margin:0;font-size:14px}.form-status:empty{display:none}details{border-bottom:1px solid var(--line);padding:18px 0}summary{cursor:pointer;font-weight:600;min-height:30px}details p{margin-bottom:0}#privacy{font-size:13px;margin-bottom:35px}footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;padding:24px 0 35px;font-size:12px;color:var(--muted)}.skip{position:absolute;top:-100px;z-index:5}.skip:focus{top:8px;background:#111;padding:10px}
#space{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.world{position:absolute;left:50%;top:50%;width:clamp(100px,18vw,300px);animation:flyby var(--duration) linear infinite;animation-delay:var(--delay);opacity:0}.world img{width:100%;height:auto;display:block}.ship{position:absolute;left:50%;top:50%;width:120px;opacity:0;animation:shipFly 34s linear infinite;animation-delay:var(--delay)}.ship img{width:100%;display:block}.landing{position:absolute;left:35%;top:40%;width:32%!important;animation:land 23s linear infinite;opacity:0}.star{position:absolute;left:50%;top:50%;width:2px;height:2px;background:#c9e8ff;border-radius:50%;animation:starFly var(--duration) linear infinite;animation-delay:var(--delay);opacity:0}@keyframes flyby{0%{opacity:0;transform:translate(-50%,-50%) translate(var(--sx),var(--sy)) scale(.15)}15%{opacity:.32}75%{opacity:.42}100%{opacity:0;transform:translate(-50%,-50%) translate(var(--ex),var(--ey)) scale(1.8)}}@keyframes starFly{0%{opacity:0;transform:translate(0,0) scale(.3)}30%{opacity:.2}80%{opacity:.6}100%{opacity:0;transform:translate(var(--ex),var(--ey)) scale(1.4)}}@keyframes shipFly{0%{opacity:0;transform:translate(-50%,-50%) scale(.04) rotate(var(--angle))}3%{opacity:.4}14%{opacity:.8}20%,100%{opacity:0;transform:translate(var(--ex),var(--ey)) scale(3) rotate(var(--angle))}}@keyframes land{0%{opacity:0;transform:translate(-25vw,-12vh) scale(1) rotate(24deg)}3%{opacity:.8}25%,100%{opacity:0;transform:translate(0,0) scale(.03) rotate(24deg)}}@keyframes mascotFloat{to{transform:translateY(-8px);filter:drop-shadow(-6px 0 18px #ff46b577) drop-shadow(6px 0 22px #39baff66)}}@keyframes colorDrift{to{background-position:100% 50%}}.paused *{animation-play-state:paused!important}
@media(max-width:760px){.shell{padding:0 22px}header{gap:12px;flex-wrap:wrap}.brand{font-size:13px}nav{order:3;width:100%;justify-content:center;gap:35px}.hero{grid-template-columns:1fr;gap:24px;padding:35px 0 55px;text-align:center}.mascot{max-width:290px;margin:auto}.lead{margin-left:auto;margin-right:auto}.actions{justify-content:center}h1{font-size:76px}.player{text-align:left}main>section:not(.hero){padding:48px 0}.split{grid-template-columns:1fr;gap:24px}.cards{grid-template-columns:1fr}.cards article,form{padding:22px}footer{justify-content:center;text-align:center}.world{width:160px}h2{font-size:36px}}
.spinning-world{animation:worldSpin var(--spin-time,90s) linear infinite;animation-direction:var(--spin-direction,normal)}
@keyframes worldSpin{to{transform:rotate(360deg)}}
.ship img,.cruiser img{position:relative;z-index:1}
.engine-boost{position:absolute;right:89%;top:35%;width:80%;height:28%;background:linear-gradient(90deg,transparent,#9761ff33 30%,#39baff88 65%,#d6fbff 98%);clip-path:polygon(0 50%,100% 8%,100% 92%);filter:drop-shadow(0 0 5px #39baff);transform-origin:right center;animation:boostPulse .7s ease-in-out infinite alternate}
@keyframes boostPulse{from{transform:scaleX(.65);opacity:.5}to{transform:scaleX(1.2);opacity:.9}}
.ship.reverse .engine-boost{left:89%;right:auto;transform:scaleX(-1);transform-origin:right center}
.ship.reverse img{transform:scaleX(-1)}
.engine-boost::after{content:"";position:absolute;right:3%;top:25%;width:12%;height:50%;border-radius:50%;background:#ecffff;box-shadow:0 0 8px #fff,0 0 18px #39baff,0 0 30px #9b5cff;animation:coreFlicker .35s ease-in-out infinite alternate}
@keyframes coreFlicker{to{transform:scale(1.3);opacity:.7}}
.mascot{animation:mascotRock 9s ease-in-out infinite;transform-origin:50% 85%}
@keyframes mascotRock{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}
.ship img{animation:shipBank 5s ease-in-out infinite alternate;transform-origin:center;filter:drop-shadow(-5px 0 5px #39baff66)}
@keyframes shipBank{0%{transform:perspective(400px) rotateX(-15deg) rotateY(-8deg);filter:drop-shadow(-5px 0 4px #39baff44)}100%{transform:perspective(400px) rotateX(20deg) rotateY(10deg);filter:drop-shadow(-8px 0 9px #39baff99)}}
.cruiser{position:absolute;left:-200px;top:18%;width:110px;opacity:0;animation:cruiseBy 41s linear infinite;animation-delay:8s}.cruiser img{width:100%;display:block;filter:drop-shadow(-6px 0 5px #39baff88)}
@keyframes cruiseBy{0%{opacity:0;transform:translate(0,0) rotate(5deg)}2%{opacity:.65}12%{opacity:.8;transform:translate(55vw,7vh) rotate(8deg)}22%,100%{opacity:0;transform:translate(calc(100vw + 400px),18vh) rotate(8deg)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important}.world{opacity:.22;transform:translate(var(--sx),var(--sy)) scale(.65)}.star,.ship,.landing,.cruiser{display:none}}
 .project-notes{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;padding:70px 0;border-top:1px solid var(--line)}.updated{font-size:12px;color:#39baff!important;letter-spacing:.12em;text-transform:uppercase;margin-top:28px}.journal-list{display:grid;gap:14px}.journal-list article{padding:20px 22px;border:1px solid var(--line);border-radius:14px;background:#080d18ed}.journal-list article span{font-size:12px;color:var(--pink);letter-spacing:.12em;text-transform:uppercase}.journal-list h3{margin:7px 0 2px}.journal-list p{margin:0;font-size:14px}
@media(max-width:760px){.project-notes{grid-template-columns:1fr;gap:24px;padding:48px 0}}
/* Landing craft nose leads toward the planet; engines trail behind. */
.landing{transform-origin:center;animation-name:landCorrect!important}
@keyframes landCorrect{0%{opacity:0;transform:translate(-25vw,-12vh) scale(1) rotate(204deg)}3%{opacity:.8}25%,100%{opacity:0;transform:translate(0,0) scale(.03) rotate(204deg)}}
/* Landing approach travels down-left nose-first; engines stay behind. */
.landing{animation-name:landCorrect!important}
@keyframes landCorrect{0%{opacity:0;transform:translate(-25vw,-12vh) scale(1) rotate(204deg)}3%{opacity:.8}25%,100%{opacity:0;transform:translate(0,0) scale(.03) rotate(204deg)}}
/* Keep landing approaches behind the mascot and away from the legs. */
.landing{display:none!important}

/* Rebuilt ship layer: two clean directional flybys, with landing craft removed. */
.ship{display:block!important}
.ship .engine-boost{display:none!important}
.ship.reverse{animation-name:shipFlyReverse!important}
.ship.reverse{display:block!important;animation-duration:24s!important}
.world .landing{display:none!important}
.star{width:3px;height:3px;box-shadow:0 0 7px #d6f7ff;animation-duration:12s!important}
.ship,.world .landing,.cruiser{display:none!important}
.world::after{content:"";position:absolute;inset:-10%;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 32% 28%,transparent 55%,#39baff22 72%,transparent 78%);mix-blend-mode:screen;animation:atmospherePulse 6s ease-in-out infinite alternate}
.world:nth-child(2)::after{background:radial-gradient(circle at 35% 30%,transparent 54%,#ff46b533 72%,transparent 79%)}
.world:nth-child(3)::after{background:radial-gradient(circle at 40% 24%,transparent 53%,#b88cff33 71%,transparent 79%)}
@keyframes atmospherePulse{from{opacity:.35;transform:scale(.98)}to{opacity:.9;transform:scale(1.04)}}
.world img.spinning-world{transform-origin:50% 50%;animation:worldSpin var(--spin-time,60s) linear infinite,planetPulse 4.8s ease-in-out infinite alternate;animation-direction:var(--spin-direction,normal),alternate}
@keyframes planetPulse{from{filter:brightness(.96) saturate(1) drop-shadow(0 0 3px #39baff55)}to{filter:brightness(1.12) saturate(1.16) drop-shadow(0 0 14px #ff46b577)}}
.cruiser{display:none!important}
.world{overflow:visible}
@keyframes shipFlyReverse{0%{opacity:0;transform:translate(-50%,-50%) scale(.04) rotate(150deg)}3%{opacity:.4}14%{opacity:.8}20%,100%{opacity:0;transform:translate(-90vw,50vh) scale(3) rotate(150deg)}}
@keyframes mascotNod{0%,100%{transform:rotate(0deg) translateY(0)}42%{transform:rotate(1.4deg) translateY(2px)}58%{transform:rotate(-1deg) translateY(-1px)}72%{transform:rotate(.4deg) translateY(0)}}
