/* ── Self-hosted fonts ───────────────────────────────────────
   Served from this domain rather than Google's CDN, so no visitor
   data leaves the site to load type. Latin subset, woff2 only. */
@font-face{font-family:'Spectral';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/spectral-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/spectral-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/spectral-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/spectral-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Spectral';font-style:italic;font-weight:300;font-display:swap;src:url('../fonts/spectral-latin-300-italic.woff2') format('woff2')}
@font-face{font-family:'Spectral';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/spectral-latin-400-italic.woff2') format('woff2')}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/work-sans-latin-300-normal.woff2') format('woff2')}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/work-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/work-sans-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/work-sans-latin-600-normal.woff2') format('woff2')}

/* ═══════════════════════════════════════════════════════════════
   EMBODY WITH ELIZABETH — SHARED STYLESHEET
   Design tokens + components used across every page on the site.
   ═══════════════════════════════════════════════════════════════ */
:root{
  /* ── Clear Water + Marine ──────────────────────────────────
     Teal anchors; the marine family is sampled from the water
     photograph (hue 194) and used for accents and emphasis.     */
  --accent:#1B4D48;      --accent-light:#35A399;  --accent-wash:#D8EDE9;
  --accent-deep:#143A36;
  /* marine — the pops */
  --marine-wash:#E2EFF4; --marine-pale:#C5DFE7;   --marine-soft:#9BC7D4;
  --lemurian:#59B5CF;    --marine:#2F91B1;        --marine-deep:#266278;
  /* ground & type */
  --cream:#FAFCFC;       --sand:#EDF5F3;          --sand-deep:#DAE8E5;
  --ink:#132020;         --ink-soft:#33403E;      --ink-faint:#55645F;
  --sage:#35A399;        --sage-deep:#1B4D48;     --sage-wash:#E4F1EE;
  --blush:#9BC7D4;
  --radius:22px;         --radius-lg:38px;
  --maxw:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-breath:cubic-bezier(.45,.05,.55,.95);
  --serif:'Spectral',ui-serif,Georgia,'Times New Roman',serif;
  --sans:'Work Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--sans);font-size:18px;line-height:1.7;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.14;letter-spacing:-.008em;margin:0}
h1{font-size:clamp(2.5rem,5vw,4.2rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.5rem)}
h3{font-size:clamp(1.35rem,2.1vw,1.75rem)}
p{margin:0 0 1.1em}
.wrap{width:min(100% - 2.6rem,var(--maxw));margin-inline:auto}
.wrap-narrow{width:min(100% - 2.6rem,760px);margin-inline:auto}
section{position:relative}
.min0{min-width:0}
.hero-grid>*,.split>*,.reset>*,.doors>*,.offers>*,.quotes>*,.foot-grid>*,.creds>*{min-width:0}
.portrait,.door-img{background:var(--sand-deep)}

/* Paper grain */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.038;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
}

.eyebrow{
  font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;color:var(--marine-deep);margin:0 0 1.1rem;
}
.lede{font-size:clamp(1.12rem,1.7vw,1.34rem);line-height:1.6;color:var(--ink-soft);font-weight:400}

/* ── Buttons ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;padding:1.05rem 2.1rem;border-radius:999px;
  font-family:var(--sans);font-size:.9rem;font-weight:500;letter-spacing:.02em;
  text-decoration:none;border:1px solid transparent;cursor:pointer;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .35s,color .35s;
}
.btn-primary{background:var(--ink);color:var(--cream);box-shadow:0 1px 2px rgba(34,31,26,.16)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 34px -14px rgba(34,31,26,.55);background:var(--accent)}
.btn-ghost{background:transparent;color:var(--ink);border-color:rgba(34,31,26,.22)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(34,31,26,.04);transform:translateY(-2px)}
.btn-clay{background:var(--accent);color:#fff}
.btn-clay:hover{transform:translateY(-3px);box-shadow:0 16px 34px -14px rgba(47,79,79,.7)}
.btn .arrow{transition:transform .45s var(--ease)}
.btn:hover .arrow{transform:translateX(5px)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ── Scroll reveal ───────────────────────────────────────── */
.rise{opacity:0;transform:translateY(28px);transition:opacity 1.05s var(--ease),transform 1.05s var(--ease)}
.rise.in{opacity:1;transform:none}
.rise.d1{transition-delay:.09s} .rise.d2{transition-delay:.18s}
.rise.d3{transition-delay:.27s} .rise.d4{transition-delay:.36s} .rise.d5{transition-delay:.45s}

/* ── Nav ─────────────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:900;padding:1.05rem 0;
  transition:background .5s var(--ease),box-shadow .5s var(--ease),padding .5s var(--ease);
  background:rgba(251,248,243,.88);backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:0 1px 0 rgba(34,31,26,.07);
}
.nav.solid{padding:.7rem 0}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand{display:flex;align-items:center;gap:.68rem;text-decoration:none;font-family:var(--serif);font-size:1.13rem;letter-spacing:-.01em}
/* ── Brand mark: water disc, ripples leaving it ──────────────
   40px on mobile, 48px from tablet up. The mark needs clear space
   around it — the rings travel outside the disc, so never crop tight. */
.brand-mark{
  width:40px;height:40px;flex:0 0 auto;overflow:visible;display:block;
}
@media(min-width:700px){ .brand-mark{width:48px;height:48px} }
.nav.solid .brand-mark{width:40px;height:40px;transition:width .5s var(--ease),height .5s var(--ease)}

/* the water drifts slowly — texture, not action */
@keyframes bmDrift{to{transform:translateX(-24px)}}
.bm-w{animation:bmDrift 9s linear infinite}
.bm-w2{animation-duration:12.5s} .bm-w3{animation-duration:11s} .bm-w4{animation-duration:14s}

/* rings begin at the water's edge and travel out, fading */
@keyframes bmRip{
  0%{r:21;opacity:0}
  15%{opacity:.85}
  60%{opacity:.42}
  100%{r:30.5;opacity:0;stroke-width:.6}
}
.bm-r{animation:bmRip 4.4s cubic-bezier(.22,.6,.32,1) infinite}
.bm-r2{animation-delay:1.47s} .bm-r3{animation-delay:2.94s}

/* the brand lockup needs room for the rings */
.brand{gap:.72rem}
@media(prefers-reduced-motion:reduce){ .brand-mark *{animation:none!important} }
.nav-links{display:flex;align-items:center;gap:1.5rem;list-style:none;margin:0;padding:0}
.nav-links a{text-decoration:none;font-size:.82rem;font-weight:450;letter-spacing:.03em;color:var(--ink-soft);position:relative;padding:.25rem 0}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--marine);transition:width .45s var(--ease)}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--ink)}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{width:100%}
.nav .btn{padding:.72rem 1.4rem;font-size:.82rem}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.5rem;color:var(--ink)}

/* ── Nav dropdown (Work With Me) ─────────────────────────── */
.has-sub{position:relative}
.sub-toggle{text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;background:none;border:0;cursor:pointer;font:inherit;color:var(--ink-soft);font-size:.82rem;font-weight:450;letter-spacing:.03em;padding:.25rem 0}
.sub-toggle:hover{color:var(--ink)}
.sub-toggle svg{width:11px;height:11px;transition:transform .35s var(--ease)}
.sub{list-style:none;margin:0;padding:.55rem;display:none;flex-direction:column;gap:.1rem;
  position:absolute;top:calc(100% + .8rem);left:-.6rem;min-width:240px;
  background:var(--cream);border-radius:16px;box-shadow:0 26px 54px -24px rgba(34,31,26,.4);border:1px solid rgba(34,31,26,.07);}
