@import url("./tokens.css");
@import url("./platform.css");

﻿*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
html,body{ background:var(--bg); color:var(--ink); }
body{
  font-family:var(--font-body);
  font-weight:400;
  font-size:15.5px;
  line-height:1.55;
  font-feature-settings:"ss01","ss02","cv11";
  background:var(--bg);
  color:var(--ink);
  background-image:
    radial-gradient(ellipse 80% 60% at 50% -10%, var(--wash-gold), transparent 60%),
    radial-gradient(ellipse 55% 40% at 0% 100%, var(--wash-teal), transparent 55%),
    linear-gradient(var(--line-2) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-2) 1px, transparent 1px);
  background-size:auto, auto, 64px 64px, 64px 64px;
  background-position:0 0, 0 0, -1px -1px, -1px -1px;
}
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none; z-index:1;
  background:
    radial-gradient(circle at 20% 10%, var(--wash-gold-2), transparent 40%),
    radial-gradient(circle at 80% 80%, var(--wash-plum), transparent 45%),
    radial-gradient(circle at 12% 88%, var(--wash-teal), transparent 42%);
  mix-blend-mode:screen;
}
body::after{
  content:"";
  position:fixed; inset:0;
  pointer-events:none; z-index:2;
  opacity:.35;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='5'/><feColorMatrix values='0 0 0 0 0.95  0 0 0 0 0.92  0 0 0 0 0.85  0 0 0 0.08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay;
}

a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

/* Keyboard focus â€” visible ring, no mouse-only outline flash */
:focus:not(:focus-visible){ outline:none; }
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.door:focus-visible,
.price-row .act a:focus-visible,
.foot-grid a:focus-visible{
  outline:2px solid var(--sig-2);
  outline-offset:3px;
}
.form button:focus-visible{
  outline:2px solid var(--sig-2);
  outline-offset:3px;
}

::selection{ background:var(--sig); color:#141210; }

.wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding-top:0;
  padding-bottom:0;
  position:relative;
  z-index:5;
}

/* ========= Typography ========= */
h1,h2,h3,h4{
  font-family:var(--font-disp);
  font-weight:400;
  letter-spacing:-0.02em;
  color:var(--ink);
  font-variation-settings:"opsz" 144, "SOFT" 30;
}
h1{
  font-size:clamp(2.9rem, 6.2vw, 5.4rem);
  line-height:0.96;
  letter-spacing:-0.035em;
  font-weight:300;
}
h1 em{
  font-style:italic;
  font-weight:300;
  font-variation-settings:"opsz" 144, "SOFT" 100;
  color:var(--ink);
}
h2{
  font-size:clamp(2rem, 4vw, 3.4rem);
  line-height:1.02;
  letter-spacing:-0.03em;
  font-weight:300;
}
h3{
  font-size:1.28rem;
  font-weight:500;
  font-family:var(--font-body);
  letter-spacing:-0.01em;
  line-height:1.3;
}

p{ color:var(--ink-2); }
.lede{
  font-size:1.12rem;
  line-height:1.6;
  color:var(--ink-2);
  max-width:58ch;
}
.section-intro{
  max-width:none;
  width:100%;
  margin:0 0 var(--section-intro-gap);
}
.lede.section-intro{
  max-width:none;
}
.section-head + .section-intro{
  margin-top:0;
}

.mono, code, kbd, samp{
  font-family:var(--font-mono);
  font-variant-ligatures:none;
}

