/* ════════════════════════════════════════════════════════
   LUNOVA\C — intelligence in orbit
   ════════════════════════════════════════════════════════ */

:root {
  --void: #08080B;
  --eclipse: #14141A;
  --mist: #F2F3F7;
  --white: #FFFFFF;
  --ash: #B8BCC8;
  --smoke: #777C8C;
  --violet: #8B5CF6;
  --blue: #2962FF;
  --indigo: #4C3CF1;
  --pink: #FF4FD8;
  --cyan: #5CE1FF;
  --lavender: #D8CCFF;

  --g-lunar: linear-gradient(100deg, #2962FF, #8B5CF6 55%, #D8CCFF);
  --g-plasma: linear-gradient(120deg, #8B5CF6, #FF4FD8 50%, #5CE1FF);

  --f-display: "Space Grotesk", sans-serif;
  --f-body: "General Sans", "Space Grotesk", sans-serif;
  --f-mono: "JetBrains Mono", monospace;

  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --ease-soft: cubic-bezier(.34, 1.3, .44, 1);

  --gutter: clamp(20px, 5vw, 88px);
  --stroke: rgba(255, 255, 255, .08);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }
html.lenis { height: auto; scroll-behavior: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }

body {
  background: var(--void);
  color: var(--white);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

::selection { background: var(--violet); color: var(--white); }

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

.mono {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: .18em;
  font-weight: 400;
}

.svg-defs { position: absolute; }

:focus-visible {
  outline: 2px solid var(--violet);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ── grain field ─────────────────────────────── */
.grain {
  position: fixed; inset: -50%;
  width: 200%; height: 200%;
  pointer-events: none;
  z-index: 200;
  opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain-shift 1.1s steps(4) infinite;
}
@keyframes grain-shift {
  0% { transform: translate(0, 0); }
  25% { transform: translate(-1.2%, .9%); }
  50% { transform: translate(.8%, -1.1%); }
  75% { transform: translate(-.6%, -.5%); }
  100% { transform: translate(0, 0); }
}

/* ── gradient text ───────────────────────────── */
.grad-text {
  background: var(--g-lunar);
  background-size: 180% 180%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: grad-breathe 7s ease-in-out infinite;
}
@keyframes grad-breathe {
  0%, 100% { background-position: 0% 60%; }
  50% { background-position: 90% 30%; }
}

/* ── buttons ─────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 15px;
  letter-spacing: .01em;
  padding: 15px 30px;
  border-radius: 999px;
  white-space: nowrap;
  transition: transform .15s var(--ease-out), box-shadow .15s var(--ease-out),
              background-color .15s var(--ease-out), border-color .15s var(--ease-out);
}
.btn-solid {
  background: var(--white);
  color: var(--void);
}
.btn-solid:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 0 1px rgba(139, 92, 246, .9), 0 0 28px rgba(139, 92, 246, .55), 0 0 64px rgba(41, 98, 255, .3);
}
.btn-ghost {
  border: 1px solid rgba(255, 255, 255, .22);
  color: var(--white);
  background: rgba(255, 255, 255, .02);
  backdrop-filter: blur(8px);
}
.btn-ghost:hover {
  border-color: rgba(139, 92, 246, .9);
  box-shadow: 0 0 22px rgba(139, 92, 246, .35);
  transform: translateY(-2px);
}
.btn-arrow { transition: transform .15s var(--ease-out); }
.btn:hover .btn-arrow { transform: translateX(4px); }
.btn-sm { padding: 10px 22px; font-size: 13.5px; }
.btn-lg { padding: 18px 38px; font-size: 16px; }

/* ── node glyphs ─────────────────────────────── */
.node-tri {
  display: inline-block;
  width: 14px; height: 8px;
  margin-right: 12px;
  vertical-align: 1px;
  background:
    radial-gradient(circle 2.5px at 3px 5px, currentColor 98%, transparent),
    radial-gradient(circle 2px at 9px 2.5px, currentColor 98%, transparent),
    radial-gradient(circle 1.6px at 13px 6px, currentColor 98%, transparent);
}

/* ════════════════════════════════════════════════════════
   LOADER
   ════════════════════════════════════════════════════════ */
.loader {
  position: fixed; inset: 0;
  z-index: 300;
  background: var(--void);
  display: grid;
  place-items: center;
  place-content: center;
  gap: 26px;
}
.loader-halo {
  position: absolute;
  width: 46vmin; height: 46vmin;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(139, 92, 246, .35), rgba(76, 60, 241, .12) 45%, transparent 70%);
  filter: blur(30px);
  opacity: 0;
}
.loader-mark { width: clamp(84px, 13vmin, 132px); color: var(--white); overflow: visible; }
body[data-loading] .mark-path { fill-opacity: 0; }
.loader-word { color: var(--smoke); letter-spacing: .55em; text-indent: .55em; }
.loader-word span { display: inline-block; opacity: 0; }
body:not([data-loading]) .loader { display: none; }

/* ── custom cursor ───────────────────────────── */
.cursor {
  position: fixed;
  top: 0; left: 0;
  width: 34px; height: 34px;
  margin: -17px 0 0 -17px;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 50%;
  pointer-events: none;
  z-index: 400;
  mix-blend-mode: difference;
  opacity: 0;
  transition: width .2s var(--ease-out), height .2s var(--ease-out),
              margin .2s var(--ease-out), opacity .3s, background-color .2s;
}
.cursor::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 4px; height: 4px;
  margin: -2px 0 0 -2px;
  border-radius: 50%;
  background: #fff;
}
.cursor.is-active {
  width: 56px; height: 56px;
  margin: -28px 0 0 -28px;
  background: rgba(255, 255, 255, .08);
}
@media (hover: none), (pointer: coarse) { .cursor { display: none; } }

/* gsap drives transforms on these — keep CSS transitions off them */
[data-magnet], [data-tilt] { transition-property: box-shadow, background-color, border-color; }

/* ── scroll progress beam ────────────────────── */
.progress {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 2px;
  z-index: 150;
  background: var(--g-lunar);
  transform: scaleX(0);
  transform-origin: left;
  pointer-events: none;
}

/* ════════════════════════════════════════════════════════
   NAV
   ════════════════════════════════════════════════════════ */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px var(--gutter);
  transition: background-color .32s var(--ease-out), backdrop-filter .32s var(--ease-out),
              border-color .32s var(--ease-out), padding .32s var(--ease-out);
  border-bottom: 1px solid transparent;
}
.nav.is-scrolled {
  background: rgba(8, 8, 11, .62);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom-color: var(--stroke);
  padding-block: 12px;
}
.nav-logo { display: flex; align-items: center; gap: 12px; }
.nav-mark { width: 30px; height: 30px; color: var(--white); transition: transform .4s var(--ease-soft); }
.nav-logo:hover .nav-mark { transform: rotate(-12deg) scale(1.08); }
.nav-wordmark {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: .34em;
}
.nav-links { display: flex; gap: 34px; }
.nav-links a {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ash);
  position: relative;
  padding: 4px 0;
  transition: color .15s var(--ease-out);
}
.nav-links a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 1px;
  background: var(--g-lunar);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .26s var(--ease-out);
}
.nav-links a:hover { color: var(--white); }
.nav-links a:hover::after { transform: scaleX(1); transform-origin: left; }
.nav-actions { display: flex; align-items: center; gap: 16px; }

