/* ───────── Self-hosted fonts (EB Garamond + JetBrains Mono) ───────── */
/* latin-ext */
@font-face{ font-family:'EB Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/eb-garamond-400-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face{ font-family:'EB Garamond'; font-style:normal; font-weight:500; font-display:swap; src:url('/assets/fonts/eb-garamond-500-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face{ font-family:'EB Garamond'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/eb-garamond-600-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face{ font-family:'EB Garamond'; font-style:italic; font-weight:400; font-display:swap; src:url('/assets/fonts/eb-garamond-italic-400-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face{ font-family:'EB Garamond'; font-style:italic; font-weight:500; font-display:swap; src:url('/assets/fonts/eb-garamond-italic-500-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
/* latin */
@font-face{ font-family:'EB Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/eb-garamond-400-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'EB Garamond'; font-style:normal; font-weight:500; font-display:swap; src:url('/assets/fonts/eb-garamond-500-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'EB Garamond'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/eb-garamond-600-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'EB Garamond'; font-style:italic; font-weight:400; font-display:swap; src:url('/assets/fonts/eb-garamond-italic-400-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'EB Garamond'; font-style:italic; font-weight:500; font-display:swap; src:url('/assets/fonts/eb-garamond-italic-500-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* JetBrains Mono — latin-ext */
@font-face{ font-family:'JetBrains Mono'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/jetbrains-mono-400-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face{ font-family:'JetBrains Mono'; font-style:normal; font-weight:500; font-display:swap; src:url('/assets/fonts/jetbrains-mono-500-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face{ font-family:'JetBrains Mono'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/jetbrains-mono-600-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
/* JetBrains Mono — latin */
@font-face{ font-family:'JetBrains Mono'; font-style:normal; font-weight:400; font-display:swap; src:url('/assets/fonts/jetbrains-mono-400-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'JetBrains Mono'; font-style:normal; font-weight:500; font-display:swap; src:url('/assets/fonts/jetbrains-mono-500-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face{ font-family:'JetBrains Mono'; font-style:normal; font-weight:600; font-display:swap; src:url('/assets/fonts/jetbrains-mono-600-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root{
    /* default palette: paper + ink + blueprint */
    --paper: #f3efe7;
    --paper-2: #ecE7dc;
    --ink: #15161a;
    --ink-soft: #2a2c33;
    --rule: rgba(21,22,26,.18);
    --rule-soft: rgba(21,22,26,.10);
    --muted: rgba(21,22,26,.58);
    --accent: #a64a23;            /* rust (default) */
    --accent-ink: #f3efe7;

    --serif: "EB Garamond", "Cormorant Garamond", "Times New Roman", Times, serif;
    --sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif;
    --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

    --maxw: 1280px;
    --gutter: clamp(20px, 4vw, 64px);
  }

  /* ─────────── base ─────────── */
  *,*::before,*::after{box-sizing:border-box}
  html,body{margin:0;padding:0}
  html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.55;
    overflow-x:hidden;
  }
  body::before{
    /* faint paper grain */
    content:"";
    position:fixed; inset:0;
    pointer-events:none;
    background-image:
      radial-gradient(rgba(21,22,26,.045) 1px, transparent 1px),
      radial-gradient(rgba(21,22,26,.03) 1px, transparent 1px);
    background-size: 3px 3px, 7px 7px;
    background-position: 0 0, 1px 2px;
    mix-blend-mode: multiply;
    opacity:.55;
    z-index:1;
  }

  a{color:inherit; text-decoration:none}
  ::selection{background:var(--accent); color:var(--accent-ink)}

  /* ─────────── typography ─────────── */
  .display{
    font-family:var(--serif);
    font-weight:500;
    letter-spacing:-0.012em;
    line-height:0.98;
    color:var(--ink);
  }
  .display em{ font-style:italic; font-weight:400; color:var(--accent); font-family:var(--serif); }
  h1.display{ font-size: clamp(54px, 8vw, 132px); }
  h2.display{ font-size: clamp(40px, 5.6vw, 84px); }
  h3.display{ font-size: clamp(28px, 3vw, 44px); }
  .eyebrow{
    font-family:var(--mono);
    font-size:11px;
    font-weight:500;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--muted);
  }
  .lede{
    font-family:var(--serif);
    font-size: clamp(22px, 2.2vw, 32px);
    line-height:1.28;
    font-weight:400;
    color:var(--ink-soft);
    letter-spacing:-0.005em;
  }
  p{ margin:0 0 1em; max-width: 60ch; }

  /* ─────────── layout primitives ─────────── */
  .wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); position:relative; z-index:2; }
  .rule{ height:1px; background:var(--rule); width:100%; }
  .hairline{ border-top:1px solid var(--rule); }
  section{ position:relative; z-index:2; }

  /* ─────────── top bar ─────────── */
  .topbar{
    position:sticky; top:0; z-index:50;
    background:color-mix(in oklab, var(--paper) 88%, transparent);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom:1px solid var(--rule-soft);
  }
  .topbar .inner{
    display:flex; align-items:center; justify-content:space-between;
    padding-block: 16px;
  }
  .brand{
    display:flex; align-items:center; gap:12px;
    font-family:var(--mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  }
  .brand-mark{
    display:inline-flex; align-items:center;
    color:var(--ink); position:relative;
    width: 36px; height: 36px;
  }
  .brand-mark svg{ display:block; width:100%; height:100%; overflow:visible; }
  .brand-mark .g-a, .brand-mark .g-b{
    font-family: "EB Garamond","Cormorant Garamond",serif;
    font-weight: 600;
    letter-spacing: -0.01em;
  }
  .brand-mark .g-a{ fill: currentColor; }
  .brand-mark .g-b{ fill: var(--accent); opacity:.92; }
  .brand{ gap: 14px; }
  .brand-word b{ font-family: var(--mono); font-weight:600; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color: var(--ink); }
  .brand:hover .brand-mark .g-b{ opacity:1; }

  nav.primary{ display:flex; gap:28px; align-items:center; }
  nav.primary a{
    font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--ink-soft); position:relative; padding-bottom:3px;
  }
  nav.primary a::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--ink);
    transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
  }
  nav.primary a:hover::after{ transform:scaleX(1); }
  nav.primary .cta{
    border:1px solid var(--ink); padding:8px 14px; border-radius:0;
    background:var(--ink); color:var(--paper);
  }
  nav.primary .cta::after{ display:none; }
  nav.primary .cta:hover{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }

  @media (max-width: 820px){
    nav.primary{ display:none; }
  }

  /* ─────────── hero ─────────── */
  .hero{
    padding-top: clamp(48px, 8vw, 120px);
    padding-bottom: clamp(64px, 10vw, 160px);
    position:relative;
  }
  .hero .hero-tagline{ padding-bottom: 24px; border-bottom:1px solid var(--rule); }
  .hero .hero-tagline .eyebrow{ font-size:11.5px; letter-spacing:.22em; }

  .hero h1{
    margin: clamp(48px, 7vw, 96px) 0 clamp(28px, 4vw, 56px);
    max-width: 18ch;
  }
  .hero h1 .accent{ color:var(--accent); font-style:italic; font-weight:400; }
  .hero h1 .strike{
    position:relative; display:inline-block;
  }
  .hero h1 .strike::after{
    content:""; position:absolute; left:-2%; right:-2%; top:53%; height:2px;
    background:var(--accent); transform:scaleX(0); transform-origin:left;
    animation: strikein 1.6s .6s cubic-bezier(.2,.7,.2,1) forwards;
  }
  @keyframes strikein{ to{ transform:scaleX(1);} }

  .hero .sub{
    display:grid; grid-template-columns: 1.2fr 1fr; gap: clamp(32px, 5vw, 96px);
    align-items:end; padding-top: 8px;
  }
  @media (max-width: 820px){
    .hero .sub{ grid-template-columns: 1fr; gap:32px; }
  }
  .hero .sub .lede{ max-width: 28ch; }
  .hero .ctas{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }

  .btn{
    font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase;
    padding:14px 22px; border:1px solid var(--ink); background:var(--ink); color:var(--paper);
    cursor:default; transition: background .25s ease, color .25s ease, border-color .25s ease;
    display:inline-flex; gap:10px; align-items:center;
  }
  .btn .arr{ width:18px; height:1px; background:currentColor; position:relative; }
  .btn .arr::after{ content:""; position:absolute; right:0; top:-3px; width:7px; height:7px;
    border-right:1px solid currentColor; border-top:1px solid currentColor; transform:rotate(45deg); }
  .btn:hover{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
  .btn.ghost{ background:transparent; color:var(--ink); }
  .btn.ghost:hover{ background:transparent; color:var(--accent); border-color:var(--accent); }

  /* hero blueprint grid */
  .blueprint{
    position:absolute; inset: 24px var(--gutter) auto var(--gutter);
    top: clamp(48px, 8vw, 120px);
    height: clamp(420px, 60vw, 620px);
    pointer-events:none;
    opacity:.4;
    background-image:
      linear-gradient(to right, var(--rule-soft) 1px, transparent 1px),
      linear-gradient(to bottom, var(--rule-soft) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(to bottom, black 30%, transparent 95%);
    -webkit-mask-image: linear-gradient(to bottom, black 30%, transparent 95%);
  }

  /* hero corner marks */
  .corner{ position:absolute; width:18px; height:18px; border:1px solid var(--ink); opacity:.5; }
  .corner.tl{ top:18px; left: calc(var(--gutter) - 2px); border-right:0; border-bottom:0; }
  .corner.tr{ top:18px; right: calc(var(--gutter) - 2px); border-left:0; border-bottom:0; }

  /* build / assess / fix / scale strip */
  .pillars-strip{
    margin-top: clamp(56px, 8vw, 112px);
    border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule);
    padding-block: 28px;
    display:grid; grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }
  .pillars-strip > div{ padding: 12px 24px 12px 0; position:relative;}
  .pillars-strip > div + div{ border-left:1px solid var(--rule); padding-left:24px; }
  .pillars-strip .num{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; color:var(--muted); }
  .pillars-strip .word{ font-family:var(--serif); font-size: clamp(28px, 3vw, 40px); font-weight:500; letter-spacing:-.01em; line-height:1; margin: 10px 0 12px; }
  .pillars-strip .word em{ font-style:italic; color:var(--accent); font-weight:400; }
  .pillars-strip p{ font-size:13.5px; line-height:1.45; color:var(--ink-soft); margin:0; max-width:32ch; }
  @media (max-width: 820px){
    .pillars-strip{ grid-template-columns: 1fr 1fr; }
    .pillars-strip > div:nth-child(2n+1){ border-left:0; padding-left:0; }
    .pillars-strip > div:nth-child(n+3){ border-top:1px solid var(--rule); padding-top:24px; margin-top:12px; }
  }
  @media (max-width: 520px){
    .pillars-strip{ grid-template-columns: 1fr; }
    .pillars-strip > div{ border-left:0 !important; padding-left:0 !important; }
    .pillars-strip > div + div{ border-top:1px solid var(--rule); padding-top:24px; margin-top:12px; }
  }

  /* ─────────── section header ─────────── */
  .section{
    padding-block: clamp(80px, 10vw, 140px);
    position:relative;
  }
  .section + .section{ border-top:1px solid var(--rule); }
  .section-head{
    display:grid; grid-template-columns: 220px 1fr; gap: clamp(24px,4vw,56px);
    align-items:start;
    margin-bottom: clamp(40px, 5vw, 72px);
  }
  .section-head .label{ display:flex; flex-direction:column; gap:8px; }
  .section-head .label .num{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; color:var(--muted); }
  .section-head .label .name{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); }
  @media (max-width: 720px){
    .section-head{ grid-template-columns: 1fr; }
  }

  /* ─────────── recognition block (#philosophy intro) ─────────── */
  .recog h2.display{ max-width: 16ch; }
  .recog h2.display em{ color: var(--accent); }
  .recog .triplet{
    margin-top: clamp(48px, 6vw, 80px);
    display:grid; grid-template-columns: repeat(4, 1fr);
    gap:0;
    border-top:1px solid var(--rule);
  }
  .recog .triplet > div{ padding: 28px 24px 28px 0; border-right:1px solid var(--rule);}
  .recog .triplet > div:last-child{ border-right:0; padding-right:0;}
  .recog .triplet > div + div{ padding-left:24px;}
  .recog .triplet .ttl{ font-family:var(--serif); font-size: clamp(20px, 1.9vw, 26px); font-weight:500; letter-spacing:-.01em; line-height:1.1; margin-bottom: 14px;}
  .recog .triplet .sub{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:14px;}
  .recog .triplet p{ font-size:14px; line-height:1.5; color:var(--ink-soft); margin:0; max-width:34ch; }
  @media (max-width: 1080px){
    .recog .triplet{ grid-template-columns: 1fr 1fr; }
    .recog .triplet > div{ border-right: 0; padding: 24px 0; border-bottom: 1px solid var(--rule-soft);}
    .recog .triplet > div:nth-child(odd){ border-right: 1px solid var(--rule); padding-right: 24px;}
    .recog .triplet > div:nth-child(even){ padding-left: 24px;}
    .recog .triplet > div + div{ padding-left:24px;}
  }
  @media (max-width: 640px){
    .recog .triplet{ grid-template-columns: 1fr; }
    .recog .triplet > div{ border-right:0 !important; padding:24px 0 !important; border-bottom: 1px solid var(--rule);}
    .recog .triplet > div:last-child{ border-bottom: 0;}
  }

  /* ─────────── pillars cards ─────────── */
  .pillars-cards{
    display:grid; grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--rule);
    border: 1px solid var(--rule);
  }
  .pillars-cards article{
    background: var(--paper);
    padding: clamp(28px, 3.5vw, 48px);
    position:relative;
    min-height: 280px;
    display:flex; flex-direction:column; justify-content:space-between;
  }
  .pillars-cards article .topline{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
  .pillars-cards article .ix{
    font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--muted);
  }
  .pillars-cards article .glyph{
    width:46px; height:46px; border:1px solid var(--ink); display:grid; place-items:center;
    color:var(--ink);
  }
  .pillars-cards article h3{
    font-family:var(--serif); font-weight:500; font-size: clamp(28px, 2.6vw, 38px);
    line-height:1; margin: 28px 0 16px; letter-spacing:-.01em; max-width: 14ch;
  }
  .pillars-cards article h3 em{ font-style:italic; color:var(--accent); font-weight:400;}
  .pillars-cards article .pillar-tag{
    font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--accent); margin: 0 0 14px; max-width:none;
  }
  .pillars-cards article p{ font-size:14.5px; line-height:1.5; color:var(--ink-soft); margin:0; max-width:38ch;}
  @media (max-width: 720px){ .pillars-cards{ grid-template-columns: 1fr; } }

  .pillars-foot{
    margin-top: 32px;
    display:grid; grid-template-columns: 1fr auto; align-items:end; gap: 32px;
  }
  .pillars-foot p{ font-family:var(--serif); font-size: clamp(20px, 1.8vw, 26px); font-style:italic; max-width: 48ch; margin:0; color: var(--ink-soft); line-height:1.3; }
  @media (max-width: 720px){ .pillars-foot{ grid-template-columns: 1fr; }}

  /* ─────────── quote slab ─────────── */
  .quote-slab{
    background: var(--paper-2);
    border-block:1px solid var(--rule);
    padding-block: clamp(96px, 12vw, 160px);
    position:relative;
  }
  .quote-slab::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background-image:
      linear-gradient(to right, var(--rule-soft) 1px, transparent 1px);
    background-size: 96px 100%;
    opacity:.6;
    mask-image: linear-gradient(to bottom, transparent 0%, black 30%, black 70%, transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 30%, black 70%, transparent 100%);
  }
  .quote-slab blockquote{
    margin:0;
    font-family:var(--serif); font-weight:400;
    font-size: clamp(40px, 5.5vw, 84px);
    line-height:1.02; letter-spacing:-.012em;
    max-width: 20ch;
    position:relative;
  }
  .quote-slab blockquote em{ font-style:italic; color:var(--accent); }
  .quote-slab .marks{ font-family:var(--serif); color:var(--accent); font-size: clamp(80px, 10vw, 160px); line-height:.5; display:block; margin-bottom: clamp(8px,1.5vw,24px); }
  .quote-slab .attrib{
    margin-top: clamp(32px,4vw,48px);
    display:flex; gap:14px; align-items:center;
    font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  }
  .quote-slab .attrib .bar{ width:36px; height:1px; background:var(--ink); }

  /* small philosophy triplet under quote */
  .phil-three{
    margin-top: clamp(56px, 6vw, 96px);
    display:grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px,3vw,48px);
  }
  .phil-three > div .num{ font-family:var(--mono); font-size:10.5px; color:var(--muted); letter-spacing:.18em; }
  .phil-three > div h4{ font-family:var(--serif); font-weight:500; font-size: clamp(22px, 2vw, 28px); letter-spacing:-.01em; margin: 10px 0 8px;}
  .phil-three > div p{ font-size:14px; color:var(--ink-soft); margin:0; max-width: 34ch; }
  @media (max-width: 720px){ .phil-three{ grid-template-columns: 1fr; }}

  /* ─────────── outcomes ─────────── */
  .outcomes-grid{
    display:grid; grid-template-columns: repeat(4, 1fr);
    gap:0;
    border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule);
  }
  .outcomes-grid figure{
    margin:0; padding: clamp(28px,3vw,48px) clamp(20px,2vw,28px);
    border-right:1px solid var(--rule);
    display:flex; flex-direction:column; gap:14px;
    position:relative;
  }
  .outcomes-grid figure:last-child{ border-right:0;}
  .outcomes-grid .label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);}
  .outcomes-grid .figure{
    font-family:var(--serif); font-weight:500;
    font-size: clamp(48px, 6.5vw, 96px); line-height:.9; letter-spacing:-.02em;
    color:var(--ink);
  }
  .outcomes-grid .figure em{ font-style: normal; color: var(--accent); }
  .outcomes-grid figcaption{ font-family:var(--serif); font-style:italic; font-size: clamp(16px,1.4vw,19px); color:var(--ink-soft); max-width: 24ch; line-height:1.3;}
  @media (max-width: 820px){
    .outcomes-grid{ grid-template-columns: 1fr 1fr; }
    .outcomes-grid figure:nth-child(2n){ border-right:0; }
    .outcomes-grid figure:nth-child(n+3){ border-top:1px solid var(--rule); }
  }
  @media (max-width: 480px){
    .outcomes-grid{ grid-template-columns: 1fr; }
    .outcomes-grid figure{ border-right:0; border-bottom:1px solid var(--rule); }
    .outcomes-grid figure:last-child{ border-bottom:0;}
  }
  .outcomes-foot{ margin-top: 28px; display:flex; justify-content:space-between; align-items:end; gap:24px; flex-wrap:wrap;}
  .outcomes-foot .tag{ font-family:var(--serif); font-style:italic; font-size: clamp(18px,1.6vw,22px); color:var(--ink-soft);}
  .outcomes-foot .logos{ display:flex; gap:24px; align-items:center; color:var(--muted); font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;}
  .outcomes-foot .logos span{ display:flex; gap:8px; align-items:center;}
  .outcomes-foot .logos span::before{ content:""; width:6px; height:6px; background:var(--ink); border-radius:50%;}

  /* ─────────── approach ─────────── */
  .approach .flow{
    display:grid; grid-template-columns: repeat(3, 1fr); gap:0;
    border-top:1px solid var(--rule);
  }
  .approach .flow > div{
    padding: clamp(32px,3.5vw,48px) clamp(20px,2.5vw,40px) clamp(32px,3.5vw,48px) 0;
    border-right:1px solid var(--rule);
    position:relative;
  }
  .approach .flow > div + div{ padding-left: clamp(28px,3vw,48px); }
  .approach .flow > div:last-child{ border-right:0; padding-right:0; }
  .approach .flow .step{
    display:flex; gap:14px; align-items:center;
    font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  }
  .approach .flow .step b{ color:var(--ink); font-weight:500;}
  .approach .flow .step .dot{ width:10px; height:10px; border:1px solid var(--ink); display:inline-block; }
  .approach .flow .step .dot.fill{ background:var(--ink); }
  .approach .flow h4{ font-family:var(--serif); font-weight:500; font-size: clamp(32px,3vw,46px); line-height:1; margin: 22px 0 18px; letter-spacing:-.012em;}
  .approach .flow h4 em{ color:var(--accent); font-style:italic; font-weight:400; }
  .approach .flow p{ font-size:14.5px; color:var(--ink-soft); margin:0 0 16px; max-width:34ch;}
  .approach .flow ul{ list-style:none; padding:0; margin:14px 0 0; display:flex; flex-direction:column; gap:8px; }
  .approach .flow ul li{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--ink-soft); padding-left:14px; position:relative;}
  .approach .flow ul li::before{ content:""; position:absolute; left:0; top:7px; width:6px; height:1px; background:var(--ink); }
  @media (max-width: 820px){
    .approach .flow{ grid-template-columns: 1fr; }
    .approach .flow > div{ border-right:0; padding: 32px 0; border-bottom:1px solid var(--rule);}
    .approach .flow > div + div{ padding-left:0; }
    .approach .flow > div:last-child{ border-bottom:0;}
  }

  /* ─────────── translate strip ─────────── */
  .translate{
    margin-top: clamp(56px, 6vw, 96px);
    border-top:1px solid var(--rule);
    padding-top: clamp(40px, 5vw, 72px);
  }
  .translate h3{ font-family:var(--serif); font-weight:500; font-size: clamp(28px, 3vw, 42px); margin:0 0 8px; letter-spacing:-.01em; max-width:18ch;}
  .translate p.lede{ max-width: 60ch; margin: 0 0 40px; }
  .translate .pairs{
    display:grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(32px,5vw,80px); row-gap:0;
  }
  .translate .pair{
    display:grid; grid-template-columns: 1fr 1fr; gap: 24px;
    padding-block: 22px; border-bottom:1px dashed var(--rule);
    align-items:start;
  }
  .translate .pair:last-child{ border-bottom:0;}
  .translate .pair .from{ font-family:var(--mono); font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding-top:6px;}
  .translate .pair .to{ font-family:var(--serif); font-style:italic; font-size: clamp(20px,1.8vw,26px); line-height:1.15; color:var(--ink); }
  .translate .pair .to b{ font-style:normal; font-weight:500;}
  @media (max-width: 820px){ .translate .pairs{ grid-template-columns: 1fr; }}

  /* ─────────── signature panel ─────────── */
  .signature{
    background:var(--ink);
    color:var(--paper);
    position:relative;
    overflow:hidden;
  }
  .signature::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background-image:
      linear-gradient(to right, rgba(255,255,255,.05) 1px, transparent 1px),
      linear-gradient(to bottom, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size: 64px 64px;
    mask-image: radial-gradient(ellipse at 30% 40%, black 0%, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at 30% 40%, black 0%, transparent 70%);
  }
  .signature .wrap{ padding-block: clamp(96px, 14vw, 200px); }
  .signature .eyebrow{ color: rgba(255,255,255,.6); }
  .signature blockquote{
    margin:0; padding-top: 28px;
    font-family:var(--serif); font-weight:400;
    font-size: clamp(40px, 6vw, 96px); line-height:1.02; letter-spacing:-.012em;
    max-width: 22ch;
  }
  .signature blockquote em{ color: #c9a25a; font-style:italic; }
  .signature .signoff{
    margin-top: clamp(48px, 6vw, 88px);
    display:grid; grid-template-columns: 1fr auto; gap:24px;
    align-items:end;
    padding-top:24px; border-top:1px solid rgba(255,255,255,.18);
  }
  .signature .signoff .who{ font-family:var(--serif); font-style:italic; font-size:24px; }
  .signature .signoff .role{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color: rgba(255,255,255,.65); margin-top:6px; }
  .signature .signoff .seal{
    border:1px solid rgba(255,255,255,.4);
    font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
    padding: 14px 18px;
    color: rgba(255,255,255,.8);
    display:flex; flex-direction:column; gap:4px; align-items:flex-start;
  }
  .signature .signoff .seal b{ color:#fff;}

  /* ─────────── about ─────────── */
  .about{
    background: var(--paper-2);
  }
  .about .layout{
    display:grid; grid-template-columns: 1fr 1.4fr; gap: clamp(40px, 6vw, 96px);
    align-items:start;
  }
  @media (max-width: 820px){ .about .layout{ grid-template-columns: 1fr; }}
  .portrait{
    aspect-ratio: 3/4; width:100%;
    background:
      repeating-linear-gradient(45deg, rgba(21,22,26,.06) 0 1px, transparent 1px 8px),
      linear-gradient(180deg, #d8d2c3 0%, #c4bda9 100%);
    border:1px solid var(--rule);
    display:flex; align-items:flex-end; justify-content:space-between;
    padding:18px;
    font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft);
    position:relative;
  }
  .portrait::before{
    content:"";
    position:absolute; top:18px; left:18px; right:18px; bottom:46px;
    border:1px dashed rgba(21,22,26,.35);
  }
  .portrait::after{
    content:"PORTRAIT";
    position:absolute; top:50%; left:50%; transform: translate(-50%, -50%);
    font-family: var(--serif); font-size: 13px; font-style:italic; color: rgba(21,22,26,.4); letter-spacing:.16em;
  }
  .about h2.display{ max-width: 14ch; margin: 0 0 24px; }
  .about .bio{ font-family:var(--serif); font-size: clamp(18px, 1.6vw, 22px); line-height:1.4; max-width: 56ch; color:var(--ink-soft); }
  .about .bio p{ margin:0 0 1em; max-width:none;}
  .about .bio p:first-of-type::first-line{ font-variant-caps:small-caps; letter-spacing:.04em; color:var(--ink); }
  .about .bio p:first-of-type::first-letter{
    font-family:var(--serif); font-size: 5em; font-weight:500;
    float:left; line-height:.85; padding: 6px 12px 0 0; color:var(--accent);
  }

  /* who this is for */
  .who-for{
    margin-top: clamp(64px, 7vw, 96px);
    border-top:1px solid var(--rule);
    padding-top: clamp(32px,4vw,56px);
    display:grid; grid-template-columns: 220px 1fr; gap:48px;
  }
  @media (max-width: 720px){ .who-for{ grid-template-columns: 1fr;}}
  .who-for h3{ font-family:var(--serif); font-weight:500; font-size: clamp(28px, 2.6vw, 38px); margin:0; letter-spacing:-.01em;}
  .who-for ul{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns: 1fr 1fr; gap: 0 32px;}
  @media (max-width: 720px){ .who-for ul{ grid-template-columns: 1fr;}}
  .who-for ul li{ padding:18px 0; border-bottom:1px solid var(--rule); display:flex; gap:16px; align-items:flex-start; font-family:var(--serif);}
  .who-for ul li .ix{ font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:.14em; padding-top:5px; min-width:32px;}
  .who-for ul li > div{ flex:1; min-width:0;}
  .who-for ul li strong{
    display:block; font-family:var(--serif); font-weight:500;
    font-size: clamp(17px,1.5vw,20px); line-height:1.25; color:var(--ink);
    letter-spacing:-.005em; margin: 0 0 6px;
  }
  .who-for ul li > div p{
    font-size:14px; line-height:1.5; color:var(--ink-soft); margin:0;
  }

  /* engagements */
  .engagements{
    margin-top: clamp(64px, 7vw, 96px);
    border-top:1px solid var(--rule);
    padding-top: clamp(32px,4vw,56px);
  }
  .engagements h3{ font-family:var(--serif); font-weight:500; font-size: clamp(28px,2.6vw,38px); margin:0 0 32px; letter-spacing:-.01em;}
  .engage-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 0;
    border-top:1px solid var(--rule);}
  .engage-grid > div{ padding: 28px; border-right:1px solid var(--rule); border-bottom:1px solid var(--rule);
    display:flex; flex-direction:column; gap:12px;
  }
  .engage-grid > div:last-child{ border-right:0;}
  .engage-grid .tier{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);}
  .engage-grid h5{ font-family:var(--serif); font-weight:500; font-size:24px; margin:0; letter-spacing:-.01em;}
  .engage-grid p{ font-size:14px; color:var(--ink-soft); margin:0;}
  @media (max-width: 820px){
    .engage-grid{ grid-template-columns: 1fr; }
    .engage-grid > div{ border-right:0;}
  }

  /* ─────────── footer cta ─────────── */
  .footer-cta{
    padding-block: clamp(120px, 14vw, 200px);
    text-align:left;
  }
  .footer-cta h2.display{ max-width: 14ch; }
  .footer-cta .lede{ margin-top:32px; max-width: 44ch; }
  .footer-cta .ctas{ margin-top: clamp(48px, 6vw, 72px); display:flex; gap:16px; flex-wrap:wrap; align-items:center;}
  .footer-cta .ctas .btn{ padding: 22px 32px; font-size:13px;}

  /* ─────────── footer ─────────── */
  footer.site{
    border-top:1px solid var(--rule);
    padding-block: 48px;
  }
  footer.site .grid{
    display:grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap:32px;
    align-items:start;
  }
  @media (max-width: 720px){ footer.site .grid{ grid-template-columns: 1fr 1fr; }}
  footer.site h6{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0 0 14px; font-weight:500;}
  footer.site a{ display:block; font-family:var(--serif); font-size:18px; padding-block:4px; letter-spacing:-.005em;}
  footer.site a:hover{ color:var(--accent); font-style:italic;}
  footer.site .colophon{ margin-top:48px; padding-top:24px; border-top:1px solid var(--rule); display:flex; justify-content:space-between; gap:16px; font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); flex-wrap:wrap;}
  footer.site .brand-foot{ font-family:var(--serif); font-size: clamp(56px, 9vw, 140px); font-weight:500; letter-spacing:-.02em; line-height:.9; margin: 0 0 24px; color:var(--ink);}
  footer.site .brand-foot em{ font-style:italic; color:var(--accent);}

  /* ─────────── micro animations ─────────── */
  .reveal{ opacity:0; transform: translateY(14px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
  .reveal.on{ opacity:1; transform:none; }

  /* ─────────── tweak overrides ─────────── */
  body[data-tone="warm"]{
    --paper:#f0e8d8; --paper-2:#e6dcc6; --ink:#1d1612; --ink-soft:#3a2e25;
    --rule: rgba(29,22,18,.22); --rule-soft: rgba(29,22,18,.10); --muted: rgba(29,22,18,.55);
  }
  body[data-tone="mono"]{
    --paper:#efefec; --paper-2:#e6e6e1; --ink:#111; --ink-soft:#2a2a2a;
    --rule: rgba(0,0,0,.18); --rule-soft: rgba(0,0,0,.08); --muted: rgba(0,0,0,.55);
  }
  body[data-tone="ink"]{
    --paper:#16171b; --paper-2:#1c1d22; --ink:#f1ece1; --ink-soft:#c9c4b9;
    --rule: rgba(241,236,225,.18); --rule-soft: rgba(241,236,225,.08); --muted: rgba(241,236,225,.55);
    --accent-ink: #16171b;
  }
  body[data-tone="ink"] .signature{ background:#0e0f12; }
  body[data-accent="navy"]{ --accent:#1f3a68; }
  body[data-accent="rust"]{ --accent:#a64a23; }
  body[data-accent="forest"]{ --accent:#2a5234; }
  body[data-accent="ink"]{ --accent: var(--ink); }
  body[data-tone="ink"][data-accent="ink"]{ --accent: #c9a25a; }

  body[data-grain="off"]::before{ display:none; }

/* ─────────────────────────────────────────────
   ENGAGE / INSIGHTS — additional page styles
   ───────────────────────────────────────────── */

/* page hero — slightly smaller than home hero */
.page-hero{
  padding-top: clamp(56px, 7vw, 96px);
  padding-bottom: clamp(48px, 6vw, 96px);
  border-bottom: 1px solid var(--rule);
  position:relative;
}
.page-hero h1.display{ max-width: 18ch; margin: clamp(28px,4vw,48px) 0 24px; font-size: clamp(48px, 7vw, 108px); }
.page-hero .crumb{ display:flex; gap:10px; align-items:center; font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.page-hero .crumb a:hover{ color:var(--ink); }
.page-hero .crumb .sep{ width:14px; height:1px; background:var(--rule); }

/* right-size block */
.right-size{
  padding-block: clamp(56px, 7vw, 96px);
  border-bottom: 1px solid var(--rule);
}
.right-size .layout{ display:grid; grid-template-columns: 220px 1fr; gap: clamp(24px,4vw,56px); align-items:start; }
@media (max-width: 720px){ .right-size .layout{ grid-template-columns: 1fr; }}
.right-size h2{ font-family:var(--serif); font-weight:500; font-size: clamp(28px, 3vw, 44px); margin: 0 0 18px; letter-spacing:-.01em; max-width: 18ch;}
.right-size h2 em{ font-style:italic; color:var(--accent); font-weight:400;}
.right-size p{ font-family:var(--serif); font-size: clamp(19px, 1.6vw, 24px); line-height:1.45; color:var(--ink-soft); max-width: 60ch; margin:0;}
.right-size .stamp{
  margin-top: 24px;
  display:inline-flex; gap:10px; align-items:center;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);
  padding: 8px 12px; border:1px solid var(--rule);
}
.right-size .stamp .dot{ width:6px; height:6px; background:var(--accent); border-radius:50%; }

/* pathways */
.pathways{ padding-block: clamp(80px, 9vw, 140px); }
.pathways .pgrid{
  display:grid; grid-template-columns: repeat(2, 1fr); gap:0;
  border:1px solid var(--rule);
}
@media (max-width: 720px){ .pathways .pgrid{ grid-template-columns: 1fr; }}
.pathways article{
  padding: clamp(24px, 3vw, 40px);
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  display:flex; flex-direction:column; gap:14px;
  position:relative;
  background: var(--paper);
  cursor: pointer;
  transition: background .25s ease;
}
.pathways article:hover{ background: var(--paper-2); }
.pathways article:nth-child(2n){ border-right:0; }
.pathways article:nth-last-child(-n+2){ border-bottom:0; }
@media (max-width: 720px){
  .pathways article{ border-right:0 !important; border-bottom: 1px solid var(--rule) !important;}
  .pathways article:last-child{ border-bottom:0 !important;}
}
.pathways article.featured{
  background: var(--paper-2);
}
.pathways article.featured::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--accent);
}
.pathways .top{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px;}
.pathways .tier{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);}
.pathways .featured .tier{ color: var(--accent); }
.pathways h3{ font-family:var(--serif); font-weight:500; font-size: clamp(28px, 2.8vw, 40px); letter-spacing:-.01em; margin: 8px 0 0; max-width: 14ch; line-height:1.05;}
.pathways h3 em{ font-style:italic; color:var(--accent); font-weight:400;}
.pathways p{ font-size:14.5px; color:var(--ink-soft); margin: 8px 0 0; line-height:1.5; max-width: 44ch;}
.pathways .meta{
  margin-top: 12px;
  padding-top: 14px; border-top: 1px dashed var(--rule);
  display:flex; justify-content:space-between; gap:12px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.pathways .meta b{ color: var(--ink); font-weight:500;}
.pathways .pick{
  margin-top: 8px;
  font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color: var(--accent); display:inline-flex; gap:8px; align-items:center;
}
.pathways .pick::after{
  content:""; width:14px; height:1px; background:currentColor; position:relative;
  display:inline-block;
}

/* intake form */
.intake{
  padding-block: clamp(80px, 9vw, 140px);
  border-top: 1px solid var(--rule);
  background: var(--paper-2);
}
.intake .layout{
  display:grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: clamp(40px, 6vw, 96px);
  align-items: start;
}
@media (max-width: 820px){ .intake .layout{ grid-template-columns: 1fr; }}
.intake h2.display{ max-width: 14ch; margin: 0 0 16px; }
.intake .sidekick p{ font-family:var(--serif); font-size: clamp(18px,1.5vw,22px); line-height:1.45; color: var(--ink-soft); max-width: 40ch; margin: 0 0 24px;}
.intake .direct{
  margin-top: clamp(32px, 4vw, 56px);
  padding-top: 24px; border-top: 1px solid var(--rule);
  display:flex; flex-direction:column; gap:14px;
}
.intake .direct .row{ display:flex; gap:14px; align-items:center;}
.intake .direct .row .lbl{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); width: 90px;}
.intake .direct .row a, .intake .direct .row span.val{ font-family:var(--serif); font-size: clamp(18px,1.5vw,22px); color: var(--ink); }
.intake .direct .row a:hover{ color: var(--accent); font-style:italic;}

/* calendar block */
.calendar{
  margin-top: clamp(24px, 3vw, 40px);
  padding: 18px;
  border: 1px solid var(--rule);
  background: var(--paper);
}
.calendar .cal-head{ display:flex; justify-content:space-between; align-items:center; padding-bottom: 14px; border-bottom: 1px solid var(--rule); margin-bottom: 14px;}
.calendar .month{ font-family:var(--serif); font-weight:500; font-size: 22px; letter-spacing:-.01em;}
.calendar .nav-btns{ display:flex; gap:8px;}
.calendar .nav-btns button{
  appearance:none; border:1px solid var(--rule); background:transparent; padding: 6px 10px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color: var(--ink-soft);
  cursor: default;
}
.calendar .dow{ display:grid; grid-template-columns: repeat(7, 1fr); gap:4px; margin-bottom: 6px;}
.calendar .dow span{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color: var(--muted); text-align:center; padding-block: 6px;}
.calendar .days{ display:grid; grid-template-columns: repeat(7, 1fr); gap:4px; }
.calendar .days .day{
  aspect-ratio: 1; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:17px; color: var(--ink);
  border:1px solid transparent;
  cursor: default; transition: background .15s, border-color .15s, color .15s;
  position:relative;
}
.calendar .days .day.muted{ color: rgba(21,22,26,.25); }
.calendar .days .day.open{ border-color: var(--rule); }
.calendar .days .day.open:hover{ background: var(--ink); color: var(--paper); border-color: var(--ink);}
.calendar .days .day.selected{ background: var(--accent); color: var(--accent-ink); border-color: var(--accent);}
.calendar .days .day.full{ color: rgba(21,22,26,.3); }
.calendar .days .day.full::after{ content:""; position:absolute; inset: 12% 22%; border-top:1px solid rgba(21,22,26,.25); transform: rotate(-22deg);}
.calendar .slots{
  display:flex; flex-wrap:wrap; gap:8px; margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--rule);
}
.calendar .slot{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  padding: 8px 12px; border:1px solid var(--rule); color: var(--ink-soft);
  cursor: default;
}
.calendar .slot.selected{ background: var(--ink); color: var(--paper); border-color: var(--ink);}

/* form */
form.intake-form{
  display:grid; grid-template-columns: 1fr 1fr; gap: 18px 18px;
}
form.intake-form label{ display:flex; flex-direction:column; gap:6px; font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color: var(--muted); }
form.intake-form label.full{ grid-column: span 2;}
form.intake-form input,
form.intake-form select,
form.intake-form textarea{
  font: inherit; font-family: var(--serif); font-size: 19px; letter-spacing: -.005em;
  color: var(--ink); background: transparent;
  border: 0; border-bottom: 1px solid var(--rule);
  padding: 10px 0;
  outline: none;
  transition: border-color .2s ease;
  text-transform: none;
  width:100%;
}
form.intake-form input:focus,
form.intake-form select:focus,
form.intake-form textarea:focus{ border-bottom-color: var(--accent); }

/* Textarea reads as a bordered box (not body text) so it's obviously a typed field. */
form.intake-form textarea{
  resize: vertical;
  min-height: 110px;
  border: 1px solid var(--rule);
  padding: 12px 14px;
  background: rgba(0,0,0,.015);
  transition: border-color .2s ease, background-color .2s ease;
}
form.intake-form textarea:focus{
  border-color: var(--accent);
  background: transparent;
}
form.intake-form textarea::placeholder{
  color: var(--muted);
  font-style: italic;
  opacity: .75;
}

/* Inline field-level error indicator + caption. */
form.intake-form label.is-error input,
form.intake-form label.is-error select,
form.intake-form label.is-error textarea{
  border-color: var(--accent);
  border-bottom-color: var(--accent);
}
form.intake-form .field-err{
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-top: 4px;
}
form.intake-form .submit-row{
  grid-column: span 2;
  display:flex; gap:14px; align-items:center; justify-content:space-between;
  padding-top: 14px; border-top:1px solid var(--rule); margin-top: 8px; flex-wrap: wrap;
}
form.intake-form .submit-row .note{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);}
form.intake-form .btn{ cursor:default; }
@media (max-width: 640px){
  form.intake-form{ grid-template-columns: 1fr;}
  form.intake-form label.full{ grid-column: span 1;}
  form.intake-form .submit-row{ grid-column: span 1;}
}

/* ─────────── INSIGHTS / JOURNAL ─────────── */
.journal{ padding-block: clamp(64px, 8vw, 120px); }
.journal .issue{
  display:flex; gap:32px; align-items:baseline;
  padding-bottom: 24px; border-bottom: 1px solid var(--rule);
  margin-bottom: clamp(40px, 5vw, 64px);
  flex-wrap: wrap;
}
.journal .issue .id{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);}
.journal .issue .date{ font-family:var(--serif); font-style:italic; font-size: 18px; color: var(--ink-soft);}

.journal article{
  display:grid; grid-template-columns: 220px 1fr; gap: clamp(24px,4vw,56px);
  padding-block: clamp(28px, 4vw, 56px);
  border-bottom: 1px solid var(--rule);
  align-items: start;
}
.journal article:last-child{ border-bottom:0;}
@media (max-width: 720px){ .journal article{ grid-template-columns: 1fr;}}
.journal article .meta{ display:flex; flex-direction:column; gap:10px; font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color: var(--muted);}
.journal article .meta .cat{ color: var(--accent); }
.journal article .meta .num{ color: var(--ink); font-weight:500;}
.journal article h2{ font-family:var(--serif); font-weight:500; font-size: clamp(28px, 3.4vw, 48px); letter-spacing:-.01em; margin: 0 0 14px; line-height:1.05;}
.journal article h2 em{ font-style:italic; color:var(--accent); font-weight:400;}
.journal article p{ font-family:var(--serif); font-size: clamp(18px, 1.5vw, 22px); line-height:1.4; color: var(--ink-soft); max-width: 60ch; margin: 0 0 16px;}
.journal article .read{
  font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  display:inline-flex; gap:10px; align-items:center; color: var(--ink); border-bottom:1px solid var(--ink); padding-bottom: 3px;
}
.journal article .read:hover{ color: var(--accent); border-color: var(--accent);}

/* subscribe strip */
.subscribe{
  padding-block: clamp(64px, 8vw, 120px);
  background: var(--ink); color: var(--paper);
}
.subscribe .layout{ display:grid; grid-template-columns: 1.4fr 1fr; gap: clamp(24px, 4vw, 56px); align-items:end;}
@media (max-width: 720px){ .subscribe .layout{ grid-template-columns: 1fr;}}
.subscribe h3.display{ color: var(--paper); max-width: 18ch;}
.subscribe h3.display em{ color: #c9a25a; }
.subscribe form{ display:flex; gap: 12px; align-items:end;}
.subscribe input{
  flex:1; font: inherit; font-family: var(--serif); font-size: 22px;
  color: var(--paper); background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.4);
  padding: 10px 0; outline:none;
}
.subscribe input::placeholder{ color: rgba(255,255,255,.4); font-style:italic;}
.subscribe input:focus{ border-bottom-color: #c9a25a; }
.subscribe .btn{ border-color: #c9a25a; background: #c9a25a; color: var(--ink); }
.subscribe .btn:hover{ background:transparent; color: #c9a25a;}
.subscribe .note{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color: rgba(255,255,255,.5); margin-top: 14px;}


/* honor data-* on <html> so the early-paint script can prevent flash */
html[data-tone="warm"]{ --paper:#f0e8d8; --paper-2:#e6dcc6; --ink:#1d1612; --ink-soft:#3a2e25;
  --rule: rgba(29,22,18,.22); --rule-soft: rgba(29,22,18,.10); --muted: rgba(29,22,18,.55); }
html[data-tone="mono"]{ --paper:#efefec; --paper-2:#e6e6e1; --ink:#111; --ink-soft:#2a2a2a;
  --rule: rgba(0,0,0,.18); --rule-soft: rgba(0,0,0,.08); --muted: rgba(0,0,0,.55); }
html[data-tone="ink"]{ --paper:#16171b; --paper-2:#1c1d22; --ink:#f1ece1; --ink-soft:#c9c4b9;
  --rule: rgba(241,236,225,.18); --rule-soft: rgba(241,236,225,.08); --muted: rgba(241,236,225,.55);
  --accent-ink: #16171b; }
html[data-tone="ink"] .signature{ background:#0e0f12; }
html[data-accent="navy"]{ --accent:#1f3a68; }
html[data-accent="rust"]{ --accent:#a64a23; }
html[data-accent="forest"]{ --accent:#2a5234; }
html[data-accent="ink"]{ --accent: var(--ink); }
html[data-tone="ink"][data-accent="ink"]{ --accent: #c9a25a; }
html[data-grain="off"] body::before{ display:none; }