/* ========= Label (unified meta / eyebrow / tag) ========= */
.label {
  font-family: var(--font-mono);
  font-weight: 500;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: .6rem;
}
.label--accent {
  font-size: .58rem;
  letter-spacing: .14em;
  color: var(--sig);
}
.label--sm {
  font-size: .6rem;
  letter-spacing: .14em;
  color: var(--sig);
}
.label--dot {
  font-size: .72rem;
  letter-spacing: .18em;
  color: var(--mute);
}
.label--dot::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ok-dim), var(--route-plum), var(--sig));
  box-shadow: 0 0 10px rgba(184,146,78,.45), 0 0 6px rgba(45,106,95,.25);
}
.label--dot.ok::before,
.label--dot.label--ok::before {
  background: var(--ok);
  box-shadow: 0 0 10px var(--ok);
}
.label--dot.mute::before,
.label--dot.label--mute::before {
  background: var(--mute);
  box-shadow: none;
}
.label--dot.urgent::before,
.label--dot.label--urgent::before {
  background: var(--sig);
  box-shadow: 0 0 8px var(--sig);
}
.eyebrow,
.label--dot {
  font-family: var(--font-mono);
  font-weight: 500;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: .6rem;
}
.eyebrow {
  font-size: .72rem;
  letter-spacing: .18em;
  color: var(--mute);
}
.eyebrow::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--ok-dim), var(--route-plum), var(--sig));
  box-shadow: 0 0 10px rgba(184,146,78,.45), 0 0 6px rgba(45,106,95,.25);
}
.eyebrow.ok::before { background: var(--ok); box-shadow: 0 0 10px var(--ok); }
.eyebrow.mute::before { background: var(--mute); box-shadow: none; }
.eyebrow.urgent::before { background: var(--sig); box-shadow: 0 0 8px var(--sig); }
.proof-label,
.sg-tag,
.audience .tg,
.meta {
  font-family: var(--font-mono);
  font-size: .58rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--sig);
}
.audience .label--sm,
.audience .tg {
  font-size: .6rem;
}
/* ========= Top telemetry bar ========= */
.telemetry{
  position:relative;
  z-index:10;
  border-bottom:1px solid var(--line);
  background:rgba(10,10,11,.8);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.08em;
  color:var(--mute);
  text-transform:uppercase;
  overflow:hidden;
}
.telemetry::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:1px; pointer-events:none;
  background:var(--bar-route);
  opacity:.75;
}
.telemetry-inner{
  display:flex;
  align-items:center;
  gap:2.4rem;
  padding-top:.55rem;
  padding-bottom:.55rem;
  white-space:nowrap;
  animation:tele 48s linear infinite;
}
.telemetry span{ display:inline-flex; gap:.5rem; align-items:center; }
.telemetry .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--ok);
  box-shadow:0 0 8px var(--ok);
  animation:pulse 2.4s ease-in-out infinite;
}
@keyframes pulse{ 0%,100%{opacity:1} 50%{opacity:.35} }
@keyframes tele{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ========= Nav ========= */
.nav{
  position:sticky; top:0;
  z-index:20;
  background:rgba(10,10,11,.72);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid var(--line);
}
.nav::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:2px; pointer-events:none;
  background:var(--bar-route);
  opacity:.95;
}
.nav-inner{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:clamp(1rem,3vw,2rem);
  padding:1.05rem 0;
}
.nav-menu-btn{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:10px;
  border:1px solid var(--line-hot);
  background:var(--surface);
  color:var(--ink);
}
.nav-menu-bars{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:20px;
  pointer-events:none;
}
.nav-menu-bars span{
  display:block;
  height:2px;
  border-radius:1px;
  background:var(--ink-2);
}
.nav-primary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(1rem,4vw,2.5rem);
  min-width:0;
}
.logo{
  display:inline-flex; align-items:center; gap:.65rem;
  font-family:var(--font-mono);
  font-weight:500;
  font-size:.82rem;
  letter-spacing:.22em;
}
.logo-mark{
  width:26px; height:26px;
  display:block;
  object-fit:contain;
}
.nav .logo{
  gap:.85rem;
  font-family:var(--font-body);
  font-size:clamp(1.22rem, 2.1vw, 1.48rem);
  font-weight:600;
  letter-spacing:-0.045em;
  text-transform:none;
  line-height:1;
}
.nav .logo-mark{
  width:clamp(44px, 5.5vw, 56px);
  height:clamp(44px, 5.5vw, 56px);
  flex-shrink:0;
  filter:drop-shadow(0 0 14px rgba(184,146,78,.38)) drop-shadow(0 0 22px rgba(45,106,95,.22));
}
.logo-name{
  color:var(--ink);
  font-weight:600;
  letter-spacing:-0.045em;
}
.foot-grid .logo{
  gap:.75rem;
  font-family:var(--font-body);
  font-size:1.08rem;
  font-weight:600;
  letter-spacing:-0.04em;
  text-transform:none;
}
.foot-grid .logo-mark{
  width:34px; height:34px;
  filter:drop-shadow(0 0 12px rgba(184,146,78,.3));
}
.logo .logo-mark{ transition:opacity .35s ease, filter .35s ease, transform .35s ease; }
.logo:hover .logo-mark{ opacity:.95; filter:saturate(1.12) brightness(1.04); transform:scale(1.02); }