.nav-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 44px; height: 44px;
  padding: 0 10px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid var(--stroke);
  border-radius: 999px;
  cursor: pointer;
}
.nav-burger span {
  height: 1.5px;
  background: var(--white);
  transition: transform .26s var(--ease-out), opacity .26s;
}
.nav-burger[aria-expanded="true"] span:first-child { transform: translateY(3.75px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }

/* nav over light field — inverted glass */
.nav.on-light { color: var(--eclipse); }
.nav.on-light.is-scrolled {
  background: rgba(242, 243, 247, .68);
  border-bottom-color: rgba(20, 20, 26, .08);
}
.nav.on-light .nav-mark { color: var(--eclipse); }
.nav.on-light .nav-links a { color: #4A4F5E; }
.nav.on-light .nav-links a:hover { color: var(--eclipse); }
.nav.on-light .btn-solid { background: var(--eclipse); color: var(--white); }
.nav.on-light .nav-burger { border-color: rgba(20, 20, 26, .16); background: rgba(20, 20, 26, .05); }
.nav.on-light .nav-burger span { background: var(--eclipse); }

/* mobile menu */
.menu {
  position: fixed; inset: 0;
  z-index: 90;
  background: rgba(8, 8, 11, .9);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 100px var(--gutter) 48px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s var(--ease-out), visibility 0s .3s;
}
.menu.is-open { opacity: 1; visibility: visible; transition: opacity .3s var(--ease-out); }
.menu-bloom {
  position: absolute;
  inset: auto -20% -30% -20%;
  height: 70%;
  background: radial-gradient(ellipse at 50% 100%, rgba(76, 60, 241, .4), rgba(139, 92, 246, .15) 45%, transparent 72%);
  filter: blur(40px);
  pointer-events: none;
}
.menu-mark {
  position: absolute;
  right: -18%;
  top: 6%;
  width: 70vmin;
  color: transparent;
  stroke: rgba(216, 204, 255, .08);
  stroke-width: 1.4;
  pointer-events: none;
}
.menu-links { display: flex; flex-direction: column; gap: 6px; }
.menu-links a {
  font-family: var(--f-display);
  font-size: clamp(34px, 9vw, 56px);
  font-weight: 600;
  letter-spacing: -.02em;
  padding: 8px 0;
  display: flex;
  align-items: baseline;
  gap: 18px;
  transform: translateY(34px);
  opacity: 0;
  transition: transform .5s var(--ease-out), opacity .5s var(--ease-out);
}
.menu.is-open .menu-links a { transform: none; opacity: 1; }
.menu.is-open .menu-links a:nth-child(2) { transition-delay: .05s; }
.menu.is-open .menu-links a:nth-child(3) { transition-delay: .1s; }
.menu.is-open .menu-links a:nth-child(4) { transition-delay: .15s; }
.menu-i { color: var(--violet); }
.menu-foot {
  margin-top: clamp(36px, 8vh, 72px);
  display: flex;
  flex-direction: column;
  gap: 22px;
  align-items: flex-start;
}
.menu-foot .mono { color: var(--smoke); }

/* ════════════════════════════════════════════════════════
   HERO
   ════════════════════════════════════════════════════════ */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 120px var(--gutter) 40px;
  overflow: clip;
  isolation: isolate;
}

.hero-beam {
  position: absolute;
  z-index: -3;
  top: -35%; left: 50%;
  width: 130vmax; height: 130vmax;
  translate: -50% 0;
  background:
    conic-gradient(from 195deg at 50% 38%,
      transparent 38%,
      rgba(41, 98, 255, .14) 46%,
      rgba(139, 92, 246, .34) 50%,
      rgba(216, 204, 255, .16) 54%,
      transparent 62%);
  filter: blur(46px);
  animation: beam-breathe 7s ease-in-out infinite;
}
@keyframes beam-breathe {
  0%, 100% { opacity: .8; transform: rotate(0deg) scale(1); }
  50% { opacity: 1; transform: rotate(2.5deg) scale(1.04); }
}

.hero-eclipse {
  position: absolute;
  z-index: -2;
  right: -18vmin; top: -30vmin;
  width: 95vmin; height: 95vmin;
  border-radius: 50%;
  background: radial-gradient(circle at 38% 62%, #1A1A24, #0B0B10 55%, #08080B 72%);
  box-shadow:
    -22px 30px 80px -18px rgba(139, 92, 246, .55),
    -60px 80px 180px -30px rgba(41, 98, 255, .38),
    inset 18px -22px 70px -28px rgba(216, 204, 255, .5),
    inset -40px 40px 120px -60px rgba(8, 8, 11, 1);
  animation: eclipse-breathe 8s ease-in-out infinite;
}
.hero-eclipse::after {
  content: "";
  position: absolute;
  inset: -7%;
  border-radius: 50%;
  background: radial-gradient(circle at 22% 78%, rgba(216, 204, 255, .5), rgba(139, 92, 246, .22) 28%, transparent 52%);
  filter: blur(26px);
}
@keyframes eclipse-breathe {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.18); }
}

.hero-orbits {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%; height: 100%;
}
.orbit-line {
  stroke: rgba(255, 255, 255, .16);
  stroke-width: 1;
}
.orbit-line.o2 { stroke: rgba(216, 204, 255, .1); }
.orbit-line.dark { stroke: rgba(20, 20, 26, .2); }

.hero-node {
  position: absolute;
  z-index: 1;
  width: clamp(64px, 9vw, 130px);
  right: clamp(6%, 12vw, 16%);
  top: 16%;
  color: var(--white);
  filter: drop-shadow(0 0 26px rgba(139, 92, 246, .5));
  animation: node-drift 9s ease-in-out infinite;
}
@keyframes node-drift {
  0%, 100% { translate: 0 0; rotate: 0deg; }
  33% { translate: -10px 14px; rotate: -3deg; }
  66% { translate: 8px -8px; rotate: 2.5deg; }
}

/* giant outline variant — contour motif */
.hero-ghost {
  position: absolute;
  z-index: -2;
  left: -14vmin;
  bottom: -24vmin;
  width: 74vmin;
  height: 74vmin;
  color: transparent;
  stroke: rgba(216, 204, 255, .09);
  stroke-width: 1.6;
  overflow: visible;
}

.hero-inner { max-width: 1180px; position: relative; }

.hero-kicker {
  color: var(--ash);
  margin-bottom: clamp(20px, 3vh, 36px);
}

