/* SolStake+ landing: a long exposure around one fixed star. */

section { position: relative; }
.section-title { margin-bottom: var(--s-7); max-width: 22ch; }

/* ================= Hero ================= */

.hero {
  min-height: 100svh;
  display: grid;
  align-items: center;
  padding: calc(var(--nav-h) + var(--s-6)) 0 var(--s-9);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(120% 60% at 50% 115%, rgba(58, 74, 140, 0.35), transparent 60%),
    radial-gradient(60% 50% at 72% 38%, rgba(124, 240, 196, 0.06), transparent 70%),
    var(--sky-0);
}
.sky { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -3; }
/* Trails stay out of the copy column so the words read cleanly. */
@media (min-width: 861px) {
  .sky {
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0 44%, #000 62%);
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0.2) 0 44%, #000 62%);
  }
}
.ridge { position: absolute; left: 0; right: 0; bottom: 0; height: clamp(90px, 16vh, 190px); z-index: -2; pointer-events: none; }
.ridge svg { width: 100%; height: 100%; }
.ridge path { fill: #010207; }
.ridge::before {
  content: "";
  position: absolute;
  inset: -40% 0 0 0;
  background: linear-gradient(to top, rgba(1, 2, 7, 0.9), transparent);
  z-index: -1;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--s-7);
  align-items: center;
}
.hero-copy { display: grid; gap: var(--s-5); max-width: 40rem; }
.hero h1 .line { display: block; }
.hero h1 .line + .line { color: var(--polaris); }
.hero-lede { max-width: 33rem; }
.hero-cta { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-2); }
.hero-cta .btn-ghost { background: rgba(8, 12, 24, 0.55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.hero-facts .fact { display: inline-flex; align-items: center; gap: 0.4rem; }
.hero-facts .fact .icon { width: 16px; height: 16px; color: var(--polaris); }
.hero-facts { display: flex; flex-wrap: wrap; gap: 0.35rem 0.6rem; color: var(--ink-3); font-size: 0.92rem; }

.hero-side { display: grid; justify-items: center; align-content: center; gap: var(--s-5); }
.pole { width: 1px; height: clamp(160px, 30vh, 300px); }
.readout {
  width: min(100%, 300px);
  padding: var(--s-4) var(--s-5);
  border-radius: var(--radius);
  background: rgba(8, 12, 24, 0.5);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
  box-shadow: inset 0 0 0 1px var(--line-strong), inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 20px 50px -24px rgba(0, 0, 0, 0.9);
  margin: 0;
}
.readout-row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-4); padding: 0.4rem 0; }
.readout-row + .readout-row { border-top: 1px solid var(--line); }
.readout-label { color: var(--ink-2); font-size: 0.9rem; display: inline-flex; align-items: center; }
.readout strong { font-size: 1.2rem; font-weight: 600; letter-spacing: -0.01em; }
.readout [data-jitter] { transition: color 300ms; }
.readout [data-jitter].up { color: #b6f5dc; }
.readout [data-jitter].down { color: #ffc2bb; }
.readout figcaption { margin-top: var(--s-2); font-size: 0.78rem; color: var(--ink-3); }

.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: var(--s-5);
  translate: -50% 0;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: var(--ink-2);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  transition: background 200ms, color 200ms, transform 120ms;
}
.scroll-cue:hover { color: var(--ink); background: rgba(255, 255, 255, 0.08); }
.scroll-cue:active { transform: scale(0.94); }

/* ---- Start-up: the shutter opens, trails draw, words come into focus ---- */

@property --ap {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
.shutter {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  background: #000;
  visibility: hidden;
}
html.intro .shutter {
  visibility: visible;
  -webkit-mask: radial-gradient(circle at var(--px, 72%) var(--py, 40%), transparent var(--ap), #000 calc(var(--ap) + 1.5vmax));
  mask: radial-gradient(circle at var(--px, 72%) var(--py, 40%), transparent var(--ap), #000 calc(var(--ap) + 1.5vmax));
  animation: aperture 1500ms var(--ease-in-out) 120ms forwards;
}
@keyframes aperture {
  0% { --ap: 0px; }
  100% { --ap: 160vmax; visibility: hidden; }
}
html.intro .hero .line,
html.intro .hero-lede,
html.intro .hero-cta,
html.intro .hero-facts,
html.intro .readout,
html.intro .scroll-cue {
  animation: focus-in 1200ms var(--ease-out) both;
  animation-delay: calc(820ms + var(--i, 5) * 95ms);
}
html.intro .nav { animation: nav-in 900ms var(--ease-out) 1050ms both; }
@keyframes focus-in {
  from { opacity: 0; transform: translateY(30px) scale(0.985); filter: blur(12px); }
  to { opacity: 1; transform: none; filter: blur(0); }
}
@keyframes nav-in {
  from { opacity: 0; transform: translateY(-14px); }
  to { opacity: 1; transform: none; }
}

/* ================= How it works ================= */

.how { padding: var(--s-9) 0 var(--s-8); }
.how-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--s-8);
  align-items: start;
}
.how-figure { position: sticky; top: calc(var(--nav-h) + 6vh); }
.twolines { padding: var(--s-5) var(--s-5) var(--s-4); margin: 0; }
.twolines svg { width: 100%; height: auto; overflow: visible; }
.twolines .grid line { stroke: var(--line); stroke-width: 1; }
.twolines .axis text { fill: var(--ink-3); font-size: 12px; font-family: var(--font-body); text-anchor: end; font-variant-numeric: tabular-nums; }
.twolines .axis .start { text-anchor: start; }
.twolines .axis .mid { text-anchor: middle; }
.twolines .axis .end { text-anchor: end; }
.line-sol, .line-usd { fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.line-sol { stroke: var(--chart-violet); }
.line-usd { stroke: var(--chart-usd); stroke-width: 2.5; }
.head-sol { fill: var(--chart-violet); stroke: var(--sky-1); stroke-width: 2; }
.head-usd { fill: var(--chart-usd); stroke: var(--sky-1); stroke-width: 2; }
.twolines figcaption { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); margin-top: var(--s-3); font-size: 0.88rem; color: var(--ink-2); }
.twolines figcaption .muted { flex-basis: 100%; font-size: 0.8rem; }
.key { display: inline-flex; align-items: center; }

.how-steps { display: grid; gap: 0; }
.how-step {
  min-height: 62vh;
  display: grid;
  align-content: center;
  gap: var(--s-3);
  padding: var(--s-6) 0;
  color: var(--ink-3);
  transition: color 600ms var(--ease-out), transform 800ms var(--ease-out);
  transform: translateX(8px);
}
.how-step p { color: var(--ink-3); max-width: 30rem; transition: color 600ms var(--ease-out); }
.how-step .step-head { display: flex; align-items: center; gap: var(--s-3); }
.step-ico { width: 22px; height: 22px; color: var(--ink-3); transition: color 600ms var(--ease-out); }
.how-step.is-active .step-ico { color: var(--polaris); }
.step-n { opacity: 0.6; transition: opacity 600ms var(--ease-out); }
.how-step.is-active { color: var(--ink); transform: none; }
.how-step.is-active p { color: var(--ink-2); }
.how-step.is-active .step-n { opacity: 1; }
html:not(.js) .how-step { color: var(--ink); transform: none; }
.step-n {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--polaris);
  box-shadow: inset 0 0 0 1px rgba(124, 240, 196, 0.35);
  background: rgba(124, 240, 196, 0.06);
}

/* ================= Nightly ================= */

.nightly { padding: var(--s-9) 0; }
.nightly-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-8); align-items: center; }
.nightly .lede { margin-top: var(--s-5); }
.formula {
  display: inline-block;
  margin-top: var(--s-6);
  padding: 0.7rem 1rem;
  border-radius: var(--radius-s);
  background: rgba(255, 255, 255, 0.03);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ink-2);
}
.formula sup { font-size: 0.7em; }