.sub li a{display:block;padding:.65rem .8rem;border-radius:10px;font-size:.86rem;color:var(--ink-soft);text-decoration:none}
.sub li a::after{display:none}
/* invisible bridge so the menu survives the cursor crossing the gap */
.has-sub::after{content:'';position:absolute;left:0;right:-.6rem;top:100%;height:1rem;display:none}
.has-sub:hover::after{display:block}
.sub li a:hover{background:var(--sand);color:var(--ink)}
.has-sub:hover .sub,.has-sub:focus-within .sub,.has-sub.open .sub{display:flex}
.has-sub:hover .sub-toggle svg,.has-sub:focus-within .sub-toggle svg{transform:rotate(180deg)}
@media(max-width:980px){
  .sub-toggle{font-size:1.35rem;font-family:var(--serif);color:var(--ink-soft)}
  .sub{position:static;box-shadow:none;border:0;background:transparent;padding:.3rem 0 .3rem 1.1rem;min-width:0;display:flex}
  .sub li a{padding:.5rem 0;font-size:1.05rem}
}
@media(max-width:980px){
  .nav-links{
    position:fixed;inset:0 0 auto;top:0;padding:6rem 2rem 2.6rem;flex-direction:column;
    align-items:flex-start;gap:1.3rem;background:var(--cream);
    transform:translateY(-102%);transition:transform .6s var(--ease);box-shadow:0 20px 50px -30px rgba(0,0,0,.4);
    max-height:100dvh;overflow-y:auto;
  }
  .nav-links.open{transform:none}
  .nav-links a{font-size:1.35rem;font-family:var(--serif)}
  .nav-toggle{display:block;z-index:2}
  .nav .btn{display:none}
}

/* ── Page header (subpage hero) ─────────────────────────────── */
.pagehead{position:relative;padding:9.5rem 0 4rem;overflow:hidden}
.pagehead .aurora{opacity:.55}

/* ── Aurora background blobs ─────────────────────────────── */
.aurora{position:absolute;inset:-25%;z-index:0;filter:blur(70px);opacity:.72;pointer-events:none}
.aurora span{position:absolute;border-radius:50%;mix-blend-mode:multiply}
.a1{width:52vw;height:52vw;left:-6%;top:2%;background:radial-gradient(circle,var(--accent-wash),transparent 68%);animation:drift1 32s ease-in-out infinite}
.a2{width:44vw;height:44vw;right:-4%;top:14%;background:radial-gradient(circle,var(--sage-wash),transparent 68%);animation:drift2 26s ease-in-out infinite}
.a3{width:38vw;height:38vw;left:32%;bottom:-14%;background:radial-gradient(circle,#F4E3D2,transparent 70%);animation:drift3 38s ease-in-out infinite}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6%,7%) scale(1.13)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-7%,5%) scale(1.1)}}
@keyframes drift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4%,-6%) scale(1.16)}}

/* ── Hero (homepage) ────────────────────────────────────────── */
.hero{position:relative;min-height:84svh;display:flex;align-items:center;padding:8rem 0 2.5rem;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,6vw,5rem);align-items:center}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}
.hero-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.1rem}
.hero-note{display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin-top:2.3rem;font-size:.82rem;color:var(--ink-faint);align-items:center}
.hero-note .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-faint);display:inline-block}
.portrait-frame{position:relative}
.portrait{border-radius:var(--radius-lg);width:100%;object-fit:cover;aspect-ratio:3/4}
.portrait-ring{position:absolute;inset:-14px;border:1px solid rgba(47,79,79,.35);border-radius:calc(var(--radius-lg) + 14px);pointer-events:none}
.portrait-tag{
  position:absolute;left:-1.3rem;bottom:-1.3rem;background:var(--cream);border-radius:16px;
  padding:1rem 1.2rem;box-shadow:0 24px 50px -24px rgba(34,31,26,.5);font-size:.82rem;max-width:250px;
  display:flex;gap:.8rem;align-items:flex-start;
}
.portrait-tag .avatar{
  width:46px;height:46px;border-radius:50%;object-fit:cover;flex:0 0 auto;
  border:2px solid var(--cream);box-shadow:0 2px 10px -2px rgba(34,31,26,.4);
}
.portrait-tag b{display:block;font-family:var(--serif);font-size:.98rem;margin-bottom:.15rem}
@media(max-width:520px){.portrait-tag{left:0;bottom:-1rem;padding:.85rem 1rem}}

/* ── Proof band ──────────────────────────────────────────
   Static rather than scrolling: a moving strip reads as decoration,
   a still one reads as fact. Claims are labeled so a reader never has
   to guess which are clients and which are media. */
.proof{border-top:1px solid rgba(19,32,32,.09);border-bottom:1px solid rgba(19,32,32,.09);
  background:var(--sand);padding:1.5rem 0}
.proof-in{display:grid;gap:1rem}
.proof-lead{font-size:.97rem;color:var(--ink-soft);margin:0;max-width:74ch;line-height:1.6}
.proof-lead b{font-weight:500;color:var(--ink)}
.proof-rows{display:flex;gap:2.4rem;flex-wrap:wrap}
.proof-row{display:flex;gap:.85rem;align-items:baseline;flex-wrap:wrap}
.proof-key{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--marine-deep);font-weight:600;flex:0 0 auto}
.proof-vals{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.86rem;color:var(--ink-soft)}
.proof-vals i{font-style:normal}
.proof-vals i:not(:last-child)::after{content:'·';margin-left:.5rem;color:var(--marine-soft)}
@media(max-width:640px){.proof-rows{gap:.9rem;flex-direction:column}}