.hero-title {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(52px, 11.5vw, 164px);
  line-height: .96;
  letter-spacing: -.035em;
  margin-bottom: clamp(24px, 4vh, 44px);
}
.ht-line { display: block; overflow: hidden; padding-block: .04em; }
.ht-word { display: inline-block; will-change: transform; }
.ht-orbit {
  font-style: normal;
  position: relative;
  background: var(--g-lunar);
  background-size: 180% 180%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: grad-breathe 7s ease-in-out infinite;
}
.orbit-ring {
  position: absolute;
  inset: -18% -14%;
  width: 128%; height: 136%;
  overflow: visible;
  pointer-events: none;
}
.orbit-ring ellipse {
  fill: none;
  stroke: rgba(255, 255, 255, .4);
  stroke-width: 1.4;
  stroke-dasharray: 980;
  stroke-dashoffset: 980;
  transform: rotate(-6deg);
  transform-origin: center;
}

.hero-sub {
  max-width: 520px;
  color: var(--ash);
  font-size: clamp(16px, 1.6vw, 19px);
  margin-bottom: clamp(28px, 4.5vh, 48px);
}
.hero-cta { display: flex; gap: 16px; flex-wrap: wrap; }

.hero-foot {
  position: absolute;
  left: var(--gutter); right: var(--gutter); bottom: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.hero-coord { color: var(--smoke); }
.t-right { text-align: right; }
.scroll-cue {
  width: 22px; height: 38px;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 999px;
  display: flex;
  justify-content: center;
  padding-top: 7px;
  flex: none;
}
.scroll-cue-dot {
  width: 3px; height: 8px;
  border-radius: 99px;
  background: var(--lavender);
  animation: cue 2.2s var(--ease-out) infinite;
}
@keyframes cue {
  0% { transform: translateY(0); opacity: 1; }
  65% { transform: translateY(14px); opacity: 0; }
  100% { transform: translateY(0); opacity: 0; }
}

/* ════════════════════════════════════════════════════════
   MARQUEE
   ════════════════════════════════════════════════════════ */
.marquee {
  border-block: 1px solid var(--stroke);
  background: var(--eclipse);
  overflow: clip;
  padding: 18px 0;
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.marquee-track { display: flex; width: max-content; animation: marquee 36s linear infinite; }
.marquee-set { display: flex; align-items: center; padding-right: 56px; gap: 56px; color: var(--ash); font-size: 12px; }
.marquee-set span { white-space: nowrap; }
.m-node {
  flex: none;
  width: 18px; height: 10px;
  background:
    radial-gradient(circle 3px at 4px 6px, var(--violet) 98%, transparent),
    radial-gradient(circle 2.2px at 11px 3px, var(--cyan) 98%, transparent),
    radial-gradient(circle 1.8px at 16px 7px, var(--pink) 98%, transparent);
}
@keyframes marquee { to { transform: translateX(-50%); } }

/* ════════════════════════════════════════════════════════
   SECTION SCAFFOLD
   ════════════════════════════════════════════════════════ */
.sec-head {
  padding: clamp(90px, 14vh, 160px) var(--gutter) clamp(40px, 7vh, 80px);
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "label label" "title sub";
  align-items: end;
  gap: 26px clamp(40px, 6vw, 120px);
  max-width: 1480px;
  margin-inline: auto;
}
.sec-label { grid-area: label; color: var(--smoke); }
.sec-title {
  grid-area: title;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(40px, 6.5vw, 92px);
  line-height: .98;
  letter-spacing: -.03em;
}
.sec-sub {
  grid-area: sub;
  max-width: 360px;
  color: var(--ash);
  font-size: 15.5px;
  padding-bottom: 10px;
}

/* ════════════════════════════════════════════════════════
   CAPABILITIES
   ════════════════════════════════════════════════════════ */
.caps {
  position: relative;
  background:
    radial-gradient(900px 500px at 85% 0%, rgba(76, 60, 241, .14), transparent 65%),
    var(--void);
}
.caps-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  padding: 0 var(--gutter) clamp(90px, 14vh, 160px);
  max-width: 1480px;
  margin-inline: auto;
}
.cap-card { grid-column: span 2; }
.cap-card.cap-wide { grid-column: span 3; }

.cap-card {
  position: relative;
  border-radius: 16px;
  border: 1px solid var(--stroke);
  background: linear-gradient(165deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012) 55%);
  overflow: clip;
  padding: clamp(24px, 2.6vw, 38px);
  min-height: clamp(330px, 38vh, 430px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  isolation: isolate;
  transition: border-color .26s var(--ease-out), box-shadow .26s var(--ease-out), transform .26s var(--ease-out);
}
.cap-card:hover {
  border-color: rgba(139, 92, 246, .55);
  box-shadow: 0 0 0 1px rgba(139, 92, 246, .25), 0 24px 70px -30px rgba(139, 92, 246, .45);
}
.cap-art {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.cap-art img {
  width: 100%; height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  opacity: .6;
  transition: opacity .32s var(--ease-out), transform .6s var(--ease-out);
}
.cap-card:hover .cap-art img {
  opacity: 1;
  transform: scale(1.12);
}
.cap-art::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 8, 11, .1), rgba(8, 8, 11, .86) 80%);
}
.cap-i { color: var(--lavender); opacity: .75; margin-bottom: 14px; }
.cap-body h3 {
  font-family: var(--f-display);
  font-size: clamp(26px, 2.6vw, 36px);
  font-weight: 600;
  letter-spacing: -.02em;
  margin-bottom: 12px;
}
.cap-body > p { color: var(--ash); font-size: 15px; max-width: 46ch; margin-bottom: 20px; }
.cap-tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.cap-tags li {
  font-size: 9.5px;
  color: var(--ash);
  border: 1px solid var(--stroke);
  border-radius: 99px;
  padding: 5px 12px;
  background: rgba(8, 8, 11, .4);
  backdrop-filter: blur(6px);
}
.cap-arrow {
  position: absolute;
  top: 26px; right: 28px;
  font-size: 22px;
  color: var(--lavender);
  opacity: 0;
  transform: translateX(-10px) rotate(-45deg);
  transition: opacity .18s var(--ease-out), transform .18s var(--ease-out);
}
.cap-card:hover .cap-arrow { opacity: 1; transform: translateX(0) rotate(-45deg); }

/* ════════════════════════════════════════════════════════
   MANIFESTO  (light field)
   ════════════════════════════════════════════════════════ */
.manifesto {
  background: var(--mist);
  color: var(--eclipse);
  position: relative;
}
.mani-pin {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(90px, 12vh, 140px) var(--gutter);
  max-width: 1480px;
  margin-inline: auto;
  position: relative;
  overflow: clip;
}
.mani-label { color: var(--smoke); margin-bottom: clamp(36px, 6vh, 64px); }
.node-tri.dark { color: var(--indigo); }

.mani-text {
  font-family: var(--f-display);
  font-weight: 500;
  font-size: clamp(26px, 4.2vw, 56px);
  line-height: 1.22;
  letter-spacing: -.02em;
  max-width: 21ch;
}
.mani-text .w {
  opacity: .12;
  transition: opacity .3s linear;
}
.mani-text .w.lit { opacity: 1; }

.mani-tags {
  margin-top: clamp(48px, 9vh, 100px);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  flex-wrap: wrap;
}
.mani-big {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(40px, 7vw, 104px);
  line-height: 1;
  letter-spacing: -.035em;
}
.mb-line { display: inline-block; }
.mani-side { color: var(--smoke); padding-bottom: 14px; }

