@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(/assets/fonts/figtree-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url(/assets/fonts/newsreader-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(/assets/fonts/newsreader-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
  --_bg:#F6EDE0;        /* ── scheme base ── */
  --_ink:#21403B;       /* deep pine / coastal green */
  --_accent:#D9744E;    /* sunset terracotta */
  --_deep:#16302B;      /* deep pine shadow */
  /* per-scheme accent depth, solved so every scheme clears WCAG AA:
     ki = small accent text ≥4.5:1 on every light surface,
     kd = large display accent ≥3:1, kb = white button label ≥4.5:1 */
  --_ki:48%; --_kd:80%; --_kb:75%;
  --_shade:color-mix(in srgb,var(--_ink) 60%,var(--_accent));
  --ink:var(--_ink);
  --ink-2:color-mix(in srgb,var(--_ink) 86%,var(--_bg));
  --ink-700:color-mix(in srgb,var(--_ink) 70%,var(--_bg));
  --ink-900:var(--_deep);
  --ink-950:color-mix(in srgb,var(--_deep) 84%,#000);
  --bg:var(--_bg);
  --cream:color-mix(in srgb,var(--_bg) 55%,#fff);
  --paper:color-mix(in srgb,var(--_bg) 45%,#fff);
  --sand:color-mix(in srgb,var(--_bg) 82%,var(--_shade));
  --peach:color-mix(in srgb,var(--_bg) 82%,var(--_accent));
  --mint:color-mix(in srgb,var(--_bg) 84%,var(--_ink));
  --accent:var(--_accent);
  --accent-ink:color-mix(in srgb,var(--_accent) var(--_ki),var(--_deep));
  --accent-disp:color-mix(in srgb,var(--_accent) var(--_kd),var(--_deep));
  --accent-btn:color-mix(in srgb,var(--_accent) var(--_kb),var(--_deep));
  --accent-soft:color-mix(in srgb,var(--_accent) 55%,#fff);
  --on-dark:var(--cream);
  --on-dark-2:color-mix(in srgb,var(--cream) 78%,var(--_deep));
  --line:color-mix(in srgb,var(--_ink) 16%,transparent);
  --line-2:color-mix(in srgb,var(--_ink) 9%,transparent);
  --ok:#2F6A45;
  --disp:"Newsreader", Georgia, serif;
  --sans:"Figtree", system-ui, sans-serif;
  --maxw:1200px;
  --pad:clamp(16px,5vw,72px);
  --r:28px; --r-md:20px; --r-sm:14px; --r-pill:100px;
  --ease:cubic-bezier(.22,1,.36,1);
  --shadow:0 20px 50px -30px color-mix(in srgb,var(--_ink) 55%,transparent);
  --shadow-lg:0 34px 70px -34px color-mix(in srgb,var(--_ink) 55%,transparent);
  --shadow-peach:0 22px 48px -26px color-mix(in srgb,var(--_accent) 45%,transparent);
  interpolate-size:allow-keywords;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
h1,h2,h3{font-family:var(--disp);font-weight:500;line-height:1.08;letter-spacing:-.01em;text-wrap-style:balance}
p,li,dd,figcaption{text-wrap-style:pretty}
address{font-style:normal}
[hidden]{display:none!important}
a[href^="tel:"]{white-space:nowrap}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
section[id]{scroll-margin-top:84px}
::selection{background:var(--accent-btn);color:#fff}
.section{padding-block:clamp(64px,8.5vw,120px)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* focus — one considered ring everywhere */
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}
.on-dark :focus-visible,footer :focus-visible,.banner :focus-visible{outline-color:var(--on-dark)}
.skip{position:absolute;left:12px;top:-60px;z-index:4000;background:var(--ink-900);color:var(--on-dark);padding:.7em 1.1em;border-radius:var(--r-sm);font-weight:600;font-size:.9rem;transition:top .2s}
.skip:focus{top:12px}

/* reveal — applied by JS only to below-the-fold blocks; nothing above the fold starts hidden */
.rv{opacity:0;transform:translateY(10px)}
.rv-go{transition:opacity .45s var(--ease),transform .45s var(--ease)!important}
.rv-go[data-d="2"]{transition-delay:.08s!important}.rv-go[data-d="3"]{transition-delay:.16s!important}.rv-go[data-d="4"]{transition-delay:.24s!important}

.eyebrow{font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--accent-ink);display:inline-flex;align-items:baseline;gap:.6em}
@media(max-width:480px){.eyebrow{letter-spacing:.1em}}
.eyebrow::before{content:"❋";color:var(--accent);font-size:.9em}
.on-dark .eyebrow{color:var(--accent-soft)}
.on-dark .eyebrow::before{color:var(--accent-soft)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;white-space:nowrap;background:var(--ink);color:var(--cream);padding:.9em 1.6em;border-radius:var(--r-pill);font-weight:600;font-size:.94rem;line-height:1.2;border:1.5px solid var(--ink);cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background-color .25s,color .25s;font-family:var(--sans)}
.btn svg{flex:none;width:15px;height:15px}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn--accent{background:var(--accent-btn);border-color:var(--accent-btn);color:#fff}
.btn--accent:hover{box-shadow:var(--shadow-peach)}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--cream)}

/* top banner */
.banner{background:var(--ink-900);color:var(--on-dark);font-size:.82rem;display:flex;justify-content:center;gap:.2em 2em;flex-wrap:wrap;padding:.62em var(--pad);text-align:center}
.banner b{color:var(--accent-soft);font-weight:600}
.banner a{border-bottom:1px solid color-mix(in srgb,var(--accent-soft) 50%,transparent)}
.banner a:hover{border-bottom-color:var(--accent-soft)}
@media(max-width:560px){.banner{font-size:.78rem}.banner .hide-sm{display:none}}

/* header — the blur lives on a pseudo-element so the header never becomes
   a containing block for the fixed mobile menu */
header.nav{position:sticky;top:0;z-index:100;transition:box-shadow .4s}
header.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--_bg) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background-color .4s}
header.nav.scrolled{box-shadow:0 10px 34px -26px color-mix(in srgb,var(--_deep) 60%,transparent)}
header.nav.scrolled::before{background:color-mix(in srgb,var(--_bg) 96%,transparent)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1.6rem;padding-block:.8rem}
.logo{display:flex;align-items:center;gap:.6rem;flex:none}
.logo .compass{color:var(--accent);flex:none}
.logo .tx{font-family:var(--disp);font-weight:600;font-size:1.34rem;line-height:.95;letter-spacing:-.01em}
.logo small{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;font-weight:700;color:var(--ink-2);margin-top:.32em}
.nav-links{display:flex;gap:1.4rem;align-items:center;font-weight:500;font-size:.92rem;white-space:nowrap}
.nav-links a{color:var(--ink-2);transition:color .25s;padding-block:.3em;position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-.1em;height:1.5px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-links a:hover,.nav-links a.active{color:var(--ink)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links .m-only{display:none}
.nav-cta{display:flex;align-items:center;gap:1.1rem}
.nav-portal{font-weight:600;font-size:.88rem;display:inline-flex;align-items:center;gap:.35em;white-space:nowrap}
.nav-portal:hover{color:var(--accent-ink)}
@media(max-width:1180px){.nav-portal{display:none}.nav-links{gap:1.15rem}}
.burger{display:none;position:relative;z-index:130;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:0;cursor:pointer;border-radius:12px;color:var(--ink)}
.burger span{width:22px;height:2px;background:currentColor;border-radius:2px;transition:transform .35s var(--ease),opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:960px){
  .burger{display:flex}
  .nav-portal{display:none}
  .nav-links{position:fixed;top:0;right:0;bottom:0;width:min(84vw,330px);background:var(--bg);flex-direction:column;align-items:flex-start;justify-content:center;gap:.4rem;font-size:1.2rem;padding:5rem 2.2rem 2rem;box-shadow:var(--shadow-lg);z-index:120;transform:translateX(100%);visibility:hidden;transition:transform .4s var(--ease),visibility 0s linear .4s}
  .nav-links.open{transform:none;visibility:visible;transition:transform .4s var(--ease)}
  .nav-links a{display:block;padding:.45em 0;color:var(--ink)}
  .nav-links .m-only{display:block;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);width:100%;font-size:1rem;font-weight:600}
}
@media(max-width:400px){.nav-cta .btn{padding:.8em 1.15em}.logo .tx{font-size:1.22rem}.nav-inner{gap:.8rem}}

/* HERO — warm, rounded, photo + note */
.hero{position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(50% 40% at 82% 12%,var(--peach),transparent 66%),
  radial-gradient(46% 38% at 6% 96%,var(--mint),transparent 68%)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.16fr .84fr;gap:clamp(2rem,4.5vw,4rem);align-items:center;padding-block:clamp(28px,4vw,56px) clamp(48px,5vw,72px)}
.hero .eyebrow{margin-bottom:1.2rem}
.hero h1{font-size:clamp(2.5rem,5vw,4.3rem);font-weight:500;line-height:1.03;letter-spacing:-.022em}
.hero h1 em{font-style:italic;color:var(--accent-disp)}
.hero .sub{max-width:46ch;margin-top:1.3rem;font-size:clamp(1.05rem,1.35vw,1.2rem);color:var(--ink-2);font-weight:380}
.hero .actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem;align-items:center}
.hero .facts-line{margin-top:1.3rem;font-size:.9rem;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:.25em 0}
.hero .facts-line span{white-space:nowrap}
.hero .facts-line span+span::before{content:"·";margin:0 .8em;color:var(--accent-ink)}
@media(max-width:520px){.hero .facts-line{flex-direction:column}.hero .facts-line span::before,.hero .facts-line span+span::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin:0 .7em .15em 0;vertical-align:middle}}
.hero .facts-line b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.hero-art{position:relative;margin:0}
.hero-photo{border-radius:var(--r);overflow:hidden;aspect-ratio:5/5.4;box-shadow:var(--shadow-lg);position:relative;background:var(--sand);transform:rotate(1.4deg);margin:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 24%}
.note-card{position:absolute;left:-6%;bottom:6%;background:var(--cream);border-radius:var(--r-md);padding:1.1rem 1.3rem;box-shadow:var(--shadow);max-width:270px;transform:rotate(-2.2deg);border:1px solid var(--line-2);margin:0}
.note-card p{font-family:var(--disp);font-style:italic;font-size:1.08rem;line-height:1.35}
.note-card figcaption{margin-top:.6rem;font-size:.8rem;font-weight:700;color:var(--accent-ink)}
.note-card figcaption::before{content:"— "}
.blob{position:absolute;top:-4%;right:5%;width:108px;height:108px;background:var(--accent-btn);color:#fff;border-radius:46% 54% 58% 42%/52% 44% 56% 48%;display:grid;place-items:center;text-align:center;font-size:.74rem;font-weight:700;line-height:1.18;box-shadow:var(--shadow-peach);transform:rotate(-8deg);padding:.6rem}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:2.6rem}.hero-art{max-width:420px;width:100%;margin-inline:auto}.note-card{left:-2%}}
@media(max-width:480px){.hero-art{max-width:340px}.note-card{max-width:230px;padding:.9rem 1.1rem}.blob{width:96px;height:96px;font-size:.68rem}}

/* soft wave divider */
.wave{display:block;width:100%;height:40px;color:var(--paper)}

/* value row */
.values{background:var(--paper)}
.vrow{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;padding-block:2.4rem}
.vrow li{text-align:center}
.vrow .ic{width:52px;height:52px;margin:0 auto .8rem;border-radius:50%;background:var(--peach);color:var(--accent-ink);display:grid;place-items:center}
.vrow .ic svg{width:26px;height:26px}
.vrow b{display:block;font-family:var(--disp);font-size:1.06rem;font-weight:600}
.vrow span.d{display:block;font-size:.84rem;color:var(--ink-2);margin-top:.1rem}
@media(max-width:820px){.vrow{grid-template-columns:repeat(2,1fr);gap:1.8rem 1rem}.vrow li:last-child{grid-column:1/-1}}

/* section head */
.shead{max-width:64ch}
.shead :is(h1,h2){font-size:clamp(2rem,4.2vw,3.3rem);margin-top:.8rem;font-weight:500}
.shead :is(h1,h2) em{font-style:italic;color:var(--accent-disp)}
.on-dark .shead :is(h1,h2) em,.on-dark :is(h1,h2) em{color:var(--accent-soft)}
.shead .lede{margin-top:1rem;font-size:1.1rem;color:var(--ink-2);font-weight:380;max-width:58ch}
.shead.center{margin-inline:auto;text-align:center}
.shead.center .lede{margin-inline:auto}

/* about + at a glance (dark band) */
.on-dark{background:var(--ink-900);color:var(--on-dark)}
.about{position:relative;overflow:hidden}
.about::after{content:"";position:absolute;right:-8%;top:-30%;width:560px;height:560px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 20%,transparent),transparent 64%);pointer-events:none}
.about-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.about :is(h1,h2){font-size:clamp(2rem,4vw,3.1rem);margin-top:.8rem}
.about-copy p:not(.eyebrow){margin-top:1.1rem;font-size:1.06rem;color:var(--on-dark-2);max-width:52ch}
.about-copy p.belief{font-family:var(--disp);font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.42;color:var(--on-dark);font-weight:400}
.timeline{margin-top:2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;border-top:1px solid color-mix(in srgb,var(--on-dark) 18%,transparent);padding-top:1.2rem;max-width:560px}
.timeline li{font-size:.86rem;color:var(--on-dark-2);line-height:1.45}
.timeline .yr{display:block;font-family:var(--disp);font-size:1.6rem;color:var(--accent-soft);line-height:1.1;margin-bottom:.2rem;font-variant-numeric:lining-nums}
.glance{background:var(--cream);color:var(--ink);border-radius:var(--r);padding:clamp(1.5rem,3vw,2.2rem);box-shadow:0 30px 70px -30px rgba(0,0,0,.55)}
.glance h3{font-size:1.5rem;font-weight:600}
.glance .gl-sub{font-size:.88rem;color:var(--ink-2);margin-top:.25rem}
.glance dl{margin-top:1rem;display:grid;grid-template-columns:6.2rem 1fr;gap:0}
.glance dt,.glance dd{padding:.68rem 0;border-top:1px solid var(--line-2);font-size:.92rem;line-height:1.5}
.glance dd>span{display:block}
.nw{white-space:nowrap;font-style:inherit}
.glance dt{font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-ink);padding-top:.95rem}
.glance dd a{border-bottom:1px solid var(--line)}
.glance dd a:hover{border-bottom-color:var(--accent-ink);color:var(--accent-ink)}
@media(max-width:860px){.about-grid{grid-template-columns:1fr}}
@media(max-width:480px){.glance dl{grid-template-columns:1fr}.glance dt{padding-bottom:0;border-top:1px solid var(--line-2)}.glance dd{border-top:0;padding-top:.25rem}.timeline{grid-template-columns:1fr;gap:.8rem}.timeline li{display:flex;gap:.9rem;align-items:baseline}.timeline .yr{font-size:1.3rem;margin:0}}

/* the model / why */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);margin-top:2.6rem;align-items:center}
.why-copy p{margin-top:1rem;color:var(--ink-2)}
.why-copy p:first-child{margin-top:0}
.why-copy p b{color:var(--ink);font-weight:700}
.stat-soft{background:var(--peach);border-radius:var(--r);padding:clamp(1.8rem,3.5vw,2.6rem);text-align:center;box-shadow:var(--shadow-peach)}
.stat-soft .big{font-family:var(--disp);font-size:clamp(3.6rem,8vw,5.6rem);font-weight:600;color:var(--accent-disp);line-height:.9}
.stat-soft .big small{font-size:.28em;font-weight:500;margin-left:.15em}
.stat-soft p{margin-top:1rem;font-size:1rem;color:var(--ink);max-width:36ch;margin-inline:auto}
.stat-soft .src{font-size:.8rem;color:var(--ink-2);margin-top:1rem}
@media(max-width:820px){.why-grid{grid-template-columns:1fr}}

