/* ═══════════════════════════════════════════════
   THE GOD CODE — thegodcode.info  |  style.css
═══════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400;1,600&family=Montserrat:wght@300;400;500;600;700&display=swap');

:root {
  --black:      #050608;
  --black2:     #080A0E;
  --gold:       #C9A84C;
  --gold-lt:    #E8C86A;
  --gold-bright:#FFD97A;
  --gold-dk:    #7A6330;
  --gold-dim:   #3D3018;
  --white:      #F5F0E8;
  --gray:       #6A6560;
  --gray-lt:    #A8A09A;
  --panel:      #09090D;
  --panel2:     #0D0E13;
  --border:     #1C1D24;
  --border2:    #2A2B35;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Montserrat', sans-serif;
  --ease:  cubic-bezier(0.22, 1, 0.36, 1);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--black); color:var(--white); font-family:var(--sans); font-weight:300; line-height:1.75; overflow-x:hidden; }
img  { display:block; max-width:100%; }
a    { color:inherit; text-decoration:none; }
button { cursor:pointer; border:none; background:none; font:inherit; }

body::before {
  content:''; position:fixed; inset:0; pointer-events:none; z-index:9000; opacity:0.65;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
}

/* ── LAYOUT ──────────────────────────────── */
.wrap    { max-width:1080px; margin:0 auto; padding:0 40px; }
.wrap--sm{ max-width:780px;  margin:0 auto; padding:0 40px; }

/* ── SHARED TAGS ────────────────────────── */
.tag {
  font-size:9px; letter-spacing:6px; color:var(--gold);
  text-transform:uppercase; font-weight:600;
  display:flex; align-items:center; gap:16px; margin-bottom:36px;
}
.tag::after { content:''; flex:1; height:1px; background:linear-gradient(to right,var(--gold-dk),transparent); }
.rule { height:1px; background:linear-gradient(to right,transparent,var(--gold),transparent); opacity:.35; margin:56px 0; }

/* ── REVEAL ─────────────────────────────── */
.r  { opacity:0; transform:translateY(32px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.r.on { opacity:1; transform:translateY(0); }
.r2 { transition-delay:.1s; } .r3 { transition-delay:.2s; }
.r4 { transition-delay:.3s; } .r5 { transition-delay:.4s; }

/* ── BUTTONS ────────────────────────────── */
.btn-primary {
  font-size:10px; letter-spacing:4px; text-transform:uppercase; font-weight:600;
  color:var(--black); background:var(--gold); padding:15px 36px;
  display:inline-block; transition:background .3s, transform .3s;
}
.btn-primary:hover { background:var(--gold-lt); transform:translateY(-2px); }

/* ═══════════════════════════════════════════════
   NAV — logo only, no menu links
═══════════════════════════════════════════════ */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:22px 40px;
  display:flex; align-items:center; justify-content:space-between;
  transition:background .4s, backdrop-filter .4s;
}
.nav.scrolled {
  background:rgba(5,6,8,.9);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}
.nav-logo {
  font-family:var(--serif); font-size:18px; font-weight:700;
  color:var(--gold); letter-spacing:2px;
}
.nav-logo span { font-style:italic; color:var(--white); }
.nav-cta {
  font-size:9px; letter-spacing:3px; text-transform:uppercase; font-weight:600;
  color:var(--black); background:var(--gold); padding:10px 22px;
  transition:background .3s;
}
.nav-cta:hover { background:var(--gold-lt); }

/* ═══════════════════════════════════════════════
   HERO
═══════════════════════════════════════════════ */
.hero {
  position:relative; min-height:100svh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  overflow:hidden; text-align:center;
}
.hero-bg {
  position:absolute; inset:0;
  background:url('../images/hero.jpg') center center / cover no-repeat;
}
.hero-overlay {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 55% at 50% 50%, rgba(5,6,8,.08) 0%, rgba(5,6,8,.55) 100%),
    linear-gradient(to bottom, rgba(5,6,8,.55) 0%, rgba(5,6,8,.05) 28%, rgba(5,6,8,.05) 58%, rgba(5,6,8,.98) 100%);
}
#glitter { position:absolute; inset:0; pointer-events:none; z-index:2; }
.hero-content {
  position:relative; z-index:3;
  padding:100px 24px 60px;
  display:flex; flex-direction:column; align-items:center;
}
.hero-eyebrow {
  font-size:9px; letter-spacing:7px; color:var(--gold);
  text-transform:uppercase; font-weight:600; margin-bottom:28px; opacity:.8;
}
.hero-title {
  font-family:var(--serif);
  font-size:clamp(60px,14vw,130px);
  font-weight:700; line-height:.88; letter-spacing:.02em;
}
.hero-title .the {
  display:block; font-size:.36em; letter-spacing:.28em;
  color:var(--gold-lt); font-style:italic; font-weight:400; margin-bottom:6px;
  text-shadow:0 0 40px rgba(201,168,76,.6);
}
.hero-title .god {
  display:block; color:var(--gold);
  text-shadow:0 0 30px rgba(201,168,76,1),0 0 80px rgba(201,168,76,.5),0 0 160px rgba(201,168,76,.2);
}
.hero-title .code {
  display:block; font-size:.5em; letter-spacing:.32em;
  color:var(--white); font-style:italic;
  text-shadow:0 0 20px rgba(201,168,76,.3);
}
.hero-divider {
  width:80px; height:1px;
  background:linear-gradient(to right,transparent,var(--gold),transparent);
  margin:30px auto; opacity:.65;
}
.hero-tagline {
  font-family:var(--serif); font-size:clamp(14px,2.5vw,19px);
  font-style:italic; color:var(--gray-lt); line-height:1.7; max-width:520px;
  margin-bottom:16px;
}
/* strip ABOVE the CTA button */
.hero-strip {
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px 24px;
  font-size:8px; letter-spacing:5px; color:var(--gold-dk);
  text-transform:uppercase; font-weight:600; margin-bottom:32px;
}
.hero-strip span { color:var(--gold); }
/* CTA now below strip */
.hero-cta { margin-top:0; }