.mani-orbit {
  position: absolute;
  right: -12%;
  bottom: 4%;
  width: 70%;
  pointer-events: none;
}
.mani-ghost {
  position: absolute;
  right: -10%;
  top: -16%;
  width: 58vmin;
  color: transparent;
  stroke: rgba(20, 20, 26, .08);
  stroke-width: 1.6;
  pointer-events: none;
}

/* ════════════════════════════════════════════════════════
   WORK
   ════════════════════════════════════════════════════════ */
.work {
  background:
    radial-gradient(1000px 600px at 12% 8%, rgba(41, 98, 255, .1), transparent 60%),
    var(--void);
}
.work-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: clamp(150px, 21vw, 300px);
  gap: 18px;
  padding: 0 var(--gutter) clamp(90px, 14vh, 160px);
  max-width: 1480px;
  margin-inline: auto;
}
.work-card { grid-column: span 2; }
.work-card.w-tall { grid-row: span 2; }
.work-card.w-wide { grid-column: span 4; }
.work-card.w-slim { grid-column: span 6; grid-row: span 1; }

.work-card {
  position: relative;
  border-radius: 16px;
  overflow: clip;
  border: 1px solid var(--stroke);
  background: var(--eclipse);
  isolation: isolate;
  transition: border-color .26s var(--ease-out), box-shadow .26s var(--ease-out);
}
.work-card:hover {
  border-color: rgba(216, 204, 255, .4);
  box-shadow: 0 30px 80px -40px rgba(139, 92, 246, .5);
}
.work-card figure {
  position: absolute;
  inset: 0;
  container-type: size;
  overflow: clip;
}
.tile {
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 120% at 70% 10%, #11101C, #08080B 70%);
  transition: scale .6s var(--ease-out);
}
.work-card:hover .tile { scale: 1.025; }
.work-card figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 52%, rgba(8, 8, 11, .8));
  opacity: .9;
  transition: opacity .3s var(--ease-out);
}

/* — identity poster — */
.t-identity .t-sphere {
  position: absolute;
  left: 50%; top: 30%;
  width: 88cqw; height: 88cqw;
  translate: -50% -50%;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 60%, #191923, #0B0B10 56%, #08080B 74%);
  box-shadow:
    -14px 18px 50px -12px rgba(139, 92, 246, .6),
    -30px 44px 110px -20px rgba(41, 98, 255, .35),
    inset 12px -14px 44px -18px rgba(216, 204, 255, .55);
}
.t-identity .t-mark {
  position: absolute;
  left: 50%; top: 30%;
  width: 36cqw;
  translate: -50% -50%;
  color: var(--white);
  filter: drop-shadow(0 4px 22px rgba(8, 8, 11, .6));
}
.t-identity .t-wordmark {
  position: absolute;
  left: 0; right: 0;
  top: 62%;
  text-align: center;
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 8.4cqw;
  letter-spacing: .3em;
  text-indent: .3em;
  color: var(--white);
}
.t-identity .t-tag {
  position: absolute;
  left: 0; right: 0;
  top: 71%;
  text-align: center;
  font-size: 2.8cqw;
  letter-spacing: .5em;
  text-indent: .5em;
  color: var(--lavender);
  opacity: .8;
}
.t-identity .t-corner {
  position: absolute;
  top: 6cqw; left: 6cqw;
  font-size: 2.2cqw;
  color: var(--smoke);
}

/* — web platform mock — */
.t-web .t-browser {
  position: absolute;
  inset: 9cqh 6cqw auto;
  height: 92cqh;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, .12);
  background: #0B0B11;
  overflow: clip;
  box-shadow: 0 30px 80px -30px rgba(8, 8, 11, .9);
}
.t-web .t-chrome {
  display: flex;
  align-items: center;
  gap: .8cqw;
  padding: 1.6cqh 2cqw;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  background: #101017;
}
.t-web .t-chrome i {
  width: 1.1cqw; height: 1.1cqw;
  min-width: 5px; min-height: 5px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .18);
}
.t-web .t-chrome .mono {
  margin-left: 2cqw;
  font-size: 1.4cqw;
  color: var(--smoke);
  letter-spacing: .14em;
}
.t-web .t-page { position: relative; height: 100%; padding: 2.4cqh 3cqw; }
.t-web .t-pagenav {
  display: flex;
  align-items: center;
  gap: 2cqw;
}
.t-web .t-pagenav svg { width: 2.6cqw; min-width: 12px; color: var(--white); }
.t-web .t-pagenav span {
  width: 5cqw; height: .5cqh;
  min-height: 3px;
  border-radius: 99px;
  background: rgba(255, 255, 255, .16);
}
.t-web .t-pagenav b {
  margin-left: auto;
  font-family: var(--f-display);
  font-weight: 500;
  font-size: 1.3cqw;
  color: var(--void);
  background: var(--white);
  border-radius: 99px;
  padding: .6cqh 1.6cqw;
}
.t-web .t-pagehero { position: relative; z-index: 1; margin-top: 2.4cqh; max-width: 52%; }
.t-web .t-pagehero h4 {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 3.4cqw;
  line-height: 1;
  letter-spacing: -.03em;
  color: var(--white);
  margin-bottom: 1.4cqh;
}
.t-web .t-pagehero .mono {
  font-size: 1.1cqw;
  color: var(--ash);
  letter-spacing: .22em;
  margin-bottom: 1.8cqh;
}
.t-web .t-pill {
  display: inline-block;
  font-family: var(--f-display);
  font-size: 1.3cqw;
  color: var(--white);
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 99px;
  padding: .8cqh 2cqw;
}
.t-web .t-pagesphere {
  position: absolute;
  right: -14cqw; top: 4cqh;
  width: 46cqw; height: 46cqw;
  border-radius: 50%;
  background: radial-gradient(circle at 38% 62%, #16161F, #0A0A10 58%);
  box-shadow:
    -12px 16px 44px -10px rgba(139, 92, 246, .55),
    inset 10px -12px 36px -14px rgba(216, 204, 255, .5);
}

/* — social tile — */
.t-social::before {
  content: "";
  position: absolute;
  inset: -30%;
  background:
    radial-gradient(50% 60% at 22% 78%, rgba(41, 98, 255, .8), transparent 65%),
    radial-gradient(55% 60% at 80% 24%, rgba(255, 79, 216, .55), transparent 62%),
    radial-gradient(45% 50% at 78% 80%, rgba(92, 225, 255, .4), transparent 60%),
    radial-gradient(60% 70% at 40% 30%, rgba(139, 92, 246, .75), transparent 70%),
    #0A0A10;
  filter: blur(26px) saturate(1.15);
}
.t-social::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(90% 90% at 50% 50%, transparent 55%, rgba(8, 8, 11, .55));
}
.t-social .t-mark {
  position: absolute;
  left: 50%; top: 44%;
  width: 30cqw;
  translate: -50% -50%;
  color: var(--white);
  filter: drop-shadow(0 6px 24px rgba(8, 8, 11, .5));
  z-index: 1;
}
.t-social .t-handle {
  position: absolute;
  top: 7cqw; left: 7cqw;
  font-size: 2.6cqw;
  color: rgba(255, 255, 255, .85);
  z-index: 1;
}
.t-social .t-cap {
  position: absolute;
  left: 7cqw; top: 56%;
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 5cqw;
  line-height: 1.04;
  letter-spacing: -.02em;
  color: var(--white);
  z-index: 1;
}
.t-social .t-mark { top: 38%; }

