
:root{
  --bg:#030711; --panel:#07111f; --panel2:#0b1728; --ink:#eef7ff;
  --muted:#8ca8c2; --blue:#59c7ff; --blue2:#1d7fb5; --gold:#d2a85a;
  --line:rgba(102,190,255,.20); --glass:rgba(4,12,24,.72);
  --shadow:0 20px 60px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--ink);background:
    radial-gradient(circle at 16% -10%,rgba(51,144,210,.18),transparent 34%),
    radial-gradient(circle at 90% 18%,rgba(210,168,90,.10),transparent 30%),
    var(--bg);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow-x:hidden;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;opacity:.28;z-index:-1;
  background-image:
    radial-gradient(circle at 20% 20%,#fff 0 1px,transparent 1.4px),
    radial-gradient(circle at 70% 40%,#bde8ff 0 1px,transparent 1.3px),
    radial-gradient(circle at 40% 80%,#fff 0 .8px,transparent 1.2px);
  background-size:220px 220px,330px 330px,260px 260px;
}
a{color:inherit;text-decoration:none}
button{font:inherit}
.shell{width:min(1180px,calc(100% - 36px));margin:auto}
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(16px);background:rgba(2,8,16,.68);
  border-bottom:1px solid var(--line);
}
.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.14em;font-size:.84rem}
.brand img{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 0 14px rgba(210,168,90,.25))}
.navlinks{display:flex;align-items:center;gap:18px;color:#c6d8e7;font-size:.82rem;flex-wrap:wrap}
.navlinks a:hover{color:white}
.sound-toggle,.nav-cta,.primary,.secondary{
  border:1px solid rgba(104,198,255,.35);background:rgba(13,37,59,.65);color:#e9f7ff;
  border-radius:999px;padding:10px 15px;cursor:pointer;transition:.2s ease;font-size:.82rem;
}
.sound-toggle:hover,.nav-cta:hover,.primary:hover,.secondary:hover{transform:translateY(-1px);border-color:rgba(112,211,255,.8);box-shadow:0 0 24px rgba(64,170,230,.14)}
.hero{min-height:94vh;display:grid;align-items:end;padding:130px 0 72px;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-3;background-size:cover;background-position:center;transition:opacity .8s ease,transform 8s ease;transform:scale(1.03)}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(1,6,13,.94) 0%,rgba(1,6,13,.68) 40%,rgba(1,6,13,.18) 74%),linear-gradient(0deg,var(--bg) 0%,transparent 36%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 72% 58%,transparent 0 20%,rgba(0,0,0,.28) 72%)}
.eyebrow{color:var(--blue);font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;font-weight:800}
.hero-copy{max-width:720px}
h1{font-size:clamp(3.2rem,8vw,7.4rem);line-height:.84;margin:14px 0 6px;letter-spacing:-.065em;text-transform:uppercase}
h1 span{display:block;color:transparent;-webkit-text-stroke:1px rgba(228,243,255,.75)}
.tagline{color:var(--gold);letter-spacing:.22em;font-size:.85rem;font-weight:800;text-transform:uppercase;margin:6px 0 18px}
.lead{font-size:clamp(1.08rem,2vw,1.35rem);line-height:1.65;color:#c9d8e4;max-width:660px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.primary{background:linear-gradient(135deg,#0d6f9f,#173f62);padding:13px 20px;font-weight:700}
.secondary{padding:13px 20px;background:rgba(4,12,22,.72)}
.hero-status{margin-top:32px;display:flex;gap:24px;flex-wrap:wrap;color:#8da4b8;font-size:.78rem;text-transform:uppercase;letter-spacing:.13em}
.hero-status b{color:#eef8ff}
section{padding:90px 0}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:30px;flex-wrap:wrap}
.section-head h2{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.04em;margin:8px 0 0}
.section-head p{max-width:520px;color:var(--muted);line-height:1.6;margin:0}
.feature-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}
.feature-main,.feature-stack article,.moon-card,.dial-panel,.meteor-panel,.command-panel,.video-card,.guide-card{
  border:1px solid var(--line);background:linear-gradient(180deg,rgba(12,29,48,.70),rgba(5,13,24,.82));
  border-radius:22px;overflow:hidden;box-shadow:var(--shadow)
}
.feature-main{min-height:570px;position:relative}
.feature-main img,.feature-stack img,.moon-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.feature-main:hover img,.feature-stack article:hover img,.moon-card:hover img{transform:scale(1.035)}
.overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,7,14,.96) 0%,rgba(2,7,14,.26) 55%,transparent 75%)}
.feature-main .copy{position:absolute;left:28px;right:28px;bottom:26px}
.kicker{font-size:.7rem;text-transform:uppercase;letter-spacing:.17em;color:#70d2ff;font-weight:800}
.feature-main h3,.feature-stack h3,.moon-card h3{margin:8px 0 7px;font-size:1.6rem}
.copy p{margin:0;color:#a9bdce;line-height:1.5}
.feature-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}
.feature-stack article{position:relative;min-height:270px}
.feature-stack .copy{position:absolute;left:20px;right:20px;bottom:18px}
.control-zone{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.dial-panel,.meteor-panel{padding:30px;min-height:460px;position:relative}
.dial-wrap{display:grid;place-items:center;margin-top:24px}
.dial{
  /* consolidated from three separate .dial blocks. Each earlier block still
     contributed live properties, so this is the surviving union, not a delete:
       sizing/shape/transition  <- original block
       border + box-shadow      <- artifact-face block
       background + overflow    <- video-face block */
  width:min(300px,70vw);aspect-ratio:1;border-radius:50%;position:relative;
  cursor:pointer;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
  border:1px solid rgba(210,168,90,.42);
  box-shadow:
    inset 0 0 40px rgba(0,0,0,.55),
    0 0 46px rgba(210,168,90,.16),
    0 0 90px rgba(95,199,255,.07);
  background:
    radial-gradient(circle at 50% 42%,rgba(95,199,255,.08) 0 34%,transparent 62%),
    url("assets/images/tac_ancient_dial_poster.jpg") center/cover no-repeat;
  overflow:hidden;
}
.dial::after{content:"";position:absolute;left:50%;top:8%;width:3px;height:24px;border-radius:2px;background:var(--gold);box-shadow:0 0 12px rgba(210,168,90,.8)}
.dial-core{position:absolute;inset:38%;border-radius:50%;border:1px solid rgba(95,199,255,.45);display:grid;place-items:center;color:var(--blue);font-weight:900;letter-spacing:.14em;font-size:.7rem;background:rgba(7,19,31,.86)}
.dial-label{text-align:center;margin-top:18px;color:#c9d9e6;min-height:50px;font-weight:800;letter-spacing:.1em}
.dial-controls{display:flex;justify-content:center;gap:10px;margin-top:14px}
.small-btn{border:1px solid var(--line);background:#091827;color:#d9efff;border-radius:12px;padding:9px 12px;cursor:pointer}
.meteor-stage{position:relative;height:270px;border-radius:18px;margin-top:26px;overflow:hidden;background:radial-gradient(circle at 65% 28%,#143a5e 0 2%,transparent 16%),linear-gradient(180deg,#071526,#030711 72%);border:1px solid var(--line)}
.planet-horizon{position:absolute;width:120%;height:165px;left:-10%;bottom:-95px;border-radius:50%;background:radial-gradient(circle at 50% 0%,#27435a,#0b1725 45%,#02060b 75%);box-shadow:0 -6px 30px rgba(58,153,211,.22)}
.meteor{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff3d0;box-shadow:-30px -6px 10px 5px #ff8a35,-70px -14px 20px 8px rgba(255,80,25,.46);left:-120px;top:32px;opacity:0}
.meteor.fly{animation:meteorFly 2.6s cubic-bezier(.3,.02,.72,.95) forwards}
@keyframes meteorFly{0%{transform:translate(0,0) scale(.4);opacity:0}8%{opacity:1}80%{transform:translate(620px,145px) scale(1.45);opacity:1}100%{transform:translate(740px,205px) scale(2.2);opacity:0}}
.impact-flash{position:absolute;width:20px;height:20px;border-radius:50%;right:16%;bottom:45px;background:#fff;opacity:0;box-shadow:0 0 22px 14px #ffb34a,0 0 70px 35px rgba(255,96,28,.58)}
.impact-flash.on{animation:flash .95s ease-out}
@keyframes flash{0%{opacity:0;transform:scale(.1)}15%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(5)}}
.moon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.moon-card{position:relative;min-height:360px;text-align:left;padding:0;cursor:pointer;width:100%;display:block}
.moon-card .copy{position:absolute;left:20px;right:20px;bottom:18px;z-index:2}
.moon-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,7,14,.94),transparent 65%)}
.moon-card::before{content:"OPEN GALLERY";position:absolute;z-index:3;right:16px;top:16px;font-size:.62rem;letter-spacing:.16em;background:rgba(3,11,20,.75);border:1px solid var(--line);padding:6px 8px;border-radius:999px;color:#cfe8fb}
.command-panel{padding:34px;display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;align-items:center}
.command-logo{display:grid;place-items:center}
.command-logo img{width:min(310px,80%);filter:drop-shadow(0 0 28px rgba(210,168,90,.18))}
.system-list{display:grid;gap:12px;margin-top:22px}
.system-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(3,12,22,.52)}
.status-dot{width:8px;height:8px;border-radius:50%;background:#64e7a4;box-shadow:0 0 12px #64e7a4;display:inline-block;margin-right:8px}
.guide-card{display:flex;align-items:center;gap:20px;padding:20px;margin-top:18px}
.guide-card img{width:96px;height:96px;object-fit:cover;border-radius:16px;flex-shrink:0;border:1px solid var(--line)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery button,.gallery .g-item{padding:0;border:0;background:none;cursor:pointer;border-radius:15px;overflow:hidden;aspect-ratio:16/10;position:relative;display:block;width:100%}
.gallery img{width:100%;height:100%;object-fit:cover;transition:.5s}
.gallery button:hover img,.gallery .g-item:hover img{transform:scale(1.06);filter:brightness(1.08)}
.gallery button::after,.gallery .g-item::after{content:"OPEN";position:absolute;right:10px;bottom:9px;font-size:.62rem;letter-spacing:.16em;background:rgba(3,11,20,.75);border:1px solid var(--line);padding:6px 8px;border-radius:999px}
.archive-gallery{grid-template-columns:repeat(6,1fr)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.88);display:none;place-items:center;z-index:80;padding:30px;flex-direction:column}
.modal.open{display:grid}
.modal img{max-width:min(1200px,95vw);max-height:78vh;border-radius:14px;border:1px solid var(--line);box-shadow:0 30px 90px #000}
.modal-caption{color:#cfe3f2;margin-top:14px;font-size:.85rem;letter-spacing:.04em;text-align:center}
.modal button{position:absolute;right:28px;top:26px;border:1px solid var(--line);background:#091827;color:white;border-radius:999px;width:42px;height:42px;cursor:pointer}
.phenomena-panel{border:1px solid var(--line);background:linear-gradient(180deg,rgba(12,29,48,.70),rgba(5,13,24,.82));border-radius:22px;overflow:hidden;box-shadow:var(--shadow);padding:16px}
.phenomena-video{width:100%;display:block;border-radius:14px;background:#000;max-height:74vh}
.phenomena-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 6px 6px;color:var(--muted);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.phenomena-foot a{color:var(--blue)}
.phenomena-grid,.wasp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.wasp-grid{grid-template-columns:repeat(2,1fr)}
.phenomena-grid .phenomena-video,.wasp-grid .phenomena-video{max-height:none;aspect-ratio:16/9;object-fit:cover}
.phenomena-lead{grid-column:1/-1}
.phenomena-lead .phenomena-video{aspect-ratio:21/9}
.phenomena-lead .phenomena-foot span{font-size:.95rem;letter-spacing:.04em}
.elena-reel{margin-top:18px;padding:24px;border:1px solid var(--line);border-radius:18px;background:rgba(3,12,22,.5)}
.elena-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.elena-video{width:100%;aspect-ratio:16/9;border-radius:12px;background:#000;display:block;border:1px solid var(--line)}
.whatif-episode{margin-top:24px;padding:26px;border:1px solid var(--line);border-radius:18px;background:rgba(3,12,22,.5)}
.whatif-badge{display:inline-block;font-size:.68rem;letter-spacing:.18em;color:var(--gold);border:1px solid rgba(210,168,90,.4);padding:5px 10px;border-radius:999px;margin-bottom:10px}
.whatif-episode h3{margin:6px 0 14px;font-size:1.7rem}
.whatif-route{font-size:1.1rem;font-weight:800;letter-spacing:.04em;color:#dceeff}
.whatif-route span{color:var(--blue);margin:0 10px}
.whatif-note{color:var(--muted);margin:10px 0 18px}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.video-card{position:relative;display:block}
.video-thumb{height:150px;background-size:cover;background-position:center}
.video-thumb-1{background-image:url("assets/images/black_hole_ocean.jpg")}
.video-thumb-2{background-image:url("assets/images/ship_orbit.jpg")}
.video-thumb-3{background-image:url("assets/images/hero_iron_rain.jpg")}
.video-thumb-4{background-image:url("assets/images/crimson_eclipse.jpg")}
.video-thumb-5{background-image:url("assets/images/titan_rain.jpg")}
.video-card .copy{padding:16px 18px 18px}
.video-card h3{margin:6px 0 0;font-size:1.05rem}
.video-note{color:var(--muted);font-size:.82rem;margin-top:18px}
footer{padding:50px 0 70px;border-top:1px solid var(--line);color:#829ab0}
.footer-flex{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}
.reveal{opacity:0;transform:translateY(20px);transition:.7s ease}
.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .hero-bg{transition:none}
  .meteor.fly{animation:none;opacity:0}
  .impact-flash.on{animation:none}
}
@media(max-width:900px){
  .nav{height:auto;flex-wrap:wrap;padding:10px 0}
  .navlinks{order:3;width:100%;overflow-x:auto;gap:14px;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .navlinks a{white-space:nowrap;flex-shrink:0}
  .feature-grid,.control-zone,.command-panel,.video-grid{grid-template-columns:1fr}
  .moon-grid{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .archive-gallery{grid-template-columns:repeat(3,1fr)}
  .feature-main{min-height:480px}
  .phenomena-grid,.wasp-grid,.elena-grid{grid-template-columns:1fr}
}
@media(max-width:540px){
  .shell{width:min(100% - 22px,1180px)}
  .hero{padding-top:110px}
  .gallery{grid-template-columns:1fr}
  .archive-gallery{grid-template-columns:repeat(2,1fr)}
  .sound-toggle{padding:8px 11px}
  section{padding:65px 0}
  .guide-card{flex-direction:column;text-align:center}
}

/* ---- Official theme player (added with the music pass) ---- */
.theme-player{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin:0 0 26px;padding:22px 26px;border-radius:16px;
  border:1px solid rgba(210,168,90,.28);
  background:linear-gradient(135deg,rgba(12,26,42,.9),rgba(7,19,31,.72));
  box-shadow:0 0 34px rgba(3,7,17,.55) inset;
}
.theme-player-title{
  font-weight:900;letter-spacing:.12em;font-size:1.15rem;color:var(--gold);margin-top:6px
}
.theme-player-sub{color:#9fb4c6;font-size:.86rem;margin-top:6px;line-height:1.5}
.theme-player button{flex:0 0 auto}
.theme-player button[aria-pressed="true"]{
  border-color:rgba(210,168,90,.65);color:var(--gold);
  box-shadow:0 0 18px rgba(210,168,90,.28)
}
.command-panel button[aria-pressed="true"]{
  border-color:rgba(95,199,255,.6);color:var(--blue);
  box-shadow:0 0 18px rgba(95,199,255,.22)
}
@media (max-width:640px){
  .theme-player{flex-direction:column;align-items:flex-start;gap:16px}
  .theme-player button{width:100%}
}

/* ---- Playlist card meta (added with the link audit) ---- */
.video-count{
  margin-top:10px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;
  color:#7f97ab;font-weight:700
}
.video-card:hover .video-count{color:var(--blue)}

/* ---- Ancient Dial: real artifact face (replaces the CSS-drawn disc) ---- */
/* the pointer rides the artifact rather than sitting on a flat disc */
.dial::after{
  top:2.5%;width:2px;height:30px;
  background:linear-gradient(180deg,var(--gold),rgba(210,168,90,0));
  box-shadow:0 0 14px rgba(210,168,90,.95)
}
/* shrink the core so the artifact's engraved centre stays visible */
.dial-core{
  inset:43%;font-size:.58rem;letter-spacing:.1em;
  background:rgba(4,12,20,.7);
  border-color:rgba(95,199,255,.3);
  backdrop-filter:blur(1px)
}
.dial-wrap{position:relative}

/* ---- Music section ---- */
.album-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.album-card{
  display:flex;flex-direction:column;gap:0;
  border-radius:16px;overflow:hidden;
  border:1px solid rgba(210,168,90,.2);
  background:linear-gradient(150deg,rgba(12,26,42,.85),rgba(7,19,31,.7));
  transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s
}
.album-card:hover{
  transform:translateY(-5px);
  border-color:rgba(210,168,90,.5);
  box-shadow:0 18px 44px rgba(3,7,17,.6),0 0 30px rgba(210,168,90,.1)
}
.album-art{position:relative;aspect-ratio:1;overflow:hidden;background:#050c15}
.album-art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.album-card:hover .album-art img{transform:scale(1.05)}
.album-art::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(3,7,17,.85) 100%)
}
.album-meta{padding:18px 20px 4px}
.album-meta h3{margin:8px 0 0;font-size:1.05rem;letter-spacing:.04em;color:#e8f0f7}
.album-track{margin:8px 0 0;color:#8ea6b9;font-size:.82rem;line-height:1.5}
.album-play{margin:16px 20px 20px;align-self:flex-start}
.album-play[aria-pressed="true"]{
  border-color:rgba(210,168,90,.65);color:var(--gold);
  box-shadow:0 0 18px rgba(210,168,90,.28)
}
.album-now{
  margin-top:26px;padding:18px 22px;border-radius:14px;
  border:1px solid rgba(95,199,255,.22);background:rgba(7,19,31,.66)
}
.album-now-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#7f97ab;font-weight:700}
.album-now-title{margin-top:6px;font-weight:800;letter-spacing:.06em;color:var(--gold)}
.album-progress{margin-top:14px;height:3px;border-radius:2px;background:rgba(255,255,255,.09);overflow:hidden}
.album-progress-bar{height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--gold));transition:width .25s linear}
.album-now-time{margin-top:8px;font-size:.74rem;color:#7f97ab;letter-spacing:.08em;font-variant-numeric:tabular-nums}

/* ---- Album grid v2: 17 covers, play button on the artwork ---- */
.album-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}
.album-meta{padding:14px 16px 16px}
.album-meta h3{font-size:.95rem}
.album-track{display:flex;flex-direction:column;gap:4px;font-size:.78rem}
.album-count{color:#6b8296;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
.album-play{
  position:absolute;right:12px;bottom:12px;z-index:2;
  width:44px;height:44px;padding:0;margin:0;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;
  border:1px solid rgba(210,168,90,.55);
  background:rgba(4,12,20,.72);backdrop-filter:blur(3px);
  opacity:0;transform:translateY(6px);
  transition:opacity .25s,transform .25s,box-shadow .25s,border-color .25s
}
.album-card:hover .album-play,
.album-play:focus-visible,
.album-play[aria-pressed="true"]{opacity:1;transform:translateY(0)}
.album-play:hover{border-color:var(--gold);box-shadow:0 0 20px rgba(210,168,90,.45)}
.ap-icon{
  width:0;height:0;margin-left:3px;
  border-left:12px solid var(--gold);
  border-top:8px solid transparent;border-bottom:8px solid transparent
}
.album-play[aria-pressed="true"]{border-color:var(--gold);box-shadow:0 0 22px rgba(210,168,90,.5)}
.album-play[aria-pressed="true"] .ap-icon{
  margin-left:0;width:11px;height:14px;border:0;
  border-left:4px solid var(--gold);border-right:4px solid var(--gold);
  background:transparent;box-sizing:border-box
}
.album-card:has(.album-play[aria-pressed="true"]){
  border-color:rgba(210,168,90,.6);
  box-shadow:0 0 34px rgba(210,168,90,.18)
}
.album-progress{cursor:pointer;height:6px;padding:0}
.album-progress:hover{background:rgba(255,255,255,.16)}
@media (max-width:520px){ .album-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px} }

/* ---- Cosmos gallery + ship feature ---- */
.ship-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:22px}
.cosmos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.ship-tile,.cosmos-tile{
  position:relative;display:block;width:100%;padding:0;margin:0;overflow:hidden;cursor:pointer;
  border-radius:14px;border:1px solid rgba(210,168,90,.2);background:#050c15;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s
}
.ship-tile:hover,.cosmos-tile:hover,
.ship-tile:focus-visible,.cosmos-tile:focus-visible{
  transform:translateY(-5px);border-color:rgba(210,168,90,.6);
  box-shadow:0 20px 46px rgba(3,7,17,.66),0 0 34px rgba(210,168,90,.12)
}
.ship-tile img,.cosmos-tile img{
  display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.8,.2,1)
}
.ship-tile:hover img,.cosmos-tile:hover img{transform:scale(1.05)}
.tile-cap{
  position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;
  text-align:left;font-size:.8rem;line-height:1.4;color:#dbe6f0;
  background:linear-gradient(180deg,transparent,rgba(3,7,17,.9));
  opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s
}
.ship-tile:hover .tile-cap,.cosmos-tile:hover .tile-cap,
.ship-tile:focus-visible .tile-cap,.cosmos-tile:focus-visible .tile-cap{opacity:1;transform:translateY(0)}
@media (max-width:520px){
  .cosmos-grid{grid-template-columns:1fr}
  .tile-cap{opacity:1;transform:none}
}

/* ---- Ancient Dial: live artifact video face ---- */
.dial-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;border-radius:50%;
  pointer-events:none;user-select:none;
  z-index:0;
}
/* core and pointer must stay above the moving face */
.dial-core{z-index:2}
.dial::after{z-index:2}
@media (prefers-reduced-motion:reduce){
  .dial-video{display:none}
}

/* ---- Ambient astrolabe backdrop for the Ancient Dial section ---- */
#console{position:relative;isolation:isolate;overflow:hidden}
#console > .shell{position:relative;z-index:2}
.section-bg-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;
  opacity:.3;pointer-events:none;user-select:none;
}
.section-bg-veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse at center,rgba(3,7,17,.34) 0%,rgba(3,7,17,.82) 62%,var(--bg) 100%),
    linear-gradient(180deg,var(--bg) 0%,transparent 18%,transparent 82%,var(--bg) 100%);
}
@media (prefers-reduced-motion:reduce){ .section-bg-video{display:none} }
@media (max-width:640px){ .section-bg-video{opacity:.2} }

/* ---- Links directory page ---- */
.link-group-head h3{
  margin:0;font-size:1.15rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)
}
.link-group-head p{margin:8px 0 0;color:#8ea6b9;font-size:.88rem;line-height:1.55}
.foot a{color:#829ab0;text-decoration:none}
.foot a:hover{color:var(--blue)}

/* ---- Downloads / store page ---- */
#downloadspage{padding-top:52px}
.dl-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.dl-filter{
  padding:9px 16px;border-radius:999px;cursor:pointer;
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  color:#9fb4c6;background:rgba(7,19,31,.7);border:1px solid var(--line);
  transition:color .25s,border-color .25s,background .25s
}
.dl-filter:hover{color:var(--blue);border-color:rgba(95,199,255,.5)}
.dl-filter.is-on{color:var(--gold);border-color:rgba(210,168,90,.65);background:rgba(210,168,90,.08)}
.dl-group{margin-top:44px}
.dl-grid{
  margin-top:20px;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px
}
.dl-card{
  display:flex;flex-direction:column;overflow:hidden;border-radius:16px;
  border:1px solid rgba(210,168,90,.2);
  background:linear-gradient(150deg,rgba(12,26,42,.85),rgba(7,19,31,.7));
  transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s
}
.dl-card:hover{
  transform:translateY(-5px);border-color:rgba(210,168,90,.55);
  box-shadow:0 20px 46px rgba(3,7,17,.62),0 0 30px rgba(210,168,90,.1)
}
.dl-art{position:relative;aspect-ratio:16/10;overflow:hidden;background:#050c15}
.dl-art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.dl-card:hover .dl-art img{transform:scale(1.05)}
.dl-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(3,7,17,.8))}
.dl-price{
  position:absolute;top:12px;right:12px;z-index:2;
  padding:6px 12px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.1em;
  color:#08131f;background:var(--gold);box-shadow:0 4px 16px rgba(3,7,17,.5)
}
.dl-price.is-free{color:#04121c;background:var(--blue)}
.dl-body{padding:18px 20px 6px;flex:1}
.dl-body h3{margin:8px 0 0;font-size:1.02rem;letter-spacing:.03em;color:#e8f0f7}
.dl-desc{margin:10px 0 0;color:#9fb4c6;font-size:.84rem;line-height:1.55}
.dl-meta{
  margin-top:12px;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:#6b8296;font-weight:700
}
.dl-cta{
  display:block;margin:18px 20px 20px;padding:12px 18px;border-radius:10px;text-align:center;
  font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;
  text-decoration:none;cursor:pointer;
  color:var(--blue);border:1px solid rgba(95,199,255,.45);background:rgba(95,199,255,.06);
  transition:color .25s,border-color .25s,background .25s,box-shadow .25s
}
.dl-cta:hover{color:#cfeaff;border-color:var(--blue);box-shadow:0 0 22px rgba(95,199,255,.25)}
.dl-cta.is-paid{color:var(--gold);border-color:rgba(210,168,90,.5);background:rgba(210,168,90,.07)}
.dl-cta.is-paid:hover{color:#f4dfae;border-color:var(--gold);box-shadow:0 0 22px rgba(210,168,90,.28)}
.dl-cta.is-disabled{
  color:#6b8296;border-color:var(--line);background:transparent;
  cursor:default;pointer-events:none
}
.dl-card.is-soon{opacity:.82}
.dl-card.is-soon .dl-art img{filter:saturate(.7)}
.dl-foot-note{
  margin-top:52px;padding-top:22px;border-top:1px solid var(--line);
  color:#7f97ab;font-size:.8rem;line-height:1.6;max-width:70ch
}
@media (max-width:520px){ .dl-grid{grid-template-columns:1fr} }

/* ---- Fixed-header offsets ----
   The topbar is fixed at 73px. Sub-pages start their own content, and every
   in-page anchor needs to clear the bar too (WCAG 2.2 SC 2.4.11). */
#downloadspage{padding-top:126px}
html{scroll-padding-top:96px}
section[id],[id]{scroll-margin-top:96px}

/* ---- Typography ----
   styles.css:15 asked for Inter but nothing ever loaded it, so every visitor
   was reading the OS UI font (Segoe UI on Windows). Now actually loaded, plus
   a mono for the small instrument-style labels. */
:root{
  --font-ui:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
}
body{
  font-family:var(--font-ui);
  font-feature-settings:"cv11","ss01";     /* Inter: nicer 1/l/a shapes */
  -webkit-font-smoothing:antialiased;      /* essential for light-on-dark */
  -moz-osx-font-smoothing:grayscale;
}
/* the small uppercase labels read as instrumentation in a mono */
.eyebrow,.kicker,.album-count,.video-count,.dl-meta,.dl-price,
.album-now-label,.album-now-time,.dl-filter{
  font-family:var(--font-mono);
  font-weight:500;
}
.eyebrow,.kicker{letter-spacing:.28em}
/* uppercase display type needs POSITIVE tracking, not negative */
h1{letter-spacing:-.03em;line-height:.92}
h1 span{-webkit-text-stroke:2px rgba(228,243,255,.9)}   /* 1px @ .75 was a hairline */

/* ---- Meteor sequence v2 ----
   Was a 14px dot with two box-shadows. Now: a tapered entry trail angled to
   the flight path, shedding fragments, an expanding shockwave ring, ember
   scatter and a stage shake. All CSS — no new bytes over the wire.
   Flight vector is 740x/205y, so the trail sits at atan(205/740) = 15.5deg. */
.meteor-stage{
  background:
    radial-gradient(circle at 65% 28%,#143a5e 0 2%,transparent 16%),
    radial-gradient(circle at 22% 12%,rgba(255,255,255,.5) 0 .2%,transparent 1%),
    radial-gradient(circle at 78% 62%,rgba(255,255,255,.4) 0 .18%,transparent 1%),
    radial-gradient(circle at 41% 74%,rgba(255,255,255,.35) 0 .16%,transparent 1%),
    linear-gradient(180deg,#071526,#030711 72%);
}
.meteor-stage.shake{animation:stageShake .5s cubic-bezier(.36,.07,.19,.97)}
@keyframes stageShake{
  0%,100%{transform:translate(0,0)}
  15%{transform:translate(-5px,3px)} 30%{transform:translate(4px,-3px)}
  45%{transform:translate(-3px,2px)} 60%{transform:translate(3px,-1px)}
  80%{transform:translate(-1px,1px)}
}

/* --- the meteor head --- */
.meteor{
  width:11px;height:11px;border-radius:50%;
  background:radial-gradient(circle at 38% 34%,#fff 0 28%,#ffe9b0 45%,#ff9a3c 78%,#ff5a18 100%);
  box-shadow:0 0 10px 3px rgba(255,190,90,.95),0 0 26px 10px rgba(255,110,35,.5);
  left:-140px;top:26px;opacity:0
}
/* tapered trail, anchored at the head and swept back along the flight line */
.meteor::before{
  content:"";position:absolute;right:50%;top:50%;
  width:190px;height:7px;transform-origin:100% 50%;
  transform:translateY(-50%) rotate(15.5deg);
  border-radius:99px 4px 4px 99px;
  background:linear-gradient(270deg,
    rgba(255,236,190,.95) 0%,rgba(255,150,60,.65) 22%,
    rgba(255,90,25,.30) 55%,rgba(255,70,20,0) 100%);
  filter:blur(1.5px);
}
/* faint outer heat envelope */
.meteor::after{
  content:"";position:absolute;right:50%;top:50%;
  width:250px;height:20px;transform-origin:100% 50%;
  transform:translateY(-50%) rotate(15.5deg);
  border-radius:99px;
  background:linear-gradient(270deg,rgba(255,140,50,.3),rgba(255,90,20,0) 78%);
  filter:blur(7px);
}
.meteor.fly{animation:meteorFly 2.6s cubic-bezier(.34,.03,.7,.96) forwards}
@keyframes meteorFly{
  0%  {transform:translate(0,0) scale(.5);opacity:0}
  7%  {opacity:1}
  55% {transform:translate(407px,113px) scale(1.25);opacity:1}
  88% {transform:translate(651px,180px) scale(1.7);opacity:1}
  100%{transform:translate(742px,206px) scale(2);opacity:0}
}
/* fragments shed off the head during entry */
.frag{
  position:absolute;left:2px;top:3px;width:3px;height:3px;border-radius:50%;
  background:#ffb765;box-shadow:0 0 6px 2px rgba(255,140,50,.7);opacity:0
}
.meteor.fly .f1{animation:frag 1.5s ease-out .55s forwards;--fx:-70px;--fy:-16px}
.meteor.fly .f2{animation:frag 1.4s ease-out .95s forwards;--fx:-58px;--fy:9px}
.meteor.fly .f3{animation:frag 1.3s ease-out 1.35s forwards;--fx:-80px;--fy:-4px}
@keyframes frag{
  0%{opacity:.95;transform:translate(0,0) scale(1)}
  100%{opacity:0;transform:translate(var(--fx),var(--fy)) scale(.2)}
}

/* --- impact --- */
.impact-flash{
  width:18px;height:18px;right:15.5%;bottom:44px;
  background:radial-gradient(circle,#fff 0 30%,#ffd9a0 55%,rgba(255,150,60,0) 100%);
  box-shadow:0 0 30px 16px rgba(255,190,110,.85),0 0 90px 46px rgba(255,110,35,.5)
}
.impact-flash.on{animation:flash 1.1s cubic-bezier(.15,.7,.3,1)}
@keyframes flash{
  0%{opacity:0;transform:scale(.1)}
  9%{opacity:1;transform:scale(1.15)}
  28%{opacity:.85;transform:scale(2)}
  100%{opacity:0;transform:scale(6.5)}
}
/* expanding ground shockwave */
.shockwave{
  position:absolute;right:15.5%;bottom:44px;width:10px;height:10px;
  border-radius:50%;opacity:0;pointer-events:none;
  border:2px solid rgba(255,206,140,.9);
  box-shadow:0 0 20px rgba(255,170,80,.6),inset 0 0 14px rgba(255,170,80,.35)
}
.shockwave.on{animation:shock 1.25s cubic-bezier(.1,.75,.25,1) forwards}
@keyframes shock{
  0%  {opacity:0;transform:scale(.3) scaleY(.5)}
  12% {opacity:1}
  100%{opacity:0;transform:scale(26) scaleY(.42);border-width:.4px}
}
/* embers thrown up from the impact point */
.embers{position:absolute;right:15.5%;bottom:44px;width:0;height:0;pointer-events:none}
.embers i{
  position:absolute;width:3px;height:3px;border-radius:50%;
  background:#ffc478;box-shadow:0 0 7px 2px rgba(255,150,60,.8);opacity:0
}
.embers.on i{animation:ember 1.5s cubic-bezier(.2,.6,.4,1) forwards}
.embers i:nth-child(1){--ex:-96px;--ey:-58px;animation-delay:.00s}
.embers i:nth-child(2){--ex:-58px;--ey:-84px;animation-delay:.04s}
.embers i:nth-child(3){--ex:-14px;--ey:-96px;animation-delay:.02s}
.embers i:nth-child(4){--ex:32px;--ey:-88px;animation-delay:.06s}
.embers i:nth-child(5){--ex:74px;--ey:-62px;animation-delay:.03s}
.embers i:nth-child(6){--ex:-130px;--ey:-30px;animation-delay:.08s}
.embers i:nth-child(7){--ex:104px;--ey:-34px;animation-delay:.05s}
.embers i:nth-child(8){--ex:-40px;--ey:-112px;animation-delay:.10s}
@keyframes ember{
  0%  {opacity:1;transform:translate(0,0) scale(1.1)}
  70% {opacity:.9}
  100%{opacity:0;transform:translate(var(--ex),calc(var(--ey) + 46px)) scale(.25)}
}

@media (prefers-reduced-motion:reduce){
  .meteor.fly,.impact-flash.on,.shockwave.on,.embers.on i,
  .meteor-stage.shake,.meteor.fly .frag{animation:none}
  .meteor.fly,.shockwave.on,.embers.on i{opacity:0}
}

/* ---- Nav: 11 links no longer fit ----
   At 1440px .navlinks was wrapping to a second row, orphaning the last item.
   Becomes a horizontal snap rail that never wraps, with fades at both edges
   so it reads as scrollable. Tap targets raised toward WCAG 2.2 SC 2.5.8. */
.navlinks{
  display:flex;flex-wrap:nowrap;gap:2px;
  min-width:0;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  scrollbar-width:none;-ms-overflow-style:none;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent);
          mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent);
}
.navlinks::-webkit-scrollbar{display:none}
.navlinks a{
  flex:0 0 auto;white-space:nowrap;scroll-snap-align:start;
  display:inline-flex;align-items:center;
  min-height:38px;padding:0 11px;border-radius:999px;
  transition:color .25s,background .25s
}
.navlinks a:hover{background:rgba(95,199,255,.08)}
.navlinks a.active{color:var(--gold);background:rgba(210,168,90,.1)}

/* ---- Starfield v2 ----
   Was 3 dots tiled at 220/330/260px — visibly a lattice, rows and columns.
   Now ~28 irregularly placed stars over one large 1400x1000 tile (so the
   repeat is far off-screen), in three brightness tiers, plus fine grain. */
body::before{
  opacity:.42;
  background-image:
    /* bright foreground stars */
    radial-gradient(circle at 13% 8%,#fff 0 1.1px,transparent 1.6px),
    radial-gradient(circle at 61% 17%,#fff 0 1.2px,transparent 1.7px),
    radial-gradient(circle at 88% 63%,#fff 0 1px,transparent 1.5px),
    radial-gradient(circle at 34% 71%,#fff 0 1.1px,transparent 1.6px),
    radial-gradient(circle at 76% 91%,#fff 0 .9px,transparent 1.4px),
    /* mid tier, faintly blue */
    radial-gradient(circle at 27% 31%,#cfeaff 0 .8px,transparent 1.2px),
    radial-gradient(circle at 45% 5%,#cfeaff 0 .7px,transparent 1.1px),
    radial-gradient(circle at 92% 24%,#cfeaff 0 .8px,transparent 1.2px),
    radial-gradient(circle at 6% 52%,#cfeaff 0 .7px,transparent 1.1px),
    radial-gradient(circle at 53% 44%,#cfeaff 0 .8px,transparent 1.2px),
    radial-gradient(circle at 69% 78%,#cfeaff 0 .7px,transparent 1.1px),
    radial-gradient(circle at 19% 88%,#cfeaff 0 .8px,transparent 1.2px),
    /* faint dust, warmer */
    radial-gradient(circle at 39% 22%,rgba(255,238,208,.75) 0 .6px,transparent 1px),
    radial-gradient(circle at 82% 41%,rgba(255,238,208,.7) 0 .5px,transparent .9px),
    radial-gradient(circle at 58% 62%,rgba(255,238,208,.7) 0 .6px,transparent 1px),
    radial-gradient(circle at 8% 74%,rgba(255,238,208,.65) 0 .5px,transparent .9px),
    radial-gradient(circle at 97% 84%,rgba(255,238,208,.7) 0 .6px,transparent 1px),
    radial-gradient(circle at 47% 95%,rgba(255,238,208,.65) 0 .5px,transparent .9px),
    radial-gradient(circle at 23% 46%,rgba(255,255,255,.6) 0 .5px,transparent .9px),
    radial-gradient(circle at 71% 33%,rgba(255,255,255,.55) 0 .5px,transparent .9px);
  background-size:1400px 1000px;
  background-repeat:repeat;
}
/* fine grain, sits over the stars — one cached 256px tile, no per-paint filter */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  opacity:.16;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:256px 256px;
}

/* ---- Focus states ----
   Only 4 component-scoped rules existed; everything else fell back to the UA
   default, whose dark half is invisible on #030711. WCAG 2.2 SC 2.4.13. */
:where(a,button,summary,[tabindex]):focus-visible{
  outline:3px solid var(--blue);
  outline-offset:3px;
  box-shadow:0 0 0 6px var(--bg);      /* dark halo keeps it readable over video */
  border-radius:6px;
}
:where(a,button,summary,[tabindex]):focus:not(:focus-visible){outline:none}
@media (forced-colors:active){
  :where(a,button,summary,[tabindex]):focus-visible{outline:3px solid Highlight;box-shadow:none}
}

/* ---- Image treatment ----
   Calm the photographs with filter, never opacity (opacity blends toward the
   background and lifts blacks). Lifts back to full on hover. */
.feature-main img,.moon-card img,.cosmos-tile img,.ship-tile img,
.album-art img,.dl-art img,.g-item img{
  filter:brightness(.86) contrast(1.06) saturate(.94);
  transition:filter .32s cubic-bezier(.165,.84,.44,1),
             transform .9s cubic-bezier(.165,.84,.44,1);
}
.feature-main:hover img,.moon-card:hover img,.cosmos-tile:hover img,
.ship-tile:hover img,.album-card:hover .album-art img,.dl-card:hover .dl-art img{
  filter:brightness(1) contrast(1.03) saturate(1);
}

/* ---- Full-4K download link ----
   Was target="_blank" on a 224MB mp4, which opens it inline and hangs the tab.
   Now a download with the weight stated before the click. */
.dl-4k{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.dl-4k-size{
  font-family:var(--font-mono);font-size:.62rem;font-weight:500;
  letter-spacing:.1em;padding:3px 7px;border-radius:999px;
  color:var(--gold);border:1px solid rgba(210,168,90,.4);
  background:rgba(210,168,90,.08)
}
.dl-4k:hover .dl-4k-size{border-color:var(--gold);background:rgba(210,168,90,.16)}

/* ---- Reveal robustness ----
   .reveal set opacity:0 on 62 elements with no <noscript> path, so a JS
   failure blanked the entire page. Revealed is now the DEFAULT; the hidden
   state only applies once JS has confirmed itself by setting .js on <html>. */
.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(20px);transition:.7s cubic-bezier(.165,.84,.44,1)}
.js .reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal,.js .reveal{opacity:1!important;transform:none!important;transition:none!important}
}

/* ---- Mobile viewport units ----
   vh resolves to the LARGEST viewport height on mobile, so content hides
   behind the browser chrome. svh is the small-viewport equivalent; the vh
   line stays first as the fallback for browsers without svh. */
.hero{min-height:94vh;min-height:94svh}
.modal img{max-height:78vh;max-height:78svh}
.phenomena-video{max-height:74vh;max-height:74svh}

/* ---- Download email gate (downloads.html) ---- */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.dl-gate{display:grid;grid-template-columns:1fr auto;gap:8px;padding:14px 16px 16px;align-items:center}
.dl-gate-input{padding:11px 13px;border-radius:10px;border:1px solid var(--line);
  background:rgba(4,12,22,.72);color:#eef8ff;font:inherit;font-size:.9rem;min-width:0}
.dl-gate-input:focus{outline:2px solid var(--blue);outline-offset:1px}
.dl-gate .dl-cta{margin:0;white-space:nowrap}
.dl-gate-note{grid-column:1/-1;margin:2px 0 0;color:#7d93a6;font-size:.72rem;line-height:1.5}
@media(max-width:520px){ .dl-gate{grid-template-columns:1fr} }

/* Replaces the removed "FULL 4K" download button - the 224 MB master is kept
   locally but not shipped (it exceeds Cloudflare Pages' 25 MB per-file cap). */
.dl-4k-note{color:#7d93a6;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}

/* ---- Elena feature panel ----
   The base .guide-card is a 96px avatar row. This variant gives the 4K
   captain's-uniform portrait room to actually read. The source frame is lit
   against near-black, so it sits on the panel with no cut-out needed. */
.guide-feature{align-items:stretch;gap:26px;padding:0;overflow:hidden}
.guide-feature img{
  width:clamp(180px,26%,260px);height:auto;align-self:stretch;object-fit:cover;object-position:top center;
  border-radius:0;border:0;border-right:1px solid var(--line);flex-shrink:0
}
.guide-feature > div{padding:26px 26px 26px 0;display:flex;flex-direction:column;justify-content:center}
.guide-lead{color:#9fb4c6;line-height:1.7;margin:0 0 18px;max-width:60ch}
.guide-specs{display:flex;gap:22px;flex-wrap:wrap;color:#8da4b8;font-size:.74rem;
  text-transform:uppercase;letter-spacing:.13em}
.guide-specs b{color:#eef8ff;font-weight:700}
@media(max-width:640px){
  .guide-feature{flex-direction:column}
  .guide-feature img{width:100%;max-height:420px;border-right:0;border-bottom:1px solid var(--line)}
  .guide-feature > div{padding:22px;text-align:left}
  .guide-specs{justify-content:flex-start}
}

/* ---- Command Deck bridge backdrop ----
   Same stacking contract as #console's video backdrop: the image sits at
   z-index 0, .section-bg-veil at 1, and the content shell is lifted to 2.
   Without the isolation/overflow pair the backdrop escapes the section. */
#deep-time{position:relative;isolation:isolate;overflow:hidden}
#deep-time > .shell{position:relative;z-index:2}
.section-bg-image{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;
  opacity:.34;pointer-events:none;user-select:none;
}
@media (max-width:640px){ .section-bg-image{opacity:.22} }

/* ---- Support / donate panel ---- */
.donate-panel{
  border:1px solid var(--line);border-radius:22px;padding:40px 30px;text-align:center;
  background:linear-gradient(180deg,rgba(12,29,48,.70),rgba(5,13,24,.82));box-shadow:var(--shadow)
}
.donate-panel h2{margin:10px 0 14px}
.donate-body{color:#9fb4c6;max-width:640px;margin:0 auto 20px;line-height:1.7}
.donate-goals{list-style:none;padding:0;margin:0 auto 26px;max-width:460px;display:grid;gap:9px;
  color:#c9d8e4;font-size:.92rem;text-align:left}
.donate-goals li{padding-left:22px;position:relative}
.donate-goals li::before{content:"\2014";position:absolute;left:0;color:var(--gold)}
.donate-actions{justify-content:center}
.donate-note{color:#7d93a6;font-size:.76rem;margin:18px 0 0;line-height:1.6}

/* Post-download support nudge. Deliberately below the shelf, not in front of
   it - the ask lands after someone has the file, never as a gate. */
.dl-support{
  margin-top:34px;padding:24px 26px;border:1px solid var(--line);border-radius:18px;
  background:rgba(8,18,30,.55);display:flex;align-items:center;justify-content:space-between;
  gap:20px;flex-wrap:wrap
}
.dl-support p{margin:0;color:#9fb4c6;line-height:1.65;max-width:60ch;font-size:.92rem}
.dl-support .secondary{white-space:nowrap}

/* ---- Album release banner ---- */
.release-banner{
  display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:0 0 22px;
  padding:22px 24px;border:1px solid rgba(210,168,90,.35);border-radius:18px;
  background:linear-gradient(180deg,rgba(210,168,90,.09),rgba(5,13,24,.55))
}
.release-tag{
  color:var(--bg);background:var(--gold);font-weight:800;font-size:.7rem;
  letter-spacing:.16em;text-transform:uppercase;padding:8px 13px;border-radius:999px;white-space:nowrap
}
.release-copy{flex:1 1 320px;min-width:0}
.release-copy h3{margin:0 0 6px;font-size:1.3rem;letter-spacing:-.02em}
.release-copy p{margin:0;color:#c9d8e4;line-height:1.6;font-size:.94rem}
.release-copy em{color:var(--gold);font-style:normal;font-weight:700}
.release-soon{color:#8da4b8;font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap}
@media(max-width:620px){ .release-banner{flex-direction:column;align-items:flex-start} }
.release-tracks{margin:12px 0 0;padding-left:20px;color:#9fb4c6;font-size:.86rem;line-height:1.75}
.release-tracks li{padding-left:2px}