.nav-links{
  display:flex;
  flex:1;
  flex-wrap:wrap;
  justify-content:center;
  gap:clamp(1rem,2.5vw,2.1rem);
  font-family:var(--font-mono);
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--ink-2);
  min-width:0;
}
.nav-links a{ position:relative; padding:.25rem 0; }
.nav-links a::after{
  content:"";
  position:absolute; inset:auto 0 -2px 0;
  height:2px;
  background:linear-gradient(90deg, var(--ok-dim), var(--route-plum), var(--sig));
  transform:scaleX(0); transform-origin:left;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a:hover::after{ transform:scaleX(1); }

.nav-actions{ display:flex; gap:.7rem; align-items:center; flex-shrink:0; }

@media (max-width:900px){
  .nav-inner{ grid-template-columns:1fr auto; gap:.65rem 1rem; }
  .nav-menu-btn{ display:inline-flex; grid-column:2; grid-row:1; }
  .nav-primary{
    display:none;
    grid-column:1 / -1;
    grid-row:2;
    flex-direction:column;
    align-items:stretch;
    padding:.9rem 0 1.05rem;
    border-top:1px solid var(--line);
    gap:1.15rem;
  }
  .nav.nav-open .nav-primary{ display:flex; }
  .nav-links{
    flex-direction:column;
    align-items:flex-start;
    gap:.85rem;
    flex:none;
  }
  .nav-actions{
    flex-direction:column;
    width:100%;
    gap:.55rem;
  }
  .nav-actions .btn{ width:100%; justify-content:center; }
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.72rem 1.1rem;
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.12em;
  cursor:pointer;
  position:relative;
}
.btn .arr{
  display:inline-block; transition:transform .3s ease;
}
.btn:hover .arr{ transform:translateX(3px); }
.btn:disabled,
.btn-primary:disabled{
  opacity:.45;
  cursor:not-allowed;
  pointer-events:none;
}

/* ========= Section primitives ========= */
section{
  position:relative;
  padding:var(--section-pad-y) 0;
  z-index:5;
  scroll-margin-top:5.5rem;
}
section + section{ border-top:1px solid var(--line); }

/* Section landmark — scannable header, one idea per block */
.section-head{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  grid-template-rows:auto auto;
  row-gap:.55rem;
  column-gap:clamp(1rem, 2.5vw, 2rem);
  align-items:start;
  text-align:left;
  margin-bottom:var(--section-head-gap);
  padding-bottom:clamp(1.25rem, 2.5vw, 1.75rem);
  border-bottom:1px solid var(--line);
  position:relative;
}
.section-head > div{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.55rem;
  min-width:0;
  width:100%;
  grid-column:2;
  grid-row:1;
}
.section-head::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  pointer-events:none;
  background:var(--bar-route);
  opacity:.85;
}
.section-head__num{
  display:flex;
  align-items:baseline;
  gap:.3rem;
  font-family:var(--font-disp);
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  font-weight:300;
  line-height:1;
  letter-spacing:-0.03em;
  color:var(--sig);
  min-width:0;
  white-space:nowrap;
  padding-top:.12em;
  grid-column:1;
  grid-row:1;
}
.section-head__sub{
  grid-column:1 / -1;
  grid-row:2;
  margin:0;
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--btn-text);
  width:100%;
  max-width:none;
  line-height:1.45;
  text-align:left;
}
.section-head__sub .hl--proof{
  display:inline;
  padding:.22rem .55rem;
  margin:0 .06em;
  background:var(--gradient-route);
  -webkit-background-clip:border-box;
  background-clip:border-box;
  -webkit-text-fill-color:var(--on-route);
  color:var(--on-route);
  font-family:var(--font-mono);
  font-style:italic;
  font-weight:500;
  letter-spacing:.12em;
  line-height:1.35;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.section-head__num small{
  display:inline;
  font-family:var(--font-mono);
  font-size:.58rem;
  font-weight:500;
  letter-spacing:.22em;
  color:var(--mute);
  margin-bottom:0;
  transform:translateY(-0.35em);
}
.section-head__title{
  font-size:clamp(1.85rem, 3.8vw, 3rem);
  line-height:1.05;
  letter-spacing:-0.03em;
  font-weight:300;
  width:100%;
  max-width:none;
  margin:0;
  color:var(--btn-text);
}
.section-head__title em{
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100;
}
/* Button-token highlights — shared with hero */
.hl{
  font-weight:inherit;
}
.hl--verify{ color:var(--ok); }
.hl--route{ color:var(--route-plum); }
.hl--primary{ color:var(--btn-text-hover); }
.hl--proof{
  display:inline-block;
  padding:0 .12em .12em .02em;
  line-height:1.2;
  color:var(--btn-text-hover);
  background:var(--gradient-route);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
.section-kicker .hl--proof{
  padding:0 .18em .14em .04em;
}
.hl--proof + .hl--proof{
  margin-left:-.12em;
  padding-left:0;
}
.hl--proof:has(+ .hl--proof){
  padding-right:0;
}
@supports not ((background-clip: text) or (-webkit-background-clip: text)){
  .hl--proof{
    background:none;
    -webkit-text-fill-color:currentColor;
    color:var(--btn-text-hover);
  }
}
.hl--audit{
  position:relative;
  color:var(--sig);
}
.hl--audit::after{
  content:"";
  position:absolute;
  inset:auto 0 -2px 0;
  height:2px;
  background:var(--gradient-route);
  opacity:.75;
}
.section-kicker{
  font-size:clamp(1.75rem, 3.2vw, 2.65rem);
  line-height:1.12;
  letter-spacing:-0.03em;
  font-weight:300;
  width:100%;
  max-width:none;
  margin:0 0 var(--section-intro-gap);
  color:var(--btn-text);
  overflow:visible;
}
.section-kicker em{
  font-style:italic;
  font-variation-settings:"opsz" 144, "SOFT" 100;
  overflow:visible;
}
@media (max-width:640px){
  .section-head{
    grid-template-columns:1fr;
    row-gap:.65rem;
  }
  .section-head__num{
    grid-column:1;
    grid-row:1;
    font-size:1.75rem;
  }
  .section-head > div{
    grid-column:1;
    grid-row:2;
    gap:.45rem;
  }
  .section-head__sub{
    grid-column:1;
    grid-row:3;
  }
}

.section-tag{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:3.2rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--line);
  font-family:var(--font-mono);
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--mute);
  position:relative;
}
.section-tag::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-1px;
  height:2px; pointer-events:none;
  background:var(--bar-route);
  opacity:.55;
}
.section-tag .idx{
  color:var(--ok-dim);
  text-shadow:0 0 18px rgba(184,146,78,.25);
}