/* — app icon — */
.t-icon { background: radial-gradient(110% 110% at 50% 0%, #14131E, #08080B 75%); }
.t-icon .t-squircle {
  position: absolute;
  left: 50%; top: 40%;
  width: 44cqw; height: 44cqw;
  translate: -50% -50%;
  border-radius: 27%;
  background: linear-gradient(150deg, #2A2937, #101018 55%, #0B0B12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .22),
    inset 0 -8px 24px -10px rgba(76, 60, 241, .5),
    0 24px 60px -20px rgba(8, 8, 11, .9);
  display: grid;
  place-items: center;
}
.t-icon .t-squircle svg { width: 62%; color: var(--white); }
.t-icon .t-reflection {
  top: auto;
  bottom: -36cqw;
  transform: scaleY(-1);
  opacity: .22;
  -webkit-mask-image: linear-gradient(0deg, transparent 30%, #000);
  mask-image: linear-gradient(0deg, transparent 30%, #000);
  filter: blur(2px);
}

/* — eclipse study — */
.t-eclipse { background: #07070A; }
.t-eclipse .t-moon {
  position: absolute;
  left: 50%; top: 50%;
  width: 64cqw; height: 64cqw;
  translate: -50% -50%;
  border-radius: 50%;
  background: radial-gradient(circle at 42% 58%, #15151E, #0A0A10 58%, #08080B 75%);
  box-shadow:
    -16px 20px 60px -14px rgba(139, 92, 246, .65),
    -36px 48px 130px -26px rgba(41, 98, 255, .4),
    inset 14px -16px 50px -20px rgba(216, 204, 255, .6);
}
.t-eclipse .t-orbitline {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
}
.t-eclipse .t-orbitline ellipse {
  stroke: rgba(255, 255, 255, .3);
  stroke-width: 1;
}
.t-eclipse .t-star {
  position: absolute;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: var(--white);
}
.t-eclipse .x1 { top: 18%; left: 22%; opacity: .8; }
.t-eclipse .x2 { top: 70%; left: 80%; opacity: .5; width: 2px; height: 2px; }
.t-eclipse .x3 { top: 30%; left: 86%; opacity: .6; width: 2px; height: 2px; }

/* — print collateral — */
.t-print { background: radial-gradient(130% 160% at 50% -20%, #16151F, #08080B 70%); }
.t-print .t-card {
  position: absolute;
  width: 38cqw;
  aspect-ratio: 1.72;
  border-radius: 10px;
  box-shadow: 0 24px 60px -18px rgba(0, 0, 0, .75);
}
.t-print .t-card-dark {
  left: 12cqw;
  top: 50%;
  translate: 0 -50%;
  rotate: -4deg;
  background: linear-gradient(150deg, #15151D, #0A0A10);
  border: 1px solid rgba(255, 255, 255, .1);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.6cqw;
}
.t-print .t-card-dark svg { width: 3.4cqw; color: var(--white); }
.t-print .t-cardmark {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 2.4cqw;
  letter-spacing: .3em;
  color: var(--white);
}
.t-print .t-card-light {
  right: 12cqw;
  top: 50%;
  translate: 0 -46%;
  rotate: 3deg;
  background: linear-gradient(160deg, #FAFBFF, #E9EAF2);
  padding: 2.4cqw 2.6cqw;
}
.t-print .t-card-light .mono {
  font-size: 1.3cqw;
  color: var(--eclipse);
  letter-spacing: .2em;
  margin-bottom: 1cqw;
}
.t-print .t-card-light .mono.dim { color: var(--smoke); }
.t-print .t-card-light svg {
  position: absolute;
  right: 2.4cqw; bottom: 2cqw;
  width: 3cqw;
  color: var(--eclipse);
}
.work-meta {
  position: absolute;
  inset: auto 0 0 0;
  padding: 20px 24px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
}
.work-meta h3 {
  font-family: var(--f-display);
  font-size: clamp(17px, 1.6vw, 22px);
  font-weight: 600;
  letter-spacing: -.01em;
}
.work-meta .mono { color: var(--smoke); margin-top: 5px; font-size: 9.5px; }
.work-go {
  width: 40px; height: 40px;
  flex: none;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .25);
  display: grid;
  place-items: center;
  font-size: 16px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .18s var(--ease-out), transform .18s var(--ease-out), background-color .18s;
  background: rgba(8, 8, 11, .5);
  backdrop-filter: blur(8px);
}
.work-card:hover .work-go { opacity: 1; transform: none; }
.work-go:hover { background: var(--violet); }

/* ════════════════════════════════════════════════════════
   CTA / FOOTER
   ════════════════════════════════════════════════════════ */
.cta {
  position: relative;
  overflow: clip;
  background: linear-gradient(180deg, var(--void), var(--eclipse) 55%, #181238);
  isolation: isolate;
}
.cta-bloom {
  position: absolute;
  z-index: -1;
  left: 50%; bottom: -42vmin;
  width: 120vmin; height: 86vmin;
  translate: -50% 0;
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(76, 60, 241, .55), rgba(139, 92, 246, .22) 45%, transparent 70%);
  filter: blur(40px);
  animation: beam-breathe 8s ease-in-out infinite;
}
.cta-orbits {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%; height: 100%;
}
.cta-inner {
  padding: clamp(110px, 18vh, 200px) var(--gutter) clamp(70px, 10vh, 120px);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(26px, 4vh, 40px);
}
.cta-mark {
  width: clamp(54px, 6vw, 78px);
  color: var(--white);
  filter: drop-shadow(0 0 30px rgba(139, 92, 246, .6));
  animation: node-drift 10s ease-in-out infinite;
}
.cta-title {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(46px, 9vw, 136px);
  line-height: .98;
  letter-spacing: -.035em;
}
.cta .hero-cta { justify-content: center; }

.foot-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
  gap: 40px;
  padding: clamp(50px, 8vh, 90px) var(--gutter) 40px;
  max-width: 1480px;
  margin-inline: auto;
  border-top: 1px solid var(--stroke);
}
.foot-brand p { color: var(--ash); font-size: 14.5px; max-width: 34ch; }
.foot-mark { width: 38px; color: var(--white); margin-bottom: 18px; }
.foot-col { display: flex; flex-direction: column; gap: 12px; }
.foot-h { color: var(--smoke); margin-bottom: 6px; }
.foot-col a {
  font-size: 14.5px;
  color: var(--ash);
  width: fit-content;
  transition: color .15s;
}
.foot-col a:hover { color: var(--white); }
.foot-d { color: var(--ash); font-size: 10px; }

.foot-legal {
  text-align: center;
  color: var(--smoke);
  padding: 26px var(--gutter) clamp(80px, 14vw, 190px);
  font-size: 9.5px;
}
.foot-watermark {
  position: absolute;
  left: 50%; bottom: -.24em;
  translate: -50% 0;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(84px, 16.5vw, 252px);
  letter-spacing: .04em;
  line-height: 1;
  white-space: nowrap;
  background: linear-gradient(180deg, rgba(216, 204, 255, .22), rgba(216, 204, 255, 0) 78%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  pointer-events: none;
  user-select: none;
}

/* ════════════════════════════════════════════════════════
   REVEAL PRIMITIVES (JS adds .in)
   ════════════════════════════════════════════════════════ */
.reveal-line, .sec-sub, .hero-sub, .hero-cta, .hero-kicker { opacity: 0; }
.no-js .reveal-line, .no-js .sec-sub { opacity: 1; }

/* ════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .caps-grid { grid-template-columns: 1fr 1fr; }
  .cap-card, .cap-card.cap-wide { grid-column: span 1; min-height: 320px; }
  .work-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: clamp(190px, 30vw, 280px); }
  .work-card, .work-card.w-wide { grid-column: span 1; }
  .work-card.w-tall { grid-row: span 2; }
  .work-card.w-slim { grid-column: span 2; }
  .foot-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .nav-links { display: none; }
  .nav-actions .btn { display: none; }
  .nav-burger { display: flex; }

  .hero { padding-top: 110px; min-height: 100svh; }
  .hero-title { font-size: clamp(46px, 14.5vw, 78px); }
  .hero-node { top: 11%; right: 7%; width: 58px; }
  .hero-eclipse { right: -42vmin; top: -36vmin; width: 110vmin; height: 110vmin; }
  .hero-foot .t-right { display: none; }

  .sec-head { grid-template-areas: "label" "title" "sub"; grid-template-columns: 1fr; align-items: start; }
  .sec-sub { padding-bottom: 0; }

  .caps-grid { grid-template-columns: 1fr; gap: 14px; }
  .cap-card { min-height: 280px; }
  .cap-arrow { opacity: 1; transform: rotate(-45deg); }

  .mani-pin { min-height: auto; padding-block: clamp(90px, 16vh, 130px); }
  .mani-text { font-size: clamp(24px, 6.8vw, 34px); }
  .mani-big { font-size: clamp(38px, 10.5vw, 60px); }
  .mani-side { display: none; }
  .mani-orbit { right: -30%; bottom: 0; width: 130%; }

  .work-grid { grid-template-columns: 1fr; grid-auto-rows: 230px; gap: 14px; }
  .work-card.w-tall { grid-row: span 2; }
  .work-card.w-slim { grid-column: span 1; }
  .work-go { opacity: 1; transform: none; }

  .cta-inner { text-align: left; align-items: flex-start; }
  .cta .hero-cta { justify-content: flex-start; }
  .foot-grid { grid-template-columns: 1fr; gap: 30px; }
}

/* ════════════════════════════════════════════════════════
   REDUCED MOTION
   ════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .loader { display: none !important; }
  .cursor, .progress { display: none !important; }
  .grain { animation: none; }
  .marquee-track { animation: none; transform: none; }
  .reveal-line, .sec-sub, .hero-sub, .hero-cta, .hero-kicker { opacity: 1; }
  .mani-text .w { opacity: 1; }
  .orbit-ring ellipse { stroke-dashoffset: 0; }
  .mark-path { fill-opacity: 1 !important; }
  html { scroll-behavior: auto; }
}

/* ════════════════════════════════════════════════════════
   SUBPAGE SCAFFOLD
   ════════════════════════════════════════════════════════ */
.nav-links a.is-active { color: var(--white); }
.nav-links a.is-active::after { transform: scaleX(1); }

.page-hero {
  position: relative;
  min-height: 62svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 160px var(--gutter) clamp(48px, 8vh, 90px);
  overflow: clip;
  isolation: isolate;
}
.page-hero .hero-beam { opacity: .55; }
.page-hero .page-orbits {
  position: absolute; inset: 0;
  z-index: -1;
  width: 100%; height: 100%;
}
.page-title {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(46px, 9vw, 130px);
  line-height: .96;
  letter-spacing: -.035em;
  margin-block: clamp(18px, 3vh, 30px);
  max-width: 12ch;
}
.page-sub {
  max-width: 560px;
  color: var(--ash);
  font-size: clamp(15.5px, 1.5vw, 18px);
}
.page-hero .hero-ghost { left: auto; right: -16vmin; bottom: -34vmin; }

.live-chip {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .22em;
  color: var(--cyan);
  border: 1px solid rgba(92, 225, 255, .3);
  background: rgba(92, 225, 255, .06);
  border-radius: 99px;
  padding: 7px 14px;
}
.live-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--cyan);
  box-shadow: 0 0 10px var(--cyan);
  animation: live-pulse 1.8s ease-in-out infinite;
}
@keyframes live-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .35; transform: scale(.7); }
}

.section-band {
  padding: clamp(70px, 11vh, 130px) var(--gutter);
  max-width: 1480px;
  margin-inline: auto;
}
.band-head { margin-bottom: clamp(36px, 6vh, 64px); max-width: 760px; }
.band-head h2 {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(30px, 4.4vw, 60px);
  letter-spacing: -.03em;
  line-height: 1.02;
  margin-block: 16px 14px;
}
.band-head p { color: var(--ash); font-size: 15.5px; max-width: 56ch; }

/* ════════════════════════════════════════════════════════
   CHIPS / SPEC LISTS / EVAL BARS
   ════════════════════════════════════════════════════════ */
.chip {
  display: inline-block;
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: .18em;
  border-radius: 99px;
  padding: 6px 13px;
  border: 1px solid var(--stroke);
  color: var(--ash);
  background: rgba(255, 255, 255, .03);
}
.chip.tier { color: var(--lavender); border-color: rgba(139, 92, 246, .4); background: rgba(139, 92, 246, .08); }
.chip.ok { color: var(--cyan); border-color: rgba(92, 225, 255, .35); background: rgba(92, 225, 255, .06); }
.chip.veto { color: var(--pink); border-color: rgba(255, 79, 216, .35); background: rgba(255, 79, 216, .07); }

.spec-list { list-style: none; }
.spec-list li {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 11px 0;
  border-top: 1px solid var(--stroke);
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .14em;
}
.spec-list li:last-child { border-bottom: 1px solid var(--stroke); }
.spec-list .k { color: var(--smoke); }
.spec-list .v { color: var(--white); text-align: right; }
.spec-list .v.hl { color: var(--cyan); }

.eval { margin-bottom: 18px; }
.eval-top {
  display: flex;
  justify-content: space-between;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .16em;
  color: var(--ash);
  margin-bottom: 8px;
}
.eval-top b { color: var(--white); font-weight: 400; }
.eval-track {
  height: 5px;
  border-radius: 99px;
  background: rgba(255, 255, 255, .07);
  overflow: hidden;
}
.eval-fill {
  --w: 0%;
  width: var(--w);
  height: 100%;
  border-radius: 99px;
  background: var(--g-lunar);
  transition: width 1.2s var(--ease-out);
}
.eval-fill.ghost { background: rgba(255, 255, 255, .22); }
.eval .eval-track + .eval-track { margin-top: 4px; }

/* ════════════════════════════════════════════════════════
   MODELS
   ════════════════════════════════════════════════════════ */
.model-feature {
  position: relative;
  border: 1px solid var(--stroke);
  border-radius: 18px;
  background:
    radial-gradient(900px 480px at 88% -10%, rgba(76, 60, 241, .22), transparent 65%),
    linear-gradient(165deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .01));
  padding: clamp(28px, 4vw, 56px);
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: clamp(30px, 5vw, 80px);
  overflow: clip;
  margin-bottom: 18px;
}
.model-name {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(44px, 6.5vw, 96px);
  letter-spacing: -.03em;
  line-height: 1;
  margin-block: 18px 14px;
}
.model-role { color: var(--lavender); }
.model-copy { color: var(--ash); font-size: 16px; max-width: 56ch; margin-bottom: 26px; }
.model-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.model-feature .spec-list { margin-top: 8px; }
.model-feature aside h3 {
  font-family: var(--f-mono);
  font-weight: 400;
  font-size: 10px;
  letter-spacing: .22em;
  color: var(--smoke);
  margin-bottom: 20px;
}

.model-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.model-card {
  position: relative;
  border: 1px solid var(--stroke);
  border-radius: 16px;
  background: linear-gradient(165deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .012));
  padding: clamp(24px, 2.6vw, 36px);
  transition: border-color .26s var(--ease-out), box-shadow .26s var(--ease-out);
  overflow: clip;
}
.model-card:hover {
  border-color: rgba(139, 92, 246, .5);
  box-shadow: 0 24px 70px -32px rgba(139, 92, 246, .4);
}
.model-card .model-name { font-size: clamp(30px, 3vw, 44px); margin-block: 14px 10px; }
.model-card .model-copy { font-size: 14.5px; margin-bottom: 20px; }

.phase-glyph {
  position: relative;
  width: 58px; height: 58px;
  border-radius: 50%;
  flex: none;
}
.phase-glyph.g-luna {
  background: radial-gradient(circle at 38% 62%, #232336, #0C0C12 65%);
  box-shadow: -5px 7px 18px -5px rgba(139, 92, 246, .7), inset 4px -5px 14px -5px rgba(216, 204, 255, .6);
}
.phase-glyph.g-luna::after {
  content: "";
  position: absolute;
  inset: -9px;
  border-radius: 50%;
  border: 1px solid rgba(216, 204, 255, .35);
  transform: rotate(-18deg) scaleY(.55);
}
.phase-glyph.g-aegis { border: 1.5px solid rgba(92, 225, 255, .8); }
.phase-glyph.g-aegis::after {
  content: "";
  position: absolute;
  inset: 7px;
  border-radius: 50%;
  border: 1px solid rgba(92, 225, 255, .4);
  background: radial-gradient(circle, rgba(92, 225, 255, .14), transparent 70%);
}
.phase-glyph.g-crescent {
  background: radial-gradient(circle at 68% 35%, transparent 56%, #E9E4FF 60%);
}
.phase-glyph.g-perigee { border: 1px solid rgba(255, 255, 255, .3); transform: scaleY(.6) rotate(-16deg); }
.phase-glyph.g-perigee::after {
  content: "";
  position: absolute;
  top: 4px; right: 2px;
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--white);
  box-shadow: 0 0 12px rgba(216, 204, 255, .9);
}
.phase-glyph.g-spectra {
  border-radius: 16px;
  background: var(--g-plasma);
  filter: saturate(1.1);
  opacity: .9;
}

/* — self-improvement ledger — */
.ledger { position: relative; padding-left: 34px; }
.ledger::before {
  content: "";
  position: absolute;
  left: 8px; top: 8px; bottom: 8px;
  width: 1px;
  background: linear-gradient(180deg, rgba(139, 92, 246, .6), rgba(139, 92, 246, .08));
}
.ledger-entry {
  position: relative;
  padding: 26px 0 26px 22px;
  border-bottom: 1px solid var(--stroke);
}
.ledger-entry::before {
  content: "";
  position: absolute;
  left: -30px; top: 34px;
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--violet);
  box-shadow: 0 0 12px rgba(139, 92, 246, .8);
}
.ledger-entry.veto::before { background: var(--pink); box-shadow: 0 0 12px rgba(255, 79, 216, .8); }
.ledger-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 12px;
}
.ledger-v {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 21px;
  letter-spacing: -.01em;
}
.ledger-date { font-family: var(--f-mono); font-size: 10px; letter-spacing: .18em; color: var(--smoke); }
.ledger-entry p { color: var(--ash); font-size: 15px; max-width: 72ch; }
.ledger-deltas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }

/* ════════════════════════════════════════════════════════
   SAFETY
   ════════════════════════════════════════════════════════ */
.stack-row {
  display: grid;
  grid-template-columns: 140px 1fr 1.1fr;
  gap: clamp(20px, 4vw, 70px);
  padding: clamp(30px, 5vh, 52px) 0;
  border-top: 1px solid var(--stroke);
  align-items: start;
}
.stack-num {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 72px);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(216, 204, 255, .35);
}
.stack-row h3 {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: -.02em;
  line-height: 1.1;
}
.stack-row > p { color: var(--ash); font-size: 15.5px; }
.stack-row .stat-line {
  display: block;
  margin-top: 14px;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .16em;
  color: var(--cyan);
}

/* — covenant (light field) — */
.covenant {
  background: var(--mist);
  color: var(--eclipse);
  position: relative;
  overflow: clip;
}
.covenant-inner {
  padding: clamp(90px, 14vh, 170px) var(--gutter);
  max-width: 1480px;
  margin-inline: auto;
  position: relative;
}
.covenant-lines { list-style: none; margin-block: clamp(34px, 6vh, 60px); }
.covenant-lines li {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: clamp(24px, 4vw, 52px);
  letter-spacing: -.025em;
  line-height: 1.15;
  padding: clamp(14px, 2.4vh, 24px) 0;
  border-bottom: 1px solid rgba(20, 20, 26, .1);
  display: flex;
  align-items: baseline;
  gap: 22px;
}
.covenant-lines .mono { color: var(--smoke); font-size: 11px; flex: none; }
.covenant-close {
  font-family: var(--f-display);
  font-size: clamp(17px, 1.8vw, 22px);
  color: #3C3F4E;
  max-width: 46ch;
}
.covenant-close b { color: var(--indigo); font-weight: 600; }
.covenant .mani-ghost { right: -14%; top: -10%; }

/* — tally + near-miss log — */
.tally {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-block: 1px solid var(--stroke);
  background: var(--eclipse);
}
.tally div {
  padding: clamp(26px, 4vh, 44px) 20px;
  text-align: center;
  border-left: 1px solid var(--stroke);
}
.tally div:first-child { border-left: none; }
.tally b {
  display: block;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(30px, 3.6vw, 52px);
  letter-spacing: -.02em;
  background: var(--g-lunar);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.tally span {
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: .18em;
  color: var(--smoke);
}

.nm-log { border: 1px solid var(--stroke); border-radius: 14px; overflow: clip; }
.nm-entry {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 18px;
  align-items: baseline;
  padding: 18px 24px;
  border-top: 1px solid var(--stroke);
  background: rgba(255, 255, 255, .015);
}
.nm-entry:first-child { border-top: none; }
.nm-id { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--lavender); }
.nm-entry p { color: var(--ash); font-size: 14px; }
.nm-entry .mono { color: var(--smoke); font-size: 9.5px; white-space: nowrap; }

/* ════════════════════════════════════════════════════════
   RESEARCH
   ════════════════════════════════════════════════════════ */
.paper-feature {
  border: 1px solid rgba(139, 92, 246, .35);
  border-radius: 18px;
  background:
    radial-gradient(700px 380px at 12% -20%, rgba(139, 92, 246, .2), transparent 60%),
    linear-gradient(165deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .01));
  padding: clamp(28px, 4vw, 56px);
  margin-bottom: 18px;
}
.paper-feature h3 {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(28px, 4vw, 54px);
  letter-spacing: -.03em;
  line-height: 1.04;
  margin-block: 16px;
  max-width: 22ch;
}
.paper-feature > p { color: var(--ash); font-size: 16px; max-width: 72ch; margin-bottom: 22px; }

