/* ProofRWA — landing. Dark verification terminal: precise, verifiable, calm.
   The memorable object is the live attestation "record" in the hero. */

body { line-height: 1.5; overflow-x: hidden; }

/* subtle film-grain for depth (not glassmorphism) */
.grain {
  position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: 0.028;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
main, .nav, .foot { position: relative; z-index: 1; }

/* ambient light from top-right, cohesive with the signal hue */
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(70ch 46ch at 82% -8%, oklch(0.83 0.15 168 / 0.06), transparent 70%),
    radial-gradient(60ch 40ch at 6% 108%, oklch(0.55 0.10 232 / 0.05), transparent 70%);
}

.num, .mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- nav */
.nav {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-md);
  padding: var(--space-sm) clamp(var(--space-md), 5vw, var(--space-3xl));
  position: sticky; top: 0; z-index: 20;
  border-bottom: 1px solid transparent;
  background: color-mix(in oklch, var(--bg) 78%, transparent);
  backdrop-filter: blur(14px) saturate(1.2);
  transition: border-color 0.3s, background 0.3s;
}
.nav.scrolled { border-bottom-color: var(--line); }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 700; letter-spacing: -0.025em; }
.brand-glyph { color: var(--signal); font-size: 1.5em; filter: drop-shadow(0 0 12px var(--signal-glow)); }
.brand-name { font-size: 1.4rem; }
.brand-name span { color: var(--signal); }
.nav-links { display: flex; gap: var(--space-lg); }
.nav-links a { color: var(--ink-dim); font-size: var(--t-sm); transition: color 0.15s; }
.nav-links a:hover { color: var(--ink); }
.nav-right { display: flex; align-items: center; gap: var(--space-md); }
.net { display: inline-flex; align-items: center; gap: var(--space-2xs);
  font-family: var(--font-mono); font-size: var(--t-xs); color: var(--ink-faint); }
.net-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ink-faint); transition: background 0.3s; }
.net-dot.ok { background: var(--signal); box-shadow: 0 0 0 3px var(--signal-glow); animation: pulse 2.6s var(--ease-out) infinite; }
.net-dot.warn { background: var(--amber); }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }

/* ---------------------------------------------------------------- buttons */
.btn {
  display: inline-flex; align-items: center; gap: var(--space-2xs);
  font-size: var(--t-sm); font-weight: 500; padding: 10px 16px; border-radius: var(--radius-sm);
  border: 1px solid var(--line-2); color: var(--ink); background: var(--bg-2);
  transition: transform 0.16s var(--ease-out), border-color 0.16s, background 0.16s, color 0.16s;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); border-color: var(--ink-faint); }
.btn-primary { background: var(--signal); color: oklch(0.18 0.03 168); border-color: transparent; font-weight: 600; }
.btn-primary:hover { background: oklch(0.87 0.15 168); box-shadow: 0 8px 24px -10px var(--signal-glow); }
.btn-ghost { background: transparent; }
.btn-ghost:hover { border-color: var(--signal-deep); color: var(--signal); }
.btn-lg { padding: 13px 20px; font-size: var(--t-base); }
.arr { transition: transform 0.18s var(--ease-out); }
.btn:hover .arr { transform: translateX(3px); }

/* ---------------------------------------------------------------- hero */
.hero {
  display: grid; grid-template-columns: 1.08fr 0.92fr; gap: clamp(var(--space-lg), 5vw, var(--space-3xl));
  align-items: center;
  max-width: 1200px; margin: 0 auto;
  padding: clamp(var(--space-2xl), 9vh, var(--space-3xl)) clamp(var(--space-md), 5vw, var(--space-3xl));
}
.hero-copy { max-width: 40ch; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: 0.04em;
  color: var(--ink-dim); text-transform: uppercase;
  border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; margin-bottom: var(--space-md);
}
.eyebrow .tick { color: var(--signal); }
h1 {
  font-size: clamp(2.1rem, 6vw, 3.75rem); line-height: 1.04; letter-spacing: -0.035em;
  font-weight: 700; margin-bottom: var(--space-md);
}
h1 em { font-style: normal; color: var(--signal); }
.lede { font-size: clamp(var(--t-md), 1.6vw, 1.15rem); color: var(--ink-dim); max-width: 46ch; line-height: 1.6; }
.lede b { color: var(--ink); font-weight: 600; }
.hero-cta { display: flex; gap: var(--space-xs); margin-top: var(--space-lg); flex-wrap: wrap; }
.hero-stats {
  display: flex; gap: clamp(var(--space-md), 4vw, var(--space-xl)); margin-top: var(--space-xl);
  padding-top: var(--space-md); border-top: 1px solid var(--line);
}
.hero-stats dt { font-family: var(--font-mono); font-size: var(--t-lg); font-weight: 500; color: var(--ink); letter-spacing: -0.01em; }
.hero-stats dd { font-size: var(--t-xs); color: var(--ink-faint); margin-top: 2px; }

