  :root{
    --bg: #f3ecdc;
    --bg-alt: #ece2c9;
    --ink: #161615;
    --ink-soft: #5b5b57;
    --ink-faint: #8c8570;
    --line: #dccfa9;
    --line-strong: #161615;
    --accent: #5f8575;
    --accent-dark: #3f5d4e;
    --accent-light: #ece2c9;
    --max: 1080px;
    --gap: clamp(1.5rem, 4vw, 3.5rem);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.75;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,.serif{
    font-family:'Fraunces', serif;
    font-weight:440;
    letter-spacing:-0.01em;
    margin:0;
  }

  a{ color:inherit; }

  img{ max-width:100%; display:block; }

  .wrap{
    max-width:var(--max);
    margin:0 auto;
    padding:0 clamp(1.25rem, 4vw, 2.5rem);
  }

  /* ---------- NAV ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(243,236,220,0.9);
    backdrop-filter:blur(8px);
    border-bottom:1px solid transparent;
    transition:border-color .3s ease;
  }
  header.scrolled{ border-color:var(--line); }

  nav.wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-top:1rem;
    padding-bottom:1rem;
  }

  .brand{
    display:flex;
    align-items:center;
    gap:0.7rem;
    text-decoration:none;
    color:var(--ink);
  }
  .brand img{ height:46px; width:auto; mix-blend-mode:multiply; flex-shrink:0; }
  .brand-text{ display:flex; flex-direction:column; line-height:1.25; }
  .brand-text .rh{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:1.05rem;
    letter-spacing:0.01em;
  }
  .brand-text .name{
    font-size:0.62rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }

  .navlinks{
    display:flex;
    gap:clamp(1.1rem, 3vw, 2.2rem);
    list-style:none;
    margin:0; padding:0;
    font-size:0.82rem;
    letter-spacing:0.09em;
    text-transform:uppercase;
  }
  .navlinks a{
    text-decoration:none;
    position:relative;
    padding-bottom:5px;
    color:var(--ink-soft);
    transition:color .25s ease;
  }
  .navlinks a::after{
    content:"";
    position:absolute;
    left:0; bottom:0;
    width:100%; height:1px;
    background:var(--accent-dark);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .35s ease;
  }
  .navlinks a:hover, .navlinks a.active{ color:var(--accent-dark); }
  .navlinks a:hover::after, .navlinks a.active::after{ transform:scaleX(1); }

  :focus-visible{ outline:2px solid var(--accent-dark); outline-offset:3px; }

  /* ---------- FLOWING DIVIDER ---------- */
  .divider{
    display:block;
    width:100%;
    height:auto;
    margin:0;
  }
  .divider path{
    fill:none;
    stroke:var(--accent);
    stroke-width:1.1;
    opacity:0.4;
    stroke-dasharray:1400;
    stroke-dashoffset:1400;
    transition:stroke-dashoffset 1.6s ease;
  }
  .divider.drawn path{ stroke-dashoffset:0; }

  /* ---------- HERO ---------- */
  .hero{
    padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(2rem, 4vw, 3rem);
    text-align:center;
  }
  .hero-logo{
    width:min(230px, 55vw);
    margin:0 auto clamp(1.4rem, 3vw, 2rem);
    mix-blend-mode:multiply;
    opacity:0.92;
  }
  .eyebrow{
    font-size:0.76rem;
    letter-spacing:0.26em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-bottom:1.4rem;
  }
  .hero h1{
    font-size:clamp(2rem, 4.4vw, 3.2rem);
    font-style:italic;
    font-weight:400;
    max-width:16ch;
    margin:0 auto 2.2rem;
    line-height:1.35;
    color:var(--ink);
  }
  .hero .lede{
    max-width:600px;
    margin:0 auto;
    text-align:left;
    font-size:1.03rem;
    color:var(--ink);
    line-height:1.85;
  }
  .hero .lede p{ margin:0 0 1.7rem; }
  .hero .lede p:last-child{ margin-bottom:0; }
  .hero .lede strong{ font-weight:600; }

  .closing-quote{
    max-width:520px;
    margin:clamp(3.5rem,8vw,5.5rem) auto 0;
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:clamp(1.2rem, 2.4vw, 1.55rem);
    color:var(--accent-dark);
    line-height:1.55;
  }

  /* ---------- HERO: name + subtitle + social (enpsycho-style) ---------- */
  .hero-subtitle-lines{
    max-width:440px;
    margin:0 auto clamp(2rem, 5vw, 3rem);
    font-size:0.92rem;
    color:var(--ink-soft);
    line-height:1.8;
  }
  .hero-subtitle-lines p{ margin:0; }

  .hero-credential{
    margin-top:clamp(2.5rem, 6vw, 3.5rem);
    font-size:0.78rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  .hero-credential strong{
    color:var(--ink);
    font-weight:600;
    letter-spacing:0.06em;
  }

  .hero-social{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:1.1rem;
    margin-top:1.6rem;
  }
  .hero-social a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px; height:38px;
    border:1px solid var(--line);
    border-radius:50%;
    color:var(--ink-soft);
    transition:background .25s ease, color .25s ease, border-color .25s ease;
  }
  .hero-social a:hover{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
  .hero-social svg{ width:16px; height:16px; }
  .hero-social .divider-dot{
    width:3px; height:3px;
    border-radius:50%;
    background:var(--line);
  }
  .hero-social .mail-link{
    width:auto;
    border-radius:999px;
    padding:0 0.9rem;
    font-size:0.78rem;
    letter-spacing:0.03em;
    text-decoration:none;
    font-family:'Work Sans', sans-serif;
  }

  /* ---------- SECONDARY PAGE HERO (bio / contact) ---------- */
  .page-hero{
    padding: clamp(3.5rem, 8vw, 6rem) 0 clamp(1rem, 3vw, 1.5rem);
    text-align:center;
  }
  .page-hero .hero-logo{
    width:min(150px, 40vw);
    margin-bottom:clamp(1.2rem, 3vw, 1.8rem);
    opacity:0.85;
  }

  /* ---------- BIO PHOTO PLACEHOLDER ---------- */
  .bio-photo{
    width:170px;
    height:170px;
    border-radius:50%;
    border:3px solid var(--accent);
    background:var(--bg-alt);
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto;
    overflow:hidden;
  }
  .bio-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:50%;
  }
  .bio-photo span{
    font-size:0.75rem;
    color:var(--ink-faint);
    letter-spacing:0.05em;
  }

  /* ---------- SECTION SHELL ---------- */
  section{ scroll-margin-top:90px; }
  .section-pad{ padding: clamp(4rem, 9vw, 7.5rem) 0; }
  .alt{ background:var(--bg-alt); }

  .section-head{
    text-align:center;
    margin-bottom:clamp(3rem, 7vw, 4.5rem);
  }
  .section-head .eyebrow{ margin-bottom:0.9rem; }
  .section-head h2{
    font-size:clamp(1.7rem, 3.4vw, 2.3rem);
    font-weight:400;
  }

  /* ---------- SERVICES ---------- */
  .services-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  @media (max-width:720px){
    .services-grid{ grid-template-columns:1fr; }
  }
  .service-card{
    background:var(--bg);
    padding:clamp(2.2rem, 4vw, 3.2rem);
    border-top:2px solid var(--accent);
  }
  .alt .service-card{ background:var(--bg-alt); }
  .service-card h3{
    font-size:1.2rem;
    font-weight:500;
    margin-bottom:1.1rem;
    color:var(--accent-dark);
  }
  .service-card p{
    margin:0;
    color:var(--ink-soft);
    font-size:0.97rem;
  }
  .service-card.placeholder p{ font-style:italic; color:var(--ink-faint); }

  /* ---------- BIO ---------- */
  .bio-inner{
    max-width:640px;
    margin:0 auto;
    text-align:left;
    line-height:1.85;
  }
  .bio-name{
    font-size:clamp(1.6rem, 3.2vw, 2.1rem);
    font-weight:400;
    text-align:center;
  }
  .bio-title{
    text-align:center;
    color:var(--ink-soft);
    font-size:0.95rem;
    margin-top:0.7rem;
  }
  .bio-tagline{
    text-align:center;
    font-style:italic;
    font-family:'Fraunces', serif;
    font-size:1.25rem;
    margin:2.2rem auto 3.5rem;
    max-width:30ch;
    line-height:1.5;
    color:var(--accent-dark);
  }
  .bio-inner p{ margin:0 0 1.7rem; }
  .bio-inner p:last-child{ margin-bottom:0; }

  /* ---------- CONTACT ---------- */
  .contact-inner{
    text-align:center;
    max-width:480px;
    margin:0 auto;
  }
  .contact-line{
    font-size:1rem;
    color:var(--ink-soft);
    margin-bottom:0.5rem;
  }
  .contact-email{
    display:inline-block;
    margin-top:0.75rem;
    font-family:'Fraunces', serif;
    font-style:italic;
    font-size:1.35rem;
    text-decoration:none;
    color:var(--accent-dark);
    border-bottom:1px solid var(--accent);
    padding-bottom:3px;
    transition:opacity .25s ease;
  }
  .contact-email:hover{ opacity:0.65; }

  .social-row{
    display:flex;
    justify-content:center;
    gap:1.4rem;
    margin-top:2.2rem;
  }
  .social-row a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px; height:42px;
    border:1px solid var(--accent);
    color:var(--accent-dark);
    border-radius:50%;
    transition:background .25s ease, color .25s ease;
  }
  .social-row a:hover{ background:var(--accent-dark); color:#fff; border-color:var(--accent-dark); }
  .social-row svg{ width:18px; height:18px; }
  .social-note{
    margin-top:1rem;
    font-size:0.78rem;
    color:var(--ink-faint);
  }

  /* ---------- FOOTER ---------- */
  footer{
    padding:2.5rem 0;
    text-align:center;
    border-top:1px solid var(--line);
  }
  footer img{ display:none; }
  footer p{
    margin:0;
    font-size:0.78rem;
    letter-spacing:0.04em;
    color:var(--ink-faint);
  }

  ::selection{ background:var(--accent); color:#fff; }

  @media (max-width:600px){
    nav.wrap{
      flex-direction:column;
      gap:0.7rem;
      padding-top:0.9rem;
      padding-bottom:0.9rem;
    }
    .brand{ font-size:0.95rem; }
    .brand img{ height:34px; }
    .navlinks{
      flex-wrap:wrap;
      justify-content:center;
      gap:0.9rem 1.3rem;
      font-size:0.72rem;
    }
  }
