
:root{
  --bg:#000;
  --bg2:#050505;
  --fg:#fff;
  --muted:rgba(255,255,255,.62);
  --faint:rgba(255,255,255,.16);
  --hair:rgba(255,255,255,.10);
  --cyan:#6ee7ff;
  --purple:#7a5cff;
  --lime:#b9ff6e;
  --amber:#ffcc66;
  --radius:28px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:"Inter Tight", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{color:inherit;text-decoration:none}
a:focus{outline:2px solid var(--cyan); outline-offset:3px}

.wrap{
  width:min(1120px, 100%);
  margin-inline:auto;
  padding: clamp(64px, 8vw, 120px) 24px;
}

.mono{font-family:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace}
.muted{color:var(--muted)}
.small{font-size:12px; letter-spacing:.08em; text-transform:uppercase}

.kicker{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
}

.h1{
  font-size: clamp(46px, 7vw, 92px);
  line-height: .92;
  letter-spacing:-.04em;
  margin:.35rem 0 .6rem;
  font-weight:900;
}
.h2{
  font-size: clamp(38px, 5.5vw, 74px);
  line-height: .92;
  letter-spacing:-.04em;
  margin:.35rem 0 .6rem;
  font-weight:900;
}

.lead{
  font-size: clamp(16px, 2.2vw, 22px);
  line-height:1.45;
  color:rgba(255,255,255,.72);
  margin:0;
  max-width: 52ch;
}

.section{
  position:relative;
  background:var(--bg);
}
.section__head{
  margin-bottom: clamp(26px, 5vw, 56px);
}
.section__copy{
  margin:0;
  color:rgba(255,255,255,.66);
  max-width: 62ch;
  font-size: 16px;
  line-height:1.55;
}

/* Pill nav */
.pill{
  position:fixed;
  top:18px;
  left:50%;
  transform:translateX(-50%);
  z-index:60;
  display:flex;
  align-items:center;
  gap:18px;
  padding:10px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(18px);
  /* Hard cap so it never feels like a full-width bar on mobile/tablet */
  width: min(560px, calc(100vw - 20px));
  max-width: calc(100% - 20px);
}
.pill__brand{
  flex:0 0 auto;
  width:34px;height:34px;
  display:grid;place-items:center;
  border-radius: 999px;
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.14);
  font-weight:900;
}
.pill__links{
  display:flex;
  gap:16px;
  padding-right:8px;
  flex:1 1 auto;
  justify-content:space-between;
  min-width: 0; /* allow overflow container to shrink */
}