.paper-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.paper-card {
  border: 1px solid var(--stroke);
  border-radius: 14px;
  background: linear-gradient(165deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .01));
  padding: clamp(22px, 2.4vw, 34px);
  display: flex;
  flex-direction: column;
  gap: 13px;
  transition: border-color .26s var(--ease-out), box-shadow .26s var(--ease-out);
}
.paper-card:hover {
  border-color: rgba(216, 204, 255, .45);
  box-shadow: 0 22px 60px -30px rgba(139, 92, 246, .4);
}
.paper-meta {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: .18em;
  color: var(--smoke);
}
.paper-meta .id { color: var(--lavender); }
.paper-card h3 {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: clamp(19px, 1.8vw, 25px);
  letter-spacing: -.015em;
  line-height: 1.15;
}
.paper-card p { color: var(--ash); font-size: 14px; flex: 1; }
.paper-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.paper-card.negative { border-style: dashed; }
.paper-card.negative .paper-meta .id { color: var(--pink); }

.principles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: clamp(50px, 8vh, 80px);
}
.principle {
  border-top: 1px solid rgba(216, 204, 255, .3);
  padding-top: 20px;
}
.principle .mono { color: var(--lavender); }
.principle h4 {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 20px;
  margin-block: 10px 8px;
  letter-spacing: -.01em;
}
.principle p { color: var(--ash); font-size: 14px; }