/* ========= Satellite page chrome ========= */
body.page-narrow {
  --maxw: 960px;
}
body.page-blog {
  font-size: 16px;
  line-height: 1.65;
}
body.page-blog:not(.page-blog-hub) {
  --maxw: 720px;
}
.nav--page {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.2rem 0;
  background: transparent;
  backdrop-filter: none;
}
.nav--page::after {
  display: none;
}
.nav--page .logo {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  font-weight: 600;
  font-size: 1.1rem;
  letter-spacing: -0.04em;
  font-family: var(--font-body);
  text-transform: none;
}
.nav--page .logo img {
  width: 40px;
  height: 40px;
}
body.page-blog .nav--page .logo img {
  width: 36px;
  height: 36px;
}
.nav-back {
  font-family: var(--font-mono);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--mute);
}
.nav-back:hover {
  color: var(--sig);
}
.foot {
  padding: 2rem 0 3rem;
  border-top: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: .7rem;
  color: var(--mute);
}
.foot a {
  color: var(--sig);
}
.page-hero {
  padding: clamp(3rem, 8vw, 5rem) 0 3rem;
}
.deadline {
  margin: 1.5rem 0;
  padding: 1rem 1.2rem;
  border: 1px dashed var(--sig);
  background: rgba(184, 146, 78, .06);
  font-family: var(--font-mono);
  font-size: .78rem;
  color: var(--ink-2);
}
.deadline b {
  color: var(--sig);
}
.points {
  margin: 2rem 0;
  padding-left: 1.2rem;
  color: var(--ink-2);
}
.points li {
  margin: .6rem 0;
}
[data-field-tier="long"] {
  display: none;
}
.form[data-variant="long"] [data-field-tier="long"] {
  display: block;
}
.form[data-variant="long"] [data-field-tier="long"].field-row {
  display: grid;
}
.form-note {
  font-family: var(--font-mono);
  font-size: .68rem;
  color: var(--mute);
  margin-bottom: 1rem;
}
.form .form-feedback:not([hidden]) {
  color: var(--ok);
}
.form .form-feedback--error:not([hidden]) {
  color: #e07070;
}
body.page-narrow .form,
body.page-narrow section .form {
  display: block;
  margin-top: 2rem;
}