.hero-scroll {
  position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
  z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px;
  font-size:8px; letter-spacing:4px; color:var(--gold-dk); text-transform:uppercase;
}
.hero-scroll-line {
  width:1px; height:40px;
  background:linear-gradient(to bottom, var(--gold), transparent);
  animation:scrollPulse 2.2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%,100% { opacity:.3; transform:scaleY(1); }
  50%      { opacity:.85; transform:scaleY(1.15); }
}

/* ═══════════════════════════════════════════════
   COMING SOON BAND
═══════════════════════════════════════════════ */
.coming-band { background:var(--gold); padding:16px 32px; text-align:center; }
.coming-band p {
  font-size:10px; letter-spacing:6px;
  color:var(--black); text-transform:uppercase; font-weight:700;
}

/* ═══════════════════════════════════════════════
   AI PRODUCTION STATEMENT — dedicated section
═══════════════════════════════════════════════ */
.ai-statement {
  padding:110px 0;
  border-top:1px solid var(--border);
  position:relative; overflow:hidden;
}
.ai-statement::before {
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 60% at 50% 100%, rgba(201,168,76,.04) 0%, transparent 70%);
  pointer-events:none;
}
.ai-statement-inner {
  display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;
}
.ai-statement-quote {
  font-family:var(--serif);
  font-size:clamp(26px,3.5vw,42px);
  font-weight:300; line-height:1.4; color:var(--white);
}
.ai-statement-quote em { color:var(--gold); font-style:italic; display:block; margin-top:12px; }
.ai-gold-rule { width:60px; height:2px; background:var(--gold); margin:28px 0; opacity:.7; }
.ai-statement-sub {
  font-family:var(--serif); font-size:clamp(15px,1.8vw,18px);
  color:var(--gray-lt); line-height:1.8;
}
.ai-statement-sub strong { color:var(--gold-lt); font-weight:400; }
.ai-features { display:flex; flex-direction:column; gap:2px; }
.ai-feature {
  background:var(--panel); border:1px solid var(--border);
  border-left:2px solid var(--gold-dk);
  padding:22px 26px;
  transition:border-left-color .3s, background .3s;
}
.ai-feature:hover { border-left-color:var(--gold); background:var(--panel2); }
.ai-feature-head {
  font-size:8px; letter-spacing:5px; color:var(--gold);
  text-transform:uppercase; font-weight:600; margin-bottom:8px;
}
.ai-feature-body {
  font-family:var(--serif); font-size:15px; color:var(--gray-lt); line-height:1.6;
}