/* ================= Transparency ================= */

.clarity { padding: var(--s-9) 0; }
.clarity-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-8); align-items: center; }
.clarity .lede { margin-top: var(--s-5); }
.clarity-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: var(--s-4);
  color: var(--polaris);
  font-weight: 600;
}
.split { padding: var(--s-6); }
.split-label { color: var(--ink-2); }
.split-bar {
  display: flex;
  gap: 4px;
  height: 14px;
  margin: var(--s-4) 0 var(--s-5);
}
.split-bar span { border-radius: var(--radius-s); }
.split-you { background: var(--polaris); }
.split-us { background: var(--line-strong); }
.split-legend { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-5); }
.split-legend dt { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--ink-2); }
.split-legend dd { margin: var(--s-1) 0 0; }
.split-legend .num { color: var(--ink); font-weight: 600; }
.split-dot { width: 10px; height: 10px; border-radius: 50%; }
.split-dot-you { background: var(--polaris); }
.split-dot-us { background: var(--line-strong); }
.split-notes {
  display: grid;
  gap: var(--s-3);
  margin: var(--s-5) 0 0;
  padding: var(--s-5) 0 0;
  list-style: none;
  border-top: 1px solid var(--line);
  color: var(--ink-2);
}
.split-notes li { display: flex; gap: 0.6rem; align-items: flex-start; }
.split-notes .icon { flex: none; margin-top: 0.15em; color: var(--ink-3); }