@media (max-width: 700px){
  .pill{width: min(460px, calc(100vw - 20px));}
  .pill__links{gap:12px; justify-content:flex-start; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
  .pill__links::-webkit-scrollbar{display:none}
}

/* Mobile: prevent the pill from overflowing the viewport */
@media (max-width: 420px){
  .pill{gap:10px; padding:8px 10px; top:14px}
  .pill__brand{width:32px;height:32px}
  .pill__links{
    gap:8px;
    padding-right:2px;
    overflow-x:auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .pill__links::-webkit-scrollbar{display:none}
  .pill__link{font-size:11px; padding:7px 8px; letter-spacing:.14em; white-space:nowrap}
}
.pill__link{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.78);
  padding:8px 10px;
  border-radius: 999px;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.pill__link:hover{background:rgba(255,255,255,.08); color:#fff}
.pill__link.is-active{background:rgba(255,255,255,.12); color:#fff}

/* Coordinate tracker */
.coord{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:55;
  padding:10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(14px);
  min-width: 210px;
}
.coord__value{font-family:"JetBrains Mono",monospace; font-size:12px; letter-spacing:.12em}
.coord__label{font-size:12px; color:rgba(255,255,255,.6); margin-top:2px}

/* Next mission sticker */
.mission{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:54;
  width: 180px;
  transform-origin: 70% 70%;
  opacity:.9;
  pointer-events:none;
}
.mission__inner{
  border-radius: 22px;
  padding:14px 14px 12px;
  background: rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(14px);
}
.mission__title{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:800;
  margin-bottom:8px;
}
.mission__line{
  font-size:11px;
  color:rgba(255,255,255,.72);
  line-height:1.3;
}

/* Hero */
.hero{
  height:100vh;
  position:relative;
  overflow:hidden;
  background: var(--bg);
}
.hero__video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform: scale(1.02);
  filter: contrast(1.05) saturate(.95);
}
.hero__overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.48);
}
.hero__content{
  position:relative;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding-bottom: clamp(90px, 12vh, 150px);
}
.subline{
  font-size: 18px;
  color: rgba(255,255,255,.7);
  margin-top: -10px;
  margin-bottom: 16px;
}

/* Canvases */
.canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
}
.section--aero{background: var(--bg)}
.section--aero .wrap{position:relative; z-index:2}
.section--resonance{background: radial-gradient(1400px 800px at 70% 0%, rgba(122,92,255,.22), transparent 60%), radial-gradient(1000px 700px at 30% 30%, rgba(110,231,255,.12), transparent 55%), #000;}
.section--resonance .wrap{position:relative; z-index:2}

/* Panels */
.panel{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  border-radius: var(--radius);
  padding: 22px;
  margin: 22px 0;
}
.panel__title{
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: 13px;
  margin-bottom: 14px;
  color: rgba(255,255,255,.78);
}

/* Badges */
.badges{display:flex; gap:12px; flex-wrap:wrap}
.badge{
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.35);
  padding:10px 12px;
  display:flex;
  align-items:center;
  gap:10px;
}
.badge__chip{
  width:12px;height:12px;border-radius:3px;
  border:1px solid rgba(255,255,255,.25);
  background: linear-gradient(135deg, rgba(110,231,255,.75), rgba(122,92,255,.75));
}
.badge__txt{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.75)}

/* Orbit */
.orbit{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 26px;
  align-items: stretch;
  margin-top: 10px;
}
@media (max-width: 920px){
  .orbit{grid-template-columns:1fr}
}
.orbit__headline{
  font-size: 22px;
  font-weight: 800;
  margin: 10px 0 10px;
}
.orbit__copy{margin:0; color:rgba(255,255,255,.66); line-height:1.55}
.grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
@media (max-width: 820px){
  .grid{grid-template-columns:1fr}
}
.grid__item{
  padding:14px;
  border-radius: 20px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
}
.grid__k{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55)}
.grid__v{font-size:18px; margin-top:8px}
.micro{margin-top:14px; font-size:12px; opacity:.65}

/* Ring */
.ring{
  height: 100%;
  min-height: 260px;
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.10);
  background: radial-gradient(600px 300px at 50% 30%, rgba(110,231,255,.10), transparent 60%), rgba(255,255,255,.03);
  display:grid;
  place-items:center;
  position:relative;
  overflow:hidden;
}
.ring--pro{
  background:
    radial-gradient(900px 360px at 50% 20%, rgba(110,231,255,.14), transparent 60%),
    radial-gradient(700px 420px at 65% 85%, rgba(147,51,234,.12), transparent 60%),
    rgba(255,255,255,.028);
}
.ring__svg{position:absolute; inset:0; width:100%; height:100%; opacity:.95}
.ring__track{fill:none; stroke:rgba(255,255,255,.12); stroke-width:2}
.ring__ticks{fill:none; stroke:rgba(255,255,255,.12); stroke-width:2; stroke-dasharray:2 10; opacity:.7}
.ring__progress{fill:none; stroke: url(#orbitGrad); stroke-width:3; stroke-linecap:round; filter: url(#orbitGlow)}
.ring__center{position:relative; z-index:2; display:grid; place-items:center; text-align:center}
.ring__sub{margin-top:6px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55)}
.ring__sat{
  position:absolute;
  left:50%;
  top:50%;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(110,231,255,.95);
  box-shadow: 0 0 14px rgba(110,231,255,.45), 0 0 26px rgba(147,51,234,.22);
  transform: translate(-50%,-50%) rotate(0deg) translateX(92px);
  transform-origin: center;
  animation: orbitSpin 10s linear infinite;
}
@keyframes orbitSpin{to{transform: translate(-50%,-50%) rotate(360deg) translateX(92px)}}
.ring:before{
  content:"";
  position:absolute;
  width: 230px;
  height: 230px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow: 0 0 0 1px rgba(110,231,255,.16) inset;
}
.ring__value{
  font-size: 42px;
  letter-spacing: .08em;
}
.ring__label{margin-top:-14px; font-size:12px; opacity:.65}

/* Feats specs */
.specs{display:grid; gap:10px}
.spec{display:flex; justify-content:space-between; gap:18px; padding:12px 14px; border-radius: 18px; border:1px solid rgba(255,255,255,.10); background: rgba(0,0,0,.25)}

/* Trajectory list */
.trajectory{margin-top: 18px}
.trajectory__list{display:grid; gap:12px}
.event{
  display:grid;
  grid-template-columns: 90px 1fr;
  gap: 16px;
  padding: 16px;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  cursor:pointer;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.event:hover{transform: translateY(-2px); background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14)}
.event__year{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55); padding-top:2px}
.event__title{font-size:16px; font-weight:900; letter-spacing:.04em}
.event__tag{margin-top:6px; font-size:12px; color:rgba(255,255,255,.62)}