/* ── Section shells ──────────────────────────────────────── */
.pad{padding:clamp(5rem,10vw,8.5rem) 0}
.pad-sm{padding:clamp(3.5rem,7vw,6rem) 0}
.bg-sand{background:var(--sand)}
.bg-ink{background:var(--ink);color:var(--sand)}
.bg-ink h2,.bg-ink h3{color:var(--cream)}
.bg-ink .lede{color:rgba(242,235,223,.76)}
.bg-ink .eyebrow{color:var(--marine-soft)}
.bg-clay-wash{background:var(--accent-wash)}
.bg-marine{background:linear-gradient(170deg,var(--marine-wash),#F2F8FA)}

/* ── Centering practice ──────────────────────────────────── */
.reset{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5.5rem);align-items:center}
@media(max-width:860px){.reset{grid-template-columns:1fr;gap:2.6rem}}

.center-stage{position:relative;width:100%;max-width:420px;margin-inline:auto;aspect-ratio:1;display:grid;place-items:center}
.center-svg{width:100%;height:100%;overflow:visible}
/* Every transform in this figure pivots on the same point — the center of the
   viewBox. Using view-box (not fill-box) avoids degenerate bounding boxes on the
   zero-width vertical line, which some browsers refuse to scale. */
.center-svg *{transform-box:view-box;transform-origin:180px 180px}

/* LAYER 1 — the group handles "draw in from center" */
.axg{transform:scale(.04);opacity:.16;transition:transform 2.4s var(--ease),opacity 1.3s var(--ease)}
.center-stage[data-phase="length"] .axg-l,
.center-stage[data-phase="width"]  .axg-l,.center-stage[data-phase="width"]  .axg-w,
.center-stage[data-phase="depth"]  .axg-l,.center-stage[data-phase="depth"]  .axg-w,.center-stage[data-phase="depth"]  .axg-d,
.center-stage[data-phase="center"] .axg-l,.center-stage[data-phase="center"] .axg-w,.center-stage[data-phase="center"] .axg-d,
.center-stage[data-phase="done"]   .axg-l,.center-stage[data-phase="done"]   .axg-w,.center-stage[data-phase="done"]   .axg-d{transform:scale(1);opacity:.4}
/* the dimension being worked on is brighter */
.center-stage[data-phase="length"] .axg-l,
.center-stage[data-phase="width"]  .axg-w,
.center-stage[data-phase="depth"]  .axg-d{opacity:1}

.axline{stroke:var(--blush);stroke-width:1.25;stroke-linecap:round;transition:stroke .9s}
.center-stage[data-phase="length"] .axg-l .axline,
.center-stage[data-phase="width"]  .axg-w .axline,
.center-stage[data-phase="depth"]  .axg-d .axline{stroke:var(--lemurian);stroke-width:1.7}

/* LAYER 2 — a slow breath into whichever dimension is active */
@keyframes breatheY{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.075)}}
@keyframes breatheX{0%,100%{transform:scaleX(1)}50%{transform:scaleX(1.075)}}
@keyframes breatheD{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.center-stage[data-phase="length"] .axg-l .axline{animation:breatheY 5s ease-in-out infinite}
.center-stage[data-phase="width"]  .axg-w .axline{animation:breatheX 5s ease-in-out infinite}
.center-stage[data-phase="depth"]  .axg-d .axline{animation:breatheD 5.2s ease-in-out infinite}
/* dimensions already established keep a quieter breath */
.center-stage[data-phase="width"] .axg-l .axline,
.center-stage[data-phase="depth"] .axg-l .axline,
.center-stage[data-phase="center"] .axg-l .axline{animation:breatheY 7s ease-in-out infinite}
.center-stage[data-phase="depth"] .axg-w .axline,
.center-stage[data-phase="center"] .axg-w .axline{animation:breatheX 7s ease-in-out infinite}
.center-stage[data-phase="center"] .axg-d .axline{animation:breatheD 7s ease-in-out infinite}

/* LAYER 3 — pulses traveling out from center along the live axis.
   They start small and tight, then open up as they reach the endpoint, so the
   gesture reads as expanding into the dimension rather than firing a dot at it. */
.ping{fill:var(--lemurian);opacity:0}
@keyframes pingUp{
  0%{transform:translateY(0) scale(.3);opacity:0}
  12%{opacity:.95}65%{opacity:.72}
  100%{transform:translateY(-150px) scale(2.8);opacity:0}
}
@keyframes pingDown{
  0%{transform:translateY(0) scale(.3);opacity:0}
  12%{opacity:.95}65%{opacity:.72}
  100%{transform:translateY(150px) scale(2.8);opacity:0}
}
@keyframes pingLeft{
  0%{transform:translateX(0) scale(.3);opacity:0}
  12%{opacity:.95}65%{opacity:.72}
  100%{transform:translateX(-136px) scale(2.8);opacity:0}
}
@keyframes pingRight{
  0%{transform:translateX(0) scale(.3);opacity:0}
  12%{opacity:.95}65%{opacity:.72}
  100%{transform:translateX(136px) scale(2.8);opacity:0}
}
/* Depth runs on a foreshortened diagonal. The forward pulse grows as it comes
   toward the viewer; the back pulse shrinks as it recedes. */
@keyframes pingFront{
  0%{transform:translate(0,0) scale(.4);opacity:0}
  12%{opacity:.95}65%{opacity:.75}
  100%{transform:translate(-96px,75px) scale(3.2);opacity:0}
}
@keyframes pingBack{
  0%{transform:translate(0,0) scale(1.5);opacity:0}
  12%{opacity:.8}65%{opacity:.5}
  100%{transform:translate(96px,-75px) scale(.35);opacity:0}
}
.center-stage[data-phase="length"] .ping-up  {animation:pingUp    3.6s ease-out infinite}
.center-stage[data-phase="length"] .ping-down{animation:pingDown  3.6s ease-out infinite}
.center-stage[data-phase="width"]  .ping-left{animation:pingLeft  3.6s ease-out infinite}
.center-stage[data-phase="width"]  .ping-right{animation:pingRight 3.6s ease-out infinite}
.center-stage[data-phase="depth"]  .ping-front{animation:pingFront 3.8s ease-out infinite}
.center-stage[data-phase="depth"]  .ping-back {animation:pingBack  3.8s ease-out infinite}

/* endpoint markers */
.tick{fill:var(--blush);opacity:0;transition:opacity 1.5s var(--ease)}
.center-stage[data-phase="length"] .tick-l,.center-stage[data-phase="width"] .tick-l,
.center-stage[data-phase="depth"] .tick-l,.center-stage[data-phase="center"] .tick-l,.center-stage[data-phase="done"] .tick-l,
.center-stage[data-phase="width"] .tick-w,.center-stage[data-phase="depth"] .tick-w,
.center-stage[data-phase="center"] .tick-w,.center-stage[data-phase="done"] .tick-w,
.center-stage[data-phase="depth"] .tick-d,.center-stage[data-phase="center"] .tick-d,.center-stage[data-phase="done"] .tick-d{opacity:.55}
@keyframes tickGlow{0%,100%{opacity:.35}50%{opacity:.95}}
.center-stage[data-phase="length"] .tick-l circle{animation:tickGlow 5s ease-in-out infinite}
.center-stage[data-phase="width"]  .tick-w circle{animation:tickGlow 5s ease-in-out infinite}

/* CENTRE — always alive, strongest in the final phase */
@keyframes orbIdle  {0%,100%{transform:scale(.8)}50%{transform:scale(.88)}}
@keyframes orbCentre{0%,100%{transform:scale(1.2)}50%{transform:scale(1.36)}}
.center-orb{transform:scale(.55);opacity:.55;transition:transform 2.4s var(--ease-breath),opacity 1.2s}
.center-stage[data-phase="length"] .center-orb,
.center-stage[data-phase="width"]  .center-orb,
.center-stage[data-phase="depth"]  .center-orb{opacity:.85;animation:orbIdle 5s ease-in-out infinite}
.center-stage[data-phase="center"] .center-orb{opacity:1;animation:orbCentre 6s ease-in-out infinite}
.center-stage[data-phase="done"]   .center-orb{transform:scale(1.05);opacity:.95;animation:orbIdle 7s ease-in-out infinite}

@keyframes ringOut{0%{transform:scale(.4);opacity:.65}100%{transform:scale(1.75);opacity:0}}
.center-ring{fill:none;stroke:var(--lemurian);stroke-width:1;opacity:0}
.center-stage[data-phase="center"] .center-ring{animation:ringOut 5.2s ease-out infinite}
.center-stage[data-phase="center"] .center-ring.r2{animation-delay:1.75s}
.center-stage[data-phase="center"] .center-ring.r3{animation-delay:3.5s}

/* labels */
.center-label{
  position:absolute;font-family:var(--serif);font-size:1.45rem;letter-spacing:.04em;
  color:var(--cream);text-shadow:0 2px 18px rgba(34,31,26,.6);pointer-events:none;transition:opacity .6s;
}
.center-count{position:absolute;bottom:-.4rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.bg-ink .center-count{color:rgba(242,235,223,.55)}
.center-cue{
  min-height:5.6rem;margin-top:1.4rem;font-size:1.02rem;line-height:1.6;
  color:rgba(242,235,223,.82);transition:opacity .5s var(--ease);
}
.center-cue.fade{opacity:0}
.center-steps{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.4rem;padding:0;list-style:none}
.center-steps li{
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;padding:.4rem .85rem;border-radius:999px;
  border:1px solid rgba(242,235,223,.22);color:rgba(242,235,223,.5);transition:all .5s var(--ease);
}
.center-steps li[data-on]{background:var(--marine);border-color:var(--marine);color:#fff}

/* sound toggle */
.center-controls{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-top:.2rem}
.snd{
  display:inline-flex;align-items:center;gap:.5rem;background:transparent;cursor:pointer;
  border:1px solid rgba(242,235,223,.26);border-radius:999px;padding:.6rem 1rem;
  font-family:var(--sans);font-size:.78rem;letter-spacing:.02em;color:rgba(242,235,223,.75);
  transition:border-color .35s,color .35s,background .35s;
}
.snd:hover{border-color:var(--marine-soft);color:#fff}
.snd svg{width:18px;height:18px;flex:0 0 auto}
.snd .snd-off{display:none}
.snd[data-off="true"]{color:rgba(242,235,223,.45)}
.snd[data-off="true"] .snd-on{display:none}
.snd[data-off="true"] .snd-off{display:inline}
.snd:focus-visible{outline:2px solid var(--lemurian);outline-offset:2px}

@media(prefers-reduced-motion:reduce){
  .center-svg *{animation:none!important;transition-duration:.001ms!important}
  .ping,.center-ring{display:none}
}

/* ── Three doors ─────────────────────────────────────────── */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:3.2rem}
@media(max-width:880px){.doors{grid-template-columns:1fr}}
.door{
  position:relative;background:var(--cream);border-radius:var(--radius);overflow:hidden;
  text-decoration:none;display:flex;flex-direction:column;min-height:410px;
  border:1px solid rgba(34,31,26,.07);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
}
.door:hover{transform:translateY(-9px);box-shadow:0 34px 60px -34px rgba(34,31,26,.5)}
.door-img{height:200px;width:100%;object-fit:cover;filter:saturate(.9);transition:transform 1s var(--ease)}
.door:hover .door-img{transform:scale(1.06)}
.door-body{padding:1.7rem 1.6rem 1.9rem;display:flex;flex-direction:column;flex:1}
.door-q{font-family:var(--serif);font-size:1.24rem;font-style:italic;line-height:1.32;margin-bottom:.7rem;color:var(--accent)}
.door p{font-size:.96rem;color:var(--ink-soft);margin-bottom:.4rem}
.door-body>p:not(.door-q):not(.door-meta){flex:1}
.door-meta{font-size:.76rem;letter-spacing:.03em;color:var(--marine-deep);margin:0 0 .8rem;padding-top:.8rem;border-top:1px solid var(--marine-pale)}
.door-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.door-price{color:var(--ink-faint);text-transform:none;letter-spacing:0;font-size:.84rem}

/* ── Editorial two-col ───────────────────────────────────── */
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,5rem);align-items:start}
@media(max-width:880px){.split{grid-template-columns:1fr;gap:2rem}}
.sticky-h{position:sticky;top:6.5rem}
@media(max-width:880px){.sticky-h{position:static}}

/* ── Steps ───────────────────────────────────────────────── */
.steps{counter-reset:s;display:grid;gap:1.1rem}
.step{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:start;padding:1.7rem 0;border-top:1px solid rgba(242,235,223,.16)}
.step:first-child{border-top:0}
.step-n{counter-increment:s;font-family:var(--serif);font-size:2.6rem;line-height:.85;color:var(--blush);opacity:.55;min-width:2.4rem}
.step-n::before{content:'0' counter(s)}
.step h3{margin-bottom:.5rem}
.step p{color:rgba(242,235,223,.72);font-size:.97rem;margin:0}
.step.light{border-top:1px solid rgba(34,31,26,.1)}
.step.light .step-n{color:var(--accent);opacity:.35}
.step.light p{color:var(--ink-soft)}

/* ── Offer cards ─────────────────────────────────────────── */
.offers{display:grid;grid-template-columns:1.25fr 1fr;gap:1.3rem}
@media(max-width:880px){.offers{grid-template-columns:1fr}}
.offer{
  background:var(--cream);border:1px solid rgba(34,31,26,.08);border-radius:var(--radius);
  padding:2.1rem 2rem;display:flex;flex-direction:column;
  transition:transform .55s var(--ease),box-shadow .55s var(--ease),border-color .55s;
}
.offer:hover{transform:translateY(-6px);box-shadow:0 30px 56px -34px rgba(34,31,26,.42);border-color:rgba(47,79,79,.32)}
.offer.feature{background:linear-gradient(155deg,#fff,var(--accent-wash));grid-row:span 2;justify-content:flex-start}
.offer.feature .btn{margin-top:1.4rem}
.offer-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.9rem;flex-wrap:wrap}
.price{font-family:var(--serif);font-size:1.6rem;color:var(--accent);white-space:nowrap}
.price small{font-family:var(--sans);font-size:.74rem;color:var(--ink-faint);letter-spacing:.04em}
.offer ul{list-style:none;padding:0;margin:.4rem 0 1.5rem;display:grid;gap:.58rem}
.offer li{position:relative;padding-left:1.5rem;font-size:.96rem;color:var(--ink-soft)}
.offer li::before{content:'';position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--lemurian)}
.offer .btn{margin-top:auto;align-self:flex-start}
.badge{display:inline-block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;background:var(--marine-deep);color:#fff;padding:.32rem .7rem;border-radius:999px;margin-bottom:.9rem}
.badge.warm{background:var(--accent)}

/* ── Credentials strip ───────────────────────────────────── */
.creds{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:rgba(34,31,26,.1);border:1px solid rgba(34,31,26,.1);border-radius:var(--radius);overflow:hidden;margin-top:2.4rem}
.cred{background:var(--cream);padding:1.6rem 1.3rem}
.cred b{display:block;font-family:var(--serif);font-size:2.1rem;color:var(--marine);line-height:1;margin-bottom:.35rem}
.cred span{font-size:.78rem;color:var(--ink-faint);letter-spacing:.03em;line-height:1.45;display:block}

/* ── Testimonials ────────────────────────────────────────── */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2.8rem}
@media(max-width:880px){.quotes{grid-template-columns:1fr}}
.quote{background:var(--cream);border-radius:var(--radius);padding:2rem 1.8rem;border:1px solid rgba(34,31,26,.07);position:relative}
.quote::before{content:'"';position:absolute;top:.1rem;left:1.3rem;font-family:var(--serif);font-size:4.2rem;color:var(--blush);opacity:.5;line-height:1}
.quote p{position:relative;font-family:var(--serif);font-size:1.06rem;line-height:1.6;font-style:italic;color:var(--ink);margin-bottom:1.2rem}
.quote cite{font-style:normal;font-size:.79rem;letter-spacing:.05em;color:var(--ink-faint);display:block}
.bg-ink .quote{background:rgba(251,248,243,.06);border-color:rgba(242,235,223,.14)}
.bg-ink .quote p{color:var(--cream)}
.bg-ink .quote cite{color:rgba(242,235,223,.6)}

/* ── FAQ ─────────────────────────────────────────────────── */
.faq{margin-top:2.4rem;border-top:1px solid rgba(34,31,26,.13)}
.faq details{border-bottom:1px solid rgba(34,31,26,.13)}
.faq summary{
  cursor:pointer;list-style:none;padding:1.35rem .5rem 1.35rem 0;display:flex;gap:1.2rem;
  align-items:flex-start;justify-content:space-between;font-family:var(--serif);
  font-size:clamp(1.05rem,1.7vw,1.28rem);line-height:1.35;transition:color .35s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--accent)}