/* ═══════════════════════════════════════════════
   SECTION — GENERAL
═══════════════════════════════════════════════ */
.section       { padding:100px 0; border-top:1px solid var(--border); }
.section--dark { background:var(--black2); }

.section-title {
  font-family:var(--serif); font-size:clamp(36px,6vw,62px);
  font-weight:700; line-height:1.0; margin-bottom:28px;
}
.section-title em { color:var(--gold); font-style:italic; }
.section-body {
  font-family:var(--serif); font-size:clamp(17px,2vw,21px);
  line-height:1.8; color:var(--gray-lt); margin-bottom:24px;
}
.section-body em { color:var(--white); font-style:italic; }
.section-body strong { color:var(--gold); font-weight:400; }
.pull-quote {
  font-family:var(--serif); font-size:clamp(18px,2.5vw,24px);
  font-style:italic; color:var(--gold-lt);
  border-left:2px solid var(--gold);
  padding:10px 0 10px 30px; margin:48px 0; line-height:1.65;
}

/* ═══════════════════════════════════════════════
   QUESTION
═══════════════════════════════════════════════ */
.question-section { padding:120px 0; border-top:1px solid var(--border); text-align:center; }
.question-big {
  font-family:var(--serif); font-size:clamp(28px,5vw,52px);
  font-weight:300; line-height:1.45; color:var(--white);
  max-width:820px; margin:0 auto 36px;
}
.question-big em { color:var(--gold); font-style:italic; }
.question-answer {
  font-family:var(--serif); font-size:clamp(14px,1.8vw,18px);
  font-style:italic; color:var(--gray-lt); max-width:560px;
  margin:0 auto; line-height:1.8;
}

/* ═══════════════════════════════════════════════
   LAYERS
═══════════════════════════════════════════════ */
.layers-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin:56px 0; }
.layer-card {
  background:var(--panel); border:1px solid var(--border);
  padding:40px 28px; position:relative; overflow:hidden;
  transition:border-color .4s;
}
.layer-card:hover { border-color:var(--gold-dk); }
.layer-card.highlight {
  border-color:var(--gold-dk);
  background:linear-gradient(135deg,#100D04 0%,var(--panel) 100%);
}
.layer-num {
  font-family:var(--serif); font-size:64px; font-weight:700;
  color:var(--gold-dim); line-height:1; position:absolute; top:16px; right:20px; opacity:.5;
}
.layer-tag { font-size:8px; letter-spacing:5px; color:var(--gold); text-transform:uppercase; font-weight:600; margin-bottom:14px; }
.layer-title { font-family:var(--serif); font-size:22px; font-weight:700; color:var(--white); margin-bottom:12px; line-height:1.2; }
.layer-card.highlight .layer-title { color:var(--gold-lt); }
.layer-body { font-family:var(--serif); font-size:15px; color:var(--gray-lt); line-height:1.65; }

/* ═══════════════════════════════════════════════
   CAST — character card style
═══════════════════════════════════════════════ */
.cast-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:24px; margin-top:56px;
}
/* last row centering when only 2 in row */
.cast-grid > .cast-card:nth-child(4) { grid-column:1; }
.cast-grid > .cast-card:nth-child(5) { grid-column:2; }

.cast-card {
  background:var(--panel); border:1px solid var(--border);
  overflow:hidden; position:relative;
  transition:border-color .4s, transform .4s;
}
.cast-card:hover { border-color:var(--gold-dk); transform:translateY(-4px); }

/* INNER LAYOUT: photo left, info right */
.cast-card-inner {
  display:grid; grid-template-columns:320px 1fr;
  min-height:240px;
}
.cast-photo-wrap {
  position:relative; overflow:hidden;
  background:var(--panel2);
}
.cast-photo {
  width:100%; height:100%;
  object-fit:cover; object-position:center top;
  display:block; filter:grayscale(12%);
  transition:filter .5s, transform .5s var(--ease);
}
.cast-card:hover .cast-photo { filter:grayscale(0%); transform:scale(1.03); }
/* initials fallback */
.cast-initials {
  width:100%; height:100%; min-height:240px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--panel2),var(--gold-dim));
}
.cast-initials span { font-family:var(--serif); font-size:64px; font-weight:700; color:var(--gold); opacity:.4; }
.cast-gold-bar { width:2px; background:var(--gold-dk); transition:background .35s; flex-shrink:0; }
.cast-card:hover .cast-gold-bar { background:var(--gold); }
.cast-info {
  padding:28px 26px; display:flex; flex-direction:column; justify-content:center;
  border-left:none;
}
.cast-character {
  font-size:8px; letter-spacing:5px; color:var(--gold-dk);
  text-transform:uppercase; font-weight:600; margin-bottom:6px;
}
.cast-name { font-family:var(--serif); font-size:26px; font-weight:700; color:var(--white); margin-bottom:4px; }
.cast-role-desc { font-family:var(--serif); font-size:14px; font-style:italic; color:var(--gray-lt); margin-bottom:16px; line-height:1.5; }
.cast-reach { font-family:var(--serif); font-size:24px; font-weight:700; color:var(--gold-lt); }
.cast-reach-lbl { font-size:9px; color:var(--gray); margin-left:4px; letter-spacing:2px; }
.cast-social {
  display:inline-block; margin-top:10px; font-size:10px;
  color:var(--gold-dk); letter-spacing:1px; transition:color .3s;
}
.cast-social:hover { color:var(--gold); }