/* included cards */
#included{padding-top:0}
.inc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:2.6rem}
.icard{background:var(--cream);border-radius:var(--r-md);padding:1.7rem;box-shadow:var(--shadow);transition:transform .4s var(--ease),box-shadow .4s var(--ease);border:1px solid var(--line-2)}
.icard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.icard .ic{width:54px;height:54px;border-radius:16px;background:var(--peach);color:var(--accent-ink);display:grid;place-items:center;margin-bottom:1.1rem}
.icard .ic svg{width:26px;height:26px}
.icard h3{font-size:1.28rem;font-weight:600}
.icard p{font-size:.95rem;color:var(--ink-2);margin-top:.5rem}
@media(max-width:860px){.inc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.inc-grid{grid-template-columns:1fr}}

/* team */
.team{background:var(--paper)}
.team-h{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem 1.5rem;flex-wrap:wrap;margin-top:2.8rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.team-h h3{font-size:1.5rem;font-weight:600;display:inline-flex;align-items:center;gap:.55em}
.team-h h3 .dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 18%,transparent)}
.team-h p{font-size:.94rem;color:var(--ink-2)}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;margin-top:1.5rem}
.member{position:relative;display:flex;flex-direction:column;background:var(--cream);border-radius:var(--r-md);overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease);box-shadow:var(--shadow);border:1px solid var(--line-2)}
.member:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.member .ph{aspect-ratio:1/1;overflow:hidden;background:var(--sand);position:relative;margin:.7rem .7rem 0;border-radius:var(--r-sm)}
.member .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.member:hover .ph img{transform:scale(1.04)}
.status{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.01em;padding:.3em .75em;border-radius:var(--r-pill);background:var(--ok);color:#fff;line-height:1.3}
.status.closed{background:var(--ink-2);color:var(--cream)}
.status.info{background:var(--mint);color:var(--ink)}
.member .ph .status{position:absolute;bottom:.6rem;left:.6rem}
.member .bd{padding:1rem 1.15rem 1.2rem;display:flex;flex-direction:column;flex:1}
.member h3{font-size:1.18rem;font-weight:600;line-height:1.15}
.member .cred{font-size:.82rem;color:var(--accent-ink);font-weight:600;margin-top:.25rem}
.member .sb{font-size:.88rem;color:var(--ink-2);margin-top:.6rem;line-height:1.5}
.member .more{margin-top:auto;padding-top:.85rem;align-self:flex-start;background:none;border:0;font:inherit;font-size:.84rem;font-weight:700;color:var(--ink);cursor:pointer;display:inline-flex;gap:.35em;align-items:center}
.member .more::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:1}
.member .more .ar{transition:transform .3s var(--ease);color:var(--accent-ink)}
.member:hover .more .ar{transform:translateX(3px)}
.member:has(.more:focus-visible){outline:2px solid var(--ink);outline-offset:3px}
.member .more:focus-visible{outline:none}
.member .bio{display:none}
.team-grid--sm{grid-template-columns:repeat(3,1fr);gap:1rem}
.member--sm{display:grid;grid-template-columns:84px 1fr;gap:1rem;padding:1rem;align-items:stretch}
.member--sm .ph{align-self:start}
.member--sm .ph{margin:0;width:84px;height:84px;border-radius:var(--r-sm)}
.member--sm .bd{padding:0}
.member--sm h3{font-size:1.1rem}
.member--sm .status{margin-top:.5rem;align-self:flex-start}
.member--sm .sb{font-size:.86rem}
@media(max-width:1020px){.team-grid{grid-template-columns:repeat(2,1fr)}.team-grid--sm{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.team-grid--sm{grid-template-columns:1fr}}
@media(max-width:560px){.team-grid{grid-template-columns:1fr}.team-grid .member{display:grid;grid-template-columns:88px 1fr;gap:1rem;padding:1rem;align-items:stretch}.team-grid .member .ph{margin:0;width:88px;height:88px;align-self:start}.team-grid .member .bd{padding:0}}

/* pricing — warm cards on a shared baseline grid */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.6rem;align-items:stretch}
.plan{background:var(--cream);border-radius:var(--r);padding:1.8rem;display:grid;grid-row:span 7;grid-template-rows:subgrid;row-gap:0;box-shadow:var(--shadow);border:1.5px solid var(--line-2);transition:transform .4s var(--ease),box-shadow .4s var(--ease);position:relative}
.plan:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.plan.featured{border-color:var(--accent-btn);background:linear-gradient(180deg,var(--peach),var(--cream) 46%)}
.plan h3{font-size:1.42rem;font-weight:600}
.plan .who{font-size:.9rem;color:var(--ink-2);margin-top:.45rem}
.plan .stat{justify-self:start;align-self:start;margin-top:.9rem;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.36em .85em;border-radius:var(--r-pill)}
.plan .stat.open{background:var(--ok);color:#fff}
.plan .stat.full{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}
.plan .amt{font-family:var(--disp);font-size:2.9rem;font-weight:600;color:var(--accent-disp);line-height:1;margin-top:1.2rem;font-variant-numeric:lining-nums}
.plan .amt small{font-size:.32em;font-family:var(--sans);color:var(--ink-2);font-weight:500;margin-left:.15em}
.plan .amt .lab{display:block;font-family:var(--sans);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);font-weight:700;margin-bottom:.45rem}
.plan .tiers{margin-top:1.2rem;padding-top:.8rem;border-top:1px solid var(--line)}
.plan .tiers li{display:flex;justify-content:space-between;font-size:.92rem;padding:.42em 0}
.plan .tiers b{font-weight:700;font-variant-numeric:tabular-nums}
.plan .reg{font-size:.86rem;color:var(--ink-2);margin-top:.8rem}
.plan .reg b{color:var(--ink)}
.plan .cta{margin-top:1.4rem;align-self:start}
.plan .cta .btn{width:100%}
.plan .cta .cta-note{display:block;text-align:center;font-size:.82rem;color:var(--ink-2);margin-top:.55rem}
.fine{margin-top:1.8rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fine p{background:var(--cream);border:1px solid var(--line-2);border-radius:var(--r-md);padding:1.15rem 1.35rem;font-size:.92rem;display:flex;gap:.8em;align-items:flex-start;color:var(--ink)}
.fine p.full{grid-column:1/-1;background:transparent;border:0;padding:.2rem 1.35rem 0;color:var(--ink-2);font-size:.88rem;display:block;text-align:center}
.fine svg{flex:none;color:var(--accent-ink);margin-top:3px}
.fine a{font-weight:700;border-bottom:1px solid var(--line)}
@media(max-width:900px){.plan-grid{grid-template-columns:1fr;max-width:520px;margin-inline:auto}.plan{grid-row:auto;display:flex;flex-direction:column}.plan .stat{align-self:flex-start}.plan .cta{margin-top:1.4rem;align-self:stretch}.fine{grid-template-columns:1fr}}

/* weight loss */
.wlc{position:relative;overflow:hidden}
.wlc::after{content:"";position:absolute;left:-6%;bottom:-30%;width:460px;height:460px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent),transparent 62%);pointer-events:none}
.wlc .lede{color:var(--on-dark-2)}
.wl-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);margin-top:2.4rem;align-items:start;position:relative;z-index:1}
.wl-copy p{color:var(--on-dark-2);margin-top:1rem}
.wl-copy p:first-child{margin-top:0}
.wl-copy p b{color:var(--on-dark)}
.wl-steps{margin-top:1.5rem;display:grid;gap:.7rem}
.wl-steps li{display:flex;gap:.8em;align-items:flex-start;font-size:.95rem;color:var(--on-dark)}
.wl-steps li::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent-soft);margin-top:.6em}
.medc{background:color-mix(in srgb,#fff 6%,transparent);border-radius:var(--r-md);padding:1.4rem 1.5rem;border:1px solid color-mix(in srgb,var(--accent-soft) 26%,transparent)}
.medc+.medc{margin-top:1rem}
.medc h3{color:var(--accent-soft);font-size:1.24rem;font-weight:600;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.medc h3 small{font-size:.72rem;font-family:var(--sans);color:var(--on-dark-2);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.medc ul{margin-top:.7rem}
.medc li{display:flex;justify-content:space-between;font-size:.95rem;padding:.48em 0;border-bottom:1px dashed color-mix(in srgb,#fff 14%,transparent);font-variant-numeric:tabular-nums}
.medc li:last-child{border-bottom:0}
.medc li b{color:var(--on-dark);font-family:var(--disp);font-size:1.1rem;font-weight:600}
.wl-note{margin-top:1.6rem;font-size:.95rem;color:var(--on-dark)}
.wl-note a{color:var(--accent-soft);border-bottom:1px solid;font-weight:700;white-space:nowrap}
@media(max-width:820px){.wl-grid{grid-template-columns:1fr}}

/* services + labs */
.sl-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,3rem);margin-top:2.6rem;align-items:start}
.svc-ul{display:grid}
.svc-ul li{display:flex;gap:.85em;align-items:flex-start;padding:.72em 0;border-bottom:1px solid var(--line-2);font-size:.98rem;color:var(--ink-2)}
.svc-ul li .ck{flex:none;width:24px;height:24px;border-radius:50%;background:var(--peach);color:var(--accent-ink);display:grid;place-items:center;margin-top:1px}
.svc-ul li b{font-weight:600;color:var(--ink)}
.labs{background:var(--cream);border-radius:var(--r);padding:1.6rem 1.7rem 1.4rem;box-shadow:var(--shadow);position:sticky;top:100px;border:1px solid var(--line-2)}
.labs h3{font-size:1.32rem;font-weight:600}
.labs .sub{font-size:.88rem;color:var(--ink-2);margin-top:.3rem}
.labs table{width:100%;border-collapse:collapse;margin-top:.9rem;font-size:.92rem}
.labs th,.labs td{padding:.5em 0;border-bottom:1px solid var(--line-2);text-align:left;font-weight:500}
.labs td{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:1rem}
.labs tbody.panels th,.labs tbody.panels td{border-bottom:0;padding:.55em .8em}
.labs tbody.panels tr{background:var(--peach)}
.labs tbody.panels tr:first-child th,.labs tbody.panels tr:first-child td{padding-top:.75em}
.labs tbody.panels tr:last-child th,.labs tbody.panels tr:last-child td{padding-bottom:.75em}
.labs tbody.panels th{font-weight:600;border-radius:var(--r-sm) 0 0 var(--r-sm)}
.labs tbody.panels td{border-radius:0 var(--r-sm) var(--r-sm) 0}
.labs tbody.panels tr:first-child th{border-radius:var(--r-sm) 0 0 0}.labs tbody.panels tr:first-child td{border-radius:0 var(--r-sm) 0 0}
.labs tbody.panels tr:last-child th{border-radius:0 0 0 var(--r-sm)}.labs tbody.panels tr:last-child td{border-radius:0 0 var(--r-sm) 0}
.labs tbody.panels::before{content:"";display:table-row;height:.7rem}
.labs .incl{display:block;font-size:.8rem;font-weight:500;color:var(--ink-2)}
.labs tr:last-child th,.labs tr:last-child td{border-bottom:0}
@media(max-width:820px){.sl-grid{grid-template-columns:1fr}.labs{position:static}}

/* testimonials */
.stories{background:var(--paper)}
.tq-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2.6rem}
.tq{background:var(--cream);border-radius:var(--r-md);padding:2rem 2rem 1.7rem;box-shadow:var(--shadow);border:1px solid var(--line-2);margin:0;display:flex;flex-direction:column;position:relative}
.tq::before{content:"“";font-family:var(--disp);font-size:4.2rem;line-height:.7;color:var(--accent);height:1.6rem}
.tq blockquote p{font-family:var(--disp);font-size:1.22rem;line-height:1.46;margin-top:.6rem;font-style:italic}
.tq figcaption{margin-top:auto;padding-top:1.3rem;font-size:.88rem;color:var(--ink-2)}
.tq figcaption b{color:var(--accent-ink);font-weight:700}
@media(max-width:760px){.tq-grid{grid-template-columns:1fr}}

/* faq — native details, one open at a time */
.faq-wrap{max-width:860px;margin:2.6rem auto 0;display:grid;gap:.75rem}
.faq-item{background:var(--cream);border-radius:var(--r-md);box-shadow:var(--shadow);border:1px solid var(--line-2);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;padding:1.15em 3.4em 1.15em 1.4em;position:relative;border-radius:var(--r-md)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary h3{font-family:var(--disp);font-size:1.16rem;font-weight:500;line-height:1.3;color:var(--ink)}
.faq-item summary::after{content:"";position:absolute;right:1.3rem;top:50%;width:14px;height:14px;margin-top:-7px;background:
  linear-gradient(var(--accent-ink),var(--accent-ink)) center/14px 1.8px no-repeat,
  linear-gradient(var(--accent-ink),var(--accent-ink)) center/1.8px 14px no-repeat;transition:transform .35s var(--ease)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item summary:hover h3{color:var(--accent-ink)}
.faq-item summary:focus-visible{outline-offset:-3px}
.faq-item::details-content{block-size:0;overflow:hidden;transition:block-size .4s var(--ease),content-visibility .4s allow-discrete}
.faq-item[open]::details-content{block-size:auto}
.faq-a{padding:0 1.4em 1.3em;color:var(--ink-2);font-size:.98rem;max-width:68ch}
.faq-a a{color:var(--accent-ink);font-weight:600;border-bottom:1px solid var(--line)}

/* telehealth */
.tele{background:var(--paper)}
.tele-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.2rem}
.tele-grid a{background:var(--cream);border-radius:var(--r-sm);padding:.95rem 1.15rem;display:flex;align-items:center;justify-content:space-between;gap:.6em;box-shadow:var(--shadow);border:1px solid var(--line-2);transition:transform .3s var(--ease),border-color .3s}
.tele-grid a:hover{transform:translateY(-2px);border-color:var(--accent-btn)}
.tele-grid .nm{display:block;font-weight:600;font-size:.94rem}
.tele-grid .url{display:block;font-size:.8rem;color:var(--ink-2);margin-top:.05rem}
.tele-grid svg{flex:none;color:var(--accent-ink);opacity:.7;transition:opacity .3s,transform .3s var(--ease)}
.tele-grid a:hover svg{opacity:1;transform:translate(2px,-2px)}
.tele-note{margin-top:1.4rem;font-size:.92rem;color:var(--ink-2)}
@media(max-width:960px){.tele-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.tele-grid{grid-template-columns:1fr}}

/* contact */
.c-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(1.5rem,4vw,3rem);margin-top:2.6rem;align-items:start}
.cinfo .row{display:flex;gap:.95em;align-items:flex-start;padding:1.1rem 0;border-bottom:1px solid var(--line-2)}
.cinfo .row:first-child{padding-top:0}
.cinfo .row .ic{flex:none;width:44px;height:44px;border-radius:50%;background:var(--peach);color:var(--accent-ink);display:grid;place-items:center}
.cinfo .row h3{font-family:var(--disp);font-size:1.12rem;font-weight:600}
.cinfo .row .tx{font-size:.92rem;color:var(--ink-2);margin-top:.2rem}
.cinfo .row a{border-bottom:1px solid var(--line);color:var(--ink)}
.cinfo .row a:hover{border-bottom-color:var(--accent-ink);color:var(--accent-ink)}
.hours{display:grid;grid-template-columns:auto 1fr;gap:.1rem .9rem;margin-top:.25rem;font-size:.92rem;color:var(--ink-2)}
.hours dt{font-weight:600;color:var(--ink)}
.res{margin-top:.35rem;display:grid;gap:.15rem}
.res li{font-size:.92rem}
.res a{display:inline-block;border-bottom:0!important;padding:.22em 0;line-height:1.45}
.res a span{text-decoration:underline;text-decoration-color:var(--line);text-decoration-thickness:1px;text-underline-offset:3px}
.res a:hover span{text-decoration-color:var(--accent-ink)}
.res a svg{display:inline-block;vertical-align:baseline;margin-left:.35em;color:var(--accent-ink);width:10px;height:10px}
.cform{background:var(--cream);border-radius:var(--r);padding:clamp(1.5rem,3vw,2.2rem);box-shadow:var(--shadow);border:1px solid var(--line-2)}
.cform h3{font-size:1.5rem;font-weight:600}
.cform .fn{font-size:.9rem;color:var(--ink-2);margin-top:.35rem}
.cform .fn a{color:var(--accent-ink);font-weight:700;border-bottom:1px solid var(--line)}
.cform label{font-size:.82rem;font-weight:700;color:var(--ink);display:block;margin-bottom:.4em;margin-top:1rem}
.cform input,.cform select,.cform textarea{width:100%;font-family:var(--sans);font-size:1rem;padding:.78em .95em;border:1.5px solid color-mix(in srgb,var(--_ink) 28%,transparent);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);transition:border-color .2s,box-shadow .2s}
.cform input::placeholder,.cform textarea::placeholder{color:color-mix(in srgb,var(--_ink) 62%,var(--_bg))}
.cform input:focus-visible,.cform select:focus-visible,.cform textarea:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--_ink) 16%,transparent)}
.cform textarea{min-height:98px;resize:vertical}
.cform .frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.cform .privacy{display:flex;gap:.6em;align-items:flex-start;margin-top:1.1rem;font-size:.86rem;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);padding:.75rem .9rem}
.cform .privacy svg{flex:none;margin-top:2px;color:var(--accent-ink)}
.cform .btn{margin-top:1.2rem;width:100%}
.form-status{margin-top:1rem;font-size:.92rem;font-weight:600;color:var(--ink);background:var(--peach);border-radius:var(--r-sm);padding:.8rem 1rem}
.form-status:empty{display:none}
@media(max-width:820px){.c-grid{grid-template-columns:1fr}.cform .frow{grid-template-columns:1fr}}