.faq summary::after{content:'+';font-family:var(--sans);font-weight:300;font-size:1.5rem;color:var(--accent);transition:transform .45s var(--ease);flex:0 0 auto;line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .answer{padding:0 3rem 1.6rem 0;color:var(--ink-soft);font-size:1.02rem;line-height:1.68;max-width:60ch}
.faq .answer p:last-child{margin-bottom:0}

/* ── Photo hero (image-led page header) ──────────────────── */
.photohead{position:relative;min-height:72svh;display:flex;align-items:flex-end;padding:9rem 0 3.5rem;overflow:hidden;background:var(--ink)}
.photohead-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.62}
.photohead::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,31,26,.55) 0%,rgba(34,31,26,.15) 38%,rgba(34,31,26,.88) 100%);pointer-events:none}
.photohead .wrap{position:relative;z-index:2}
.photohead h1,.photohead .lede,.photohead .hero-note{color:var(--cream)}
.photohead .lede{color:rgba(251,248,243,.86)}
.photohead .eyebrow{color:var(--blush)}
.photohead .hero-note{color:rgba(251,248,243,.78)}
.photohead .hero-note .dot{background:rgba(251,248,243,.5)}

/* ── Figure / captioned image ────────────────────────────── */
.figure{margin:0}
.figure img{border-radius:var(--radius);width:100%;object-fit:cover}
.figure figcaption{font-size:.8rem;color:var(--ink-faint);margin-top:.7rem;letter-spacing:.02em}
.bg-ink .figure figcaption{color:rgba(242,235,223,.6)}

/* ── Gallery grid ────────────────────────────────────────── */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-top:2.6rem}
.gallery img{width:100%;height:100%;object-fit:cover;border-radius:16px;transition:transform .7s var(--ease),filter .7s var(--ease)}
.gallery a{display:block;overflow:hidden;border-radius:16px;aspect-ratio:4/3}
.gallery a:hover img{transform:scale(1.05)}
.gallery .wide{grid-column:span 2}
.gallery .tall{grid-row:span 2;aspect-ratio:3/4}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery .wide{grid-column:span 2}}
@media(max-width:520px){.gallery{grid-template-columns:1fr}.gallery .wide,.gallery .tall{grid-column:span 1;grid-row:span 1;aspect-ratio:4/3}}

/* ── Step with thumbnail ─────────────────────────────────── */
.step-img{width:100%;border-radius:14px;object-fit:cover;aspect-ratio:4/3;margin-top:.9rem}