/* ═══════════════════════════════════════════════
   EPISODES
═══════════════════════════════════════════════ */
.ep-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:48px; }
.ep-card {
  background:var(--panel); border:1px solid var(--border);
  padding:28px 22px; border-left:2px solid transparent;
  transition:border-color .3s, background .3s, border-left-color .3s;
}
.ep-card:hover { border-color:var(--gold-dk); background:var(--panel2); border-left-color:var(--gold); }
.ep-num { font-family:var(--serif); font-size:11px; font-weight:700; color:var(--gold); letter-spacing:3px; margin-bottom:12px; }
.ep-title { font-family:var(--serif); font-size:18px; font-weight:700; color:var(--white); margin-bottom:10px; line-height:1.2; }
.ep-log { font-family:var(--serif); font-size:13px; color:var(--gray-lt); line-height:1.6; }
.ep-coming { font-size:8px; letter-spacing:4px; color:var(--gold-dk); text-transform:uppercase; font-weight:600; margin-top:14px; }

/* ═══════════════════════════════════════════════
   SCIENCE
═══════════════════════════════════════════════ */
.sci-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:48px; }
.sci-card {
  background:var(--panel); border:1px solid var(--border);
  border-bottom:2px solid var(--gold-dk);
  padding:36px 28px; transition:border-bottom-color .3s;
}
.sci-card:hover { border-bottom-color:var(--gold); }
.sci-who { font-size:8px; letter-spacing:5px; color:var(--gold); text-transform:uppercase; font-weight:600; margin-bottom:14px; }
.sci-claim { font-family:var(--serif); font-size:16px; color:var(--gray-lt); line-height:1.7; }

