  :root{
    --ivory:   #F7F2E8;
    --linen:   #EFE6D5;
    --sand:    #DCC7A3;
    --stone:   #AFA084;
    --taupe:   #8A7860;
    --clay:    #9C5A3C;
    --clay-dk: #7E4630;
    --gold:    #B3922F;
    --charcoal:#2A2621;
    --rose:    #B46F72;
    --rose-dk: #8E4E55;
    --blush:   #F1DCD6;
    --blossom: #F2C9CC;
    --charcoal-70: rgba(42,38,33,.72);
    --ivory-rgb: 247,242,232;

    --ink: var(--charcoal);
    --ink-soft: #5C4B3A;
    --bg: var(--ivory);
    --bg-alt: var(--linen);
    --line: rgba(42,38,33,.14);

    --serif: "Fraunces", "Iowan Old Style", "Palatino Linotype", ui-serif, Georgia, serif;
    --sans: "Instrument Sans", "Avenir Next", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;

    --content-w: 640px;
    --wide-w: 1180px;

    color-scheme: light;
  }

  *{box-sizing:border-box;}
  body{
    margin:0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    padding-left: max(20px, env(safe-area-inset-left, 0px));
    padding-right: max(20px, env(safe-area-inset-right, 0px));
    overflow-x: hidden;
  }
  h1,h2,h3,h4{
    font-family: var(--serif);
    font-weight: 500;
    letter-spacing: -0.01em;
    margin: 0;
    text-wrap: balance;
  }
  p{ margin:0; }
  a{ color: inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  ul{ margin:0; padding:0; list-style:none; }
  button{ font-family:inherit; }
  ::selection{ background: var(--rose); color: var(--ivory); }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration: 0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
  }

  .wrap{
    max-width: var(--content-w);
    margin-inline:auto;
  }
  .wrap-wide{
    max-width: var(--wide-w);
    margin-inline:auto;
  }
  .bleed{
    margin-left: calc(-1 * max(20px, env(safe-area-inset-left,0px)));
    margin-right: calc(-1 * max(20px, env(safe-area-inset-right,0px)));
  }

  .eyebrow{
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    color: var(--gold);
  }
  .eyebrow.on-dark{ color: #D8BE7A; }

  .lede{
    font-size: 1.05rem;
    color: var(--ink-soft);
    max-width: 46ch;
  }

  .btn{
    display:inline-flex;
    align-items:center;
    gap:.6em;
    padding: 1.05em 1.9em;
    font-family: var(--sans);
    font-size: 0.76rem;
    font-weight:600;
    letter-spacing:0.14em;
    text-transform:uppercase;
    border-radius: 2px;
    border: 1px solid transparent;
    cursor:pointer;
    min-height: 44px;
    transition: background .35s ease, color .35s ease, border-color .35s ease, transform .2s ease;
    white-space: nowrap;
  }
  .btn-primary{
    background: var(--charcoal);
    color: var(--ivory);
  }
  .btn-primary:hover{ background: var(--rose-dk); }
  .btn-primary:active{ transform: scale(.98); }
  .btn-ghost{
    background: transparent;
    color: var(--ivory);
    border-color: rgba(247,242,232,.55);
  }
  .btn-ghost:hover{ border-color: var(--ivory); background: rgba(247,242,232,.1); }
  .btn-outline{
    background:transparent;
    color: var(--charcoal);
    border-color: var(--charcoal);
  }
  .btn-outline:hover{ background: var(--charcoal); color: var(--ivory); }
  .btn:focus-visible{ outline: 2px solid var(--clay); outline-offset:3px; }

  .link-underline{
    display:inline-block;
    font-size:0.85rem;
    letter-spacing:0.04em;
    padding-bottom:2px;
    border-bottom: 1px solid currentColor;
    opacity:.85;
    transition: opacity .25s ease, border-color .25s ease;
  }
  .link-underline:hover{ opacity:1; }
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
    outline: 2px solid var(--clay); outline-offset: 3px;
  }

  .atmos{
    position:relative;
    overflow:hidden;
    isolation:isolate;
  }
  .atmos::after{
    content:"";
    position:absolute; inset:0;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
    opacity:.16;
    mix-blend-mode:overlay;
    pointer-events:none;
  }
  .atmos-sun{
    --fallback: radial-gradient(120% 90% at 78% 18%, rgba(255,236,199,.9), transparent 55%), linear-gradient(155deg, #E8CFA0 0%, #C98F5C 42%, #8C4E33 78%, #4A2A20 100%);
    background: var(--fallback);
  }
  .atmos-sea{
    --fallback: radial-gradient(140% 90% at 20% 0%, rgba(255,255,255,.35), transparent 50%), linear-gradient(165deg, #A9BCB6 0%, #6C8B8A 38%, #3E5C60 72%, #223640 100%);
    background: var(--fallback);
  }
  .atmos-linen{
    --fallback: radial-gradient(120% 100% at 50% 0%, #F4ECDD 0%, #E6D8BE 55%, #C9AD86 100%);
    background: var(--fallback);
  }
  .atmos-dusk{
    --fallback: radial-gradient(120% 90% at 30% 100%, rgba(179,146,47,.35), transparent 55%), linear-gradient(160deg, #3A332B 0%, #2A2621 60%, #1B1815 100%);
    background: var(--fallback);
  }
  .atmos-stone{
    --fallback: linear-gradient(150deg, #C8B79A 0%, #AFA084 45%, #8A7860 100%);
    background: var(--fallback);
  }
  .atmos-clay{
    --fallback: radial-gradient(130% 90% at 80% 10%, rgba(255,225,190,.4), transparent 55%), linear-gradient(160deg, #C98F5C 0%, #9C5A3C 55%, #5E3323 100%);
    background: var(--fallback);
  }

  .mark{ display:block; }
  .mark path{ fill:none; stroke:currentColor; stroke-width:1.1; stroke-linecap:round; }

  header.site-nav{
    position:fixed;
    top: env(safe-area-inset-top,0px);
    left:0; right:0;
    z-index:100;
    padding: 18px max(20px, env(safe-area-inset-left,0px));
    display:flex; align-items:center; justify-content:space-between;
    transition: background .4s ease, box-shadow .4s ease, padding .3s ease, border-color .4s ease;
    border-bottom: 1px solid transparent;
  }
  header.site-nav.solid{
    background: rgba(var(--ivory-rgb), .92);
    backdrop-filter: blur(10px) saturate(1.1);
    -webkit-backdrop-filter: blur(10px) saturate(1.1);
    border-bottom-color: var(--line);
    padding-top:14px; padding-bottom:14px;
  }
  .nav-word{
    font-family: var(--serif);
    font-size: 1.02rem;
    letter-spacing: 0.08em;
    color: var(--ivory);
    transition: color .4s ease;
    display:flex; align-items:center; gap:.55em;
  }
  header.site-nav.solid .nav-word{ color: var(--charcoal); }
  .nav-word .mark{ width:30px; height:30px; }

  nav.nav-links{
    display:none;
    gap: 2rem;
    align-items:center;
  }
  nav.nav-links a{
    font-size: 0.78rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color: var(--ivory);
    opacity:.88;
    transition: opacity .3s ease, color .4s ease;
    padding: .3em 0;
    border-bottom: 1px solid transparent;
  }
  nav.nav-links a:hover{ opacity:1; border-bottom-color: currentColor; }
  header.site-nav.solid nav.nav-links a{ color: var(--charcoal); }

  .nav-cta{
    display:none;
  }
  .nav-right{ display:flex; align-items:center; gap:1.6rem; }

  .menu-btn{
    background:none; border:none; padding:8px; cursor:pointer;
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px;
  }
  .menu-btn span{
    display:block; height:1px; background: var(--ivory);
    transition: background .4s ease, transform .3s ease, opacity .3s ease;
  }
  header.site-nav.solid .menu-btn span{ background: var(--charcoal); }
  .menu-btn[aria-expanded="true"] span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
  .menu-btn[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .menu-btn[aria-expanded="true"] span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

  .mobile-panel{
    position:fixed; inset:0; z-index:99;
    background: var(--charcoal);
    padding: calc(90px + env(safe-area-inset-top,0px)) 32px 40px;
    display:flex; flex-direction:column; gap:1.6rem;
    transform: translateY(-100%);
    transition: transform .5s cubic-bezier(.65,0,.35,1);
  }
  .mobile-panel.open{ transform: translateY(0); }
  .mobile-panel a{
    font-family: var(--serif);
    font-size: 1.7rem;
    color: var(--ivory);
    font-style: italic;
    font-weight:400;
  }
  .mobile-panel .btn{ margin-top:1rem; align-self:flex-start; }

  @media (min-width: 920px){
    nav.nav-links{ display:flex; }
    .nav-cta{ display:inline-flex; }
    .menu-btn{ display:none; }
  }

  .hero{
    position:relative;
    min-height: 100svh;
    display:flex; flex-direction:column; justify-content:flex-end;
    color: var(--ivory);
    padding-bottom: 4.2rem;
    padding-top: calc(96px + env(safe-area-inset-top,0px));
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background: linear-gradient(180deg, rgba(20,17,14,.15) 0%, rgba(20,17,14,.08) 40%, rgba(20,17,14,.72) 100%);
    z-index:1;
  }
  .hero-inner{ position:relative; z-index:2; }
  .hero-word{
    font-family: var(--serif);
    font-weight:400;
    font-size: clamp(2.5rem, 10.5vw, 5.6rem);
    letter-spacing: 0.01em;
    line-height:1.02;
  }
  .hero-line{
    font-family: var(--serif);
    font-style: italic;
    font-weight:400;
    font-size: clamp(1.2rem, 3.4vw, 1.6rem);
    margin-top: .9rem;
    color: #EFE3C8;
  }
  .hero-copy{
    margin-top: 1.6rem;
    max-width: 38ch;
    font-size: 1rem;
    color: rgba(247,242,232,.86);
  }
  .hero-actions{
    margin-top: 2.3rem;
    display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem;
  }
  .hero-scroll{
    position:absolute; bottom:1.6rem; right:max(20px, env(safe-area-inset-right,0px));
    z-index:2;
    color: rgba(247,242,232,.6);
    font-size:.68rem; letter-spacing:.18em; text-transform:uppercase;
    writing-mode: vertical-rl;
    display:none;
  }
  @media(min-width:640px){ .hero-scroll{ display:block; } }

  section{ position:relative; }
  .section-pad{ padding-block: 6.2rem; }
  .section-pad-sm{ padding-block: 4.4rem; }
  .divider{
    height:1px; background: var(--line); border:none; margin:0;
  }
  .center{ text-align:center; margin-inline:auto; }

  .reveal{
    opacity:0; transform: translateY(22px);
    transition: opacity .9s cubic-bezier(.2,.6,.2,1), transform .9s cubic-bezier(.2,.6,.2,1);
  }
  .reveal.in{ opacity:1; transform:none; }

  .philosophy h2{
    font-size: clamp(1.8rem, 5vw, 2.7rem);
    font-weight:400;
  }
  .philosophy .body-copy{
    margin-top: 1.8rem;
    display:flex; flex-direction:column; gap:1.15rem;
    color: var(--ink-soft);
    font-size: 1.02rem;
  }
  .philosophy .signoff{
    margin-top:2.2rem;
    font-family: var(--serif);
    font-style:italic;
    font-size:1.3rem;
    color: var(--rose-dk);
  }

  .pathways-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap: 1px;
    background: var(--line);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .pathway{
    background: var(--bg);
    padding: 2.6rem 0;
    display:grid;
    grid-template-columns: 3.2rem 1fr;
    gap: 0 1.2rem;
    align-items:start;
  }
  .pathway .p-index{
    font-family: var(--serif);
    font-style:italic;
    color: var(--stone);
    font-size:1rem;
    padding-top:.15rem;
  }
  .pathway h3{
    font-size: 1.5rem;
    font-weight:500;
  }
  .pathway p{
    margin-top:.6rem;
    color: var(--ink-soft);
    max-width: 42ch;
    font-size:.96rem;
  }
  .pathway a.link-underline{ margin-top:1rem; color: var(--rose-dk); }
  .p-thumb{ width:64px; height:64px; border-radius:1px; margin-bottom:1rem; flex-shrink:0; }

  @media(min-width:760px){
    .pathways-grid{ grid-template-columns: 1fr 1fr; }
    .pathway{ padding: 3rem 2.4rem; }
  }

  .founder-portrait{
    aspect-ratio: 4/5;
    border-radius:2px;
    position:relative;
  }
  .founder-portrait svg{ position:absolute; inset:0; width:100%; height:100%; }
  .founder-quote{
    font-family: var(--serif);
    font-style: italic;
    font-size: clamp(1.35rem, 3.6vw, 1.9rem);
    line-height:1.45;
    color: var(--charcoal);
  }
  .founder-creds{
    margin-top:1.8rem;
    display:flex; flex-wrap:wrap; gap: .5rem .9rem;
  }
  .founder-creds li{
    font-size:.72rem;
    letter-spacing:.09em;
    text-transform:uppercase;
    color: var(--taupe);
    padding: .5em .9em;
    border:1px solid var(--line);
    border-radius:1px;
  }
  .founder-body{ margin-top:1.6rem; color:var(--ink-soft); display:flex; flex-direction:column; gap:1rem; }

  @media(min-width:900px){
    .founder-layout{ display:grid; grid-template-columns: 0.85fr 1.15fr; gap: 4rem; align-items:center; }
  }

  .card-grid{
    display:grid;
    grid-template-columns:1fr;
    gap: 1.4rem;
  }
  @media(min-width:640px){ .card-grid{ grid-template-columns: 1fr 1fr; } }
  @media(min-width:1020px){ .card-grid-3{ grid-template-columns: repeat(3,1fr); } }

  .exp-card{
    background: var(--bg-alt);
    padding: 2.1rem 1.8rem;
    display:flex; flex-direction:column; gap:.9rem;
    border-top: 2px solid var(--rose);
  }
  .exp-card h3{ font-size:1.25rem; font-weight:500; }
  .exp-card p{ color: var(--ink-soft); font-size:.92rem; flex:1; }
  .exp-card .meta{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color: var(--taupe); }
  .exp-card .link-underline{ color: var(--rose-dk); align-self:flex-start; }

  .tag-cloud{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.6rem; }
  .tag-cloud li{
    font-size:.85rem;
    padding:.75em 1.2em;
    border:1px solid rgba(247,242,232,.3);
    color: var(--ivory);
    border-radius:1px;
  }
  .group-panel{ padding: 2.6rem 1.8rem; border-radius:2px; }
  @media(min-width:760px){ .group-panel{ padding: 3.2rem 3rem; } }

  .book-layout{ display:grid; grid-template-columns:1fr; gap: 2.6rem; align-items:center; }
  @media(min-width:880px){ .book-layout{ grid-template-columns: 0.8fr 1.2fr; gap:4.5rem; } }
  .book-cover{
    aspect-ratio: 2/3;
    max-width:280px;
    margin-inline:auto;
    position:relative;
    border: 1px solid rgba(247,242,232,.25);
  }
  .book-cover .cover-title{
    position:absolute; inset:0;
    display:flex; flex-direction:column; justify-content:space-between;
    padding: 2rem 1.5rem;
  }
  .book-cover .cover-title .t{ font-family:var(--serif); font-style:italic; color:var(--ivory); font-size:1.4rem; line-height:1.25; }
  .book-cover .cover-title .a{ font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color: rgba(247,242,232,.75); }
  .book-title{
    font-family:var(--serif); font-style:italic; font-weight:400;
    font-size: clamp(2rem, 5.5vw, 3.1rem);
    color: var(--ivory);
  }
  .book-byline{ margin-top:.6rem; color: rgba(247,242,232,.75); font-size:.95rem; }
  .book-copy{ margin-top:1.4rem; color: rgba(247,242,232,.85); max-width:44ch; }

  .capture-form{
    display:flex; flex-direction:column; gap:.9rem; max-width: 420px;
  }
  @media(min-width:520px){
    .capture-form.row{ flex-direction:row; align-items:stretch; max-width:520px; }
  }
  .field{
    flex:1;
    padding: 1em 1.1em;
    min-height: 44px;
    background: transparent;
    border: 1px solid currentColor;
    color: inherit;
    font-family: var(--sans);
    font-size: .95rem;
    border-radius:1px;
  }
  .sr-only{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  .field::placeholder{ color: currentColor; opacity:.55; }
  .capture-form .btn{ flex-shrink:0; }
  .form-note{ font-size:.74rem; opacity:.6; max-width:40ch; }
  .form-pending{
    display:none;
    font-family: var(--serif); font-style:italic;
    font-size:.95rem;
    max-width:40ch;
  }
  .form-pending.show{ display:block; }
  .form-pending a{ text-decoration:underline; text-underline-offset:2px; }
  .capture-form.submitted .field,
  .capture-form.submitted button[type="submit"]{ display:none; }

  .enquiry-form{
    display:grid; grid-template-columns:1fr; gap:1rem;
    max-width:480px; margin-inline:auto; text-align:left;
  }
  @media(min-width:640px){ .enquiry-form{ grid-template-columns:1fr 1fr; } }
  .enquiry-form .f-full{ grid-column:1 / -1; }
  .enquiry-form label{ display:block; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.5rem; opacity:.75; }
  .enquiry-form select,
  .enquiry-form textarea{
    width:100%; padding:1em 1.1em; min-height:44px;
    background:transparent; border:1px solid currentColor; color:inherit;
    font-family:var(--sans); font-size:.95rem; border-radius:1px;
  }
  .enquiry-form textarea{ resize:vertical; min-height:88px; }
  .radio-row{ display:flex; gap:1.4rem; flex-wrap:wrap; }
  .radio-row label{ display:flex; align-items:center; gap:.5em; text-transform:none; letter-spacing:normal; font-size:.9rem; opacity:1; margin:0; }
  .radio-row input{ width:16px; height:16px; accent-color: var(--gold); }
  .enquiry-form select option{ color: var(--charcoal); }

  .journal-grid{ display:grid; grid-template-columns:1fr; gap:2.2rem; }
  @media(min-width:760px){ .journal-grid{ grid-template-columns: repeat(3,1fr); } }
  .journal-card .j-thumb{ aspect-ratio: 4/3; margin-bottom:1.1rem; }
  .journal-card .j-topic{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
  .journal-card h3{ margin-top:.5rem; font-size:1.2rem; font-weight:500; }
  .journal-card p{ margin-top:.5rem; color:var(--ink-soft); font-size:.9rem; }

  .insta-strip{ display:grid; grid-template-columns: repeat(3,1fr); gap:2px; }
  @media(min-width:640px){ .insta-strip{ grid-template-columns: repeat(5,1fr); } }
  .insta-strip.insta-strip-3{ grid-template-columns: repeat(3,1fr) !important; }
  .insta-strip .tile{ aspect-ratio:1; }

  footer{
    padding-block: 4rem 3rem;
    color: rgba(247,242,232,.72);
  }
  .footer-word{ font-family:var(--serif); font-size:1.3rem; color:var(--ivory); }
  .footer-line{ font-family:var(--serif); font-style:italic; color: rgba(247,242,232,.65); margin-top:.5rem; }
  .footer-cols{ display:flex; flex-direction:column; gap:2.2rem; margin-top:2.6rem; }
  @media(min-width:700px){ .footer-cols{ flex-direction:row; justify-content:space-between; } }
  .footer-col h4{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ivory); font-family:var(--sans); font-weight:600; margin-bottom:.9rem; }
  .footer-col ul{ display:flex; flex-direction:column; gap:.55rem; }
  .footer-col a{ font-size:.85rem; opacity:.8; transition:opacity .25s; }
  .footer-col a:hover{ opacity:1; }
  .footer-base{
    margin-top:3rem; padding-top:1.6rem; border-top:1px solid rgba(247,242,232,.14);
    display:flex; flex-direction:column; gap:.8rem; font-size:.72rem; opacity:.6;
  }
  @media(min-width:700px){ .footer-base{ flex-direction:row; justify-content:space-between; } }

  .legal-block{ font-size:.82rem; color: rgba(247,242,232,.62); max-width:60ch; margin-top:1rem; line-height:1.75; }

  .kicker-rule{ display:flex; align-items:center; gap:.9rem; }
  .kicker-rule::after{ content:""; height:1px; flex:1; background:var(--line); }
  .full-media{ width:100%; }
  .h-sm{ font-size: clamp(1.6rem,4vw,2.2rem); }

  .photo{
    --img: none;
    background-image: var(--img), var(--fallback, none);
    background-size: cover, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
  }

  .mark-divider{
    display:flex; align-items:center; gap:1.1rem;
    max-width: var(--wide-w); margin-inline:auto;
    padding-block: 2.6rem;
  }
  .mark-divider::before, .mark-divider::after{ content:""; height:1px; flex:1; background:var(--line); }
  .mark-divider .mark{ width:22px; height:22px; color: var(--stone); flex-shrink:0; }
  .atmos-night{
    --fallback: radial-gradient(110% 80% at 85% 0%, rgba(216,190,122,.22), transparent 55%), linear-gradient(160deg, #34324A 0%, #25243A 55%, #1C1A24 100%);
    background: var(--fallback);
  }
  .ios-layout{ display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
  @media(min-width:900px){ .ios-layout{ grid-template-columns: 1.1fr .9fr; gap:5rem; } }
  .ios-title{ font-family:var(--serif); font-weight:400; letter-spacing:.14em; font-size:clamp(2.2rem,6vw,3.4rem); color:var(--ivory); line-height:1; }
  .ios-title b{ font-weight:400; color:#D8BE7A; }
  .ios-q{ font-family:var(--serif); font-style:italic; color:#EFE3C8; font-size:clamp(1.15rem,3vw,1.45rem); line-height:1.45; margin-top:1.4rem; max-width:30ch; }
  .ios-copy{ margin-top:1.4rem; color:rgba(247,242,232,.82); max-width:48ch; display:flex; flex-direction:column; gap:1rem; }
  .ios-meta{ margin-top:1.6rem; display:flex; flex-wrap:wrap; gap:.5rem .9rem; }
  .ios-meta li{ font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:rgba(247,242,232,.7); padding:.5em .9em; border:1px solid rgba(247,242,232,.22); border-radius:1px; }
  .ios-actions{ margin-top:2.2rem; display:flex; flex-wrap:wrap; align-items:center; gap:1.1rem 1.6rem; }
  .ios-actions .btn-primary{ background:var(--ivory); color:var(--charcoal); }
  .ios-actions .btn-primary:hover{ background:#EFE3C8; }
  .ios-stages{ list-style:none; counter-reset:st; border-left:1px solid rgba(216,190,122,.4); padding-left:1.6rem; display:flex; flex-direction:column; gap:1.15rem; }
  .ios-stages li{ counter-increment:st; position:relative; }
  .ios-stages li::before{ content:""; position:absolute; left:calc(-1.6rem - 4px); top:.55em; width:7px; height:7px; border-radius:50%; background:#D8BE7A; }
  .ios-stages b{ display:block; font-family:var(--serif); font-weight:500; color:var(--ivory); font-size:1.1rem; letter-spacing:.03em; }
  .ios-stages b::before{ content: counter(st) " · "; font-style:italic; color:rgba(247,242,232,.45); font-weight:400; }
  .ios-stages span{ display:block; color:rgba(247,242,232,.68); font-size:.9rem; }
  .ios-note{ margin-top:2.4rem; font-size:.78rem; color:rgba(247,242,232,.55); max-width:60ch; }
  /* Blossom additions */
  .atmos-dawn{
    --fallback: radial-gradient(110% 85% at 78% 16%, rgba(255,242,234,.95), transparent 55%), linear-gradient(155deg, #F3DAD2 0%, #E0ABA4 34%, #BC7F74 64%, #6E4A48 100%);
    background: var(--fallback);
  }
  .atmos-petal{
    --fallback: radial-gradient(120% 100% at 50% 0%, #FBF2EF 0%, #F1DCD6 55%, #E1BDB4 100%);
    background: var(--fallback);
  }
  .atmos-blush{
    --fallback: radial-gradient(130% 90% at 80% 10%, rgba(255,228,226,.35), transparent 55%), linear-gradient(160deg, #C48D8C 0%, #9E5F66 52%, #6B3D47 100%);
    background: var(--fallback);
  }
  .atmos-forest{
    --fallback: radial-gradient(120% 90% at 20% 0%, rgba(255,250,235,.35), transparent 55%), linear-gradient(150deg, #B3BFA2 0%, #75856A 50%, #3F4A3A 100%);
    background: var(--fallback);
  }
  .mandala{ display:block; color: var(--gold); }
  .mandala .dot{ fill: currentColor; stroke: none; }
  .mandala path, .mandala circle{ fill:none; stroke:currentColor; stroke-width:.7; }
  .hero-mandala{
    position:absolute; z-index:1; pointer-events:none;
    width: min(620px, 110vw); height: min(620px, 110vw);
    right: -10%; top: 7%;
    color: rgba(236,206,128,.62);
    animation: turn 240s linear infinite;
  }
  @keyframes turn{ to{ transform: rotate(360deg); } }
  .petals{ position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
  .petal{
    position:absolute; top:-4%;
    width:11px; height:9px; background: var(--blossom);
    border-radius: 80% 0 80% 0; opacity:.85;
    animation: fall linear infinite;
  }
  @keyframes fall{
    0%{ transform: translate(0,14vh) rotate(0deg); opacity:0; }
    8%{ opacity:.85; }
    100%{ transform: translate(-90px, 105vh) rotate(420deg); opacity:.2; }
  }
  @media (prefers-reduced-motion: reduce){ .petals{ display:none; } .hero-mandala{ animation:none; } }
  .mark-divider .mandala{ width:46px; height:46px; flex-shrink:0; color:#B8953A; }
  .book-mandala{ position:absolute; inset:-18%; width:136%; height:136%; color: rgba(216,190,122,.28); z-index:0; pointer-events:none; }
  .book-cover .cover-title{ z-index:1; }
  .hero-branch{ overflow:visible; position:absolute; z-index:1; pointer-events:none; left:0; top: calc(78px + env(safe-area-inset-top,0px)); width: min(540px, 80vw); height:auto; }
  .contact-mandala{ position:absolute; left:50%; top:50%; width:min(900px,150vw); height:min(900px,150vw); transform:translate(-50%,-50%); color: rgba(216,184,98,.16); pointer-events:none; z-index:0; }
  #contact .wrap{ position:relative; z-index:1; }

/* ==========================================================
   Another Becoming — working version additions (v2)
   Everything above this line is the Blossom master design.
   ========================================================== */

  body{ background: var(--bg); }
  main{ display:block; }
  .skip-link{ position:absolute; left:-999px; top:8px; z-index:200; background:var(--charcoal); color:var(--ivory); padding:.6em 1em; }
  .skip-link:focus{ left:16px; }

  /* nav: experiences panel + solid header on pages without a hero */
  .nav-drop{ position:relative; }
  .nav-drop > button{
    background:none; border:none; cursor:pointer; padding:.3em 0;
    font: inherit; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;
    color: var(--ivory); opacity:.88; display:flex; align-items:center; gap:.4em;
  }
  header.site-nav.solid .nav-drop > button{ color: var(--charcoal); }
  .nav-drop > button::after{ content:""; width:6px; height:6px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform: rotate(45deg) translateY(-2px); }
  .nav-panel{
    position:absolute; top:calc(100% + 14px); left:-24px; min-width:280px;
    background: rgba(var(--ivory-rgb), .98); border:1px solid var(--line);
    box-shadow: 0 24px 48px -28px rgba(42,38,33,.45);
    padding: 1.1rem 1.3rem; display:none; flex-direction:column; gap:.15rem;
  }
  .nav-drop.open .nav-panel{ display:flex; }
  .nav-panel a{ color: var(--charcoal) !important; opacity:1 !important; text-transform:none !important; letter-spacing:0 !important; font-size:.95rem !important; padding:.45em 0 !important; border-bottom:1px solid transparent; display:flex; justify-content:space-between; gap:1rem; }
  .nav-panel a small{ color: var(--taupe); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; }
  .nav-panel a:hover{ color: var(--rose-dk) !important; }
  .nav-panel .np-group{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color: var(--gold); margin-top:.7rem; }
  .nav-panel .np-group:first-child{ margin-top:0; }
  body.no-hero main{ padding-top: calc(76px + env(safe-area-inset-top,0px)); }
  .mobile-panel{ overflow-y:auto; gap:1.1rem; }
  .mobile-panel a{ font-size:1.45rem; }
  .mobile-panel .mp-sub{ font-family: var(--sans); font-style:normal; font-size:.95rem; color: rgba(247,242,232,.75); padding-left:1rem; }
  .mobile-panel .mp-label{ font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:#D8BE7A; margin-top:.6rem; }

  /* reveal: visible without JS; animated only when JS runs */
  .reveal{ opacity:1; transform:none; }
  .js .reveal{ opacity:0; transform: translateY(22px); }
  .js .reveal.in{ opacity:1; transform:none; }

  /* image slots: painted fallback until a real photo exists */
  .slot{ position:relative; }
  .slot-label{
    display:none; position:absolute; right:10px; bottom:10px; z-index:3;
    font-family: var(--sans); font-size:.66rem; letter-spacing:.04em; line-height:1.35;
    color: var(--charcoal); background: rgba(var(--ivory-rgb), .9);
    padding:.45em .7em; border-radius:2px; max-width: calc(100% - 20px); text-align:left;
  }
  body.review .slot:not(.has-img) .slot-label{ display:block; }
  .slot.has-img .slot-ph{ display:none; }

  /* review notes: only visible while reviewing */
  .review-note{
    display:none; margin-block:1rem; padding:.8em 1em; font-size:.82rem; line-height:1.55;
    border:1px dashed var(--rose); background: rgba(241,220,214,.55); color: var(--rose-dk);
    border-radius:2px; max-width:60ch;
  }
  .review-note b{ font-weight:600; }
  .on-dark .review-note, .review-note.on-dark{ background: rgba(247,242,232,.12); color:#F1DCD6; border-color: rgba(241,220,214,.6); }
  body.review .review-note{ display:block; }
  .review-ribbon{
    display:none; position:fixed; left:50%; transform:translateX(-50%); bottom: calc(14px + env(safe-area-inset-bottom,0px)); z-index:150;
    background: var(--charcoal); color: var(--ivory); font-size:.72rem; letter-spacing:.06em;
    padding:.6em 1.1em; border-radius:999px; box-shadow:0 10px 30px -10px rgba(0,0,0,.5); white-space:nowrap;
  }
  body.review .review-ribbon{ display:block; }

  /* page hero (service pages) */
  .page-hero{
    position:relative; color: var(--ivory);
    min-height: min(72svh, 640px);
    display:flex; flex-direction:column; justify-content:flex-end;
    padding-top: calc(110px + env(safe-area-inset-top,0px)); padding-bottom: 3.4rem;
  }
  .page-hero::before{ content:""; position:absolute; inset:0; z-index:1; background: linear-gradient(180deg, rgba(20,17,14,.18) 0%, rgba(20,17,14,.05) 40%, rgba(20,17,14,.62) 100%); }
  .page-hero .ph-inner{ position:relative; z-index:2; max-width: var(--wide-w); margin-inline:auto; width:100%; }
  .page-hero .eyebrow{ color:#E9CF8C; }
  .page-hero h1{ font-weight:400; font-size: clamp(2.3rem, 7vw, 4.2rem); line-height:1.04; margin-top:.8rem; max-width:16ch; }
  .page-hero .ph-line{ font-family: var(--serif); font-style:italic; font-size: clamp(1.1rem, 3vw, 1.45rem); color:#F3E6CC; margin-top:1rem; max-width:34ch; }
  .page-hero .hero-mandala{ width:min(460px,95vw); height:min(460px,95vw); top:auto; bottom:-14%; right:-8%; }
  .page-hero .slot-label{ bottom:14px; }

  /* text sections */
  .prose{ max-width: var(--content-w); margin-inline:auto; color: var(--ink-soft); font-size:1.02rem; display:flex; flex-direction:column; gap:1.1rem; }
  .prose h2{ color: var(--ink); font-size: clamp(1.55rem,4vw,2.1rem); font-weight:400; margin-top:1.4rem; }
  .prose h3{ color: var(--ink); font-size:1.25rem; margin-top:.8rem; }
  .prose ul{ list-style:none; display:flex; flex-direction:column; gap:.55rem; }
  .prose ul li{ position:relative; padding-left:1.3rem; }
  .prose ul li::before{ content:""; position:absolute; left:0; top:.72em; width:6px; height:6px; border-radius:50%; background: var(--rose); }
  .prose a{ color: var(--rose-dk); border-bottom:1px solid currentColor; }
  .prose .lead-big{ font-family: var(--serif); font-style:italic; color: var(--ink); font-size: clamp(1.3rem,3.4vw,1.75rem); line-height:1.45; }
  .split{ display:grid; grid-template-columns:1fr; gap:2.6rem; align-items:center; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:900px){ .split{ grid-template-columns: 1fr 1fr; gap:4.5rem; } .split.flip > :first-child{ order:2; } }
  .media-32{ aspect-ratio:3/2; width:100%; max-width:100%; border-radius:2px; }
  .media-45{ aspect-ratio:4/5; width:100%; max-width:100%; border-radius:2px; }
  .media-11{ aspect-ratio:1/1; width:100%; max-width:100%; border-radius:2px; }
  .media-1610{ aspect-ratio:16/10; width:100%; max-width:100%; }

  /* three movements */
  .movements{ display:grid; grid-template-columns:1fr; gap:1px; background: var(--line); border-block:1px solid var(--line); max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:860px){ .movements{ grid-template-columns: repeat(3,1fr); } }
  .movement{ background: var(--bg); padding: 2.4rem 0; display:flex; flex-direction:column; gap:.7rem; }
  @media(min-width:860px){ .movement{ padding: 2.8rem 2.2rem; } }
  .movement .mv-k{ font-family: var(--serif); font-style:italic; color: var(--rose); font-size:1rem; }
  .movement h3{ font-size:1.55rem; font-weight:400; }
  .movement p{ color: var(--ink-soft); font-size:.97rem; }

  /* offers + prices */
  .offers{ display:grid; grid-template-columns:1fr; gap:1.4rem; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:760px){ .offers{ grid-template-columns: repeat(2,1fr); } }
  @media(min-width:1080px){ .offers.three{ grid-template-columns: repeat(3,1fr); } }
  .offer{
    position:relative; background: #FBF7F0; border:1px solid var(--line); padding: 2.2rem 1.9rem 2rem;
    display:flex; flex-direction:column; gap:.9rem;
  }
  .offer::before{ content:""; position:absolute; left:1.9rem; right:1.9rem; top:0; height:2px; background: linear-gradient(90deg, var(--rose), var(--gold)); }
  .offer.feature{ background: linear-gradient(180deg, #FBF1EE, #FBF7F0); }
  .offer .o-k{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color: var(--taupe); }
  .offer h3{ font-size:1.45rem; font-weight:400; }
  .offer p{ color: var(--ink-soft); font-size:.95rem; }
  .offer ul{ display:flex; flex-direction:column; gap:.4rem; font-size:.92rem; color: var(--ink-soft); }
  .offer ul li{ padding-left:1.1rem; position:relative; }
  .offer ul li::before{ content:"·"; position:absolute; left:.2rem; color: var(--rose); font-weight:600; }
  .price-line{ display:flex; align-items:baseline; flex-wrap:wrap; gap:.3rem .8rem; margin-top:auto; padding-top:1rem; border-top:1px solid var(--line); }
  .price{ font-family: var(--serif); font-size:1.9rem; color: var(--ink); font-variant-numeric: lining-nums tabular-nums; }
  .price-meta{ font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color: var(--taupe); }
  .price-note{ font-family: var(--serif); font-style:italic; font-size:.95rem; color: var(--rose-dk); }
  .offer .btn{ align-self:flex-start; margin-top:.4rem; }
  .fine-print{ max-width: var(--wide-w); margin: 1.6rem auto 0; font-size:.82rem; color: var(--taupe); }

  /* online band */
  .online-band{ max-width: var(--wide-w); margin-inline:auto; border-top:1px solid var(--line); padding-top:3.4rem; }

  /* steps / safety */
  .note-panel{ max-width: var(--wide-w); margin-inline:auto; background:#F6EEE6; border:1px solid var(--line); padding: 2rem 1.6rem; }
  @media(min-width:760px){ .note-panel{ padding: 2.6rem 2.8rem; } }
  .note-panel h3{ font-size:1.3rem; font-weight:400; }
  .note-panel p, .note-panel li{ color: var(--ink-soft); font-size:.95rem; }
  .cols-2{ display:grid; grid-template-columns:1fr; gap:1.4rem 3rem; margin-top:1.2rem; }
  @media(min-width:760px){ .cols-2{ grid-template-columns:1fr 1fr; } }
  .checklist li{ position:relative; padding-left:1.5rem; margin-bottom:.5rem; }
  .checklist li::before{ content:""; position:absolute; left:0; top:.55em; width:9px; height:9px; border:1px solid var(--rose); border-radius:50%; }

  /* FAQ */
  .faq{ max-width: var(--content-w); margin-inline:auto; border-top:1px solid var(--line); }
  .faq details{ border-bottom:1px solid var(--line); padding: 1.15rem 0; }
  .faq summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:1rem; font-family: var(--serif); font-size:1.15rem; color: var(--ink); }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary::after{ content:"+"; font-family: var(--sans); color: var(--rose); font-size:1.3rem; line-height:1; }
  .faq details[open] summary::after{ content:"–"; }
  .faq details p{ margin-top:.7rem; color: var(--ink-soft); font-size:.97rem; }

  /* testimonials */
  .testimonials{ display:grid; grid-template-columns:1fr; gap:1.4rem; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:860px){ .testimonials{ grid-template-columns: repeat(3,1fr); } }
  .t-card{ position:relative; padding: 2.4rem 1.8rem 1.8rem; display:flex; flex-direction:column; gap:1.1rem; }
  .t-card::before{ content:"\201C"; position:absolute; top:.2rem; left:1.4rem; font-family: var(--serif); font-size:3.6rem; line-height:1; color: var(--rose); opacity:.55; }
  .t-card blockquote{ margin:0; font-family: var(--serif); font-style:italic; font-size:1.12rem; line-height:1.6; color: var(--ink); }
  .t-card .t-who{ font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color: var(--taupe); }
  .t-card.placeholder{ border:1px dashed rgba(156,90,60,.45); background: rgba(251,242,239,.6); }
  .t-card.placeholder blockquote{ color: var(--taupe); font-size:1rem; }
  .t-tag{ align-self:flex-start; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color: var(--rose-dk); border:1px solid var(--rose); padding:.3em .6em; border-radius:2px; }

  /* collaborations band */
  .collab-grid{ display:grid; grid-template-columns:1fr; gap:1.4rem; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:860px){ .collab-grid{ grid-template-columns:1fr 1fr; } }
  .collab{ padding: 2.4rem 1.9rem; border:1px solid rgba(247,242,232,.18); display:flex; flex-direction:column; gap:.9rem; }
  .collab .c-k{ font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:#D8BE7A; }
  .collab h3{ color: var(--ivory); font-size:1.7rem; font-weight:400; letter-spacing:.04em; }
  .collab p{ color: rgba(247,242,232,.8); font-size:.96rem; }
  .collab .link-underline{ color: var(--ivory); align-self:flex-start; margin-top:auto; }
  .with-line{ font-size:.78rem; letter-spacing:.08em; color: rgba(247,242,232,.65); }
  .with-line a{ border-bottom:1px solid currentColor; }
  .person-card{ display:grid; grid-template-columns: 96px 1fr; gap:1.2rem; align-items:center; max-width: var(--content-w); margin-inline:auto; }
  .person-card .media-11{ width:96px; border-radius:50%; overflow:hidden; }
  .person-card .slot-label{ right:-6px; bottom:-6px; font-size:.58rem; }
  .person-card h3{ font-size:1.25rem; font-weight:500; }
  .person-card p{ font-size:.92rem; color: var(--ink-soft); }

  /* events */
  .events{ max-width: var(--wide-w); margin-inline:auto; display:flex; flex-direction:column; border-top:1px solid var(--line); }
  .event{ display:grid; grid-template-columns: 84px 1fr; gap:1.2rem 1.6rem; padding:1.6rem 0; border-bottom:1px solid var(--line); align-items:start; }
  @media(min-width:760px){ .event{ grid-template-columns: 110px 1fr auto; align-items:center; } }
  .event .ev-date{ font-family: var(--serif); line-height:1.1; color: var(--rose-dk); }
  .event .ev-date b{ display:block; font-size:2.1rem; font-weight:400; color: var(--ink); }
  .event .ev-date span{ font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; }
  .event h3{ font-size:1.3rem; font-weight:400; }
  .event p{ font-size:.92rem; color: var(--ink-soft); margin-top:.3rem; }
  .event .btn{ grid-column: 2; justify-self:start; }
  @media(min-width:760px){ .event .btn{ grid-column:auto; } }
  .events-empty{ padding:1.6rem 0; font-family: var(--serif); font-style:italic; color: var(--ink-soft); }

  /* forms */
  .form-card{ max-width: 640px; margin-inline:auto; background:#FBF7F0; border:1px solid var(--line); padding: 2.2rem 1.4rem; }
  @media(min-width:640px){ .form-card{ padding: 2.8rem 2.6rem; } }
  .ab-form{ display:grid; grid-template-columns:1fr; gap:1.1rem; }
  @media(min-width:640px){ .ab-form{ grid-template-columns:1fr 1fr; } }
  .ab-form .full{ grid-column:1/-1; }
  .ab-form label.lbl{ display:block; font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color: var(--taupe); margin-bottom:.45rem; }
  .ab-form input[type=text], .ab-form input[type=email], .ab-form input[type=tel], .ab-form select, .ab-form textarea{
    width:100%; min-height:48px; padding: .85em 1em; font: 16px/1.4 var(--sans); color: var(--ink);
    background: #FFFDF9; border:1px solid rgba(42,38,33,.22); border-radius:2px; -webkit-appearance:none; appearance:none;
  }
  .ab-form select{ background-image: linear-gradient(45deg, transparent 50%, var(--taupe) 50%), linear-gradient(135deg, var(--taupe) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size:5px 5px; background-repeat:no-repeat; padding-right:2.4em; }
  .ab-form textarea{ min-height:120px; resize:vertical; }
  .ab-form input:focus, .ab-form select:focus, .ab-form textarea:focus{ outline:2px solid var(--rose); outline-offset:1px; border-color: transparent; }
  .ab-form .hint{ font-size:.8rem; color: var(--taupe); margin-top:.4rem; }
  .ab-form .check{ display:flex; gap:.7rem; align-items:flex-start; font-size:.9rem; color: var(--ink-soft); }
  .ab-form .check input{ width:20px; height:20px; margin-top:.15rem; accent-color: var(--rose-dk); flex-shrink:0; }
  .ab-form .check a{ color: var(--rose-dk); border-bottom:1px solid currentColor; }
  .ab-form .radios{ display:flex; gap:1.4rem; flex-wrap:wrap; }
  .ab-form .radios label{ display:flex; gap:.5rem; align-items:center; font-size:.95rem; }
  .ab-form .radios input{ width:18px; height:18px; accent-color: var(--rose-dk); }
  .ab-form .btn{ justify-self:start; }
  .ab-form .form-error{ display:none; color: var(--rose-dk); font-size:.88rem; }
  .ab-form.has-error .form-error{ display:block; }
  .hp-field{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
  .tabs-intro{ display:flex; gap:.8rem; flex-wrap:wrap; justify-content:center; margin-bottom:2rem; }

  /* capture forms on dark */
  .capture-form .field{ font-size:16px; }

  /* big CTA band */
  .cta-band{ text-align:center; }
  .cta-band .hero-line{ color:#EFE3C8; }
  .cta-band h2{ color: var(--ivory); font-size: clamp(1.7rem,4.6vw,2.6rem); margin-top:.6rem; }
  .cta-band p.lede{ margin: 1.2rem auto 0; color: rgba(247,242,232,.78); }
  .cta-band .btn{ margin-top:2rem; }

  /* footer business info */
  .biz-info{ margin-top:1.4rem; font-size:.8rem; color: rgba(247,242,232,.62); line-height:1.7; }
  .biz-info [data-email-live]{ display:none; }
  body.email-live .biz-info [data-email-live]{ display:inline; }
  body.email-live [data-email-pending]{ display:none; }

  /* homepage: signature band */
  .sig-band .price-quiet{ font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color: var(--taupe); margin-top:1rem; }
  .pathway a.card-link::after{ content:""; position:absolute; inset:0; }
  .pathway{ position:relative; }
  .pathway:hover h3{ color: var(--rose-dk); }
  .p-thumb{ width:96px; height:96px; }
  .p-thumb.slot .slot-label{ font-size:.54rem; right:-4px; bottom:-4px; padding:.3em .45em; }

  /* thank-you */
  .ty{ min-height: 82svh; display:flex; flex-direction:column; justify-content:center; text-align:center; color: var(--ivory); position:relative; }
  .ty .wrap{ position:relative; z-index:2; }
  .ty h1{ font-weight:400; font-size: clamp(2.2rem,6vw,3.6rem); }
  .ty p{ color: rgba(247,242,232,.82); margin-top:1.2rem; }

  /* legal pages */
  .legal h1{ font-size: clamp(2rem,5vw,3rem); font-weight:400; color: var(--ink); }
  .legal .updated{ font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color: var(--taupe); }
  .legal table{ width:100%; border-collapse:collapse; font-size:.92rem; }
  .legal td, .legal th{ text-align:left; padding:.7rem .6rem; border-bottom:1px solid var(--line); vertical-align:top; }
  .table-wrap{ overflow-x:auto; }

  @media (max-width: 480px){
    .section-pad{ padding-block: 4.6rem; }
    .offer{ padding: 2rem 1.4rem 1.7rem; }
    .offer::before{ left:1.4rem; right:1.4rem; }
    .btn{ white-space:normal; text-align:center; }
  }
  .biz-email{ display:none; }
  body.email-live .biz-email{ display:inline; }
  /* gutters inside full-bleed sections (phones) */
  .bleed > .wrap, .bleed > .wrap-wide, .hero-inner, .ty .wrap{ padding-inline: max(20px, env(safe-area-inset-left,0px)); }
  .founder-layout{ display:grid; gap:2.2rem; }
  .hero-actions{ flex-direction:row; flex-wrap:wrap; align-items:center; gap:1rem 1.6rem; }
  .book-cover{ width:100%; }
  .review-ribbon{ left:16px; transform:none; }
  header.site-nav:not(.solid) .nav-cta{ color: var(--ivory); border-color: rgba(247,242,232,.6); }
  header.site-nav:not(.solid) .nav-cta:hover{ background: rgba(247,242,232,.12); }
  .page-hero{ padding-top: calc(140px + env(safe-area-inset-top,0px)); }
  .page-hero::before{ background: linear-gradient(180deg, rgba(20,17,14,.34) 0%, rgba(20,17,14,.06) 32%, rgba(20,17,14,.62) 100%); }

/* ==========================================================
   v2 · typography: Cormorant Garamond + DM Sans
   ========================================================== */
  :root{
    --serif: "Cormorant Garamond", "Cormorant", "Garamond", "Iowan Old Style", ui-serif, Georgia, serif;
    --sans: "DM Sans", "Avenir Next", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;
  }
  body{ font-size: 16.5px; line-height: 1.75; font-weight: 400; color: var(--ink); }
  h1,h2,h3,h4{ font-weight: 500; letter-spacing: 0; line-height: 1.18; }
  .eyebrow{ font-weight: 500; letter-spacing: .2em; font-size: .7rem; }
  .lede{ font-size: 1.04rem; line-height: 1.75; }

  .hero-word{ font-weight: 400; font-size: clamp(3.1rem, 11.5vw, 6.4rem); line-height: .98; letter-spacing: .005em; }
  .hero-line{ font-size: clamp(1.3rem, 3.6vw, 1.75rem); font-weight: 400; }
  .hero-copy{ font-size: 1rem; line-height: 1.75; max-width: 40ch; }
  .nav-word{ font-size: 1.12rem; font-weight: 500; letter-spacing: .1em; }

  .h-sm{ font-size: clamp(1.55rem, 3.2vw, 2.05rem); font-weight: 500; }
  .philosophy h2{ font-size: clamp(1.6rem, 3.6vw, 2.25rem); font-weight: 500; }
  .page-hero h1{ font-size: clamp(2.25rem, 5.6vw, 3.6rem); font-weight: 400; line-height: 1.06; max-width: 18ch; }
  .page-hero .ph-line{ font-size: clamp(1.15rem, 2.8vw, 1.45rem); }
  .book-title{ font-size: clamp(1.9rem, 4.6vw, 2.75rem); }
  .founder-quote{ font-size: clamp(1.3rem, 3vw, 1.65rem); line-height: 1.5; font-weight: 400; }
  .prose{ font-size: 1rem; line-height: 1.8; }
  .prose h2{ font-size: clamp(1.45rem, 3.2vw, 1.85rem); font-weight: 500; }
  .prose h3{ font-size: 1.25rem; }
  .prose .lead-big{ font-size: clamp(1.3rem, 3vw, 1.6rem); line-height: 1.5; font-weight: 400; }
  .offer h3, .movement h3{ font-size: 1.5rem; font-weight: 500; }
  .collab h3{ font-size: 1.75rem; }
  .ios-title{ font-weight: 500; }
  .t-card blockquote{ font-size: 1.2rem; }
  .faq summary{ font-size: 1.2rem; font-weight: 500; }
  .event h3{ font-size: 1.35rem; font-weight: 500; }
  .footer-word{ font-size: 1.35rem; font-weight: 500; }
  .signoff{ font-size: 1.4rem !important; }
  .cta-band h2{ font-size: clamp(1.6rem, 3.8vw, 2.3rem); font-weight: 500; }
  @media (max-width: 600px){
    .h-sm{ font-size: 1.5rem; }
    .philosophy h2{ font-size: 1.55rem; }
    .page-hero h1{ font-size: 2.15rem; }
    .prose h2{ font-size: 1.4rem; }
    .offer h3, .movement h3{ font-size: 1.38rem; }
    body{ font-size: 16px; }
  }

/* ==========================================================
   v2 · layout additions
   ========================================================== */
  /* welcome */
  .welcome{ max-width: 720px; margin-inline:auto; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1.25rem; }
  .welcome h2{ font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight:400; }
  .welcome .w-open{ font-family: var(--serif); font-style: italic; font-size: clamp(1.25rem, 2.8vw, 1.5rem); color: var(--rose-dk); line-height:1.5; max-width: 30ch; }
  .welcome p{ color: var(--ink-soft); max-width: 58ch; }
  .welcome .w-close{ font-family: var(--serif); font-style: italic; font-size: clamp(1.2rem, 2.6vw, 1.4rem); color: var(--ink); line-height:1.55; max-width: 34ch; }
  .welcome .w-rule{ width: 46px; height: 46px; color:#B8953A; }

  /* path cards */
  .paths{ display:grid; grid-template-columns:1fr; gap: 1.6rem; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:640px){ .paths{ grid-template-columns: 1fr 1fr; } }
  @media(min-width:1000px){ .paths{ grid-template-columns: repeat(3,1fr); gap: 2rem; } }
  .path{ position:relative; display:flex; flex-direction:column; background:#FBF7F0; border:1px solid var(--line); transition: transform .4s ease, box-shadow .4s ease; }
  .path:hover{ transform: translateY(-3px); box-shadow: 0 22px 40px -30px rgba(126,70,48,.5); }
  .path .media-43{ aspect-ratio: 4/3; width:100%; }
  .path-body{ padding: 1.5rem 1.5rem 1.7rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
  .path-k{ font-family: var(--serif); font-style: italic; color: var(--rose); font-size: 1rem; }
  .path h3{ font-size: 1.6rem; font-weight:500; }
  .path p{ color: var(--ink-soft); font-size: .95rem; }
  .path .link-underline{ margin-top:auto; padding-top:.6rem; align-self:flex-start; color: var(--rose-dk); }
  .path a.cover{ position:absolute; inset:0; z-index:2; }
  .path a.cover span{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

  /* elegant empty image slots */
  .slot{ overflow:hidden; }
  .slot-mark{ position:absolute; left:50%; top:50%; width:min(38%, 120px); aspect-ratio:1; transform: translate(-50%,-50%); color: rgba(255,248,236,.55); pointer-events:none; z-index:1; }
  .slot:not(.has-img)::after{ content:""; position:absolute; inset:10px; border:1px solid rgba(255,248,236,.32); pointer-events:none; z-index:1; }
  .slot.has-img .slot-mark{ display:none; }
  .hero .slot-mark, .page-hero .slot-mark, .book-cover .slot-mark{ display:none; }
  .hero.slot::after, .page-hero.slot::after, .book-cover.slot::after{ display:none; }

  /* format chooser */
  .ways{ display:grid; grid-template-columns:1fr; gap:1.2rem; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:760px){ .ways{ grid-template-columns:1fr 1fr; } }
  .way{ display:flex; flex-direction:column; gap:.5rem; padding: 1.8rem 1.6rem; border:1px solid var(--line); background: rgba(251,247,240,.75); }
  .way .o-k{ font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color: var(--gold); }
  .way h3{ font-size: 1.45rem; font-weight:500; }
  .way p{ color: var(--ink-soft); font-size:.95rem; }
  .way .link-underline{ align-self:flex-start; color: var(--rose-dk); margin-top:.4rem; }

  .closing-words{ max-width: 680px; margin-inline:auto; text-align:center; }
  .closing-words p{ font-family: var(--serif); font-style: italic; font-size: clamp(1.3rem, 3vw, 1.7rem); line-height:1.5; color: var(--ink); }
  .closing-words p + p{ margin-top:.9rem; font-size: clamp(1.15rem, 2.6vw, 1.4rem); color: var(--rose-dk); }

  .experience-note{ max-width: var(--content-w); margin-inline:auto; }
  .experience-note details{ border:1px solid var(--line); background:#FBF7F0; padding: 1.1rem 1.4rem; }
  .experience-note summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:1rem; font-family: var(--serif); font-size:1.25rem; font-weight:500; color: var(--ink); }
  .experience-note summary::-webkit-details-marker{ display:none; }
  .experience-note summary::after{ content:"+"; font-family: var(--sans); color: var(--rose); }
  .experience-note details[open] summary::after{ content:"–"; }
  .experience-note details p{ margin-top:.8rem; color: var(--ink-soft); font-size:.96rem; }

  /* price on enquiry */
  .enquiry-line{ display:flex; flex-wrap:wrap; gap:.3rem .8rem; align-items:baseline; margin-top:auto; padding-top:1rem; border-top:1px solid var(--line); }
  .enquiry-line .el-a{ font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--ink); }
  .enquiry-line .el-b{ font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color: var(--taupe); }

  /* qualifications */
  .quals{ display:grid; grid-template-columns:1fr; gap:1px; background: var(--line); border:1px solid var(--line); max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:760px){ .quals{ grid-template-columns: repeat(4,1fr); } }
  .qual{ background:#FBF7F0; padding: 1.6rem 1.4rem; display:flex; flex-direction:column; gap:.4rem; }
  .qual b{ font-family: var(--serif); font-weight:500; font-size:1.3rem; color: var(--ink); line-height:1.25; }
  .qual span{ font-size:.86rem; color: var(--ink-soft); }
  .practice-note{ max-width: var(--wide-w); margin: 1.4rem auto 0; display:grid; grid-template-columns:1fr; gap:1rem; }
  @media(min-width:760px){ .practice-note{ grid-template-columns: 1fr 1fr; } }
  .practice-note > div{ padding: 1.4rem; border-left:2px solid var(--rose); background: rgba(241,220,214,.4); }
  .practice-note h4{ font-family: var(--serif); font-size:1.2rem; font-weight:500; }
  .practice-note p{ font-size:.92rem; color: var(--ink-soft); margin-top:.35rem; }

  /* gatherings list */
  .offer-kinds{ max-width: var(--wide-w); margin-inline:auto; display:grid; grid-template-columns:1fr; gap:1px; background: var(--line); border-block:1px solid var(--line); }
  @media(min-width:760px){ .offer-kinds{ grid-template-columns: 1fr 1fr; } }
  .kind{ background: var(--bg); padding: 1.5rem 0; display:flex; justify-content:space-between; gap:1rem; align-items:baseline; }
  @media(min-width:760px){ .kind{ padding: 1.6rem 1.8rem; } }
  .kind h3{ font-size:1.3rem; font-weight:500; }
  .kind p{ font-size:.9rem; color: var(--ink-soft); }
  .kind .k-status{ flex-shrink:0; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color: var(--rose-dk); border:1px solid rgba(180,111,114,.5); padding:.3em .6em; border-radius:2px; }

  /* footer v2 */
  .site-footer{ padding-block: 3.6rem 2.4rem; }
  .foot-grid{ display:grid; grid-template-columns:1fr; gap: 2rem; }
  @media(min-width:860px){ .foot-grid{ grid-template-columns: 1.2fr 1fr 1fr; gap: 3rem; } }
  .foot-founder{ margin-top: 1.4rem; color: var(--ivory); font-family: var(--serif); font-size: 1.15rem; display:flex; flex-direction:column; }
  .foot-founder span{ font-family: var(--sans); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color: rgba(247,242,232,.6); margin-top:.2rem; }
  .foot-contact, .foot-links{ display:flex; flex-direction:column; gap:.55rem; font-size:.9rem; }
  .foot-contact a, .foot-links a{ color: rgba(247,242,232,.82); }
  .foot-contact a:hover, .foot-links a:hover{ color: var(--ivory); }
  .foot-contact [data-email-live]{ display:none; color: var(--ivory); font-size: 1rem; }
  body.email-live .foot-contact [data-email-live]{ display:inline; }
  .foot-address{ color: rgba(247,242,232,.6); font-size:.82rem; }
  .footer-base a{ text-decoration: underline; text-underline-offset: 2px; }

  /* testimonials placeholders only in preview */
  .t-section[data-placeholders]{ display:none; }
  body.show-placeholders .t-section[data-placeholders]{ display:block; }
  .founder-portrait .slot-mark{ inset:auto; left:50%; top:50%; width:min(38%,120px); height:auto; }

  /* ---------- v3: real photographs ---------- */
  .realpic{ margin:0; position:relative; overflow:hidden; border-radius:2px; background:var(--blush); }
  .realpic picture, .realpic img{ display:block; width:100%; height:100%; }
  .realpic img{ object-fit:cover; }
  .realpic.media-43{ aspect-ratio:4/3; width:100%; }
  .realpic.tile{ aspect-ratio:1; }
  .realpic.media-1610{ aspect-ratio:16/10; width:100%; }
  .realpic.framed{ box-shadow: 0 0 0 1px rgba(179,146,47,.35), 0 24px 60px -30px rgba(80,50,40,.45); }
  .realpic.framed::after{ content:""; position:absolute; inset:10px; border:1px solid rgba(247,242,232,.55); pointer-events:none; }
  .founder-portrait.realpic{ max-width:440px; width:100%; margin-inline:auto; }
  .about-portrait .realpic{ max-width:480px; margin-inline:auto; }
  .photo-duo{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:900px){ .photo-duo{ gap:1.6rem; } }
  .photo-duo .realpic:nth-child(2){ margin-top:2.4rem; }
  .split .realpic.media-45{ max-width:460px; margin-inline:auto; }
  .stack-photo{ margin-top:2rem; max-width:420px; }

  /* ---------- v3: Words from the Heart ---------- */
  .t-heart{ background: linear-gradient(180deg, #FBF7F0 0%, #F8EBE6 100%); position:relative; }
  .t-heart .t-mark{ width:34px; height:34px; margin:0 auto 1.1rem; opacity:.75; }
  .t-intro{ max-width:44ch; margin:1rem auto 0; text-align:center; }
  .testimonials.t-cols-1{ max-width:640px; grid-template-columns:1fr !important; }
  .testimonials.t-cols-2{ max-width:900px; }
  @media(min-width:860px){ .testimonials.t-cols-2{ grid-template-columns: repeat(2,1fr); } }
  .t-card.heart{ background: rgba(255,252,247,.78); border:1px solid rgba(179,146,47,.28); border-radius:2px; padding: 2.8rem 2rem 2rem; }
  .t-card.heart::before{ content:"\201C"; color: var(--gold); opacity:.5; font-size:3rem; top:.5rem; left:1.6rem; }
  .t-card.heart::after{ content:""; position:absolute; left:2rem; right:2rem; bottom:0; height:1px; background: linear-gradient(90deg, transparent, rgba(179,146,47,.55), transparent); }
  .t-card.heart blockquote p{ font-size:1.06rem; line-height:1.7; }
  .t-card figcaption{ display:flex; flex-direction:column; gap:.25rem; margin-top:auto; }
  .t-name{ font-family: var(--serif); font-size:1.12rem; color: var(--ink); letter-spacing:.02em; }
  .t-card.placeholder{ display:none; }
  body.show-placeholders .t-card.placeholder{ display:flex; border-style:dashed; }
  .t-note{ max-width: var(--wide-w); margin:2rem auto 0; text-align:center; font-size:.78rem; color: var(--taupe); }

  /* video testimonial: nothing loads until play is pressed */
  .video-card{ display:none; max-width:420px; margin:2.6rem auto 0; }
  .video-card.ready{ display:block; }
  body.show-placeholders .video-card{ display:block; }
  .video-play, .video-card video{ display:block; width:100%; aspect-ratio:9/16; max-height:72vh; border-radius:2px; border:1px solid rgba(179,146,47,.35); background:#2A2621 center/cover no-repeat; }
  .video-card.landscape .video-play, .video-card.landscape video{ aspect-ratio:16/9; }
  .video-play{ position:relative; cursor:pointer; padding:0; background-image: var(--poster, linear-gradient(160deg,#E9C9C0,#B46F72 60%,#6E4A48)); }
  .video-card:not(.ready) .video-play::after{ content:"Video testimonial · coming soon"; position:absolute; left:0; right:0; bottom:1rem; text-align:center; color:var(--ivory); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
  .vp-icon{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:68px; height:68px; border-radius:50%; background:rgba(247,242,232,.9); color: var(--rose-dk); display:grid; place-items:center; box-shadow:0 10px 30px -10px rgba(0,0,0,.4); transition: transform .3s; }
  .vp-icon svg{ width:26px; height:26px; margin-left:3px; }
  .video-play:hover .vp-icon, .video-play:focus-visible .vp-icon{ transform:translate(-50%,-50%) scale(1.06); }
  .video-meta{ display:flex; flex-direction:column; gap:.25rem; text-align:center; margin-top:1rem; }
  .together-head{ display:grid; grid-template-columns:1fr; gap:2.2rem; align-items:center; max-width: var(--wide-w); margin-inline:auto; }
  .together-photo{ max-width:300px; }
  @media(min-width:900px){ .together-head{ grid-template-columns: 300px 1fr; gap:4rem; } }
  .photo-trio{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem; max-width: var(--wide-w); margin-inline:auto; }
  .photo-trio figure{ margin:0; }
  .photo-trio figure:nth-child(3){ grid-column: 1 / -1; }
  .photo-trio figure:nth-child(3) .realpic{ aspect-ratio:3/2; }
  .photo-trio figcaption{ margin-top:.7rem; text-align:center; font-family:var(--serif); font-style:italic; color:var(--rose-dk); font-size:1rem; }
  @media(min-width:760px){ .photo-trio{ grid-template-columns:repeat(3,1fr); gap:1.4rem; } .photo-trio figure:nth-child(3){ grid-column:auto; } .photo-trio figure:nth-child(3) .realpic{ aspect-ratio:4/5; } .photo-trio figure:nth-child(2){ margin-top:2rem; } }
  /* Zoe video */
  .zoe-band{ background: linear-gradient(180deg, #F8EBE6 0%, #FBF7F0 100%); }
  .zoe-layout{ display:grid; grid-template-columns:1fr; gap:2.2rem; align-items:center; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:900px){ .zoe-layout{ grid-template-columns: .8fr 1.2fr; gap:4rem; } }
  .zoe-text .t-mark{ width:30px; height:30px; margin:0 0 1rem; opacity:.75; }
  .zoe-meta{ margin-top:1.2rem; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe); }
  .video-card.zoe-video{ max-width:none; margin:0; display:block; }
  .zoe-video .video-play, .zoe-video video{ aspect-ratio:1112/720; max-height:none; box-shadow: 0 0 0 1px rgba(179,146,47,.35), 0 30px 70px -35px rgba(80,50,40,.5); }
  .zoe-teaser{ padding-block: 0 1rem !important; }
  .zt-card{ display:grid; grid-template-columns: 120px 1fr; gap:1.2rem; align-items:center; max-width:640px; margin:0 auto; padding:1rem; background:rgba(255,252,247,.8); border:1px solid rgba(179,146,47,.28); border-radius:2px; }
  @media(min-width:640px){ .zt-card{ grid-template-columns: 200px 1fr; gap:1.6rem; } }
  .zt-thumb{ position:relative; aspect-ratio:1112/720; background-size:cover; background-position:center; border-radius:2px; }
  .zt-thumb .vp-icon{ width:40px; height:40px; }
  .zt-thumb .vp-icon svg{ width:16px; height:16px; }
  .zt-text{ display:flex; flex-direction:column; gap:.3rem; }
  .zt-title{ font-family:var(--serif); font-size:1.3rem; color:var(--ink); }
  .zt-sub{ font-size:.86rem; color:var(--ink-soft); }
  .zt-text .link-underline{ align-self:flex-start; margin-top:.3rem; color:var(--rose-dk); font-size:.8rem; }
  .t-src{ font-size:.7rem; letter-spacing:.06em; color: var(--gold); font-style:italic; }
  .together-mark{ width:190px; height:190px; color:#D8BE7A; opacity:.5; margin:0 auto; }
  .together-head{ grid-template-columns:1fr; }
  @media(min-width:900px){ .together-head{ grid-template-columns: 220px 1fr; } }
  .zoe-quotes{ margin-top:1.6rem; display:flex; flex-direction:column; gap:1rem; border-left:1px solid rgba(179,146,47,.5); padding-left:1.2rem; }
  .zoe-quotes blockquote{ margin:0; font-family:var(--serif); font-style:italic; font-size:1.08rem; line-height:1.55; color:var(--ink); }
  .zoe-quotes cite{ display:block; margin-top:.2rem; font-style:normal; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--taupe); }
  .together-head{ grid-template-columns:1fr; }
  @media(min-width:900px){ .together-head{ grid-template-columns: 300px 1fr; } }
  .together-photo{ max-width:300px; }
  .person-card .realpic.media-11{ width:110px; height:110px; border-radius:50%; flex-shrink:0; }
  .person-card .realpic.media-11 img{ border-radius:50%; }
  .person-card{ grid-template-columns: 110px 1fr; gap:1.6rem; }
  /* hero with Emilia's ceremony photo */
  .hero .hero-photo{ margin:0; aspect-ratio:4/5; box-shadow:0 0 0 1px rgba(216,190,122,.7),0 30px 70px -30px rgba(40,20,20,.6); }
  .hero .hero-photo::after{ inset:10px; }
  .hero .hp-mob{ display:none; }
  .hero .hp-desk{ position:absolute; z-index:2; right:6%; top:50%; transform:translateY(-46%); width:min(32vw,420px); }
  @media(min-width:701px){ .hero .hero-inner{ max-width:none; width:52%; margin-left:6%; margin-right:0; } .hero .hero-word{ font-size:clamp(3rem,6.4vw,5.6rem); } }
  @media(max-width:700px){ .hero .hp-desk{ display:none; } .hero .hp-mob{ display:block; width:100%; aspect-ratio:4/3.4; margin:0 0 1.6rem; } }
  @media(max-width:700px){ .hero .hp-mob{ aspect-ratio:4/4.6; } }
  /* Kindred practitioners */
  .duo-people{ display:grid; grid-template-columns:1fr; gap:1.6rem; max-width: var(--wide-w); margin-inline:auto; }
  @media(min-width:860px){ .duo-people{ grid-template-columns:1fr 1fr; gap:2rem; } }
  .kp{ background: rgba(255,252,247,.82); border:1px solid rgba(179,146,47,.28); border-radius:2px; padding:2.2rem 2rem; display:flex; flex-direction:column; gap:.8rem; }
  .kp .kp-photo{ width:120px; height:120px; border-radius:50%; margin-bottom:.4rem; }
  .kp .kp-photo img{ border-radius:50%; }
  .kp h3{ font-size:1.5rem; font-weight:400; }
  .kp-role{ font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color: var(--gold); }
  .kp p{ color: var(--ink-soft); }
  .kp a{ border-bottom:1px solid currentColor; }
  .kp-quote{ font-family:var(--serif); font-style:italic; color: var(--ink) !important; font-size:1.12rem; margin-top:auto; padding-top:.6rem; border-top:1px solid rgba(179,146,47,.3); }
  .kindred-steps{ counter-reset:k; list-style:none; padding:0; display:flex; flex-direction:column; gap:.9rem; }
  .kindred-steps li{ counter-increment:k; position:relative; padding-left:2.6rem; }
  .kindred-steps li::before{ content: counter(k); position:absolute; left:0; top:-.1rem; width:1.8rem; height:1.8rem; border:1px solid rgba(179,146,47,.6); border-radius:50%; display:grid; place-items:center; font-family:var(--serif); color:var(--rose-dk); }
  /* readable information notes */
  .info-note{ max-width: var(--content-w); margin-inline:auto; padding:1.6rem 1.8rem; background: rgba(241,220,214,.35); border-left:2px solid rgba(179,146,47,.55); }
  .info-note h3{ font-size:1.15rem; font-weight:500; margin-bottom:.6rem; }
  .info-note p{ font-size:.95rem; color: var(--ink-soft); line-height:1.7; }
  .info-note p + p{ margin-top:.7rem; }
  .hav-options{ list-style:none; padding:0; margin-top:1.6rem; display:flex; flex-direction:column; gap:.6rem; }
  .hav-options li{ display:flex; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border:1px solid rgba(179,146,47,.35); background:rgba(255,252,247,.7); }
  .hav-options b{ font-weight:500; color:var(--ink); }
  .hav-options span{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
  .k-status a{ border-bottom:1px solid currentColor; }
  @media(min-width:900px){ .offer-kinds.kinds-3{ grid-template-columns: repeat(3,1fr); } }
  .kp-jola{ display:grid; grid-template-columns:110px 1fr; gap:1.1rem; align-items:center; margin-top:auto; padding-top:1rem; border-top:1px solid rgba(179,146,47,.3); }
  .kp-jola .kp-quote{ border:0; padding:0; margin:0; }
  .kp-jola .realpic{ box-shadow:0 0 0 1px rgba(179,146,47,.4); }
  /* mobile: keep the decorative mandala behind, never competing with headings */
  @media(max-width:700px){
    .hero-mandala{ color: rgba(236,206,128,.28); top:auto; bottom:-18%; right:-30%; }
    .page-hero .hero-mandala{ color: rgba(236,206,128,.22); bottom:-30%; right:-35%; }
    .contact-mandala{ color: rgba(216,184,98,.09); }
  }
  /* Amazonik Cacao recommendation (affiliate, disclosed) */
  .ritual-card{ display:grid; grid-template-columns:1fr; gap:1.2rem; max-width:720px; margin:3rem auto 0; padding:1.4rem; background:rgba(255,252,247,.85); border:1px solid rgba(179,146,47,.3); border-radius:2px; }
  @media(min-width:700px){ .ritual-card{ grid-template-columns:190px 1fr; gap:1.8rem; align-items:center; padding:1.6rem; } }
  .ritual-card .rc-photo{ width:100%; aspect-ratio:1; }
  @media(max-width:699px){ .ritual-card .rc-photo{ aspect-ratio:16/10; } }
  .rc-body{ display:flex; flex-direction:column; gap:.7rem; align-items:flex-start; }
  .rc-text{ font-size:.95rem; color:var(--ink-soft); line-height:1.65; }
  .rc-code{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem .9rem; }
  .rc-label{ font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
  .rc-copy{ display:inline-flex; align-items:center; gap:.7rem; padding:.45rem .8rem; border:1px dashed rgba(179,146,47,.7); background:#FBF5EA; color:var(--ink); font:inherit; cursor:pointer; border-radius:2px; }
  .rc-code-text{ font-family: ui-monospace, Menlo, monospace; letter-spacing:.08em; font-size:.92rem; user-select:all; -webkit-user-select:all; }
  .rc-copy-hint{ font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rose-dk); }
  .rc-ad{ font-size:.82rem; color:var(--ink-soft); }
  .rc-btn{ margin-top:.2rem; }
  .hav-photos{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; max-width:460px; }
  .book-copy + .book-copy{ margin-top:.9rem; }
  .sb-duo .realpic:nth-child(2){ margin-top:2rem; }
  /* mobile hero: let the cherry branch frame the top of the portrait */
  @media(max-width:700px){
    .hero .hero-branch{ z-index:3; top: calc(74px + env(safe-area-inset-top,0px)); width: 64vw; left:-12vw; }
    .hero .hp-mob{ margin-top:3.6rem; }
  }
  .info-note .hav-link{ color: var(--rose-dk); font-size:.95rem; }
  /* Zoe's video: always the video's own 1112x720 shape, so no black side bars */
  .video-card.zoe-video .video-play, .video-card.zoe-video video, .video-card.zoe-video.landscape .video-play, .video-card.zoe-video.landscape video{ aspect-ratio:1112/720; max-height:none; width:100%; object-fit:contain; background:transparent; }
