/* ============================================================
     PALETTE + TYPE TOKENS — change a color here, it changes everywhere
     ============================================================ */
  :root{
    --paper:      #EFE7D8;   /* page background */
    --paper-dim:  #E4D9C2;   /* cards, insets */
    --ink:        #1C1A17;   /* body text */
    --ink-soft:   #4A443C;   /* secondary text */
    --red:        #C13B2E;   /* primary accent */
    --teal:       #1D4B4F;   /* secondary accent */
    --marigold:   #D9A441;   /* tertiary accent */
    --rule:       #1C1A17;
    /* earth tones, shared with the business card */
    --clay:#B07D56; --umber:#7C5F45; --sage:#8B9075; --bone:#CDBFA4; --moss:#5F7048;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#17181A; --paper-dim:#1E2022; --ink:#EFE7D8; --ink-soft:#B9B0A0;
      --red:#E1543F; --teal:#4E9BA0; --marigold:#E8B25A; --rule:#EFE7D8;
      --clay:#C58E63; --umber:#9C7B5C; --sage:#9FAA8C; --bone:#B8AB92; --moss:#84986A;
    }
  }
  :root[data-theme="dark"]{
    --paper:#17181A; --paper-dim:#1E2022; --ink:#EFE7D8; --ink-soft:#B9B0A0;
    --red:#E1543F; --teal:#4E9BA0; --marigold:#E8B25A; --rule:#EFE7D8;
      --clay:#C58E63; --umber:#9C7B5C; --sage:#9FAA8C; --bone:#B8AB92; --moss:#84986A;
  }

  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:'Literata', Georgia, 'Times New Roman', serif;
    font-size:16px; line-height:1.6;
  }
  h1,h2,h3{font-family:'Anton','Arial Narrow',sans-serif; font-weight:400;
    text-transform:uppercase; letter-spacing:.01em; text-wrap:balance; margin:0;}
  a{color:inherit;}
  .eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace; text-transform:uppercase;
    letter-spacing:.14em; font-size:.72rem;}
  .wrap{max-width:1080px; margin:0 auto; padding:0 28px;}
  :focus-visible{outline:3px solid var(--red); outline-offset:3px;}

  /* ---------- top dateline ---------- */
  .dateline{border-bottom:1px solid var(--rule); padding:10px 0;}
  .dateline .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;}
  .dateline span{font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.1em;
    text-transform:uppercase; color:var(--ink-soft);}

  /* ---------- masthead ---------- */
  .masthead{padding:34px 0 18px; border-bottom:5px solid var(--rule);}
  .masthead h1{font-size:clamp(2.9rem,10.5vw,7rem); line-height:.88;}
  .masthead-row{display:flex; justify-content:space-between; align-items:center;
    gap:10px 24px; flex-wrap:wrap; margin-top:18px; padding-top:13px;
    border-top:1px solid var(--rule);}
  .masthead-sub{font-family:'IBM Plex Mono',monospace; font-size:.82rem; letter-spacing:.05em;
    color:var(--ink-soft); max-width:34ch; margin:0;}
  nav{display:flex; gap:10px 20px; font-family:'IBM Plex Mono',monospace; font-size:.76rem;
    letter-spacing:.06em; text-transform:uppercase; flex-wrap:wrap;
    flex:1 1 auto; justify-content:space-between; max-width:74%;}
  nav a{text-decoration:none; border-bottom:2px solid transparent; padding-bottom:2px;
    transition:border-color .15s ease;}
  nav a:hover{border-color:var(--red);}
  .socials{align-items:center;}
  .socials{display:flex; gap:14px; flex-wrap:wrap; font-family:'IBM Plex Mono',monospace;
    font-size:.72rem; letter-spacing:.05em; text-transform:uppercase;}
  .socials a{text-decoration:none; color:var(--ink-soft); display:inline-flex; align-items:center;
    transition:color .15s ease,transform .15s ease;}
  .socials a svg{width:19px; height:19px; display:block;}
  .socials a:hover{color:var(--red);}
  .book .socials a{color:var(--paper-dim);}
  .book .socials a:hover{color:var(--marigold);}
  .book .socials a svg{width:22px; height:22px;}

  /* ---------- hero ---------- */
  .hero{display:grid; grid-template-columns:1.45fr 1fr; gap:46px; align-items:start;
    max-width:1080px; margin:0 auto; padding:52px 28px 56px;}
  .hero-statement{font-size:clamp(1.45rem,2.5vw,2.05rem); line-height:1.34; font-weight:500;
    margin:0;}
  .hero-statement em{font-style:italic; color:var(--red);}
  .hero-lede{margin:18px 0 0; font-size:1.02rem; line-height:1.7; color:var(--ink-soft);
    max-width:56ch;}
  .credstack{font-family:'IBM Plex Mono',monospace; font-size:.76rem; letter-spacing:.06em;
    text-transform:uppercase; color:var(--ink-soft); margin-top:28px; max-width:40ch;}
  .credstack div{padding:9px 0; border-bottom:1px solid var(--ink-soft);}
  .credstack div:first-child{border-top:1px solid var(--ink-soft); color:var(--ink);}
  .hero-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:26px;}
  .btn{font-family:'IBM Plex Mono',monospace; font-size:.78rem; letter-spacing:.06em;
    text-transform:uppercase; text-decoration:none; padding:12px 18px; display:inline-block;
    border:2px solid var(--ink); transition:background .15s ease,color .15s ease,border-color .15s ease;}
  .btn-primary{background:var(--red); border-color:var(--red); color:var(--paper);}
  .btn-primary:hover{background:var(--ink); border-color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:var(--paper);}
  .hero-figure{display:flex; flex-direction:column; gap:10px;}
  .portrait{aspect-ratio:4/5; border:3px solid var(--ink); overflow:hidden; position:relative;
    background:var(--teal);}
  .portrait img{width:100%; height:100%; object-fit:cover; display:block;}
  .figure-cap{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.06em;
    color:var(--ink-soft); text-transform:uppercase; display:flex; justify-content:space-between;}

  /* ---------- generic section ---------- */
  .section{padding:50px 0; border-top:1px solid var(--rule);}
  .section-head{display:flex; justify-content:space-between; align-items:baseline; gap:20px;
    margin-bottom:30px; flex-wrap:wrap;}
  .section-head h2{font-size:clamp(1.7rem,3.8vw,2.5rem);}
  .section-head .eyebrow{color:var(--red);}
  .section-note{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--ink-soft);
    max-width:38ch; text-align:right;}

  /* ---------- about ---------- */
  .about{display:grid; grid-template-columns:1.4fr .85fr; gap:46px;}
  .about p{margin:0 0 17px; font-size:1.02rem; line-height:1.72;}
  .about p:last-child{margin-bottom:0;}
  blockquote{margin:24px 0; padding:16px 0 16px 22px; border-left:4px solid var(--red);
    font-size:1.12rem; line-height:1.55; font-style:italic;}
  blockquote cite{display:block; margin-top:9px; font-family:'IBM Plex Mono',monospace;
    font-style:normal; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink-soft);}
  .rail{font-family:'IBM Plex Mono',monospace; font-size:.8rem;}
  .rail-row{display:flex; flex-direction:column; gap:3px; padding:11px 0;
    border-bottom:1px solid var(--ink-soft);}
  .rail-row:first-of-type{padding-top:0;}
  .rail-label{color:var(--red); text-transform:uppercase; letter-spacing:.08em; font-size:.66rem;}
  .rail-value{line-height:1.5;}

  /* ---------- focus areas ---------- */
  .focus{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:26px 34px;}
  .focus div{border-top:2px solid var(--red); padding-top:12px;}
  .focus h3{font-size:1.02rem; margin-bottom:6px;}
  .focus p{margin:0; font-size:.92rem; line-height:1.6; color:var(--ink-soft);}

  /* ---------- selected work ---------- */
  .dissertation{background:var(--teal); color:var(--paper); padding:30px 32px; margin-bottom:34px;}
  .dissertation .eyebrow{color:var(--marigold);}
  .dissertation h3{font-size:clamp(1.3rem,2.8vw,1.85rem); margin:10px 0 14px; color:var(--paper);}
  .dissertation p{margin:0; font-size:.98rem; line-height:1.7; max-width:62ch; opacity:.92;}
  .dissertation .meta{font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.05em;
    text-transform:uppercase; margin-top:16px; opacity:.8;}
  .pubs{list-style:none; margin:0; padding:0; display:grid; gap:14px;}
  .pubs li{font-size:.95rem; line-height:1.6; padding-left:26px; text-indent:-26px;
    color:var(--ink-soft);}
  .pubs li b{color:var(--ink); font-weight:600;}
  .pubs li i{font-style:italic;}

  /* ---------- catalog rows (workshops, speaking) ---------- */
  .catalog{border-top:2px solid var(--ink);}
  .row{display:grid; grid-template-columns:1.6fr 1fr; gap:18px; padding:16px 0;
    border-bottom:1px solid var(--ink-soft); align-items:baseline;}
  .row-title{font-size:1.02rem; font-weight:600; margin:0;}
  .row-title .lang{font-family:'IBM Plex Mono',monospace; font-size:.62rem; letter-spacing:.08em;
    text-transform:uppercase; color:var(--paper); background:var(--marigold); padding:2px 6px;
    margin-left:8px; vertical-align:middle; white-space:nowrap;}
  .row-meta{font-family:'IBM Plex Mono',monospace; font-size:.74rem; color:var(--ink-soft);
    text-align:right; line-height:1.5;}

  /* ---------- recognition ---------- */
  .recognition{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px 30px;}
  .recognition div{padding-left:16px; border-left:3px solid var(--marigold);}
  .recognition strong{display:block; font-size:.98rem;}
  .recognition span{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--ink-soft);}

  /* ---------- contact ---------- */
  .book{background:var(--ink); color:var(--paper); padding:60px 0; border-top:5px solid var(--red);}
  .book .eyebrow{color:var(--marigold);}
  .book h2{font-size:clamp(2rem,5.5vw,3.6rem); color:var(--paper); margin-top:12px; line-height:.95;}
  .book-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:38px; margin-top:28px; align-items:end;}
  .book-lede{font-size:1.02rem; line-height:1.7; color:var(--paper-dim); max-width:52ch; margin:0;}
  .book-cta{display:flex; flex-direction:column; gap:13px; align-items:flex-start;}
  .book .btn{border-color:var(--paper); color:var(--paper);}
  .book .btn:hover{background:var(--paper); color:var(--ink);}
  .book .btn-primary{background:var(--red); border-color:var(--red);}
  .book .btn-primary:hover{background:var(--paper); border-color:var(--paper); color:var(--ink);}
  .book-meta{font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.05em;
    text-transform:uppercase; color:var(--paper-dim); line-height:1.9;}

  footer{padding:24px 0 38px;}
  footer .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
    font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.06em;
    text-transform:uppercase; color:var(--ink-soft);}

  @media (max-width:780px){
    .hero{grid-template-columns:1fr;}
    .hero-figure{order:-1; max-width:230px;}
    .about{grid-template-columns:1fr;}
    .book-grid{grid-template-columns:1fr;}
    .row{grid-template-columns:1fr; gap:5px;}
    .row-meta{text-align:left;}
    .section-note{text-align:left;}
  }
  @media (prefers-reduced-motion:reduce){*{transition:none!important; animation:none!important;}}

  /* ---------- botanical band (same drawing as the business card) ---------- */
  .bandwrap{ border-top:1px solid var(--rule); padding:0; overflow:hidden; }
  .bandwrap svg{ display:block; width:100%; height:auto; }
  @media (max-width:700px){ .bandwrap svg{ width:160%; margin-left:-30%; } }

  /* current page in the menu */
  nav a[aria-current="page"]{ border-bottom-color:var(--red); color:var(--ink); }

  /* ---------- mushrooms growing on the masthead rule ---------- */
  .masthead-top{ display:flex; justify-content:flex-start; align-items:flex-end;
    gap:14px; flex-wrap:nowrap; }
  .masthead-top h1{ flex:0 0 auto; }
  /* the cluster gives way before the name does */
  .sprigs{ flex:0 1 auto; width:clamp(104px, 18vw, 228px); min-width:0; margin-bottom:2px; }
  .sprigs svg{ display:block; width:100%; height:auto; }
  @media (max-width:620px){ .sprigs{ display:none; } }

  /* ---------- home page: three ways in ---------- */
  .teasers{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:30px 36px; }
  .teaser{ border-top:2px solid var(--red); padding-top:14px; text-decoration:none; display:block; }
  .teaser h3{ font-size:1.12rem; margin:0 0 9px; transition:color .15s ease; }
  .teaser p{ margin:0 0 14px; font-size:.95rem; line-height:1.62; color:var(--ink-soft); }
  .teaser .go{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.08em;
    text-transform:uppercase; color:var(--red); }
  .teaser:hover h3{ color:var(--red); }
  .teaser:hover .go{ text-decoration:underline; }

  /* ---------- upcoming event ---------- */
  .event{ background:var(--teal); color:var(--paper); padding:32px 34px; }
  .event .eyebrow{ color:var(--marigold); }
  .event h2{ font-size:clamp(1.6rem,3.4vw,2.3rem); color:var(--paper); margin:12px 0 14px; }
  .event .lede{ margin:0 0 22px; font-size:1rem; line-height:1.7; max-width:60ch; opacity:.93; }
  .event-meta{ display:grid; grid-template-columns:auto 1fr; gap:9px 20px; margin:0 0 24px;
    font-family:'IBM Plex Mono',monospace; font-size:.82rem; line-height:1.55; }
  .event-meta dt{ color:var(--marigold); text-transform:uppercase; letter-spacing:.1em; font-size:.68rem;
    padding-top:2px; }
  .event-meta dd{ margin:0; }
  .event-meta dd small{ display:block; opacity:.78; font-size:.92em; }
  .event-actions{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
  .event .btn{ border-color:var(--paper); color:var(--paper); }
  .event .btn:hover{ background:var(--paper); color:var(--teal); }
  .event .free{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; letter-spacing:.06em;
    text-transform:uppercase; opacity:.85; }
  @media (max-width:560px){ .event-meta{ grid-template-columns:1fr; gap:3px 0; }
    .event-meta dt{ margin-top:10px; } }


  /* ---------- request page: embedded Google Form ---------- */
  .request .section-note{max-width:46ch;}
  .request .section-note span{display:block; margin-top:8px;}
  .form-frame{margin-top:28px; background:#fff; border:1px solid var(--rule);
    border-top:5px solid var(--red); max-width:760px;}
  /* The form can't size itself, so these heights are measured to fit it at each
     screen width. If you add questions in Google Forms, raise every number by
     roughly 150px per question. */
  .form-frame iframe{display:block; width:100%; height:3160px; border:0;}
  .form-fallback{font-family:'IBM Plex Mono',monospace; font-size:.74rem; letter-spacing:.03em;
    color:var(--ink-soft); line-height:1.7; margin:16px 0 0; max-width:760px;}
  .form-fallback a{color:var(--red);}
  @media (max-width:819px){ .form-frame iframe{height:3400px;} }
  @media (max-width:700px){ .form-frame iframe{height:3520px;} }
  @media (max-width:640px){ .form-frame iframe{height:3720px;} }
  @media (max-width:560px){ .form-frame iframe{height:4200px;} }
  @media (max-width:480px){ .form-frame iframe{height:4600px;} }
  @media (max-width:420px){ .form-frame iframe{height:5050px;} }
  @media (max-width:360px){ .form-frame iframe{height:5700px;} }

  /* ---------- phone: the four menu links share one full-width row ---------- */
  @media (max-width:560px){
    nav{ max-width:100%; flex:1 1 100%; gap:10px 14px; }
  }