/* ═══════════════════════════════════════════════
   APPLICATION FORM
═══════════════════════════════════════════════ */
.form-section { padding:100px 0; border-top:1px solid var(--border); position:relative; overflow:hidden; }
.form-section::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 60% 50% at 50% 100%, rgba(201,168,76,.05) 0%, transparent 70%);
}
.form-wrap {
  background:var(--panel2); border:1px solid var(--border2);
  border-top:2px solid var(--gold); padding:56px 52px; position:relative;
}
.form-wrap::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(to right,transparent,var(--gold),transparent);
}
.form-title { font-family:var(--serif); font-size:clamp(28px,4vw,44px); font-weight:700; color:var(--white); margin-bottom:8px; }
.form-title em { color:var(--gold); font-style:italic; }
.form-sub { font-family:var(--serif); font-size:17px; font-style:italic; color:var(--gray-lt); margin-bottom:44px; line-height:1.65; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-group { display:flex; flex-direction:column; gap:8px; }
.form-group.full { grid-column:1/-1; }
.form-label { font-size:8px; letter-spacing:5px; color:var(--gold); text-transform:uppercase; font-weight:600; }
.form-input,.form-select,.form-textarea {
  background:var(--black2); border:1px solid var(--border2); border-bottom:1px solid var(--gold-dk);
  color:var(--white); font-family:var(--serif); font-size:16px; padding:14px 16px;
  outline:none; transition:border-color .3s, background .3s; width:100%; -webkit-appearance:none;
}
.form-input:focus,.form-select:focus,.form-textarea:focus { border-bottom-color:var(--gold); background:#0C0D12; }
.form-input::placeholder,.form-textarea::placeholder { color:var(--gray); font-style:italic; }
.form-select { color:var(--gray-lt); cursor:pointer; }
.form-select option { background:var(--black2); color:var(--white); }
.form-textarea { resize:vertical; min-height:120px; line-height:1.6; }
.form-submit {
  margin-top:32px; font-size:10px; letter-spacing:5px; text-transform:uppercase; font-weight:600;
  color:var(--black); background:var(--gold); padding:16px 44px;
  transition:background .3s, transform .3s; cursor:pointer; border:none; font-family:var(--sans);
}
.form-submit:hover { background:var(--gold-lt); transform:translateY(-2px); }
.form-note { font-size:11px; color:var(--gray); margin-top:20px; font-style:italic; font-family:var(--serif); }
.form-success { display:none; text-align:center; padding:48px 0; }
.form-success.show { display:block; }
.form-success-icon { font-size:48px; margin-bottom:20px; color:var(--gold); }
.form-success-title { font-family:var(--serif); font-size:32px; font-weight:700; color:var(--gold); margin-bottom:12px; }
.form-success-body { font-family:var(--serif); font-size:18px; font-style:italic; color:var(--gray-lt); line-height:1.7; }

/* ═══════════════════════════════════════════════
   SOCIAL
═══════════════════════════════════════════════ */
.social-section { padding:100px 0; border-top:1px solid var(--border); text-align:center; }
.social-grid { display:flex; flex-wrap:wrap; justify-content:center; gap:2px; margin:48px 0; }
.social-card {
  background:var(--panel); border:1px solid var(--border);
  padding:28px 40px; display:flex; flex-direction:column; align-items:center; gap:12px;
  transition:border-color .3s, background .3s; min-width:160px;
}
.social-card:hover { border-color:var(--gold-dk); background:var(--panel2); }
.social-icon { font-size:26px; color:var(--gold); }
.social-name { font-size:8px; letter-spacing:4px; color:var(--gray-lt); text-transform:uppercase; font-weight:600; }
.social-handle { font-family:var(--serif); font-size:14px; color:var(--gold-dk); font-style:italic; }

/* ═══════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════ */
.footer { padding:60px 0 40px; border-top:1px solid var(--border); text-align:center; }
.footer-logo { font-family:var(--serif); font-size:28px; font-weight:700; color:var(--gold); letter-spacing:3px; margin-bottom:8px; }
.footer-tagline { font-family:var(--serif); font-size:14px; font-style:italic; color:var(--gray); margin-bottom:32px; }
.footer-meta { font-size:9px; letter-spacing:4px; color:var(--gold-dim); text-transform:uppercase; }

/* ═══════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════ */
@media (max-width:960px) {
  .ai-statement-inner { grid-template-columns:1fr; gap:48px; }
  .cast-grid { grid-template-columns:1fr 1fr; }
  .cast-grid > .cast-card:nth-child(4),
  .cast-grid > .cast-card:nth-child(5) { grid-column:auto; }
  .cast-card-inner { grid-template-columns:140px 1fr; }
  .layers-grid { grid-template-columns:1fr; }
  .ep-grid { grid-template-columns:1fr 1fr; }
  .sci-grid { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .form-group.full { grid-column:1; }
  .form-wrap { padding:36px 24px; }
}
@media (max-width:600px) {
  .wrap { padding:0 20px; } .wrap--sm { padding:0 20px; }
  .cast-grid { grid-template-columns:1fr; }
  .cast-card-inner { grid-template-columns:120px 1fr; min-height:180px; }
  .ep-grid { grid-template-columns:1fr; }
  .cast-name { font-size:20px; }
  .cast-initials span { font-size:48px; }
  .cast-initials { min-height:180px; }
}

/* ═══════════════════════════════════════════════
   HERO UNIVERSE OVERLAYS
═══════════════════════════════════════════════ */

/* Universe canvas — full hero, below text */
#universe {
  position: absolute; inset: 0;
  pointer-events: none; z-index: 2;
  width: 100%; height: 100%;
}

/* ── COMPASS RINGS CONTAINER ────────────────
   SVG rings absolutely centred on hero focal
   point (matching the image's glowing circle)
──────────────────────────────────────────── */
.compass-rings {
  position: absolute;
  /* Centre on the image's glowing focal point ~50%/48% */
  left: 50%; top: 48%;
  transform: translate(-50%, -50%);
  width: min(90vw, 760px);
  aspect-ratio: 1;
  pointer-events: none;
  z-index: 3;
}
.compass-rings svg {
  width: 100%; height: 100%;
  overflow: visible;
}

/* Outer ring — very slow CW rotation */
.ring-outer {
  transform-origin: 50% 50%;
  animation: rotCW 360s linear infinite;
}
/* Middle ring — slightly faster CCW */
.ring-mid {
  transform-origin: 50% 50%;
  animation: rotCCW 225s linear infinite;
}
/* Inner compass tick ring — CW, medium */
.ring-inner {
  transform-origin: 50% 50%;
  animation: rotCW 135s linear infinite;
}
/* Cardinal cross — slow pulse + rotate CW */
.ring-cardinal {
  transform-origin: 50% 50%;
  animation: rotCW 600s linear infinite;
}
/* Crosshair — opposite direction */
.ring-crosshair {
  transform-origin: 50% 50%;
  animation: rotCCW 480s linear infinite;
}
/* Glow pulse on centre dot */
.compass-centre {
  animation: centrePulse 12s ease-in-out infinite;
}

@keyframes rotCW  { from { transform: rotate(0deg);   } to { transform: rotate(360deg);  } }
@keyframes rotCCW { from { transform: rotate(0deg);   } to { transform: rotate(-360deg); } }
@keyframes centrePulse {
  0%,100% { opacity: 0.55; filter: blur(0px); }
  50%     { opacity: 1.0;  filter: blur(1px); }
}

/* ── RADIAL SCAN LINE ───────────────────────
   Single thin line sweeping around the outer ring
──────────────────────────────────────────── */
.scan-line {
  transform-origin: 50% 50%;
  animation: rotCW 54s linear infinite;
}

/* ── ORBIT PATH VISUAL ──────────────────────
   Dashed ellipse hinting at asteroid belt orbit
   Very subtle, behind everything
──────────────────────────────────────────── */
.orbit-ellipse {
  position: absolute;
  left: 50%; top: 48%;
  transform: translate(-50%, -50%);
  width: min(75vw, 620px);
  aspect-ratio: 2.2/1; /* flattened ellipse */
  border: 1px dashed rgba(201,168,76,0.09);
  border-radius: 50%;
  pointer-events: none;
  z-index: 2;
  animation: orbitPulse 24s ease-in-out infinite;
}
.orbit-ellipse-2 {
  position: absolute;
  left: 50%; top: 48%;
  transform: translate(-50%, -50%);
  width: min(55vw, 440px);
  aspect-ratio: 2.4/1;
  border: 1px dashed rgba(201,168,76,0.06);
  border-radius: 50%;
  pointer-events: none;
  z-index: 2;
  animation: orbitPulse 36s ease-in-out infinite reverse;
}
@keyframes orbitPulse {
  0%,100% { opacity: 0.5; }
  50%     { opacity: 1.0; }
}

/* ── CORNER RUNE MARKS ──────────────────────
   Subtle corner decorations matching compass aesthetic
──────────────────────────────────────────── */
.hero-corner {
  position: absolute; width: 60px; height: 60px;
  pointer-events: none; z-index: 4; opacity: 0.35;
}
.hero-corner--tl { top: 100px; left: 32px; }
.hero-corner--tr { top: 100px; right: 32px; transform: scaleX(-1); }
.hero-corner--bl { bottom: 80px; left: 32px; transform: scaleY(-1); }
.hero-corner--br { bottom: 80px; right: 32px; transform: scale(-1,-1); }
.hero-corner svg { width: 100%; height: 100%; }

/* ── DATA STREAM LINES ──────────────────────
   Very faint vertical lines hinting at encoded data
   matching the rune columns in the image
──────────────────────────────────────────── */
.data-stream {
  position: absolute; top: 0; bottom: 0; width: 1px;
  background: linear-gradient(to bottom,
    transparent 0%,
    rgba(201,168,76,0.08) 15%,
    rgba(201,168,76,0.15) 40%,
    rgba(201,168,76,0.10) 65%,
    transparent 100%
  );
  pointer-events: none; z-index: 3;
  animation: streamFade 18s ease-in-out infinite;
}
.data-stream-l { left: 10%; animation-delay: 0s; }
.data-stream-r { right: 10%; animation-delay: 3s; }
@keyframes streamFade {
  0%,100% { opacity: 0.3; }
  50%     { opacity: 0.8; }
}