/* ── Local band / chips ──────────────────────────────────── */
.local-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.chip{font-size:.78rem;padding:.48rem 1rem;border-radius:999px;background:rgba(251,248,243,.1);border:1px solid rgba(242,235,223,.22);color:rgba(242,235,223,.85)}
.chip.light{background:var(--sand);border-color:rgba(34,31,26,.12);color:var(--ink-soft)}

/* ── CTA ─────────────────────────────────────────────────── */
.cta-final{position:relative;overflow:hidden;text-align:center;padding:clamp(5rem,10vw,9rem) 0}
.cta-final .aurora{opacity:.85}
.cta-form{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:2rem}
.cta-form input,.cta-form textarea{
  flex:1 1 260px;max-width:340px;padding:1.05rem 1.35rem;border-radius:999px;
  border:1px solid rgba(34,31,26,.2);background:rgba(255,255,255,.72);font-family:var(--sans);font-size:.92rem;color:var(--ink);
}
.cta-form input:focus,.cta-form textarea:focus{outline:2px solid var(--accent);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ── Standard form (contact page) ───────────────────────────── */
.form-card{background:var(--cream);border:1px solid rgba(34,31,26,.09);border-radius:var(--radius-lg);padding:clamp(1.8rem,4vw,3rem)}
.field{display:grid;gap:.5rem;margin-bottom:1.4rem}
.field label{font-size:.8rem;letter-spacing:.03em;color:var(--ink-soft);font-weight:500}
.field input,.field textarea,.field select{
  font-family:var(--sans);font-size:.98rem;padding:.85rem 1.05rem;border-radius:14px;
  border:1px solid rgba(34,31,26,.18);background:#fff;color:var(--ink);width:100%;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.field textarea{resize:vertical;min-height:130px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media(max-width:600px){.field-row{grid-template-columns:1fr}}
.form-note{font-size:.82rem;color:var(--ink-faint);margin-top:.6rem}
.contact-card{background:var(--sand);border-radius:var(--radius);padding:1.7rem 1.6rem;margin-bottom:1rem}
.contact-card h4{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}
.contact-card p{margin:0;font-size:.95rem}
.contact-card a{text-decoration:underline;text-decoration-color:rgba(47,79,79,.4)}

/* ── Logistics table ─────────────────────────────────────── */
.logistics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.3rem;margin-top:2rem}
.logistics-card{background:var(--cream);border:1px solid rgba(34,31,26,.08);border-radius:var(--radius);padding:1.6rem 1.5rem}
.logistics-card h4{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:.9rem}
.logistics-card ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.logistics-card li{position:relative;padding-left:1.3rem;font-size:.94rem;color:var(--ink-soft)}
.logistics-card li::before{content:'';position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--lemurian)}

/* ── Footer ──────────────────────────────────────────────── */
footer{background:var(--ink);color:rgba(242,235,223,.72);padding:4.5rem 0 2.5rem;font-size:.88rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.4rem}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr;gap:2rem}}
footer h4{font-family:var(--sans);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--marine-soft);margin-bottom:1rem;font-weight:500}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
footer a{text-decoration:none;transition:color .3s} footer a:hover{color:var(--cream)}
.foot-bottom{margin-top:3.4rem;padding-top:1.6rem;border-top:1px solid rgba(242,235,223,.14);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.76rem;color:rgba(242,235,223,.5)}

/* ── Sticky mobile CTA ───────────────────────────────────── */
.sticky-cta{
  position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:880;display:none;
  background:var(--ink);color:var(--cream);border-radius:999px;padding:.9rem 1.4rem;
  align-items:center;justify-content:space-between;gap:1rem;text-decoration:none;
  box-shadow:0 18px 40px -18px rgba(0,0,0,.7);transform:translateY(140%);transition:transform .6s var(--ease);
}
.sticky-cta.show{transform:none}
.sticky-cta span{font-size:.84rem}
.sticky-cta b{font-size:.84rem;font-weight:500}
@media(max-width:760px){.sticky-cta{display:flex}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .rise{opacity:1;transform:none}
}


/* ── Lead-magnet page: reduced nav + capture form ────────── */
.nav-min .nav-in{justify-content:space-between}
.nav-back{font-size:.82rem;color:var(--ink-soft);text-decoration:none;transition:color .3s}
.nav-back:hover{color:var(--marine-deep)}

.reset-form{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem;align-items:center}
.reset-form.centered{justify-content:center;margin-inline:auto;max-width:640px}
.reset-form input{
  flex:1 1 190px;min-width:0;padding:1rem 1.3rem;border-radius:999px;
  border:1px solid rgba(34,31,26,.18);background:#fff;
  font-family:var(--sans);font-size:.94rem;color:var(--ink);
}
.reset-form input::placeholder{color:var(--ink-faint)}
.reset-form input:focus{outline:2px solid var(--marine);outline-offset:1px;border-color:transparent}
.reset-form button{flex:0 0 auto}
@media(max-width:520px){.reset-form input,.reset-form button{flex:1 1 100%}.reset-form button{justify-content:center}}

.foot-min{padding:2.4rem 0 2rem}
.foot-min a{text-decoration:none;color:rgba(242,235,223,.7)}
.foot-min a:hover{color:var(--cream)}

.join-form{max-width:520px;margin:2rem auto 0;text-align:left}
.join-form .field label{color:var(--ink-soft)}
.consent{display:flex;gap:.65rem;align-items:flex-start;font-size:.88rem;color:var(--ink-soft);cursor:pointer;margin:.2rem 0 .4rem}
.consent input{width:18px;height:18px;flex:0 0 auto;margin-top:.15rem;accent-color:var(--marine)}
.join-form .btn{width:100%;justify-content:center}
.join-form .form-note{text-align:center}


/* ── Application form ────────────────────────────────────── */
.apply-meta{display:flex;gap:1.6rem;flex-wrap:wrap;margin-top:1.6rem;padding-top:1.2rem;
  border-top:1px solid var(--marine-pale);font-size:.85rem;color:var(--ink-soft)}
.apply-meta b{color:var(--marine-deep);font-weight:500}
.apply-form fieldset{border:0;padding:0;margin:0 0 2.2rem}
.apply-form legend{
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--marine-deep);
  font-weight:600;padding:0 0 .9rem;margin-bottom:.4rem;width:100%;border-bottom:1px solid var(--marine-pale);
}
.apply-form .hint{font-size:.83rem;color:var(--ink-faint);margin:-.15rem 0 .45rem;line-height:1.5}
.apply-form .opt{font-size:.72rem;color:var(--ink-faint);font-weight:400;letter-spacing:0;text-transform:none}
.radios{display:grid;gap:.5rem;margin-top:.2rem}
.radios label{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;color:var(--ink-soft);cursor:pointer;font-weight:400}
.radios input{width:17px;height:17px;flex:0 0 auto;margin-top:.15rem;accent-color:var(--marine)}
.ack{display:grid;gap:.7rem;margin:.4rem 0 1.5rem;padding:1.1rem 1.2rem;background:var(--marine-wash);border-radius:14px}
.ack label{display:flex;gap:.65rem;align-items:flex-start;font-size:.86rem;color:var(--ink-soft);cursor:pointer;line-height:1.5}
.ack input{width:17px;height:17px;flex:0 0 auto;margin-top:.15rem;accent-color:var(--marine)}
.apply-form>.btn{width:100%;justify-content:center}