/* ════════════════════════════════════════════════════════
   OBSERVATORY
   ════════════════════════════════════════════════════════ */
.obs-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
.obs-card {
  border: 1px solid var(--stroke);
  border-radius: 16px;
  background: linear-gradient(170deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .01));
  padding: 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 150px;
  overflow: clip;
  position: relative;
}
.obs-label {
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: .2em;
  color: var(--smoke);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.obs-num {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: clamp(34px, 3.6vw, 56px);
  letter-spacing: -.02em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  margin-top: auto;
}
.obs-num small {
  font-size: .38em;
  font-weight: 500;
  color: var(--ash);
  letter-spacing: .04em;
  margin-left: 6px;
}
.obs-sub { font-family: var(--f-mono); font-size: 9.5px; letter-spacing: .14em; color: var(--ash); }
.obs-2 { grid-column: span 2; }
.obs-3 { grid-column: span 3; }
.obs-4 { grid-column: span 4; }
.obs-tall { grid-row: span 2; }

/* gauge ring */
.obs-gauge { align-items: center; text-align: center; }
.gauge-ring {
  --p: 0;
  width: 130px; height: 130px;
  border-radius: 50%;
  background:
    radial-gradient(closest-side, #0E0E14 78%, transparent 79%),
    conic-gradient(var(--violet) calc(var(--p) * 1%), rgba(255, 255, 255, .08) 0);
  display: grid;
  place-items: center;
  margin: 10px auto 4px;
  transition: --p 1s;
}
.gauge-ring b {
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 26px;
  letter-spacing: -.02em;
}

/* live feed */
.obs-feed-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: .06em;
  line-height: 1.5;
  overflow: hidden;
  flex: 1;
  mask-image: linear-gradient(180deg, #000 78%, transparent);
  -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent);
}
.obs-feed-list li {
  padding: 9px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .05);
  display: flex;
  gap: 14px;
  align-items: baseline;
}
.obs-feed-list .t { color: var(--smoke); flex: none; }
.obs-feed-list .src { flex: none; width: 74px; }
.obs-feed-list .src.luna { color: var(--lavender); }
.obs-feed-list .src.aegis { color: var(--cyan); }
.obs-feed-list .src.perigee { color: #9DB4FF; }
.obs-feed-list .src.spectra { color: var(--pink); }
.obs-feed-list .src.swarm { color: var(--ash); }
.obs-feed-list .src.trip { color: #FFB45C; }
.obs-feed-list .msg { color: var(--ash); }

.obs-foot-note {
  margin-top: clamp(40px, 7vh, 70px);
  text-align: center;
  font-family: var(--f-display);
  font-size: clamp(18px, 2.2vw, 28px);
  font-weight: 500;
  letter-spacing: -.01em;
  color: var(--ash);
}
.obs-foot-note a { color: var(--lavender); border-bottom: 1px solid rgba(216, 204, 255, .4); }
.obs-foot-note a:hover { color: var(--white); }

/* ════════════════════════════════════════════════════════
   SUBPAGE RESPONSIVE
   ════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .model-feature { grid-template-columns: 1fr; }
  .obs-grid { grid-template-columns: repeat(2, 1fr); }
  .obs-2, .obs-3, .obs-4 { grid-column: span 2; }
  .tally { grid-template-columns: repeat(2, 1fr); }
  .tally div { border-left: none; border-top: 1px solid var(--stroke); }
  .stack-row { grid-template-columns: 90px 1fr; }
  .stack-row > p { grid-column: 2; }
}

@media (max-width: 760px) {
  .page-hero { min-height: auto; padding-top: 130px; }
  .model-grid, .paper-grid, .principles { grid-template-columns: 1fr; }
  .obs-grid { grid-template-columns: 1fr; }
  .obs-2, .obs-3, .obs-4 { grid-column: span 1; }
  .tally { grid-template-columns: 1fr 1fr; }
  .stack-row { grid-template-columns: 1fr; gap: 14px; }
  .stack-row > p { grid-column: 1; }
  .nm-entry { grid-template-columns: 1fr; gap: 8px; }
  .ledger { padding-left: 26px; }
  .ledger-entry { padding-left: 14px; }
  .ledger-entry::before { left: -22px; }
  .covenant-lines li { gap: 14px; }
}
