:root{
  --ink:#12151C;
  --ink-soft:#5B6270;
  --paper:#F1F2ED;
  --paper-dim:#E7E8E1;
  --brass:#C08A3E;
  --rapid:#E15B43;
  --iterative:#D9A441;
  --incremental:#3F8F82;
  --consistent:#3A5A80;
  --line:rgba(18,21,28,0.12);
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  -webkit-font-smoothing:antialiased;
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--brass);
  font-weight:500;
}
h1,h2,h3{
  font-family:'Space Grotesk', sans-serif;
  letter-spacing:-0.01em;
}
a{color:inherit;}

/* NAV */
nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:28px 56px;
  max-width:1200px; margin:0 auto;
}
.logo{
  display:flex; align-items:center; gap:10px;
  font-family:'Space Grotesk', sans-serif;
  font-weight:600; font-size:18px;
}
.logo-mark{width:22px; height:22px; flex-shrink:0;}
.nav-links{display:flex; gap:36px; align-items:center; font-size:14px; font-weight:500;}
.nav-cta{
  padding:9px 20px;
  border:1px solid var(--ink);
  border-radius:2px;
  font-size:13px; font-weight:500;
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:0.02em;
}

/* HERO */
.hero{
  background:var(--ink);
  color:var(--paper);
  padding:88px 56px 0;
}
.hero-inner{
  max-width:1200px; margin:0 auto;
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:40px;
  align-items:center;
}
.hero-eyebrow{color:var(--brass); margin-bottom:22px; display:block;}
.hero h1{
  font-size:52px;
  line-height:1.08;
  font-weight:600;
  margin-bottom:24px;
  color:var(--paper);
}
.hero h1 em{
  font-style:normal;
  color:var(--brass);
}
.hero p{
  font-size:17px;
  line-height:1.6;
  color:#B9BDC7;
  max-width:460px;
  margin-bottom:32px;
}
.hero-ctas{display:flex; align-items:center; gap:22px;}
.btn-primary{
  background:var(--brass);
  color:var(--ink);
  padding:14px 26px;
  border-radius:2px;
  font-weight:600;
  font-size:14px;
  text-decoration:none;
  display:inline-block;
}
.btn-ghost-link{
  font-size:13px;
  color:#9199A8;
  font-family:'IBM Plex Mono', monospace;
}

/* DIAGRAM */
.diagram-wrap{display:flex; flex-direction:column; align-items:center; padding-bottom:20px;}
.type-tabs{
  display:flex; gap:6px;
  background:rgba(255,255,255,0.06);
  padding:5px;
  border-radius:3px;
  margin-bottom:28px;
}
.type-tab{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:0.02em;
  color:#8B92A0;
  background:none;
  border:none;
  padding:8px 13px;
  border-radius:2px;
  cursor:pointer;
  transition:all 0.2s ease;
}
.type-tab.active{
  background:var(--paper);
  color:var(--ink);
}
svg#loop-diagram{width:280px; height:280px;}
.loop-caption{
  text-align:center;
  margin-top:22px;
  font-size:13.5px;
  color:#B9BDC7;
  max-width:300px;
  line-height:1.55;
  min-height:65px;
}
.loop-caption strong{
  display:block;
  color:var(--paper);
  font-family:'Space Grotesk', sans-serif;
  font-size:16px;
  margin-bottom:6px;
  font-weight:600;
}
.loop-key{
  display:flex;
  gap:20px;
  margin-top:18px;
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  color:#8B92A0;
}
.loop-key span{display:flex; align-items:center; gap:7px;}
.key-swatch{width:14px; height:0; border-top:2px solid #8B92A0; display:inline-block;}
.key-swatch.dashed{border-top-style:dashed;}

/* TYPE CARDS */
.types-section{
  padding:96px 56px;
  max-width:1200px; margin:0 auto;
}
.section-head{margin-bottom:52px; max-width:560px;}
.section-head .eyebrow{margin-bottom:14px; display:block;}
.section-head h2{font-size:32px; font-weight:600; line-height:1.2;}
.type-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.type-card{
  background:var(--paper);
  padding:30px 26px;
}
.type-chip{
  width:34px; height:34px;
  border-radius:50%;
  margin-bottom:22px;
  position:relative;
}
.type-chip::after{
  content:'';
  position:absolute; inset:8px;
  border-radius:50%;
  background:var(--paper);
}
.type-card h3{font-size:17px; font-weight:600; margin-bottom:10px;}
.type-card p{font-size:13.5px; line-height:1.6; color:var(--ink-soft);}

/* MISALIGNMENT */
.misalign{
  background:var(--paper-dim);
  padding:96px 56px;
}
.misalign-inner{
  max-width:1200px; margin:0 auto;
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:64px;
  align-items:center;
}
.misalign h2{font-size:34px; font-weight:600; line-height:1.18; margin-bottom:20px;}
.misalign p{font-size:15.5px; line-height:1.7; color:var(--ink-soft); margin-bottom:16px; max-width:440px;}
.misalign-list{list-style:none; margin-top:28px;}
.misalign-list li{
  font-size:14.5px;
  padding:12px 0;
  border-top:1px solid var(--line);
  display:flex; gap:12px; align-items:baseline;
}
.misalign-list li:last-child{border-bottom:1px solid var(--line);}
.misalign-list li::before{
  content:'';
  width:6px; height:6px;
  border-radius:50%;
  background:var(--brass);
  flex-shrink:0;
  transform:translateY(-2px);
}
.wave-panel{
  background:var(--ink);
  border-radius:4px;
  padding:36px 30px 26px;
}
.wave-caption{
  display:flex; justify-content:space-between;
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  color:#8B92A0;
  margin-top:18px;
  letter-spacing:0.02em;
}
.wave-caption span.gap-label{color:var(--brass);}

/* CTA */
.cta-band{
  background:var(--ink);
  color:var(--paper);
  padding:84px 56px;
  text-align:center;
}
.cta-band h2{font-size:30px; font-weight:600; margin-bottom:14px;}
.cta-band p{color:#B9BDC7; font-size:15px; margin-bottom:32px;}

footer{
  padding:32px 56px;
  max-width:1200px; margin:0 auto;
  display:flex; justify-content:space-between;
  font-size:12.5px; color:var(--ink-soft);
  font-family:'IBM Plex Mono', monospace;
}

@media (max-width:900px){
  .hero-inner, .misalign-inner{grid-template-columns:1fr;}
  .type-grid{grid-template-columns:1fr 1fr;}
  nav, .hero, .types-section, .misalign, .cta-band, footer{padding-left:24px; padding-right:24px;}
  .hero h1{font-size:38px;}
}