/* ── Training / certification list (About) ───────────────── */
.training{margin-top:2.4rem;display:grid;gap:.4rem}
.tr-year{display:grid;grid-template-columns:5.5rem 1fr;gap:1.4rem;padding:1.4rem 0;border-top:1px solid var(--marine-pale)}
.tr-year:first-child{border-top:0}
.tr-year h3{font-family:var(--serif);font-size:1.35rem;color:var(--marine);line-height:1;margin:0}
.tr-year ul{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.tr-year li{display:grid;gap:.15rem}
.tr-name{font-size:1rem;color:var(--ink)}
.tr-org{font-size:.9rem;color:var(--ink-soft)}
.tr-teach{font-size:.82rem;color:var(--ink-faint);font-style:italic}
@media(max-width:600px){.tr-year{grid-template-columns:1fr;gap:.7rem}}

/* ── Quote wall (Testimonials) ───────────────────────────── */
.quote-wall{columns:2;column-gap:1.3rem}
@media(max-width:820px){.quote-wall{columns:1}}
.quote-wall .quote{break-inside:avoid;margin:0 0 1.3rem;display:inline-block;width:100%}
.quote blockquote{margin:0}
.quote figcaption{display:flex;flex-direction:column;gap:.1rem}
.quote figcaption cite{font-style:normal;font-family:var(--serif);font-size:1rem;color:var(--ink)}
.quote figcaption span{font-size:.78rem;letter-spacing:.05em;color:var(--ink-faint)}
.quote-lg p{font-size:1.16rem}

/* ── FAQ page ────────────────────────────────────────────── */
.faq-page{display:grid;gap:2.8rem}
.faq-group h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin-bottom:.2rem}
.faq-group .faq{margin-top:.8rem}

/* ── Blog post cards ─────────────────────────────────────── */
.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.3rem}
.post-card{background:var(--cream);border:1px solid rgba(19,32,32,.08);border-radius:var(--radius);
  padding:2rem 1.9rem;display:flex;flex-direction:column;
  transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.post-card:not(.is-empty):hover{transform:translateY(-6px);box-shadow:0 30px 56px -34px rgba(19,32,32,.35)}
.post-tag{display:inline-block;align-self:flex-start;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--marine-deep);background:var(--marine-wash);padding:.32rem .7rem;border-radius:999px;margin-bottom:.9rem}
.post-card h2,.post-card h3{font-size:clamp(1.25rem,2vw,1.55rem);margin-bottom:.6rem}
.post-card p{font-size:.97rem;color:var(--ink-soft);margin-bottom:1.3rem}
.post-card .btn{margin-top:auto;align-self:flex-start}
.post-card.is-empty{background:var(--marine-wash);border-style:dashed;border-color:var(--marine-soft)}


/* ── Rating band (Testimonials) ──────────────────────────── */
.rating-band{background:linear-gradient(170deg,var(--marine-wash),#F2F8FA);
  border-top:1px solid var(--marine-pale);border-bottom:1px solid var(--marine-pale)}
.stars{font-size:1.5rem;letter-spacing:.24em;color:var(--marine);line-height:1}
.rating-num{font-family:var(--serif);font-size:clamp(1.2rem,2.1vw,1.55rem);color:var(--marine-deep);
  margin:.7rem auto .6rem;letter-spacing:-.008em;max-width:34ch;line-height:1.35}
.rating-num b{font-weight:500}
.rating-note{font-size:.94rem;color:var(--ink-soft);max-width:52ch;margin:0 auto}


/* ── Session flow (1:1 page) ─────────────────────────────── */
.session-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem;counter-reset:sf}
@media(max-width:900px){.session-flow{grid-template-columns:1fr}}
.sf-step{background:var(--cream);border:1px solid rgba(19,32,32,.08);border-radius:var(--radius);
  padding:1.8rem 1.7rem;position:relative}
.sf-step h3{font-size:1.18rem;margin-bottom:.7rem}
.sf-step p{font-size:.94rem;color:var(--ink-soft);margin-bottom:.8rem}
.sf-step p:last-child{margin-bottom:0}
.session-note{margin-top:1.5rem;background:linear-gradient(170deg,var(--marine-wash),#F2F8FA);
  border-radius:var(--radius);padding:1.8rem 2rem}
.session-note p{margin:0;font-size:1.02rem;line-height:1.65;color:var(--ink-soft);max-width:72ch}
.session-note strong{color:var(--marine-deep);font-weight:500}


/* ── Intake callout (1:1 page) ───────────────────────────── */
.intake{display:grid;grid-template-columns:auto 1fr;gap:1.6rem;align-items:start;
  margin-top:1.3rem;padding:1.7rem 1.9rem;background:var(--cream);
  border:1px solid var(--marine-pale);border-left:3px solid var(--marine);border-radius:var(--radius)}
@media(max-width:700px){.intake{grid-template-columns:1fr;gap:.9rem}}
.intake-badge{font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--marine-deep);
  background:var(--marine-wash);padding:.45rem .85rem;border-radius:999px;white-space:nowrap}
.intake h3{font-size:1.14rem;margin-bottom:.55rem}
.intake p{font-size:.95rem;color:var(--ink-soft);margin:0;max-width:70ch}


/* ── Case in point (1:1 page) ────────────────────────────── */
.case{margin-top:2rem}
.case-set{font-size:1.02rem;color:var(--ink-soft);margin-bottom:1rem;max-width:70ch}
.case-quote{margin:1.8rem 0 1.4rem;padding:1.9rem 2rem 1.7rem;background:var(--cream);
  border-radius:var(--radius);border-left:3px solid var(--marine);position:relative}
.case-quote p{font-family:var(--serif);font-size:clamp(1.12rem,1.9vw,1.35rem);line-height:1.5;
  font-style:italic;color:var(--ink);margin:0 0 1rem}
.case-quote cite{font-style:normal;font-size:.79rem;letter-spacing:.04em;color:var(--ink-faint)}
.case-note{font-size:.95rem;color:var(--ink-soft);margin:0;max-width:64ch}

.case-label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--marine-deep);
  margin:1.8rem 0 .7rem}
.case-quote-2{margin-top:.9rem;background:transparent;border-left-color:var(--marine-soft)}
.case-quote-2 p{font-size:clamp(1.02rem,1.6vw,1.14rem)}
.case-quote em{font-style:italic;color:var(--marine-deep)}


/* ── Hero question (sits directly beneath an h1) ─────────── */
.hero-question{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.4rem,2.8vw,2.05rem);line-height:1.25;letter-spacing:-.008em;
  color:var(--marine-deep);margin:.7rem 0 0;max-width:22ch;
}


/* ── What becomes possible (1:1 page) ────────────────────── */
.possible{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.2rem;max-width:58rem}
.poss{
  font-family:var(--serif);font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.25;
  color:var(--cream);background:rgba(251,248,243,.06);
  border:1px solid rgba(155,199,212,.28);border-radius:999px;
  padding:.72rem 1.25rem;transition:border-color .5s var(--ease),background .5s var(--ease);
}
.poss:hover{border-color:var(--lemurian);background:rgba(89,181,207,.12)}
@media(max-width:600px){.possible{gap:.55rem}.poss{padding:.6rem 1rem}}


/* ── Table of contents band (long reference pages) ───────── */
.toc-band{background:var(--marine-wash);border-top:1px solid var(--marine-pale);
  border-bottom:1px solid var(--marine-pale);padding:.95rem 0}
.toc-band .wrap{display:flex;gap:1.3rem;align-items:center;flex-wrap:wrap}
.toc-key{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--marine-deep);font-weight:600}
.toc-band a{font-size:.85rem;color:var(--ink-soft);text-decoration:none;padding-bottom:2px;
  border-bottom:1px solid transparent;transition:border-color .35s,color .35s}
.toc-band a:hover{color:var(--marine-deep);border-bottom-color:var(--marine)}
@media(max-width:700px){.toc-band{padding:.8rem 0}.toc-band .wrap{gap:.8rem}}

/* ── Concept cards (SE principles) ───────────────────────── */
.concepts{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;margin-top:2.4rem}
@media(max-width:820px){.concepts{grid-template-columns:1fr}}
.concept{background:var(--cream);border:1px solid rgba(19,32,32,.08);border-radius:var(--radius);padding:1.8rem 1.7rem}
.concept h3{font-size:1.25rem;margin-bottom:.6rem;color:var(--marine-deep)}
.concept p{font-size:.95rem;color:var(--ink-soft);margin-bottom:.8rem}
.concept .c-why{font-size:.88rem;color:var(--ink-faint);margin:0;padding-top:.8rem;
  border-top:1px solid var(--marine-pale)}

/* ── Comparison cards ────────────────────────────────────── */
.compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem;margin-top:2.2rem}
.cmp{background:var(--cream);border:1px solid rgba(19,32,32,.08);border-left:3px solid var(--marine-soft);
  border-radius:var(--radius);padding:1.6rem 1.5rem}