/* the record — hero object */
.record {
  background: linear-gradient(180deg, var(--bg-1), color-mix(in oklch, var(--bg-1) 60%, var(--bg)));
  border: 1px solid var(--line-2); border-radius: var(--radius-lg);
  padding: var(--space-md); position: relative; overflow: hidden;
  box-shadow: 0 40px 80px -40px oklch(0 0 0 / 0.7), inset 0 1px 0 oklch(1 0 0 / 0.04);
  animation: record-in 0.8s var(--ease-out-soft) both;
}
@keyframes record-in { from { opacity: 0; transform: translateY(16px) scale(0.985); } to { opacity: 1; transform: none; } }
.record::after { /* corner notch, like a stamped document */
  content: ""; position: absolute; top: 0; right: 0; width: 26px; height: 26px;
  background: var(--bg); border-left: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2);
  clip-path: polygon(100% 0, 0 0, 100% 100%);
}
.record-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-md); }
.record-title { font-family: var(--font-mono); font-size: var(--t-2xs); letter-spacing: 0.18em; color: var(--ink-faint); }
.record-verified { font-family: var(--font-mono); font-size: var(--t-2xs); letter-spacing: 0.06em; color: var(--ink-faint); }
.record-verified.is-fresh { color: var(--signal); }
.record-ticker { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: var(--space-sm); }
.record-ticker span:first-child { font-size: 1.75rem; font-weight: 700; letter-spacing: -0.02em; }
.record-price { color: var(--ink-dim); font-size: var(--t-sm); }
.record-band-row { display: flex; align-items: center; gap: var(--space-sm); margin-bottom: var(--space-md); }
.record-band {
  width: 58px; height: 58px; display: grid; place-items: center; border-radius: var(--radius-md);
  font-size: 2rem; font-weight: 600; color: oklch(0.18 0.03 168); background: var(--bg-3);
}
.record-score { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.record-score .num:first-child { font-size: 2rem; font-weight: 600; letter-spacing: -0.02em; }
.record-score-max { color: var(--ink-faint); font-size: var(--t-sm); }
.record-score-l { flex-basis: 100%; color: var(--ink-faint); font-size: var(--t-xs); }
.record-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border-radius: var(--radius-sm); overflow: hidden; }
.record-grid > div { background: var(--bg-1); padding: 10px 12px; }
.record-grid dt { font-size: var(--t-2xs); color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.05em; }
.record-grid dd { font-size: var(--t-base); color: var(--ink); margin-top: 3px; font-weight: 500; }
.record-foot { display: flex; align-items: center; justify-content: space-between; margin-top: var(--space-md); padding-top: var(--space-sm); border-top: 1px solid var(--line); }
.record-hash { font-size: var(--t-2xs); color: var(--ink-faint); }
.record-link { font-size: var(--t-xs); color: var(--signal); }
.record-link:hover { text-decoration: underline; }

/* ---------------------------------------------------------------- bands */
.band { max-width: 1080px; margin: 0 auto; padding: clamp(var(--space-2xl), 8vh, var(--space-3xl)) clamp(var(--space-md), 5vw, var(--space-3xl)); }
.kicker { font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--signal-deep); margin-bottom: var(--space-sm); }
.band-head { max-width: 30ch; margin-bottom: var(--space-xl); }
.band-head h2, .problem .big-line { font-size: clamp(1.5rem, 3.4vw, 2.35rem); line-height: 1.15; letter-spacing: -0.025em; font-weight: 600; }
.band-head h2 .dim { color: var(--ink-faint); font-weight: 400; }
.body-col { max-width: 62ch; color: var(--ink-dim); font-size: var(--t-md); line-height: 1.65; margin-top: var(--space-md); }

/* problem */
.problem .big-line { max-width: 24ch; }
.strike-accent { color: var(--amber); position: relative; white-space: nowrap; }

/* pipeline — numbered flow; step 03 is emphasized (breaks the uniform grid) */
.pipeline { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-sm); counter-reset: none; }
.step {
  background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--radius-md);
  padding: var(--space-md); display: flex; flex-direction: column; gap: var(--space-2xs);
  position: relative; min-height: 200px;
}
.step-n { font-size: var(--t-lg); color: var(--ink-faint); font-weight: 500; }
.step h3 { font-size: var(--t-md); font-weight: 600; letter-spacing: -0.01em; display: flex; align-items: center; gap: var(--space-2xs); flex-wrap: wrap; }
.step p { font-size: var(--t-sm); color: var(--ink-dim); line-height: 1.55; }
.step p em { font-style: normal; color: var(--ink); }
.step-key { background: color-mix(in oklch, var(--signal) 8%, var(--bg-1)); border-color: var(--signal-deep); }
.step-key .step-n { color: var(--signal); }
.step-tag { font-family: var(--font-mono); font-size: var(--t-2xs); letter-spacing: 0.05em; text-transform: uppercase; color: var(--signal); border: 1px solid var(--signal-deep); border-radius: 4px; padding: 1px 6px; }

