  :root{
    --bg: #0a0a0a;
    --panel: #111110;
    --line: #262524;
    --line-soft: #1a1918;
    --ink: #efece6;
    --muted: #706a62;
    --accent: #9a2417;
    --accent-bright: #c73a26;
    --accent-soft: rgba(154,36,23,0.22);
  }

  *{ margin:0; padding:0; box-sizing:border-box; }

  .reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in-view{ opacity:1; transform:translateY(0); }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
  }
  html{ scroll-behavior:smooth; }
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-weight:300;
    line-height:1.5;
    overflow-x:hidden;
  }
  ::selection{ background:var(--accent); color:var(--ink); }
  a{ color:inherit; text-decoration:none; }

  .eyebrow{
    font-family:'Barlow Condensed', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.24em;
    font-size:0.72rem;
    font-weight:600;
    color:var(--muted);
  }

  h1,h2,h3{
    font-family:'Barlow Condensed', sans-serif;
    text-transform:uppercase;
    font-weight:700;
    letter-spacing:0.01em;
    line-height:0.98;
  }

  /* ---------- NAV ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:1.6rem 4vw;
    transition:background .3s ease, backdrop-filter .3s ease, border-color .3s ease;
    border-bottom:1px solid transparent;
  }
  header.is-scrolled{
    background:rgba(10,10,10,0.72);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom-color:var(--line);
  }
  .logo{
    font-family:'Fraunces', serif;
    font-style:italic;
    font-weight:500;
    font-size:1.25rem;
  }
  nav ul{
    list-style:none;
    display:flex;
    gap:2.2rem;
    font-family:'Barlow Condensed', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.14em;
    font-size:0.78rem;
    font-weight:600;
    color:var(--muted);
  }
  nav a:hover{ color:var(--ink); }
  @media (max-width: 640px){ nav ul{ display:none; } }

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

  /* ---------- MOBILE SCROLL PROGRESS (spine-rail equivalent under 900px) ---------- */
  .mobile-progress{
    position:fixed; top:0; left:0; height:2px; width:0%;
    background:var(--accent-bright); z-index:110;
    display:none;
    transition:width .1s linear;
  }
  @media (max-width:900px){ .mobile-progress{ display:block; } }

  /* ---------- SPINE (signature element, restyled flat/technical) ---------- */
  .spine-rail{
    position:fixed; right:2.4vw; top:0; height:100vh; width:56px;
    display:flex; align-items:center; justify-content:center;
    z-index:50; pointer-events:none; opacity:0.9;
  }
  .spine-rail svg{ height:64vh; width:auto; overflow:visible; }
  .vert{ fill:var(--panel); stroke:var(--line); stroke-width:1; transition:fill 0.6s ease; }
  .vert.lit{ fill:var(--accent); }
  .vert-label{
    font-family:'Barlow Condensed', sans-serif; font-size:10px; letter-spacing:0.08em;
    fill:var(--muted); opacity:0.45; transition:fill 0.6s ease, opacity 0.6s ease;
  }
  .vert-label.lit{ fill:var(--ink); opacity:1; }
  .sacrum{ fill:var(--panel); stroke:var(--line); stroke-width:1; transition:fill 0.6s ease; }
  @media (max-width: 900px){ .spine-rail{ display:none; } }

  /* ---------- SMOOTH SCROLL (weighted/inertia, desktop only) ---------- */
  #smooth-content{ position:relative; width:100%; }
  #scroll-spacer{ display:none; }
  body.lenis-active #smooth-content{
    position:fixed; top:0; left:0; width:100%; will-change:transform;
  }
  body.lenis-active #scroll-spacer{ display:block; width:100%; }

  /* ---------- BOOK (hero + diary, the entire point of the page) ---------- */
  .book-section{
    min-height:100vh;
    display:flex; flex-direction:column; justify-content:center;
    padding:11rem 4vw 6rem;
  }
  .book-head{ max-width:900px; margin-bottom:3.5rem; }
  .book-head .eyebrow{ display:block; margin-bottom:1rem; }
  .book-head h1{ font-size:clamp(2.6rem, 6.4vw, 5.2rem); }
  .book-head p{
    margin-top:1.2rem; color:var(--muted); font-size:1rem; max-width:48ch; font-weight:300;
  }

  .booking-panel{
    border:1px solid var(--line);
    background:var(--panel);
    display:flex; flex-direction:column;
    min-height:600px;
    max-width:1100px;
  }
  .panel-tabs{ display:flex; flex-wrap:wrap; border-bottom:1px solid var(--line); }
  .panel-tab{
    flex:1 1 33%; min-width:160px;
    background:transparent; border:none; cursor:pointer;
    padding:1.3rem 1.5rem;
    font-family:'Barlow Condensed', sans-serif; text-transform:uppercase;
    letter-spacing:0.08em; font-size:0.8rem; color:var(--muted);
    border-bottom:2px solid transparent;
    text-align:left;
    transition:color .2s ease, border-color .2s ease;
  }
  .panel-tab b{ display:block; margin-top:0.3rem; font-weight:600; color:var(--muted); letter-spacing:0.06em; }
  .panel-tab.is-active{ color:var(--ink); border-bottom-color:var(--accent); }
  .panel-tab.is-active b{ color:var(--accent-bright); }
  .panel-tab:hover{ color:var(--ink); }
  .cal-inline-wrap{ display:none; flex:1; width:100%; min-height:540px; opacity:0; transition:opacity .25s ease; }
  .cal-inline-wrap.is-active{ display:flex; opacity:1; }

  /* ---------- SPEC STRIP (facts only, no prose) ---------- */
  .specs{
    border-top:1px solid var(--line);
    display:grid; grid-template-columns:repeat(4,1fr);
  }
  .spec{
    padding:2.6rem 2rem;
    border-left:1px solid var(--line);
  }
  .spec:first-child{ border-left:none; }
  .spec .eyebrow{ display:block; margin-bottom:0.7rem; }
  .spec b{
    font-family:'Barlow Condensed', sans-serif; font-size:1.6rem; font-weight:700;
    display:block; letter-spacing:0.01em;
  }
  .spec span.detail{
    display:block; margin-top:0.3rem; color:var(--muted); font-size:0.85rem;
    font-family:'Inter', sans-serif; font-weight:300;
  }
  @media (max-width: 900px){
    .specs{ grid-template-columns:repeat(2,1fr); }
    .spec:nth-child(3){ border-left:none; }
  }
  @media (max-width: 560px){
    .specs{ grid-template-columns:1fr; }
    .spec{ border-left:none !important; border-top:1px solid var(--line); }
    .spec:first-child{ border-top:none; }
  }

  /* ---------- METHOD (four facts, one line each) ---------- */
  section.compact{
    padding:6vw 4vw;
    border-top:1px solid var(--line);
  }
  .compact-head{ margin-bottom:2.5rem; }
  .compact-head .eyebrow{ display:block; margin-bottom:0.6rem; }
  .compact-head h2{ font-size:clamp(1.6rem, 3vw, 2.2rem); }

  .method-row{
    display:grid; grid-template-columns:80px 140px 1fr; gap:2rem;
    align-items:baseline;
    padding:1.1rem 0; border-top:1px solid var(--line-soft);
  }
  .method-row:last-child{ border-bottom:1px solid var(--line-soft); }
  .method-tag{
    font-family:'Barlow Condensed', sans-serif; font-weight:700; letter-spacing:0.08em;
    color:var(--accent-bright); font-size:0.95rem;
  }
  .method-row h3{
    font-size:1rem; letter-spacing:0.04em;
  }
  .method-row p{ color:var(--muted); font-size:0.92rem; font-weight:300; }
  @media (max-width:700px){
    .method-row{ grid-template-columns:1fr; gap:0.3rem; }
  }

  /* ---------- PRACTITIONER (one line + photo) ---------- */
  .practitioner-row{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
    padding:1.2rem 0; border-top:1px solid var(--line-soft);
  }
  .practitioner-row:last-child{ border-bottom:1px solid var(--line-soft); }
  .practitioner-identity{ display:flex; align-items:center; gap:1rem; }
  .practitioner-photo{
    width:56px; height:56px; border-radius:50%; object-fit:cover;
    border:1px solid var(--line); filter:grayscale(1);
    flex-shrink:0;
  }
  .practitioner-row .name{ font-family:'Barlow Condensed', sans-serif; font-weight:700; letter-spacing:0.02em; font-size:1.1rem; }
  .practitioner-row .role{ color:var(--muted); font-size:0.88rem; }
  .creds{
    list-style:none; display:flex; flex-wrap:wrap; gap:0.5rem;
    font-family:'Barlow Condensed', sans-serif; text-transform:uppercase; letter-spacing:0.06em;
    font-size:0.72rem; color:var(--muted);
  }
  .creds li{ border:1px solid var(--line); padding:0.3rem 0.7rem; }

  /* ---------- QUOTE (single line, quiet) ---------- */
  .quote-line{
    padding:2.2rem 4vw; border-top:1px solid var(--line);
    color:var(--muted); font-size:0.92rem; max-width:70ch; font-weight:300;
  }
  .quote-line b{ color:var(--ink); font-weight:500; }

  /* ---------- FIND ME (social links, full section like Book) ---------- */
  .connect-section{
    padding:8vw 4vw;
    border-top:1px solid var(--line);
  }
  .connect-head{ max-width:900px; margin-bottom:3rem; }
  .connect-head .eyebrow{ display:block; margin-bottom:1rem; }
  .connect-head h2{ font-size:clamp(2.2rem, 5vw, 4rem); }
  .connect-head p{
    margin-top:1.2rem; color:var(--muted); font-size:1rem; max-width:48ch; font-weight:300;
  }
  .connect-grid{
    display:grid; grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--line); border-left:1px solid var(--line);
  }
  .connect-tile{
    display:block;
    border-right:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:2rem;
    transition:background .25s ease;
  }
  .connect-tile:hover{ background:var(--panel); }
  .connect-tile img{
    display:block; width:100%; aspect-ratio:1/1; object-fit:cover;
    border:1px solid var(--line); filter:grayscale(1) brightness(0.85);
    transition:filter .3s ease, border-color .3s ease, transform .3s ease;
  }
  .connect-tile:hover img{ filter:grayscale(0) brightness(1); border-color:var(--accent); transform:scale(1.02); }
  .connect-tile .connect-label{
    display:flex; justify-content:space-between; align-items:baseline;
    margin-top:1.2rem;
    font-family:'Barlow Condensed', sans-serif; text-transform:uppercase;
    letter-spacing:0.1em; font-size:0.95rem; font-weight:600; color:var(--ink);
  }
  .connect-tile .connect-label span{ color:var(--muted); font-size:0.78rem; font-weight:400; }
  @media (max-width:700px){
    .connect-grid{ grid-template-columns:1fr; }
  }

  /* ---------- FOOTER (facts only) ---------- */
  footer{
    padding:4vw; border-top:1px solid var(--line);
  }
  .footer-grid{
    display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:2rem;
  }
  .footer-grid .eyebrow{ display:block; margin-bottom:0.9rem; }
  .footer-grid p, .footer-grid li{ color:var(--muted); font-size:0.88rem; list-style:none; margin-bottom:0.4rem; }
  .footer-grid a:hover{ color:var(--ink); }
  .footer-bottom{
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.5rem;
    margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--line);
    font-family:'Barlow Condensed', sans-serif; text-transform:uppercase; letter-spacing:0.06em;
    font-size:0.75rem; color:var(--muted);
  }
  @media (max-width:900px){
    .footer-grid{ grid-template-columns:1fr 1fr; }
  }