/* footer */
footer{background:var(--ink-950);color:var(--on-dark-2);padding-block:clamp(3rem,6vw,4.5rem) 2rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
footer .logo .tx{color:var(--on-dark)}
footer .logo small{color:var(--on-dark-2)}
footer p{margin-top:1rem;font-size:.9rem;max-width:34ch}
.foot-social{display:flex;gap:.7rem;margin-top:1.2rem}
.foot-social a{width:40px;height:40px;border-radius:50%;border:1px solid color-mix(in srgb,var(--on-dark) 24%,transparent);display:grid;place-items:center;transition:background-color .3s,border-color .3s,color .3s;color:var(--on-dark)}
.foot-social a:hover{background:var(--accent-btn);border-color:var(--accent-btn);color:#fff}
.foot-col h2{font-family:var(--sans);font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--on-dark-2);margin-bottom:.8rem;line-height:1.4}
.foot-col a{display:block;padding:.32em 0;font-size:.92rem;color:var(--on-dark);transition:color .25s}
.foot-col a:hover{color:var(--accent-soft)}
.foot-bottom{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid color-mix(in srgb,var(--on-dark) 14%,transparent);display:flex;justify-content:space-between;gap:.6rem 1.5rem;flex-wrap:wrap;font-size:.82rem}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.foot-grid>div:first-child{grid-column:1/-1}}
@media(max-width:520px){.foot-grid{gap:2rem 1rem}.foot-grid>div:last-child{grid-column:1/-1}.foot-bottom span{text-wrap-style:balance}}

