:root{
  color-scheme: light dark;
  /* Light: bone paper, graphite ink, vital-pulse accent */
  --paper:#faf9f6;
  --ink:#171614;
  --muted:#6b6a64;
  --rule:#e3e1d9;
  --panel:#f2f0ea;
  --pulse:#e2492d;        /* vital signal — heart-rate red */
  --pulse-deep:#b8351e;
  --aether:#1f6f6b;       /* aether/recovery teal */
  --measure:42rem;
  --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#141312;
    --ink:#f1efe9;
    --muted:#9b988f;
    --rule:#2b2925;
    --panel:#1d1b18;
    --pulse:#ff6a4d;
    --pulse-deep:#ff8064;
    --aether:#52b8b1;
  }
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  display:flex; flex-direction:column;
  min-height:100vh; min-height:100svh;
  /* faint grid-paper field, all CSS */
  background-image:
    linear-gradient(var(--rule) 1px, transparent 1px),
    linear-gradient(90deg, var(--rule) 1px, transparent 1px);
  background-size:100% 2.4rem, 2.4rem 100%;
  background-position:0 0;
  background-blend-mode:normal;
}
@media (prefers-color-scheme: light){
  body{ background-image:
    linear-gradient(rgba(0,0,0,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,0,0,.022) 1px, transparent 1px); }
}
@media (prefers-color-scheme: dark){
  body{ background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px); }
}

/* ── Skip link & focus ───────────────────────────── */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--ink); color:var(--paper);
  padding:.6rem 1rem; border-radius:0 0 .4rem 0;
  font-weight:600; letter-spacing:.01em;
}
.skip-link:focus{ left:0; }
a:focus-visible, [tabindex]:focus-visible, summary:focus-visible{
  outline:2px solid var(--pulse); outline-offset:3px; border-radius:2px;
}

/* ── Layout shell ────────────────────────────────── */
.masthead, main > section, .colophon{
  padding-inline: max(clamp(1.25rem,5vw,4rem), env(safe-area-inset-left)) max(clamp(1.25rem,5vw,4rem), env(safe-area-inset-right));
}
main{ flex:1; }
main > section{
  max-width:72rem; margin-inline:auto; width:100%;
  padding-block: clamp(3rem,7vw,6rem);
  border-top:1px solid var(--rule);
}
main > section:first-child{ border-top:0; }

/* ── Masthead ────────────────────────────────────── */
.masthead{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--paper) 86%, transparent);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--rule);
  padding-block:.85rem;
}
.mast-inner{
  max-width:72rem; margin-inline:auto;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.wordmark{
  margin:0;
  font-weight:700; letter-spacing:-0.025em;
  font-size:clamp(1.15rem,3.4vw,1.55rem);
  line-height:1;
}
.wordmark .dot{ color:var(--pulse); }
.wordmark .net{ color:var(--muted); font-weight:600; }
.status{
  margin:0;
  font-family:var(--mono);
  font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted);
  display:inline-flex; align-items:center; gap:.5rem;
  white-space:nowrap;
}
.pulse{
  width:.55rem; height:.55rem; border-radius:50%;
  background:var(--pulse);
  box-shadow:0 0 0 0 color-mix(in srgb, var(--pulse) 70%, transparent);
  animation:beat 2.4s ease-out infinite;
}
@keyframes beat{
  0%   { box-shadow:0 0 0 0 color-mix(in srgb, var(--pulse) 55%, transparent); }
  30%  { box-shadow:0 0 0 .5rem color-mix(in srgb, var(--pulse) 0%, transparent); }
  100% { box-shadow:0 0 0 0 color-mix(in srgb, var(--pulse) 0%, transparent); }
}

/* ── Shared type ─────────────────────────────────── */
.kicker, .eyebrow{
  font-family:var(--mono);
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--pulse);
  margin:0 0 1rem;
}
.eyebrow{ color:var(--muted); }
h2{
  font-size:clamp(1.6rem,4.4vw,2.6rem);
  line-height:1.12; letter-spacing:-0.025em;
  font-weight:700; margin:0 0 1.25rem; max-width:20ch;
}
h3{ font-size:1.06rem; letter-spacing:-0.01em; margin:0 0 .5rem; font-weight:650; }
.prose{ max-width:var(--measure); }
.prose p{ margin:0 0 1.1rem; color:var(--ink); }
.prose p:last-child{ margin-bottom:0; }
strong{ font-weight:680; }
em{ font-style:italic; }

/* ── Hero ────────────────────────────────────────── */
.hero{ padding-top:clamp(3rem,8vw,6.5rem) !important; }
.tagline{
  font-size:clamp(2rem,6.6vw,4rem);
  line-height:1.04; letter-spacing:-0.035em;
  font-weight:760; margin:0 0 1.5rem; max-width:16ch;
}
.tagline::after{ content:""; }
.hero-sub{
  font-size:clamp(1.05rem,2.3vw,1.3rem);
  color:var(--muted); max-width:var(--measure); margin:0 0 2.5rem;
}
.hero-sub strong{ color:var(--ink); }
.wave{
  margin-top:2rem;
  border:1px solid var(--rule);
  background:
    linear-gradient(to right, color-mix(in srgb,var(--panel) 60%, transparent), transparent 30%);
  border-radius:.6rem;
  overflow:hidden;
  height:clamp(90px,16vw,140px);
}
.wave svg{ width:100%; height:100%; display:block; }
.trace{
  fill:none; stroke:var(--pulse); stroke-width:2.4;
  stroke-linejoin:round; stroke-linecap:round;
  filter:drop-shadow(0 0 6px color-mix(in srgb,var(--pulse) 45%, transparent));
  stroke-dasharray:2600; stroke-dashoffset:2600;
  animation:draw 3.2s cubic-bezier(.4,0,.1,1) .2s forwards;
}
@keyframes draw{ to{ stroke-dashoffset:0; } }