.cmp h3{font-size:1.1rem;margin-bottom:.55rem}
.cmp p{font-size:.92rem;color:var(--ink-soft);margin-bottom:.7rem}
.cmp .cmp-note{font-size:.83rem;color:var(--ink-faint);margin:0;font-style:italic}
.cmp .cmp-note a{color:var(--marine-deep)}


/* ── Throughline band ────────────────────────────────────── */
.throughline{background:linear-gradient(168deg,var(--marine-wash),#F3F9FA);
  border-top:1px solid var(--marine-pale);border-bottom:1px solid var(--marine-pale)}
.tl-lead{font-size:clamp(1.14rem,1.9vw,1.38rem);line-height:1.55;color:var(--ink);margin:0 0 1rem;max-width:62ch}
.tl-body{font-size:1.02rem;line-height:1.68;color:var(--ink-soft);margin:0;max-width:64ch}
.tl-close{font-family:var(--serif);font-style:italic;font-size:clamp(1.22rem,2.2vw,1.6rem);
  line-height:1.35;color:var(--marine-deep);margin:0;max-width:30ch;
  padding-top:1.4rem;border-top:1px solid var(--marine-pale)}


/* ── Homepage welcome (sits above the h1) ────────────────── */
.welcome{margin-bottom:1rem}
.welcome-line{font-family:var(--serif);font-size:clamp(1.08rem,1.7vw,1.28rem);
  color:var(--ink-soft);margin:0 0 .35rem;letter-spacing:-.004em}
.welcome-line strong{font-weight:500;color:var(--marine-deep)}
.welcome-sub{font-size:.86rem;letter-spacing:.06em;line-height:1.6;color:var(--ink-faint);margin:0;
  padding-top:.55rem;border-top:1px solid var(--marine-pale);display:inline-block}


/* ── The question (own section, given room to land) ──────── */
.question-band{padding-top:clamp(3.5rem,7vw,5.5rem);padding-bottom:clamp(3.5rem,7vw,5.5rem)}
.big-question{
  font-family:var(--serif);font-weight:400;font-style:italic;
  font-size:clamp(1.6rem,3.6vw,2.6rem);line-height:1.25;letter-spacing:-.01em;
  color:var(--marine-deep);margin:0;text-align:center;max-width:22ch;margin-inline:auto;
}


/* ── Full-width image band (breathing space on long pages) ── */
.band-img{margin:0;display:block;line-height:0}
.band-img img{width:100%;height:auto;object-fit:cover;max-height:44svh}

.q-body{font-size:1.04rem;line-height:1.7;color:var(--ink-soft);max-width:62ch;
  margin:1.6rem auto 0;text-align:center}


/* ── Epigraph (pulled quote on a band) ───────────────────── */
.epigraph{margin:0}
.epigraph p{font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.25rem,2.6vw,1.85rem);line-height:1.35;letter-spacing:-.008em;
  color:var(--marine-deep);margin:0 auto;max-width:26ch}
.epigraph cite{display:block;font-style:normal;font-size:.8rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-faint);margin-top:1.1rem}


/* ── Clean photo header: image unobscured, title only ────── */
.photohead.photohead-clean{
  position:relative;display:block;padding:0;min-height:0;
  overflow:hidden;background:var(--cream);align-items:initial;
}
.photohead.photohead-clean::after,.photohead.photohead-clean::before{content:none;display:none}
.photohead.photohead-clean .photohead-img{
  position:relative;inset:auto;width:100%;height:auto;max-height:78svh;
  object-fit:cover;display:block;filter:none;opacity:1;
}
.photohead-title{
  position:absolute;left:0;right:0;bottom:clamp(1.6rem,5vw,3.5rem);
  display:flex;justify-content:center;pointer-events:none;
}
.photohead-title h1{
  color:#fff;margin:0;font-size:clamp(2.6rem,8vw,5.5rem);line-height:1;
  letter-spacing:.01em;font-weight:400;
  text-shadow:0 2px 24px rgba(19,32,32,.42), 0 1px 4px rgba(19,32,32,.3);
}
.retreat-intro{padding-top:clamp(2.2rem,4vw,3.4rem);text-align:center}
.retreat-intro .eyebrow{
  font-size:.78rem;letter-spacing:.2em;color:var(--marine-deep);margin:0 0 1rem;
}
.retreat-intro .lede{
  font-size:clamp(1.18rem,2.2vw,1.5rem);line-height:1.5;
  max-width:38ch;margin:0 auto 1.7rem;color:var(--ink-soft);
}
.retreat-intro .hero-note{
  justify-content:center;font-size:.98rem;gap:.75rem;
  margin:0 auto 1.9rem;max-width:56rem;
}
.retreat-intro .hero-note b{font-weight:500}
.retreat-intro .hero-cta{justify-content:center;margin:0}
@media(max-width:640px){
  .retreat-intro .hero-note{flex-direction:column;gap:.5rem}
  .retreat-intro .hero-note .dot{display:none}
}


/* ── Thesis band + featured quote (Embodied Decisions) ───── */
.thesis{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.35rem,3vw,2.15rem);line-height:1.32;letter-spacing:-.008em;
  color:var(--marine-deep);margin:0 auto;max-width:30ch;
}
.quote-intro{
  font-size:1.02rem;color:var(--ink-soft);max-width:52ch;margin:0 auto 1.8rem;
}
.big-quote{margin:0}
.big-quote p{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.3rem,2.9vw,2rem);line-height:1.35;letter-spacing:-.008em;
  color:var(--ink);margin:0 auto;max-width:28ch;
}
.big-quote cite{
  display:block;font-style:normal;font-size:.8rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-faint);margin-top:1.3rem;
}

.thesis-coda{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(1.1rem,2.1vw,1.5rem);line-height:1.4;letter-spacing:-.006em;
  color:var(--ink);margin:1.6rem auto 0;max-width:26ch;
  padding-top:1.5rem;border-top:1px solid var(--marine-pale);
}





/* ── Legal pages (terms, privacy) ────────────────────────── */
.legal-date{font-size:.9rem;color:var(--ink-faint);margin-top:.6rem}
.legal{display:grid;gap:2.2rem;padding-top:1rem}
.legal-intro p{font-size:1.02rem;line-height:1.7;color:var(--ink-soft)}
.legal-section h2{font-size:clamp(1.15rem,2vw,1.4rem);color:var(--marine-deep);
  margin-bottom:.9rem;letter-spacing:-.006em}
.legal-section h3{font-family:var(--sans);font-size:.95rem;font-weight:600;
  color:var(--ink);margin:1.4rem 0 .6rem;letter-spacing:0}
.legal-section p{font-size:.97rem;line-height:1.68;color:var(--ink-soft);margin-bottom:.9rem}
.legal-section p:last-child{margin-bottom:0}
.legal-section ul{list-style:none;margin:0 0 1rem;padding:0;display:grid;gap:.6rem}
.legal-section li{position:relative;padding-left:1.3rem;font-size:.97rem;
  line-height:1.6;color:var(--ink-soft)}
.legal-section li::before{content:'';position:absolute;left:0;top:.62em;
  width:5px;height:5px;border-radius:50%;background:var(--marine-soft)}
.legal-section a{color:var(--marine-deep)}


/* ── Newsletter post body ────────────────────────────────── */
.post-body{padding-top:1rem}
.post-body p{font-size:1.06rem;line-height:1.75;color:var(--ink-soft);margin-bottom:1.3rem}
.post-body h2{font-size:clamp(1.3rem,2.3vw,1.7rem);color:var(--marine-deep);
  margin:2.4rem 0 1rem;letter-spacing:-.008em}
.post-body em{font-style:italic;color:var(--ink)}
.post-pull{font-family:var(--serif);font-style:italic;
  font-size:clamp(1.25rem,2.4vw,1.65rem)!important;line-height:1.4!important;
  color:var(--marine-deep)!important;margin:2rem auto!important;max-width:30ch;text-align:center;
  padding:1.4rem 0;border-top:1px solid var(--marine-pale);border-bottom:1px solid var(--marine-pale)}