/* Gravity */
.gravity{
  display:grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 26px;
  align-items:start;
}
@media (max-width: 920px){.gravity{grid-template-columns:1fr}}
.gravity__media{display:grid; gap:16px}
.media{
  border-radius: var(--radius);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
}
.media img{width:100%; height: 420px; object-fit:cover; display:block; filter: grayscale(.1) contrast(1.08)}
@media (max-width: 620px){.media img{height: 320px}}
.grid2{display:grid; gap:14px}
.grid2__row{
  padding:16px;
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}
.grid2__title{font-weight:900; letter-spacing:.02em}
.grid2__spec{margin-top:6px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.75)}
.grid2__meta{margin-top:10px; color:rgba(255,255,255,.65); line-height:1.45}

/* Resonance */
.resonance{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
  align-items:center;
}
@media (max-width: 920px){.resonance{grid-template-columns:1fr}}
.statement__big{
  font-size: clamp(28px, 4vw, 50px);
  line-height: 1.02;
  font-weight: 900;
  letter-spacing:-.03em;
}
.resonance__image{
  border-radius: var(--radius);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  box-shadow: 0 0 0 1px rgba(122,92,255,.12) inset;
}
.resonance__image img{width:100%; height: 520px; object-fit:cover; display:block}
@media (max-width: 620px){.resonance__image img{height: 360px}}

/* Horizon */
.horizon__grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 18px;
}
.shot{
  margin:0;
  grid-column: span 12;
  border-radius: var(--radius);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
}
.shot:nth-child(1){grid-column: span 7}
.shot:nth-child(2){grid-column: span 5}
.shot:nth-child(3){grid-column: span 12}
@media (max-width: 920px){
  .shot, .shot:nth-child(1), .shot:nth-child(2), .shot:nth-child(3){grid-column: span 12}
}
.shot img{width:100%; height: 520px; object-fit:cover; display:block}
.shot figcaption{padding: 12px 14px}
@media (max-width: 620px){.shot img{height: 340px}}

/* Archive tiles */
.archive{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
}
.tile{
  grid-column: span 6;
  position:relative;
  border-radius: var(--radius);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
}
.tile:nth-child(3){grid-column: span 5}
.tile:nth-child(4){grid-column: span 7}
@media (max-width: 920px){
  .tile, .tile:nth-child(3), .tile:nth-child(4){grid-column: span 12}
}
.tile img{width:100%; height: 420px; object-fit:cover; display:block; transition: transform .6s cubic-bezier(.16,1,.3,1), filter .6s cubic-bezier(.16,1,.3,1); filter: grayscale(.25) contrast(1.05)}
.tile:hover img{transform: scale(1.03); filter: grayscale(0) contrast(1.08)}
.tile__label{
  position:absolute;
  left:14px;
  bottom:14px;
  padding:10px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.14);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.archiveMore{margin-top: 28px}