/* ========= Utilities (no inline styles) ========= */
.text-strong {
  color: var(--ink);
  font-weight: 500;
}
.link-accent {
  color: var(--sig);
  border-bottom: 1px solid rgba(184, 146, 78, .35);
}
.link-accent:hover {
  color: var(--sig-2);
}
.mt-sm { margin-top: 1rem; }
.mt-md { margin-top: 1.4rem; }
.mt-lg { margin-top: 1.6rem; }
.mt-xl { margin-top: 1.8rem; }
.mt-2xl { margin-top: 2rem; }
.mt-3xl { margin-top: 2.8rem; }
.mb-sm { margin-bottom: .8rem; }
.mb-lg { margin-bottom: 3rem; }
.h2-w16 { max-width: 16ch; }
.h2-w20 { max-width: 20ch; }
.h2-w22 { max-width: 22ch; }
.h2-w24 { max-width: 24ch; }
.h2-w26 { max-width: 26ch; }
.h2-mt { margin-top: 1.1rem; }
.lede-mt { margin-top: var(--section-stack-gap); }
.lede-mt-sm { margin-top: var(--section-stack-gap); }
.lede-mb,
.lede-mb-lg { margin-bottom: var(--section-intro-gap); }
.chip-row-mt { margin-top: var(--section-stack-gap); }
.countdown-row {
  display: flex;
  align-items: baseline;
  gap: .65rem;
  margin-top: .35rem;
}
.countdown-caption {
  font-family: var(--font-mono);
  font-size: .72rem;
  color: var(--mute);
  text-transform: uppercase;
  letter-spacing: .1em;
}
.contact-block {
  margin-top: var(--section-body-gap);
  border-top: 1px solid var(--line);
  padding-top: var(--section-stack-gap);
}
.contact-email {
  font-family: var(--font-mono);
  font-size: .95rem;
  color: var(--ink);
}
.contact-note {
  font-family: var(--font-mono);
  font-size: .76rem;
  color: var(--mute);
  margin-top: .35rem;
}
.contact-social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
  margin-top: .75rem;
}
.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-2);
  text-decoration: none;
  line-height: 0;
  transition: color var(--dur) var(--ease);
}
.social-link:hover { color: var(--ink); }
.social-link img {
  width: 1.15rem;
  height: 1.15rem;
  display: block;
  opacity: 0.88;
  transition: opacity var(--dur) var(--ease);
}
.social-link:hover img { opacity: 1; }
.form-note-inline {
  font-family: var(--font-mono);
  font-size: .68rem;
  color: var(--mute);
  margin-bottom: 1rem;
}
.foot-note {
  margin-top: var(--section-intro-gap);
  font-family: var(--font-mono);
  font-size: .72rem;
  color: var(--mute);
  letter-spacing: .04em;
}
.segment-links {
  margin-top: 2rem;
  font-family: var(--font-mono);
  font-size: .72rem;
  color: var(--mute);
}