/* live */
.live-strip { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin-bottom: var(--space-lg); }
.live-loading { color: var(--ink-faint); font-size: var(--t-sm); padding: var(--space-md) 0; }
.live-chip {
  display: inline-flex; align-items: center; gap: var(--space-2xs);
  background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 7px 11px; transition: transform 0.14s var(--ease-out), border-color 0.14s;
}
.live-chip:hover { transform: translateY(-2px); border-color: var(--line-2); }
.live-tk { font-weight: 600; font-size: var(--t-sm); }
.live-sc { font-size: var(--t-sm); color: var(--ink-dim); }
.live-bd { font-size: var(--t-sm); font-weight: 600; }

/* contrast */
.contrast-rows { display: flex; flex-direction: column; gap: var(--space-2xs); margin: var(--space-md) 0; max-width: 44ch; }
.contrast-row {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--space-sm);
  padding: var(--space-sm) var(--space-md); border-radius: var(--radius-md);
  background: var(--bg-1); border: 1px solid var(--line);
}
.contrast-l { font-weight: 600; }
.contrast-op { font-family: var(--font-mono); font-size: var(--t-xs); color: var(--ink-faint); text-align: center; }
.contrast-r { text-align: right; font-family: var(--font-mono); font-size: var(--t-sm); }
.contrast-r.muted { color: var(--ink-faint); }
.contrast-row.is-us { background: color-mix(in oklch, var(--signal) 9%, var(--bg-1)); border-color: var(--signal-deep); }
.contrast-row.is-us .contrast-r { color: var(--signal); }

/* who */
.who-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-sm); }
.who-item { background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-md); position: relative; }
.who-role { display: block; font-family: var(--font-mono); font-size: var(--t-xs); letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink); margin-bottom: var(--space-2xs); }
.who-item p { font-size: var(--t-sm); color: var(--ink-dim); line-height: 1.55; }
.who-item p em { font-style: normal; color: var(--ink); }
.who-item code { font-family: var(--font-mono); font-size: 0.92em; color: var(--signal); background: var(--bg-3); padding: 1px 5px; border-radius: 4px; }
.who-link { display: inline-block; margin-top: var(--space-sm); font-size: var(--t-xs); color: var(--signal); }
.who-link:hover { text-decoration: underline; }
.who-feature { background: color-mix(in oklch, var(--signal) 7%, var(--bg-1)); border-color: var(--signal-deep); }
.who-badge { position: absolute; top: var(--space-md); right: var(--space-md); font-family: var(--font-mono); font-size: var(--t-2xs); letter-spacing: 0.05em; text-transform: uppercase; color: var(--signal); }

/* cta */
.cta { text-align: center; padding: clamp(var(--space-2xl), 12vh, var(--space-3xl)) var(--space-md); border-top: 1px solid var(--line); margin-top: var(--space-2xl); }
.cta-line { font-size: clamp(1.75rem, 5vw, 3rem); line-height: 1.08; letter-spacing: -0.03em; font-weight: 700; margin-bottom: var(--space-lg); }
.cta .hero-cta { justify-content: center; }

/* footer */
.foot {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); flex-wrap: wrap;
  padding: var(--space-lg) clamp(var(--space-md), 5vw, var(--space-3xl));
  border-top: 1px solid var(--line); color: var(--ink-faint); font-size: var(--t-xs);
}
.foot-brand { display: inline-flex; align-items: center; gap: 7px; color: var(--ink-dim); font-weight: 600; }
.foot-links { display: flex; gap: var(--space-md); }
.foot-links a:hover { color: var(--signal); }
.foot-note { color: var(--ink-faint); }

/* ---------------------------------------------------------------- responsive */
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .record { max-width: 420px; }
  .pipeline { grid-template-columns: 1fr 1fr; }
  .who-grid { grid-template-columns: 1fr; }
  .nav-links { display: none; }
}
@media (max-width: 560px) {
  .pipeline { grid-template-columns: 1fr; }
  .hero-stats { flex-wrap: wrap; gap: var(--space-md); }
  .contrast-row { grid-template-columns: 1fr auto; }
  .contrast-op { display: none; }
  .foot { flex-direction: column; align-items: flex-start; gap: var(--space-sm); }
}