.clock { padding: var(--s-6); }
.clock-label { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--ink-2); font-size: 0.95rem; }
.clock-time {
  font-family: var(--font-display);
  font-variation-settings: "opsz" 96;
  font-weight: 560;
  font-size: clamp(3rem, 7vw, 5.2rem);
  letter-spacing: -0.03em;
  line-height: 1;
  margin: var(--s-3) 0 var(--s-6);
  color: var(--polaris);
}
.rate-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.rate-table th, .rate-table td { padding: 0.7rem 0; text-align: right; border-top: 1px solid var(--line); }
.rate-table thead th { color: var(--ink-3); font-weight: 500; font-size: 0.84rem; border-top: 0; padding-top: 0; }
.rate-table th:first-child, .rate-table td:first-child { text-align: left; }
.rate-table tbody th { font-weight: 600; }

/* ================= Calculator ================= */

.calc { padding: var(--s-9) 0; }
.calc-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: var(--s-7);
  padding: var(--s-7);
}
.calc-controls { display: grid; gap: var(--s-6); align-content: start; }
.calc-controls .field { grid-template-columns: 1fr auto; align-items: baseline; }
.calc-controls .field input { grid-column: 1 / -1; }
.calc-total-label { color: var(--ink-2); }
.calc-total {
  font-family: var(--font-display);
  font-variation-settings: "opsz" 96;
  font-weight: 600;
  font-size: clamp(2.6rem, 5.6vw, 4.4rem);
  letter-spacing: -0.035em;
  line-height: 1.02;
  margin: var(--s-2) 0 var(--s-4);
}
.calc-result .small { margin-top: var(--s-4); }

/* ================= Leaderboard ================= */

.leaders { padding: var(--s-9) 0; }
.leaders-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s-4); margin-bottom: var(--s-7); }

/* ================= FAQ ================= */

.faq { padding: var(--s-9) 0; }
.faq-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: var(--s-7); align-items: start; }
.faq-grid .h2 { position: sticky; top: calc(var(--nav-h) + var(--s-6)); }
.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-item summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  padding: var(--s-5) 0;
  cursor: pointer;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary h3 { font-size: 1.08rem; font-weight: 600; letter-spacing: -0.01em; }
.faq-item summary .icon { color: var(--ink-3); transition: transform 300ms var(--ease-out); flex: none; }
.faq-item[open] summary .icon { transform: rotate(180deg); }
.faq-item summary:hover h3 { color: var(--polaris); }
.faq-body { padding: 0 0 var(--s-5); color: var(--ink-2); max-width: 62ch; }
.faq-item[open] .faq-body { animation: faq-open 420ms var(--ease-out); }
@keyframes faq-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* ================= Close ================= */

.close {
  padding: var(--s-9) 0;
  overflow: hidden;
  background: radial-gradient(50% 60% at 50% 40%, rgba(143, 123, 255, 0.1), transparent 70%);
}
.close-inner { display: grid; justify-items: center; text-align: center; gap: var(--s-6); }
.close-mark { width: 88px; height: 88px; filter: drop-shadow(0 0 30px rgba(124, 240, 196, 0.35)); }
.close .h2 { max-width: 20ch; }

/* ================= Responsive ================= */

@media (max-width: 960px) {
  .how-grid { grid-template-columns: minmax(0, 1fr); gap: var(--s-5); }
  .how-figure { top: calc(var(--nav-h) + var(--s-3)); z-index: 2; }
  .twolines { padding: var(--s-4); background: rgba(9, 13, 25, 0.94); }
  .how-step { min-height: 46vh; }
  .nightly-grid, .clarity-grid, .calc-grid, .faq-grid { grid-template-columns: minmax(0, 1fr); }
  .calc-grid { padding: var(--s-5); gap: var(--s-6); }
  .faq-grid .h2 { position: static; }
}

@media (max-width: 860px) {
  .hero { align-items: start; padding-top: calc(var(--nav-h) + var(--s-3)); }
  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: var(--s-4); }
  /* Headline first; the pole star stays on top as the image, the readout follows the copy. */
  .hero-side { display: contents; }
  .pole { order: -1; justify-self: center; height: clamp(120px, 20vh, 180px); }
  .readout { order: 1; width: 100%; padding: var(--s-3) var(--s-4); }
  .sky {
    -webkit-mask-image: linear-gradient(180deg, #000 0 22%, rgba(0, 0, 0, 0.18) 38% 100%);
    mask-image: linear-gradient(180deg, #000 0 22%, rgba(0, 0, 0, 0.18) 38% 100%);
  }
  .readout strong { font-size: 1.02rem; }
  .readout-label { font-size: 0.82rem; }
  .scroll-cue { display: none; }
}

@media (max-width: 520px) {
  .pole { height: 110px; }
  .hero-cta .btn { flex: 1 1 auto; }
  .bars { height: 140px; gap: 2px; }
}

@media (prefers-reduced-motion: reduce) {
  .how-step { transform: none; }
}
