*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{background:#000;color:#fff;font-family:"Helvetica Neue",Arial,sans-serif;line-height:1.6}
a{color:inherit;text-decoration:none}
.nav{position:fixed;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:24px 5vw;z-index:10;transition:background .3s}
.nav.solid{background:rgba(0,0,0,.9)}.logo{font-weight:700;letter-spacing:.3em;font-size:14px}
.nav nav a{margin-left:32px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.8}.nav nav a:hover{opacity:1;border-bottom:1px solid #fff}
.hero{min-height:100vh;display:flex;align-items:flex-end;padding:0 5vw 15vh;position:relative;background:radial-gradient(ellipse at 70% 30%,#2a2a2a 0,#000 60%)}
.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 20% 30%,#fff,transparent),radial-gradient(1px 1px at 80% 20%,#fff,transparent),radial-gradient(1px 1px at 60% 70%,#bbb,transparent),radial-gradient(1px 1px at 35% 55%,#ddd,transparent),radial-gradient(1px 1px at 90% 80%,#fff,transparent);opacity:.6}
.hero-inner{position:relative}.eyebrow{letter-spacing:.3em;text-transform:uppercase;font-size:12px;opacity:.7}
h1{font-size:clamp(48px,10vw,120px);line-height:.95;text-transform:uppercase;letter-spacing:.05em;margin:16px 0}
.tag{text-transform:uppercase;letter-spacing:.2em;font-size:14px;max-width:520px;opacity:.85;margin-bottom:40px}
.btn{display:inline-block;border:2px solid #fff;padding:14px 36px;font-size:12px;letter-spacing:.25em;text-transform:uppercase;transition:.3s;margin:0 12px 12px 0}
.btn:hover,.btn:focus-visible{background:#fff;color:#000}.btn.ghost{border-color:#555}
.sec{padding:120px 5vw;max-width:1100px;margin:auto;border-top:1px solid #222}
h2{font-size:12px;letter-spacing:.4em;text-transform:uppercase;opacity:.6;margin-bottom:40px}
.lead{font-size:clamp(24px,3.5vw,40px);text-transform:uppercase;letter-spacing:.04em;line-height:1.2;margin-bottom:24px}
p{color:#bbb}.timeline{list-style:none}.timeline li{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:32px 0;border-bottom:1px solid #222}
.when{font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.6;padding-top:6px}
h3{text-transform:uppercase;letter-spacing:.1em;font-size:20px}.org{color:#fff;opacity:.7;margin-bottom:8px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#222;margin-bottom:48px}
.stat{background:#000;padding:40px 24px}.stat b{display:block;font-size:32px;letter-spacing:.05em;text-transform:uppercase}.stat span{font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
.skills{list-style:none;display:flex;flex-wrap:wrap;gap:12px}.skills li{border:1px solid #444;padding:8px 16px;font-size:12px;letter-spacing:.15em;text-transform:uppercase}
footer{padding:40px 5vw;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.5;text-align:center}
.reveal{opacity:0;transform:translateY(30px);transition:1s}.reveal.in{opacity:1;transform:none}
@media(max-width:700px){.nav nav{display:none}.timeline li{grid-template-columns:1fr;gap:8px}.grid{grid-template-columns:1fr 1fr}.sec{padding:80px 6vw}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
.sub{margin:56px 0 24px}.list{list-style:none}.list li{padding:14px 0;border-bottom:1px solid #222;color:#bbb}.list b{color:#fff;letter-spacing:.05em}
.bul{margin:12px 0 0 18px;color:#999;font-size:15px}.bul li{margin:4px 0}
.menu{display:none;background:none;border:0;width:32px;height:24px;position:relative;cursor:pointer;z-index:12}
.menu span{position:absolute;left:0;right:0;height:2px;background:#fff;transition:.3s}.menu span:first-child{top:6px}.menu span:last-child{top:16px}
.menu[aria-expanded=true] span:first-child{top:11px;transform:rotate(45deg)}.menu[aria-expanded=true] span:last-child{top:11px;transform:rotate(-45deg)}
body.lock{overflow:hidden}
@media(max-width:700px){.menu{display:block}.nav nav{display:flex;position:fixed;inset:0;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:32px;opacity:0;pointer-events:none;transition:opacity .3s;z-index:11}.nav nav.open{opacity:1;pointer-events:auto}.nav nav a{margin:0;font-size:18px}}
.hire{margin-top:20px;border:1px solid #444;padding:24px;transition:border-color .3s}.hire:hover{border-color:#fff}
.hire-tag{display:inline-block;font-size:11px;letter-spacing:.3em;text-transform:uppercase;background:#fff;color:#000;padding:4px 10px;margin-bottom:12px}
.hire p{margin-bottom:16px}.hire b{color:#fff}.hire .btn{margin:0}
.hero{overflow:hidden}
.pad{position:absolute;right:10vw;bottom:10vh;display:flex;flex-direction:column;align-items:center;z-index:2}
.ship{background:none;border:0;padding:0;cursor:pointer;height:min(62vh,520px);aspect-ratio:80/320}
.ship svg{width:100%;height:100%;overflow:visible}
.ship:focus-visible{outline:1px dashed #fff;outline-offset:8px}
.rocket{animation:breathe 3.5s ease-in-out infinite;transform-origin:50% 100%}
@keyframes breathe{50%{filter:drop-shadow(0 0 10px rgba(255,255,255,.5))}}
.flame{opacity:0;transform-origin:40px 300px;transform:scaleY(0)}
.smoke circle{fill:#bbb;opacity:0;transform-box:fill-box;transform-origin:center}
.hint{margin-top:14px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;opacity:.55;transition:opacity .3s}
.ship:hover+.hint{opacity:1}
.go .rocket{animation:shake .08s linear 10}
.go{animation:lift 2.6s cubic-bezier(.55,0,.9,.4) .8s forwards}
.go .flame{animation:flame .12s ease-in-out infinite alternate;opacity:1}
.go .smoke circle{animation:smoke 2.4s ease-out .2s forwards}
.pad.launching .hint,.pad.launching .ship:hover+.hint{opacity:0!important}
@keyframes shake{25%{transform:translate(-1px,0)}75%{transform:translate(1px,0)}}
@keyframes lift{to{transform:translateY(-130vh)}}
@keyframes flame{from{transform:scaleY(.7)}to{transform:scaleY(1.15)}}
@keyframes smoke{0%{opacity:.7;transform:scale(.3)}100%{opacity:0;transform:scale(3.2) translateY(-6px)}}
@media(max-width:700px){.pad{right:6vw;top:13vh;bottom:auto}.ship{height:36vh}.hero-inner{position:relative;z-index:3}}
@media(prefers-reduced-motion:reduce){.rocket{animation:none}.go{animation:fade 1s forwards}.go .flame{animation:none}.go .smoke circle{animation:none}@keyframes fade{to{opacity:0}}}
.orbit-scene{position:absolute;right:6vw;top:8vh;width:min(46vw,620px);display:none;pointer-events:none;z-index:1;overflow:visible}
.orbit .orbit-scene{display:block}
.orbit-scene g,.orbit-scene rect{transform-box:fill-box}
.oship{animation:shipin 1.3s cubic-bezier(.2,.7,.3,1) both,shipout 1.6s ease-in 9.4s forwards}
.door{animation:door .4s ease-out 1.6s forwards;transform-origin:100% 50%}
@keyframes shipin{from{transform:translateY(320px);opacity:0}to{transform:none;opacity:1}}
@keyframes shipout{to{transform:translateY(-400px);opacity:0}}
@keyframes door{from{transform:none}to{transform:scaleX(0)}}
.sat{opacity:0;animation:show .01s linear calc(2.2s + var(--i)*1.2s) forwards,drift 4s cubic-bezier(.3,.6,.5,1) calc(2.7s + var(--i)*1.2s) forwards}
.slide{animation:slideout .5s ease-out calc(2.2s + var(--i)*1.2s) forwards}
@keyframes slideout{to{transform:translateX(92px)}}
.wing{transform:scaleX(0);animation:unfold .8s ease-out calc(3.4s + var(--i)*1.2s) forwards}
.wl{transform-origin:100% 50%}.wr{transform-origin:0 50%}
@keyframes show{to{opacity:1}}
@keyframes unfold{0%{transform:scaleX(0)}50%{transform:scaleX(.5)}100%{transform:scaleX(1)}}
@keyframes drift{0%{opacity:1;transform:none}80%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy))}}
@media(max-width:700px){.orbit-scene{right:2vw;width:96vw;top:10vh}}
@media(prefers-reduced-motion:reduce){.orbit-scene{display:none!important}}
.orbit .pad{visibility:hidden}