.archiveMore__head{
  letter-spacing:.22em;
  text-transform:uppercase;
  font-size:11px;
  margin: 0 0 12px;
}
.archiveGrid{
  display:grid;
  grid-template-columns: repeat(12,1fr);
  gap: 14px;
}
.archiveCard{
  grid-column: span 3;
  position:relative;
  border-radius: 18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
}
.archiveCard img{
  width:100%; height: 220px; object-fit: cover; display:block;
  filter: grayscale(.25) contrast(1.05);
  transition: transform .65s cubic-bezier(.16,1,.3,1), filter .65s cubic-bezier(.16,1,.3,1);
}
.archiveCard:hover img{transform: scale(1.03); filter: grayscale(0) contrast(1.08)}
.archiveCard__cap{
  position:absolute;
  left:10px;
  bottom:10px;
  right:10px;
  padding:10px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.58);
  border:1px solid rgba(255,255,255,.14);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media (max-width: 1200px){
  .archiveCard{grid-column: span 4}
}
@media (max-width: 920px){
  .archiveCard{grid-column: span 6}
}
@media (max-width: 560px){
  .archiveCard{grid-column: span 12}
  .archiveCard img{height: 260px}
}

/* Footer */
.footer{
  border-top:1px solid rgba(255,255,255,.10);
  background: #000;
}
.footer__inner{display:grid; gap: 16px}
.footer__title{font-weight:900; letter-spacing:.04em}
.footer__meta{color:rgba(255,255,255,.65); line-height:1.5}
.footer__links a{color:rgba(255,255,255,.78)}
.footer__links a:hover{color:#fff}

/* Modal */
.modal{
  position:fixed;
  inset:0;
  z-index:80;
  display:none;
}
.modal[aria-hidden="false"]{display:block}
.modal__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.72);
}
.modal__panel{
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
  width: min(1040px, calc(100% - 32px));
  border-radius: 28px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(10,10,10,.92);
  backdrop-filter: blur(16px);
  overflow:hidden;
}
.modal__close{
  position:absolute;
  right:14px;
  top:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.35);
  color:#fff;
  border-radius: 999px;
  padding:10px 12px;
  font-size:12px;
  letter-spacing:.18em;
  cursor:pointer;
}
.modal__body{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  min-height: 520px;
}
@media (max-width: 920px){.modal__body{grid-template-columns:1fr}}
.modal__map{
  background: #050505;
  border-right:1px solid rgba(255,255,255,.10);
}
.modal__map img{width:100%; height:100%; object-fit:cover; display:block}
.modal__content{padding: 24px}
.modal__title{font-weight:900; font-size: 22px; letter-spacing:.02em}
.modal__meta{margin-top:6px}
.modal__stats{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 18px;
}
@media (max-width: 520px){.modal__stats{grid-template-columns:1fr}}
.stat{
  padding: 12px 12px;
  border-radius: 18px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.25);
}
.stat__k{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55)}
.stat__v{margin-top:6px; font-size:14px; color:rgba(255,255,255,.8)}
.modal__copy{margin-top:16px; color:rgba(255,255,255,.72); line-height:1.55}
.modal__label{margin-top:14px}

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  z-index:90;
  display:none;
}
.lightbox[aria-hidden="false"]{display:block}
.lightbox__backdrop{position:absolute; inset:0; background: rgba(0,0,0,.78)}
.lightbox__img{
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
  width: min(1100px, calc(100% - 28px));
  height: min(78vh, 760px);
  object-fit: contain;
  z-index:2;
}
.lightbox__caption{
  position:absolute;
  left:50%;
  transform: translateX(-50%);
  bottom: 22px;
  z-index:3;
  padding:10px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.14);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.lightbox__close{
  position:absolute;
  right: 18px;
  top: 18px;
  z-index:3;
  border-radius: 999px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.35);
  color:#fff;
  cursor:pointer;
  letter-spacing:.18em;
  font-size:12px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important}
  .event:hover{transform:none}
  .tile:hover img{transform:none}
}