/* ── Thesis ──────────────────────────────────────── */
.thesis h2{ font-size:clamp(2rem,5.6vw,3.4rem); max-width:none; }
.thesis h2 strong{ color:var(--pulse); font-weight:760; }

/* ── Principles grid ─────────────────────────────── */
.grid{
  list-style:none; margin:2rem 0 0; padding:0;
  display:grid; gap:1px;
  grid-template-columns:repeat(auto-fit, minmax(15rem,1fr));
  background:var(--rule);
  border:1px solid var(--rule); border-radius:.7rem; overflow:hidden;
}
.card{
  background:var(--paper); padding:1.6rem 1.5rem 1.7rem;
  position:relative;
}
.card .num{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.12em;
  color:var(--pulse); display:block; margin-bottom:1.4rem;
}
.card p{ margin:0; color:var(--muted); font-size:.96rem; }

/* ── Flow / steps ────────────────────────────────── */
.steps{
  list-style:none; margin:2rem 0 0; padding:0;
  display:grid; gap:1.5rem;
  grid-template-columns:repeat(auto-fit, minmax(14rem,1fr));
  counter-reset:step;
}
.step{
  position:relative; padding-top:1.4rem;
  border-top:2px solid var(--ink);
}
.step::before{
  counter-increment:step; content:counter(step,decimal-leading-zero);
  position:absolute; top:-1.5rem; left:0;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.14em;
  color:var(--muted);
}
.step-k{
  font-weight:700; letter-spacing:-0.01em; margin:0 0 .4rem;
  font-size:1.12rem;
}
.step p:not(.step-k){ margin:0; color:var(--muted); font-size:.96rem; }

/* ── Audience ────────────────────────────────────── */
.aud-grid{
  margin-top:2rem;
  display:grid; gap:1.25rem;
  grid-template-columns:repeat(auto-fit, minmax(15rem,1fr));
}
.aud{
  background:var(--panel);
  border:1px solid var(--rule); border-radius:.7rem;
  padding:1.6rem 1.5rem;
  border-left:3px solid var(--aether);
}
.aud p{ margin:0; color:var(--muted); font-size:.97rem; }

/* ── Closing band ────────────────────────────────── */
.band{
  border-top:1px solid var(--rule);
  position:relative;
  background:
    radial-gradient(120% 140% at 0% 0%, color-mix(in srgb,var(--pulse) 16%, transparent), transparent 55%),
    radial-gradient(120% 140% at 100% 100%, color-mix(in srgb,var(--aether) 18%, transparent), transparent 55%),
    var(--panel);
  border-radius:0;
}
.band h2{
  font-size:clamp(1.7rem,4.6vw,2.8rem); max-width:24ch;
}
.eyebrow.on-band{ color:var(--pulse); }
.band-sub{
  max-width:var(--measure); margin:0; color:var(--ink);
  font-size:1.08rem;
}

/* ── Footer ──────────────────────────────────────── */
.colophon{
  border-top:1px solid var(--rule);
  background:var(--paper);
  padding-block:clamp(2.5rem,5vw,3.5rem) 2rem;
}
.col-inner{
  max-width:72rem; margin-inline:auto;
  display:grid; gap:2rem;
  grid-template-columns:repeat(auto-fit, minmax(13rem,1fr));
}
.wordmark.sm{
  font-size:1.15rem; display:inline-block; margin-bottom:.75rem;
}
.wordmark.sm .dot{ color:var(--pulse); }
.col-brand p{ margin:0; color:var(--muted); font-size:.92rem; max-width:24rem; }
.col-head{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); margin:0 0 .9rem;
}
.col-links ul{ list-style:none; margin:0; padding:0; }
.col-links li{ margin-bottom:.5rem; }
.col-links a, .colophon a{ color:var(--ink); text-decoration:none; border-bottom:1px solid transparent; }
.col-links a:hover, .colophon a:hover{ border-bottom-color:var(--pulse); color:var(--pulse); }
.col-foot{
  max-width:72rem; margin:2.5rem auto 0;
  padding-top:1.25rem; border-top:1px solid var(--rule);
  font-family:var(--mono); font-size:.72rem; letter-spacing:.08em;
  color:var(--muted);
  display:flex; gap:.7rem; flex-wrap:wrap;
}

/* ── Scroll reveals (visible by default; off when no animation-timeline or reduced motion) ── */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    .reveal{
      animation:reveal-in linear both;
      animation-timeline:view();
      animation-range:entry 0% cover 22%;
    }
    @keyframes reveal-in{
      from{ opacity:0; transform:translateY(18px); }
      to{ opacity:1; transform:none; }
    }
  }
}

/* ── Reduced motion ──────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .trace{ stroke-dashoffset:0; }
  .reveal{ opacity:1 !important; transform:none !important; }
}

/* ── Narrow screens ──────────────────────────────── */
@media (max-width:34rem){
  body{ font-size:17px; }
  .status{ display:none; }
  .mast-inner{ justify-content:flex-start; }
}