/* bio modal — native <dialog>: focus moves in, Esc closes, background inert */
.modal{border:0;padding:0;background:transparent;color:var(--ink);width:min(640px,calc(100% - 2rem));max-width:none;max-height:none;margin:auto;overflow:visible}
.modal::backdrop{background:color-mix(in srgb,var(--_deep) 70%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.modal .dialog{position:relative;background:var(--bg);border-radius:var(--r);max-height:min(88vh,820px);overflow:auto;box-shadow:var(--shadow-lg);overscroll-behavior:contain}
.modal[open] .dialog{animation:pop .4s var(--ease)}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.985)}}
html:has(.modal[open]){overflow:hidden}
.modal .x{position:absolute;top:1rem;right:1rem;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--cream);cursor:pointer;color:var(--ink);z-index:2;display:grid;place-items:center;transition:background-color .25s,color .25s}
.modal .x:hover{background:var(--ink);color:var(--cream)}
.modal .mhead{display:flex;gap:1.2rem;align-items:center;padding:1.7rem 4.4rem 1.3rem 1.7rem;border-bottom:1px solid var(--line-2)}
.modal .mhead img{width:96px;height:96px;border-radius:20px;object-fit:cover;flex:none;background:var(--sand)}
.modal .mhead h2{font-size:1.55rem;font-weight:600}
.modal .mhead .cred{color:var(--accent-ink);font-weight:600;font-size:.9rem;margin-top:.25rem}
.modal .mhead .status{margin-top:.55rem}
.modal .mbody{padding:1.4rem 1.7rem 1.9rem}
.modal .mbody p{color:var(--ink-2);margin-top:.9rem;font-size:.98rem}
.modal .mbody p:first-child{margin-top:0}
.modal .mbody .tele-l{margin-top:1.4rem;display:inline-flex;gap:.5em;align-items:center;font-weight:600;font-size:.9rem;color:var(--ink);border:1px solid var(--line);padding:.6em 1.1em;border-radius:var(--r-pill);transition:background-color .25s}
.modal .mbody .tele-l:hover{background:var(--peach)}
@media(max-width:480px){.modal .mhead{flex-direction:column;align-items:flex-start;padding-right:1.7rem}.modal .mhead img{width:84px;height:84px}}