/* ========= Row CTA — nav-style gradient underline ========= */
.row-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-family: var(--font-mono);
  font-size: .68rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--sig);
  line-height: 1.4;
  padding: .25rem 0;
  text-decoration: none;
  border: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: color .25s ease;
}
.row-cta::after {
  content: "";
  position: absolute;
  inset: auto 0 -2px 0;
  height: 2px;
  background: linear-gradient(90deg, var(--ok-dim), var(--route-plum), var(--sig));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.row-cta .arr {
  display: inline-block;
  flex-shrink: 0;
  transition: transform .3s ease;
}
.row-cta:hover {
  color: var(--ink);
}
.row-cta:hover::after {
  transform: scaleX(1);
}
.row-cta:hover .arr {
  transform: translateX(3px);
}
button.row-cta {
  background: transparent;
  cursor: pointer;
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
}
button.row-cta:disabled {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none;
}
.nav-actions .btn {
  flex-shrink: 0;
}

.field-honeypot {
  position: absolute;
  left: -9999px;
  height: 0;
  overflow: hidden;
  margin: 0;
}
.logo-foot {
  margin-bottom: 1rem;
}
.blog-intro {
  color: var(--ink-2);
  max-width: 52ch;
}
article p,
article li {
  color: var(--ink-2);
  margin: .9rem 0;
}
article ul,
article ol {
  padding-left: 1.4rem;
}
article code {
  font-family: var(--font-mono);
  font-size: .88em;
  background: var(--surface);
  padding: .15rem .35rem;
  border: 1px solid var(--line);
}
.post-list {
  list-style: none;
  padding: 0;
  margin: 2rem 0;
}
.post-list li {
  border-top: 1px solid var(--line);
  padding: 1.2rem 0;
}
.post-list a {
  display: block;
  color: var(--ink);
}
.post-list a:hover h2 {
  color: var(--sig);
}
.post-list h2 {
  font-size: 1.25rem;
  margin: 0 0 .4rem;
  font-family: var(--font-body);
  font-weight: 500;
}
.post-list .excerpt {
  font-size: .92rem;
  color: var(--mute);
}
body.page-blog article.wrap > h1,
body.page-blog article:not(.blog-article__body) > h1 {
  font-size: clamp(2rem, 4vw, 2.8rem);
  margin: 2rem 0 1rem;
}
body.page-blog article:not(.blog-article__body) h2 {
  font-family: var(--font-disp);
  font-weight: 400;
  font-size: 1.5rem;
  margin: 2rem 0 .8rem;
}
body.page-blog .post-list .meta {
  margin-bottom: 2rem;
  font-size: .72rem;
  color: var(--mute);
}
body.page-blog a:not(.logo):not(.nav-back):not(.btn):not(.row-cta):not(.link-accent):not(.post-card) {
  color: var(--sig);
}
body.page-narrow h1 {
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  line-height: 1.02;
  margin: 1rem 0 1.4rem;
}
body.page-narrow h2 {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  margin-bottom: 1rem;
}
body.page-narrow section {
  padding: 3rem 0;
  border-top: 1px solid var(--line);
}

/* Fallback form (hidden until door-3 click) */
.form{
  display:none;
  border:1px solid var(--line);
  background:var(--surface);
  padding:2rem;
  margin-top:1.6rem;
}
.form.open{ display:block; }
.form .fh{
  display:flex; justify-content:space-between; align-items:baseline;
  font-family:var(--font-mono);
  font-size:.66rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--mute);
  padding-bottom:1.2rem;
  border-bottom:1px solid var(--line);
  margin-bottom:1.5rem;
}
.field{ display:block; margin-bottom:1.1rem; }
.field label{
  display:block;
  font-family:var(--font-mono);
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--mute);
  margin-bottom:.5rem;
}
.field input, .field textarea, .field select{
  width:100%;
  background:var(--bg);
  border:1px solid var(--line);
  color:var(--ink);
  padding:.8rem .9rem;
  font-family:var(--font-body);
  font-size:.92rem;
  transition:border-color .3s ease;
}
.field input:focus,
.field textarea:focus,
.field select:focus{
  border-color:var(--sig);
  box-shadow:0 0 0 1px rgba(45,106,95,.35), 0 0 14px rgba(90,77,122,.12), 0 0 20px rgba(184,146,78,.08);
}
.field input:focus:not(:focus-visible),
.field textarea:focus:not(:focus-visible),
.field select:focus:not(:focus-visible){
  outline:none;
}
.field input:focus-visible,
.field textarea:focus-visible,
.field select:focus-visible{
  outline:2px solid var(--sig-2);
  outline-offset:2px;
}
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:600px){ .field-row{ grid-template-columns:1fr; } }
.form button:not(.row-cta){
  width:100%;
  padding:.95rem;
  margin-top:.5rem;
  font-family:var(--font-mono);
  font-size:.74rem;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}