.post-note{font-size:.86rem!important;color:var(--ink-faint)!important;
  padding-top:1.4rem;border-top:1px solid var(--marine-pale);margin-top:2rem!important}
.post-body sup a{text-decoration:none;color:var(--marine)}

.post-list{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.7rem}
.post-list li{position:relative;padding-left:1.5rem;font-size:1.02rem;line-height:1.6;color:var(--ink-soft)}
.post-list li::before{content:'\2192';position:absolute;left:0;color:var(--marine)}


/* ── Naming the gap + Strozzi footnote (coaching page) ───── */
.gap-name{font-size:1rem;line-height:1.68;color:var(--ink-soft);max-width:52ch;
  margin:1.6rem auto 0;text-align:center}
.gap-name strong{color:var(--marine-deep);font-weight:600}
.shaping-note{font-size:.85rem;color:var(--ink-faint);margin-top:1.6rem;
  padding-top:1.1rem;border-top:1px solid var(--marine-pale)}


/* ── Footer social links ─────────────────────────────────── */
.foot-social{display:flex;gap:1.6rem;flex-wrap:wrap;padding:1.8rem 0 .4rem;
  border-top:1px solid rgba(242,235,223,.14);margin-top:2.4rem}
.foot-social a{display:inline-flex;align-items:center;gap:.5rem;
  color:rgba(242,235,223,.66);font-size:.88rem;text-decoration:none;transition:color .3s var(--ease)}
.foot-social a:hover{color:var(--cream)}
.foot-social svg{width:19px;height:19px;fill:none;stroke:currentColor;
  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
@media(max-width:520px){.foot-social{gap:1.2rem}}


/* ── Spam-folder note ────────────────────────────────────── */
.spam-note{font-size:.92rem;line-height:1.6;color:var(--marine-deep);
  background:var(--marine-wash);border-radius:var(--radius);
  padding:1rem 1.3rem;margin:1.8rem auto 0;max-width:48ch;text-align:left}
.spam-note strong{font-weight:500;word-break:break-word}


/* ── Obfuscated email ────────────────────────────────────────
   The address is assembled by JS. If JS is unavailable, CSS
   reconstructs it from two halves so it is still readable —
   scrapers reading the HTML source still see nothing usable. */
.eml::before{content:attr(data-u)}
.eml::after{content:"\0040" attr(data-d)}
.eml{word-break:break-word}





/* ── Portraits on the coaching page ──────────────────────── */

.cta-face{width:96px;height:96px;border-radius:50%;object-fit:cover;
  object-position:50% 20%;display:block;margin:0 auto 1.4rem;
  border:3px solid var(--cream);box-shadow:0 4px 22px rgba(19,32,32,.1)}


/* ── What successful clients have in common ──────────────── */
.commons{display:grid;gap:1.6rem;margin-top:2.2rem}
.common{padding-left:1.4rem;border-left:2px solid var(--marine-pale)}
.common h3{font-family:var(--sans);font-size:1.02rem;font-weight:600;
  letter-spacing:0;color:var(--ink);margin-bottom:.4rem}
.common p{font-size:.98rem;line-height:1.65;color:var(--ink-soft);margin:0}
.commit-note{margin-top:2.4rem;padding:1.4rem 1.6rem;border-radius:var(--radius);
  background:var(--marine-wash);border-left:3px solid var(--marine)}
.commit-note p{font-size:.98rem;line-height:1.68;color:var(--marine-deep);margin:0}
.commit-note strong{font-weight:600}
.commit-note a{color:var(--marine-deep);text-decoration:underline;text-underline-offset:3px}

.photo-credit{font-size:.85rem;color:var(--ink-faint);margin-top:1.4rem;
  padding-top:1.2rem;border-top:1px solid var(--marine-pale);
  max-width:34ch;margin-inline:auto}

.case-role{display:block;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-faint);margin-top:.3rem}

.portrait-hat{width:100%;max-width:420px;height:auto;aspect-ratio:1;
  object-fit:cover;border-radius:var(--radius);margin:2.2rem auto 0;display:block}

.opening-turn{font-family:var(--serif);font-size:clamp(1.2rem,2.3vw,1.55rem);
  font-weight:500;color:var(--marine-deep);letter-spacing:-.008em;
  margin:2rem 0 1.4rem}


/* ── Related letters ─────────────────────────────────────── */
.more-letters{padding-top:2.4rem;border-top:1px solid var(--marine-pale)}
.more-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:1.2rem}
.more-letter{display:block;padding:1.2rem 1.3rem;border:1px solid rgba(19,32,32,.1);
  border-radius:var(--radius);text-decoration:none;background:var(--cream);
  transition:border-color .3s var(--ease),transform .3s var(--ease)}
.more-letter:hover{border-color:var(--marine-soft);transform:translateY(-2px)}
.more-letter span{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-faint);margin-bottom:.4rem}
.more-letter strong{font-family:var(--serif);font-weight:400;font-size:1.06rem;
  line-height:1.3;color:var(--ink)}

.join-card{background:var(--cream);border:1px solid rgba(19,32,32,.08);
  border-radius:var(--radius);padding:2rem 1.9rem;text-align:center}
.join-lede{font-size:1.02rem;line-height:1.6;color:var(--ink-soft);
  max-width:40ch;margin:0 auto 1.4rem}
.join-card .form-note{margin-top:1.2rem}


/* ── Retreats hub ────────────────────────────────────────── */
.retreat-list{display:grid;gap:2.2rem;margin-top:2.2rem}
.retreat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem;
  align-items:center;background:var(--cream);border:1px solid rgba(19,32,32,.08);
  border-radius:var(--radius);overflow:hidden}
.retreat-img{display:block;line-height:0;height:100%}
.retreat-img img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s var(--ease)}
.retreat-img:hover img{transform:scale(1.03)}
.retreat-body{padding:2rem 2rem 2rem 0}
.retreat-body h3{font-size:clamp(1.4rem,2.4vw,1.85rem);margin:.7rem 0 .5rem;
  letter-spacing:-.008em}
.retreat-body h3 a{color:var(--ink);text-decoration:none}
.retreat-body h3 a:hover{color:var(--marine-deep)}
.retreat-where{font-size:.92rem;color:var(--marine-deep);margin-bottom:.9rem}
.retreat-body p{font-size:1rem;line-height:1.65;color:var(--ink-soft);margin-bottom:1.3rem}
.retreat-soon{grid-template-columns:1fr;background:var(--marine-wash);
  border-color:var(--marine-pale)}
.retreat-soon .retreat-body{padding:2rem}

.past-grid{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  margin-top:2.2rem}
.past img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;
  border-radius:var(--radius);display:block;margin-bottom:1rem}
.past h3{font-size:1.15rem;margin-bottom:.3rem;letter-spacing:-.006em}
.past-meta{font-size:.83rem;letter-spacing:.04em;color:var(--ink-faint);margin-bottom:.6rem}
.past p{font-size:.94rem;line-height:1.6;color:var(--ink-soft)}

@media(max-width:880px){
  .retreat{grid-template-columns:1fr;gap:0}
  .retreat-body{padding:1.8rem}
  .retreat-img img{aspect-ratio:3/2}
}


/* ── 5 Day Reset band ────────────────────────────────────── */
.reset-band{padding:2.2rem 0;background:var(--marine-wash);
  border-top:1px solid var(--marine-pale);border-bottom:1px solid var(--marine-pale)}
.reset-grid{display:grid;grid-template-columns:1.4fr 1fr auto;gap:2rem;align-items:center}
.reset-beats{display:flex;flex-direction:column;gap:.45rem}
.reset-beat{display:flex;gap:.6rem;font-size:.9rem;color:var(--ink-soft);align-items:flex-start}
.reset-beat b{color:var(--marine-deep);font-weight:600;flex:none}
.reset-lead{font-family:var(--serif);font-size:clamp(1.05rem,1.9vw,1.28rem);
  line-height:1.35;color:var(--marine-deep);margin-top:.35rem;max-width:44ch}
.reset-band .eyebrow{color:var(--marine)}
.reset-band .btn{flex:none}
@media(max-width:880px){
  .reset-grid{grid-template-columns:1fr}
  .reset-band .btn{width:100%;justify-content:center}
}