/* cursor-tracked warm light on flat cards (fine pointers only) */
@media(hover:hover) and (pointer:fine){
  .icard,.plan{position:relative}
  .icard::after,.plan::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(250px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent) 14%,transparent),transparent 64%);opacity:0;transition:opacity .55s var(--ease);pointer-events:none;z-index:0}
  .icard>*,.plan>*{position:relative;z-index:1}
  .icard:hover::after,.plan:hover::after{opacity:1}
}

[data-count]{font-variant-numeric:tabular-nums}

/* reduced motion means no motion at all */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  .btn:hover,.icard:hover,.member:hover,.plan:hover,.tele-grid a:hover{transform:none}
  .member:hover .ph img,.tele-grid a:hover svg,.member:hover .more .ar{transform:none}
}

/* ── live-site additions (veritas/_site/build.py) ── */
.foot-compass{color:var(--accent-soft)}
.closing{background:var(--paper,var(--cream))}
.closing-actions{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin-top:1.8rem}
.closing-phone{margin-top:1.1rem;color:var(--ink-2);font-size:.98rem}
.closing-phone a{border-bottom:1px solid var(--line);color:var(--ink);font-weight:600}
.notfound{min-height:52vh;display:grid;align-items:center}
.res-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2.2rem);margin-top:2.6rem;align-items:start}
.res-card{background:var(--paper,var(--cream));border:1px solid var(--line-2);border-radius:var(--r);padding:clamp(1.3rem,2.6vw,2rem)}
.res-card h2{font-size:1.45rem;font-weight:600}
.res-card p{margin-top:.7rem;color:var(--ink-2);font-size:.98rem}
.res-card p a{border-bottom:1px solid var(--line);color:var(--ink)}
.res-card .res{margin-top:1rem}
.res-card .res li{font-size:1rem}
.prose{max-width:68ch}
.prose h2{font-size:1.5rem;font-weight:600;margin-top:2.2rem}
.prose p,.prose li{color:var(--ink-2);margin-top:.8rem}
.prose ul{padding-left:1.2em;list-style:disc}
.prose a{border-bottom:1px solid var(--line);color:var(--ink)}
.prose .updated{font-size:.9rem;margin-top:2.4rem}
.cform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform .form-status.ok{color:var(--ink);font-weight:600}
@media(max-width:820px){.res-grid{grid-template-columns:1fr}}