.form button.row-cta{
  margin-top:.75rem;
  cursor:pointer;
}
.form button:disabled{ opacity:.55; cursor:not-allowed; pointer-events:none; }
.form button:focus:not(:focus-visible){ outline:none; }
.form .form-feedback{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.04em;
  color:var(--mute);
  margin:.85rem 0 0;
  min-height:1.2em;
}
.form .form-feedback--error{ color:#c45c5c; }

/* ========= Footer ========= */
footer{
  border-top:1px solid var(--line);
  padding:4rem 0 2rem;
  background:var(--bg-2);
  position:relative;
  z-index:5;
}
footer::before{
  content:"";
  position:absolute; top:0; left:0; right:0;
  height:2px; pointer-events:none;
  background:var(--bar-route);
  opacity:.7;
}
.foot-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr);
  gap:2rem 3rem;
  align-items:start;
  padding-bottom:2.5rem;
  border-bottom:1px solid var(--line);
}
.foot-brand{
  display:flex;
  flex-direction:column;
  gap:1rem;
  align-items:flex-start;
}
.foot-brand .logo-foot{
  margin-bottom:0;
}
.foot-brand-copy{
  max-width:48ch;
}
.foot-lede{
  font-size:.92rem;
  line-height:1.55;
  color:var(--ink-2);
  margin:0 0 .55rem;
}
.foot-support{
  font-size:.82rem;
  line-height:1.55;
  color:var(--mute);
  margin:0;
}
.foot-social{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1rem;
}
.foot-social--inline{
  display:inline-flex;
  gap:.45rem;
  margin-top:0;
  vertical-align:middle;
}
.foot-social .social-link img{
  width:1.1rem;
  height:1.1rem;
}
.foot-bottom .social-link img{
  width:1rem;
  height:1rem;
}
.foot-trust{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin-top:.75rem;
}
.foot-trust__chip{
  display:inline-flex;
  align-items:center;
  padding:.32rem .55rem;
  border:1px solid var(--line);
  border-radius:var(--radius-sm, 2px);
  background:var(--surface);
  font-family:var(--font-mono);
  font-size:.58rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--mute);
}
.foot-nav{
  display:flex;
  flex-direction:column;
  gap:.75rem;
}
.foot-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem 1.25rem;
}
.foot-tabs .row-cta.foot-tab{
  cursor:pointer;
  font-size:.64rem;
  letter-spacing:.115em;
  padding:.2rem 0;
}
.foot-tabs .row-cta.foot-tab.is-active{
  color:var(--ink);
}
.foot-tabs .row-cta.foot-tab.is-active::after{
  transform:scaleX(1);
}
.foot-tabs .row-cta.foot-tab:focus-visible{
  outline:2px solid var(--sig-2);
  outline-offset:3px;
}
.foot-panels{
  min-height:2.25rem;
}
.foot-panel ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.25rem;
  margin:0;
  padding:0;
}
.foot-panel a{
  color:var(--ink-2);
  font-size:.84rem;
  line-height:1.5;
  transition:color .25s ease;
}
.foot-panel a:hover{
  color:var(--sig);
}
.foot-panel[hidden]{
  display:none;
}
@media (max-width:980px){
  .foot-grid{
    grid-template-columns:1fr;
    gap:1.75rem;
  }
}
@media (max-width:520px){
  .foot-tabs{
    flex-direction:column;
    align-items:flex-start;
    gap:.55rem;
  }
  .foot-panel ul{
    flex-direction:column;
    gap:.45rem;
  }
}
.foot-grid .logo{
  gap:.75rem;
  font-family:var(--font-body);
  font-size:1.08rem;
  font-weight:600;
  letter-spacing:-0.04em;
  text-transform:none;
}

.foot-bottom{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-top:1.5rem;
  font-family:var(--font-mono);
  font-size:.62rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--mute);
  flex-wrap:wrap;
}
.foot-bottom .grp{ display:flex; gap:1.5rem; align-items:center; }
.foot-bottom .social-link{ color:var(--mute); }
.foot-bottom .social-link:hover{ color:var(--ink-2); }

/* ========= Entry animations ========= */
.fade{ opacity:0; transform:translateY(14px); animation:fade .9s cubic-bezier(.2,.7,.2,1) forwards; }
.fade.d1{ animation-delay:.1s; }
.fade.d2{ animation-delay:.22s; }
.fade.d3{ animation-delay:.34s; }
.fade.d4{ animation-delay:.46s; }
.fade.d5{ animation-delay:.58s; }
.fade.d6{ animation-delay:.70s; }
@keyframes fade{ to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion: reduce){
  .fade, .telemetry-inner, .ledger-row{ animation:none !important; opacity:1 !important; transform:none !important; }
  .instrument-head .lights i.live{ animation:none; }
  .eyebrow::before, .label--dot::before{ animation:none; }
  .ht-rec-dot{ animation:none; }
}
