/* BarknFur nuance layer - assembled from the approved concepts, adapted to the as-built site */
:root{--bnf-ready:1;--bnf-ink:var(--ink,#17110C);--bnf-ink-2:var(--ink-2,#1C1611);--bnf-ink-3:var(--ink-3,#100B08);--bnf-ink-4:var(--ink-4,#221A13);--bnf-ink-5:var(--ink-5,#2B231B);--bnf-bass:var(--bass,#130E09);--bnf-wheat:var(--wheat,#EEDFC0);--bnf-wheat-80:var(--_opacity-ramp---wheat-80,rgba(238,223,192,.8));--bnf-wheat-62:var(--_opacity-ramp---wheat-62,rgba(238,223,192,.62));--bnf-wheat-55:var(--_opacity-ramp---wheat-55,rgba(238,223,192,.55));--bnf-wheat-50:var(--_opacity-ramp---wheat-55,rgba(238,223,192,.55));--bnf-wheat-42:var(--_opacity-ramp---wheat-42,rgba(238,223,192,.42));--bnf-wheat-35:var(--_opacity-ramp---wheat-35,rgba(238,223,192,.35));--bnf-hair:var(--_opacity-ramp---hair,rgba(238,223,192,.09));--bnf-hair-2:var(--_opacity-ramp---hair-2,rgba(238,223,192,.16));--bnf-hair-3:var(--_opacity-ramp---hair-3,rgba(238,223,192,.26));--bnf-hair-input:var(--_opacity-ramp---hair-input,rgba(238,223,192,.42));--bnf-coral:var(--coral,#D85A2C);--bnf-coral-ink:var(--coral-ink,rgba(23,17,12,.7));--bnf-presence:var(--_accents---presence,#BFD0C5);--bnf-presence-soft:var(--_accents---presence-soft,rgba(191,208,197,.22));--bnf-presence-strong:var(--_accents---presence-strong,rgba(191,208,197,.75));--bnf-amber:var(--_accents---amber,var(--bnf-amber));--bnf-teak:var(--_paper-only---teak,#3A2316);--bnf-mist:var(--_paper-only---mist,#BFD0C5);--bnf-success:var(--_functional---success-on-light,#3F7A65);--bnf-error:var(--_functional---error-on-light,var(--bnf-error));--bnf-tier-puppy:var(--_tiers---tier-puppy,#697436);--bnf-tier-basic:var(--_tiers---tier-basic,#D89A2E);--bnf-tier-rehab:var(--_tiers---tier-rehab,#A95231);--bnf-tier-custom:var(--_tiers---tier-custom,#7AA293);--bnf-tier-puppy-arch:var(--_tiers---tier-puppy-arch,rgba(105,116,54,.55));--bnf-tier-basic-arch:var(--_tiers---tier-basic-arch,rgba(216,154,46,.45));--bnf-tier-rehab-arch:var(--_tiers---tier-rehab-arch,rgba(169,82,49,.5));--bnf-tier-custom-arch:var(--_tiers---tier-custom-arch,rgba(122,162,147,.45));--bnf-coral-hover:#E4693B;--bnf-coral-ink-solid:#17110C;--bnf-highlight:#F4E4C6;--bnf-wheat-03:rgba(238,223,192,.03);--bnf-wheat-04:rgba(238,223,192,.04);--bnf-wheat-06:rgba(238,223,192,.06);--bnf-wheat-12:rgba(238,223,192,.12);--bnf-wheat-85:rgba(238,223,192,.85);--bnf-presence-00:rgba(191,208,197,0);--bnf-presence-20:rgba(191,208,197,.2);--bnf-presence-45:rgba(191,208,197,.45);--bnf-presence-50:rgba(191,208,197,.5);--bnf-presence-60:rgba(191,208,197,.6);--bnf-presence-80:rgba(191,208,197,.8);--bnf-presence-85:rgba(191,208,197,.85);--bnf-scrim-88:rgba(23,17,12,.88);--bnf-scrim-92:rgba(23,17,12,.92);--bnf-scrim-94:rgba(23,17,12,.94);--bnf-scrim-97:rgba(23,17,12,.97);--amber:    var(--bnf-amber);--font-display: 'Fraunces', Georgia, serif;--font-body:    'Hanken Grotesk', system-ui, sans-serif;--size-display: clamp(2.75rem, 6.4vw, 4.75rem);--size-h2:      clamp(1.9rem, 3.6vw, 2.75rem);--size-h3:      1.375rem;--size-body:    1.0625rem;--size-small:   .875rem;--size-micro:   .8125rem;--size-eyebrow: .75rem;--measure: 36rem;--container: 1120px;--gutter: clamp(1.25rem, 5vw, 2.5rem);--section: clamp(5rem, 11vw, 8.5rem);--archH: clamp(64px, 10vw, 120px);--ease-out: cubic-bezier(.2,.8,.2,1);--ease-draw: cubic-bezier(.4,0,.2,1);--spring: cubic-bezier(.3,1.35,.4,1);}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
::selection{background:var(--bnf-coral);color:var(--bnf-coral-ink)}
img,svg{display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;background:none;border:0;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--bnf-coral);outline-offset:3px;border-radius:2px}

h1,h2,h3{font-weight:500;line-height:1.12;letter-spacing:-.01em;text-wrap:balance}
p{text-wrap:pretty}
[id]{scroll-margin-top:5.25rem}
img{max-width:100%}
h1{font-size:var(--size-display);font-variation-settings:'opsz' 110}
h2{font-size:var(--size-h2);font-variation-settings:'opsz' 72}
h3{font-size:var(--size-h3);font-variation-settings:'opsz' 40;line-height:1.3}

.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section);position:relative}
.section--tint{background:var(--bnf-ink-2)}
.center{text-align:center}
.measure{max-width:var(--measure);margin-inline:auto}
.skip{position:fixed;left:1rem;top:-4rem;z-index:200;background:var(--bnf-coral);color:var(--bnf-coral-ink);padding:.625rem 1rem;border-radius:8px;transition:top .2s}
.skip:focus{top:1rem}
.opener{position:fixed;inset:0;z-index:120;background:var(--bnf-ink);display:none}
.opener.on{display:block}
.opener.out{opacity:0;transition:opacity .5s ease}
body.opener-lock{overflow:hidden}
#opener{--lw:min(520px,74vw)}
.hl-stage{position:absolute;inset:0}
.hl-intro,.hl-final{position:absolute;inset:0}
.hl-final{opacity:0;pointer-events:none}
#opener .letters,#opener .nfx,#opener .sheen{transform-box:fill-box}
.hl-wm{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--lw);height:auto;overflow:visible;display:block}
.hl-desc{position:absolute;left:50%;transform:translateX(-50%);top:calc(50% + var(--lw) * 0.0849 + 30px);font-size:12px;letter-spacing:.4em;padding-left:.4em;opacity:0;color:var(--bnf-wheat);white-space:nowrap}
.hl-call{position:absolute;font-weight:500;font-variation-settings:'opsz' 90;color:var(--bnf-wheat);opacity:0;white-space:nowrap;will-change:transform,opacity;font-size:clamp(2.3rem,6.6vw,4.8rem);letter-spacing:.1em;padding-left:.1em;transform:translate(-50%,0)}
.hl-k1{left:34%;top:36%} .hl-k2,.hl-k3{left:52%;top:36%}
#opener.play .hl-k1{animation:hlcwA 1s linear .15s forwards}
#opener.play .hl-k2{animation:hlcwA 1s linear 1.18s forwards}
#opener.play .hl-k3{animation:hlcwB 1.18s linear 2.2s forwards}
@keyframes hlcwA{0%{opacity:0;transform:translate(-50%,0) scaleX(1.05) translateY(11px)}12%{opacity:1;transform:translate(-50%,0) scaleX(1) translateY(0)}82%{opacity:1;transform:translate(-50%,0) scaleX(1) translateY(0)}100%{opacity:0;transform:translate(-50%,0) scaleX(1) translateY(0)}}
@keyframes hlcwB{0%{opacity:0;transform:translate(-50%,0) scaleX(1.05) translateY(11px)}9%{opacity:1;transform:translate(-50%,0) scaleX(1) translateY(0)}74%{opacity:1;transform:translate(-50%,0) scaleX(1) translateY(0)}100%{opacity:0;transform:translate(-50%,0) scaleX(1) translateY(0)}}
.hl-dot{position:absolute;left:0;top:0;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--bnf-coral);opacity:0;will-change:transform,opacity,left,top}
.hl-dsh{position:absolute;left:0;top:calc(56vh + 12px);width:26px;height:7px;margin:-3px 0 0 -13px;border-radius:50%;background:#000;filter:blur(2.5px);opacity:0;transform-origin:center;will-change:transform,opacity,left}
.hl-ring{position:absolute;left:52%;top:56%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid var(--bnf-coral);border-radius:50%;opacity:0;--ry:translateY(13px);transform:var(--ry)}
#opener.play .hl-dot{animation:hlL1D .7s cubic-bezier(.3,.15,.28,1) .22s forwards, hlL2D .45s cubic-bezier(.3,.15,.28,1) 1.24s forwards, hlSitD .42s cubic-bezier(.22,.9,.24,1) 1.78s forwards, hlGoD .6s cubic-bezier(.22,.9,.24,1) 3.18s forwards}
#opener.play .hl-dsh{animation:hlL1S .7s cubic-bezier(.3,.15,.28,1) .22s forwards, hlL2S .45s cubic-bezier(.3,.15,.28,1) 1.24s forwards, hlSitS .42s cubic-bezier(.22,.9,.24,1) 1.78s forwards, hlGoS .6s cubic-bezier(.22,.9,.24,1) 3.18s forwards}
@keyframes hlL1D{0%{opacity:0;transform:translate(-5vw,56vh)}10%{opacity:1;transform:translate(-1.1vw,56vh)}30%{transform:translate(6.7vw,56vh) translateY(-14px)}50%{transform:translate(14.5vw,56vh)}64%{transform:translate(19.9vw,56vh) translateY(-10px)}78%{transform:translate(25.4vw,56vh)}90%{transform:translate(30.1vw,56vh) translateY(-4px)}100%{opacity:1;transform:translate(34vw,56vh)}}
@keyframes hlL1S{0%{opacity:0;transform:translate(-5vw,0) scaleX(.8)}10%{opacity:.3;transform:translate(-1.1vw,0) scaleX(1)}30%{opacity:.14;transform:translate(6.7vw,0) scaleX(.64)}50%{opacity:.32;transform:translate(14.5vw,0) scaleX(1)}64%{opacity:.16;transform:translate(19.9vw,0) scaleX(.7)}78%{opacity:.32;transform:translate(25.4vw,0) scaleX(1)}90%{opacity:.2;transform:translate(30.1vw,0) scaleX(.85)}100%{opacity:.32;transform:translate(34vw,0) scaleX(1)}}
@keyframes hlL2D{0%{opacity:1;transform:translate(34vw,56vh)}10%{transform:translate(35.8vw,56vh)}46%{transform:translate(42.3vw,56vh) translateY(-12px)}82%{transform:translate(48.8vw,56vh)}100%{opacity:1;transform:translate(52vw,56vh)}}
@keyframes hlL2S{0%{opacity:.32;transform:translate(34vw,0) scaleX(.8)}10%{transform:translate(35.8vw,0) scaleX(1)}46%{opacity:.14;transform:translate(42.3vw,0) scaleX(.64)}82%{opacity:.32;transform:translate(48.8vw,0) scaleX(1)}100%{opacity:.32;transform:translate(52vw,0) scaleX(1)}}
@keyframes hlSitD{0%{transform:translate(52vw,56vh)}55%{transform:translate(52vw,56vh) translateY(15px) scale(1.18,.76)}100%{transform:translate(52vw,56vh) translateY(13px) scale(1)}}
@keyframes hlSitS{to{opacity:.4;transform:translate(52vw,0) scaleX(1.35)}}
@keyframes hlGoD{0%{opacity:1;left:52vw;top:56vh;transform:translateY(13px)}14%{transform:translateY(17px) scale(1.12,.82)}48%{opacity:1;transform:translateY(-18px) scale(.95)}100%{opacity:0;left:calc(50% + var(--lw) * 0.0259);top:calc(50% + var(--lw) * 0.0697);transform:translateY(0) scale(.6)}}
@keyframes hlGoS{0%{opacity:.4;transform:translate(52vw,0) scaleX(1.35)}14%{opacity:.5;transform:translate(52vw,0) scaleX(1.48)}42%{opacity:0;transform:translate(52vw,0) scaleX(.6)}100%{opacity:0}}
#opener.play .hl-ring{animation:hlRq 1.2s ease-out 2.5s 1}
@keyframes hlRq{0%{opacity:.38;transform:var(--ry) scale(1)}18%{opacity:.38;transform:var(--ry) scale(1.12)}100%{opacity:0;transform:var(--ry) scale(7.5)}}
#opener.play .hl-final{animation:hlShow .01s linear 3.28s forwards}
@keyframes hlShow{to{opacity:1}}
#opener .letters{opacity:0;transform:translateY(24px)}
#opener.play .letters{animation:hlRise .5s cubic-bezier(.22,.9,.24,1) 3.32s forwards}
@keyframes hlRise{to{opacity:1;transform:none}}
#opener .n{opacity:0}
#opener.play .trace{animation:hlTrace .85s cubic-bezier(.22,.9,.24,1) 3.56s forwards}
#opener.play .n{animation:hlFill .38s ease 4.4s forwards}
@keyframes hlTrace{to{stroke-dashoffset:0}}
@keyframes hlFill{to{opacity:1}}
#opener.play .hl-desc{animation:hlDesc .6s ease 4.62s forwards}
@keyframes hlDesc{to{opacity:.55}}
.hl-skip{position:absolute;right:18px;bottom:16px;z-index:5;font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--bnf-wheat-42);border:1px solid var(--bnf-hair-2);border-radius:99px;padding:.4375rem 1rem;opacity:0;transition:color .2s ease,border-color .2s ease}
#opener.play .hl-skip{animation:hlSkipIn .4s ease 1.1s forwards}
@keyframes hlSkipIn{to{opacity:1}}
.hl-skip:hover{color:var(--bnf-wheat);border-color:var(--bnf-wheat-42)}
@media (max-width:600px){
  .hl-k1,.hl-k2,.hl-k3{left:50%;top:33%}
  .hl-dot{top:58%} .hl-dsh{top:calc(58% + 12px)} .hl-ring{top:58%;left:50%}
  
  
  
  
}
@media (max-height:560px){ .hl-k1,.hl-k2,.hl-k3{top:24%} }

.eyebrow{font-size:var(--size-eyebrow);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--bnf-wheat-42)}
.lede{color:var(--bnf-wheat-62);margin-top:1.125rem}
.section-head h2{margin-top:.875rem}
.section-head .lede{max-width:30rem;margin-inline:auto}

/* film grain */
.grain{position:fixed;inset:0;z-index:30;pointer-events:none;opacity:.045;width:100%;height:100%}


/* ============================================================
   trail · the wire and the medallion
   ============================================================ */
.trail{position:absolute;top:0;left:0;right:0;z-index:35;pointer-events:none}
.trail svg{position:absolute;inset:0;overflow:visible}
.trail path{fill:none;stroke:var(--bnf-hair-3);stroke-width:2}
.medal{position:absolute;left:0;top:0;width:18px;height:18px;will-change:transform;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}
.medal svg{position:static;width:100%;height:100%}
@media (max-width:900px){
  .trail{left:auto;width:52px}
  .medal{width:12px;height:12px}
  .section > .container, .hero .container, .stats{padding-right:calc(var(--gutter) + 20px)}
}

/* ============================================================
   header · companion composite
   ============================================================ */
.header{position:fixed;top:0;left:0;right:0;z-index:50;padding-block:1.375rem;transition:background .4s ease, padding .4s ease, border-color .4s ease;border-bottom:1px solid transparent}
.header.scrolled{background:var(--bnf-scrim-88);backdrop-filter:blur(12px);border-color:var(--bnf-hair);padding-block:.875rem}
.header__inner{display:flex;justify-content:space-between;align-items:center}
.brand{display:flex;align-items:center;gap:.6875rem;min-width:0}
.wordmark{font-weight:500;font-size:1.1875rem;letter-spacing:.02em}
.logotype{font-size:1.3125rem;font-variation-settings:'opsz' 60;letter-spacing:.005em}
.logotype .ln{font-style:italic;font-weight:400;color:var(--bnf-coral);padding-inline:.015em;font-variation-settings:'opsz' 28}
.logotype .ln.shine{background-image:linear-gradient(105deg,var(--bnf-coral) 36%,var(--bnf-highlight) 50%,var(--bnf-coral) 64%);background-size:240% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:lnsheen 1.15s ease-in-out 1}
@keyframes lnsheen{from{background-position:135% 0}to{background-position:-35% 0}}
@media (prefers-reduced-motion:reduce){.logotype .ln.shine{animation:none;background:none;color:var(--bnf-coral)}}
.here{font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--bnf-wheat-42);border-left:1px solid var(--bnf-hair-2);padding-left:.6875rem;margin-left:.125rem;position:relative;height:1.3em;overflow:hidden;min-width:9.5rem}
.here span{position:absolute;left:.6875rem;top:0;white-space:nowrap;opacity:0;transform:translateY(9px);transition:opacity .2s ease-in,transform .2s ease-in}
.here span.on{opacity:1;transform:none;transition:opacity .3s ease-out .05s,transform .3s var(--ease-out) .05s}
@media (max-width:980px){.here{display:none}}
.nav{display:flex;gap:2rem;align-items:center}
.nav__link{font-size:var(--size-small);color:var(--bnf-wheat-62);position:relative;padding-block:.25rem;transition:color .2s ease}
.nav__link::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--bnf-wheat);transform:scaleX(0);transition:transform .22s var(--ease-out)}
.nav__link[data-o="left"]::after{transform-origin:left}
.nav__link[data-o="right"]::after{transform-origin:right}
.nav__link:hover{color:var(--bnf-wheat)}
.nav__link:hover::after{transform:scaleX(1)}
@media (max-width:720px){.nav__link{display:none}}
.btn-ghost{font-size:var(--size-small);font-weight:500;border:1px solid var(--bnf-hair-3);border-radius:99px;padding:.5625rem 1.25rem;transition:border-color .3s ease, background .3s ease;position:relative;display:inline-block}
.btn-ghost:hover{border-color:var(--bnf-wheat-50);background:var(--bnf-wheat-04)}
.btn-ghost.rung::before{content:'';position:absolute;inset:-4px;border:1.5px solid var(--bnf-coral);border-radius:99px;opacity:0;animation:doorring .6s var(--ease-out) 1;pointer-events:none}
@keyframes doorring{0%{opacity:.9;transform:scale(.94)}100%{opacity:0;transform:scale(1.24)}}
.thwrap{position:relative}
.thcard{position:absolute;right:0;top:calc(100% + 12px);width:238px;background:var(--bnf-ink-2);border:1px solid var(--bnf-hair-3);border-radius:12px;padding:.9375rem 1.0625rem;clip-path:inset(0 0 100% 0 round 12px);transition:clip-path .24s var(--ease-out);pointer-events:none;box-shadow:0 18px 40px rgba(0,0,0,.4);text-align:left}
.thwrap:hover .thcard,.thwrap:focus-within .thcard{clip-path:inset(0 0 0 0 round 12px)}
.thcard p{font-size:.75rem;color:var(--bnf-wheat-62);display:flex;gap:.5rem;align-items:baseline;padding-block:.2188rem}
.thcard p i{font-style:normal;color:var(--bnf-coral)}

/* buttons */
.btn-coral{display:inline-block;background:var(--bnf-coral);font-weight:500;font-size:.9375rem;letter-spacing:.01em;padding:.9375rem 1.875rem;border-radius:99px;transition:transform .18s ease-out, background .3s ease;will-change:transform}
.btn-coral:hover{background:var(--bnf-coral-hover)}
.btn-inverse{background:var(--bnf-ink);color:var(--bnf-wheat)}
.btn-inverse:hover{background:var(--bnf-ink-4)}
.link-quiet{font-size:var(--size-small);color:var(--bnf-wheat-62);border-bottom:1px solid var(--bnf-hair-3);padding-bottom:2px;transition:color .3s ease, border-color .3s ease}
.link-quiet:hover{color:var(--bnf-wheat);border-color:var(--bnf-wheat-50)}

/* ============================================================
   hero · glow breathes in once, then rests
   ============================================================ */
.hero{min-height:92svh;display:flex;align-items:center;padding-top:7rem;padding-bottom:4rem;position:relative;overflow:hidden}
.hero__glow{position:absolute;top:-16%;left:50%;transform:translateX(-50%) scale(.97);width:min(760px,90vw);height:560px;background:radial-gradient(closest-side, rgba(232,96,60,.11), rgba(232,96,60,0) 72%);opacity:0;transition:opacity 1.6s ease .2s, transform 2.2s var(--ease-out) .2s;pointer-events:none}
.is-loaded .hero__glow{opacity:1;transform:translateX(-50%) scale(1.04)}
.hero__content{position:relative;width:100%}
.hero h1{max-width:15ch;margin:1.375rem auto 0}
.hero .lede{max-width:31rem;margin-inline:auto}
.hero__micro{font-size:var(--size-micro);color:var(--bnf-wheat-42);margin-top:1.125rem}
.lr{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.06em;margin-bottom:-.06em}
.lr__inner{display:inline-block;transform:translateY(118%);transition:transform .9s var(--ease-out)}
.is-loaded .lr__inner{transform:translateY(0)}
.is-loaded .lr:nth-child(2) .lr__inner{transition-delay:.14s}
.d1 .lr__inner{transition-delay:.32s}
.d2 .lr__inner{transition-delay:.44s}
.lr--block{display:block;text-align:center}
.hero__cta-row{display:inline-flex;gap:1.5rem;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:2.5rem}


/* reveal system */
.rev{opacity:0;transform:translateY(16px);transition:opacity .75s ease, transform .75s var(--ease-out)}
.rev.in{opacity:1;transform:translateY(0)}
.rev--2{transition-delay:.1s}
.rev--3{transition-delay:.2s}
.rev--4{transition-delay:.3s}
.settle{transform:translateY(16px) scale(1.03)}
.settle.in{transform:translateY(0) scale(1)}

/* doors */
.doors{display:grid;grid-template-columns:repeat(4,1fr);gap:1.125rem;margin:3.25rem auto 0}
@media (max-width:1000px){.doors{grid-template-columns:repeat(2,1fr);max-width:680px}}
@media (max-width:520px){.doors{grid-template-columns:1fr;max-width:420px}}
.door{background:var(--bnf-ink-2);border:1px solid var(--bnf-hair);border-radius:28px 28px 12px 12px;padding:1.875rem 1.625rem 1.5rem;text-align:left;transition:transform .35s var(--ease-out), border-color .35s ease;cursor:pointer;display:block}
.section--tint .door{background:var(--bnf-ink)}
.door:hover{transform:translateY(-5px);border-color:var(--bnf-hair-3)}
.door__line{height:2px;width:36px;background:var(--bnf-coral);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out);margin:.875rem 0 1rem}
.door:hover .door__line{transform:scaleX(1)}
.door__text{font-size:var(--size-small);line-height:1.65;color:var(--bnf-wheat-50)}
.door__go{display:inline-flex;align-items:center;gap:.4375rem;font-size:var(--size-micro);font-weight:500;color:var(--bnf-wheat-50);margin-top:1.375rem;transition:color .3s ease}
.door__go svg{transition:transform .3s var(--ease-out)}
.door:hover .door__go{color:var(--bnf-coral)}
.door:hover .door__go svg{transform:translateX(4px)}
.doors__note{font-size:var(--size-micro);color:var(--bnf-wheat-35);margin-top:2rem}

/* how it works · section leash */
.steps{max-width:560px;margin:3.25rem auto 0;position:relative}
.steps__leash{position:absolute;left:19px;top:10px;height:calc(100% - 56px);width:2px}
.steps__leash svg{width:100%;height:100%}
.steps__leash path{stroke:var(--bnf-coral);stroke-width:2}
.steps__dot{position:absolute;left:50%;width:9px;height:9px;border-radius:50%;background:var(--bnf-coral);transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease}
.steps__dot.on{opacity:1}
.step{display:flex;gap:1.5rem;padding-bottom:3rem;position:relative}
.step:last-child{padding-bottom:0}
.step__node{flex:none;width:40px;height:40px;border-radius:50%;background:var(--bnf-ink-2);border:1.5px solid var(--bnf-coral);color:var(--bnf-coral);font-weight:500;font-size:1.0625rem;font-variation-settings:'opsz' 20;display:flex;align-items:center;justify-content:center;position:relative;z-index:1;transition:background .45s ease, color .45s ease, transform .45s var(--ease-out)}
.step__node.lit{background:var(--bnf-coral);color:var(--bnf-coral-ink);transform:scale(1.06)}
.step__phase{display:block;font-size:.6875rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--bnf-wheat-35);margin-bottom:.4375rem}
.step__body p{font-size:var(--size-small);line-height:1.7;color:var(--bnf-wheat-50);margin-top:.5rem;max-width:26rem}
.step__pts{display:flex;flex-wrap:wrap;gap:.375rem 1rem;margin-top:.9375rem}
.step__pts span{display:inline-flex;gap:.5rem;align-items:center;font-size:.6875rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--bnf-wheat-42)}
.step__pts span::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--bnf-coral);opacity:.7;flex:none}
.steps__closing{font-style:italic;font-size:1.25rem;opacity:.72;margin-top:2.25rem;max-width:34rem}

/* ============================================================
   trainers · arch frames
   ============================================================ */
.trainers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;max-width:860px;margin:3.25rem auto 0}
.tcard{background:none;border:0;padding:0;transition:transform .35s var(--ease-out)}
.tcard:hover{transform:translateY(-5px)}
.tcard__portrait{aspect-ratio:3/3.9;border:1.5px solid var(--bnf-hair-3);border-radius:170px 170px 12px 12px;padding:9px;background:none;transition:border-color .35s ease}
.tcard:hover .tcard__portrait{border-color:var(--bnf-wheat-42)}
.tcard__portrait{perspective:900px}
.tcard__win{width:100%;height:100%;border-radius:160px 160px 8px 8px;position:relative;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.3,.9,.3,1)}
.tcard:hover .tcard__win{transform:rotateY(180deg)}
.tcard__face{position:absolute;inset:0;border-radius:160px 160px 8px 8px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;align-items:center;justify-content:center}
.tcard__face--front{background:var(--bnf-ink-5);filter:saturate(.55);transition:filter .45s ease}
.tcard__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tcard:hover .tcard__face--front{filter:saturate(1)}
.tcard__face--back{transform:rotateY(180deg);background:var(--bnf-ink-4)}
.tcard__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
@media (hover:none){.tcard:hover .tcard__win{transform:none}}
.tcard__initials{font-weight:500;font-size:2rem;color:var(--bnf-wheat-35)}
.tcard__name{font-weight:500;font-size:1.0625rem;margin-top:1.125rem}
.tcard__where{font-size:var(--size-micro);color:var(--bnf-wheat-50);margin-top:.1875rem}
.tcard__tag{font-size:.75rem;color:var(--bnf-wheat-42);margin-top:.4375rem;padding-inline:.5rem}
.trainers__more{margin-top:2.75rem}
@media (max-width:560px){.trainers{max-width:280px}}

/* phone · updates */
.updates{display:flex;gap:clamp(2rem,6vw,4.5rem);align-items:center;justify-content:center;flex-wrap:wrap}
.updates__copy{max-width:21rem}
.updates__copy h2{margin-top:.875rem;font-size:clamp(1.75rem,3vw,2.25rem)}
.updates__copy p{font-size:var(--size-small);color:var(--bnf-wheat-50);margin-top:1rem;line-height:1.7}
.phone{width:270px;background:var(--bnf-ink-3);border:1px solid var(--bnf-hair-2);border-radius:26px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.phone__head{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;border-bottom:1px solid var(--bnf-hair)}
.phone__avatar{width:30px;height:30px;border-radius:50%;background:var(--bnf-ink-5);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:500;color:var(--bnf-wheat-62)}
.phone__who{font-size:.8125rem;font-weight:500}
.phone__meta{font-size:.6875rem;color:var(--bnf-presence)}
.phone__tabs{display:flex;gap:.375rem;padding:.625rem .875rem;border-bottom:1px solid var(--bnf-hair)}
.phone__tab{font-size:.6875rem;font-weight:500;letter-spacing:.03em;color:var(--bnf-wheat-42);background:none;border:1px solid transparent;border-radius:99px;padding:.3125rem .8125rem;cursor:pointer;transition:color .25s ease, border-color .25s ease}
.phone__tab:hover{color:var(--bnf-wheat-62)}
.phone__tab.on{color:var(--bnf-coral);border-color:rgba(232,96,60,.45)}
.phone__thread{padding:.875rem;display:none}
.phone__thread.on{display:block}
.msg{background:var(--bnf-ink-4);border-radius:12px;padding:.625rem .75rem;margin-bottom:.625rem;opacity:0;transform:translateY(10px);transition:opacity .55s ease, transform .55s var(--ease-out)}
.msg--mine{margin-left:2.25rem}
.phone__thread.in .msg:nth-child(1){opacity:1;transform:none;transition-delay:.35s}
.phone__thread.in .msg:nth-child(2){opacity:1;transform:none;transition-delay:1.05s}
.phone__thread.in .msg:nth-child(3){opacity:1;transform:none;transition-delay:1.75s}
.msg__photo{height:88px;border-radius:8px;background:var(--bnf-ink-5);display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}
.msg__photo svg{opacity:.35}
.msg p{font-size:.8125rem;line-height:1.55;color:var(--bnf-wheat-80)}
.msg__time{font-size:.625rem;color:var(--bnf-wheat-35);text-align:right;margin-top:.25rem}

/* results */
.res-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,3rem);align-items:center;margin-top:3.25rem}
@media (max-width:880px){.res-grid{grid-template-columns:1fr;gap:3rem}}
.bigstats{display:flex;gap:clamp(2rem,5vw,3.5rem);flex-wrap:wrap;justify-content:center;text-align:left}
.bstat b{font-weight:500;font-size:clamp(2.5rem,5.5vw,3.75rem);line-height:1;display:block;font-variation-settings:'opsz' 90}
.bstat small{font-size:var(--size-micro);color:var(--bnf-wheat-42);display:block;margin-top:.5625rem;max-width:9.5rem}
.marquee{overflow:hidden;margin-top:2.75rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee__track{display:flex;gap:.875rem;width:max-content;animation:drift 62s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes drift{to{transform:translateX(-50%)}}
.chip{flex:none;display:flex;align-items:center;gap:.5625rem;font-size:.8125rem;color:var(--bnf-wheat-62);background:var(--bnf-ink-2);border:1px solid var(--bnf-hair);border-radius:99px;padding:.4375rem 1rem .4375rem .4375rem}
.chip__pic{width:26px;height:26px;border-radius:50%;background:var(--bnf-ink-5);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:500;color:var(--bnf-wheat-42)}
.marquee--pick{margin-top:3rem}
.marquee--pick .chip{cursor:pointer;transition:border-color .25s ease,color .25s ease}
.marquee--pick .chip:hover{border-color:var(--bnf-hair-3);color:var(--bnf-wheat)}
.chip.on{border-color:rgba(232,96,60,.55);color:var(--bnf-wheat)}
.chip.on .chip__pic{color:var(--bnf-coral)}
.result{transition:opacity .2s ease}
.result.swapping{opacity:0}
.eleven{margin-top:3.5rem;text-align:center}
.eleven svg{width:min(360px,86%);height:auto;overflow:visible;margin-inline:auto}
.stdot{cursor:pointer;opacity:0;transform:scale(.2);transform-box:fill-box;transform-origin:center;transition:opacity .25s ease,transform .35s var(--spring)}
.eleven.in .stdot{opacity:1;transform:none}
.stdot circle{fill:var(--bnf-wheat-35);transition:fill .2s ease, r .2s var(--spring)}
.stdot:hover circle,.stdot:focus-visible circle,.stdot.on circle{fill:var(--bnf-coral)}
.eleven .arcpath{fill:none;stroke:var(--bnf-hair-3);stroke-width:1.25;stroke-dasharray:1;stroke-dashoffset:1}
.eleven.in .arcpath{transition:stroke-dashoffset 1.1s var(--ease-draw) .2s;stroke-dashoffset:0}
.eleven .lbl{font-weight:500;font-size:clamp(1.1875rem,2.4vw,1.5rem);height:1.45em;position:relative;margin-top:.5rem}
.eleven .lbl span{position:absolute;inset:0;opacity:0;transform:translateY(6px);transition:opacity .2s ease-out,transform .25s var(--ease-out)}
.eleven .lbl span.on{opacity:1;transform:none}
.result{margin-top:2.75rem;display:flex;gap:clamp(2rem,5vw,3.5rem);align-items:center;justify-content:center;flex-wrap:wrap}
.video{position:relative;width:min(440px,100%);aspect-ratio:16/9;background:var(--bnf-ink-3);border:1px solid var(--bnf-hair-2);border-radius:12px;cursor:pointer;overflow:hidden}
.video__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;border:1.5px solid var(--bnf-wheat-80);display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease-out), background .3s ease}
.video:hover .video__play{transform:translate(-50%,-50%) scale(1.08);background:var(--bnf-wheat-06)}
.video__caption{position:absolute;bottom:.875rem;left:1rem;font-size:.75rem;color:var(--bnf-wheat-80)}
.quote{max-width:19rem}
.quote blockquote{font-style:italic;font-weight:400;font-size:1.3125rem;line-height:1.55;font-variation-settings:'opsz' 30}
.quote figcaption{font-size:var(--size-micro);color:var(--bnf-wheat-50);margin-top:1rem;font-style:normal}
.results__honesty{font-size:var(--size-micro);color:var(--bnf-wheat-35);margin-top:3rem}

/* questions */
.questions{max-width:40rem;margin:3rem auto 0;text-align:left}
.qa{padding-block:1.875rem;border-top:1px solid var(--bnf-hair)}
.qa:last-child{border-bottom:1px solid var(--bnf-hair)}
.qa h3{font-size:1.25rem}
.qa p{font-size:var(--size-small);color:var(--bnf-wheat-50);line-height:1.7;margin-top:.625rem;max-width:34rem}

/* ============================================================
   catcher · coral arch with the consult form
   ============================================================ */
section:has(+ .catch),div:has(+ .catch){padding-bottom:calc(var(--section) + var(--archH) * .9) !important}
.catch{background:var(--bnf-coral);color:var(--bnf-coral-ink);border-radius:50% 50% 0 0 / var(--archH) var(--archH) 0 0;margin-top:calc(var(--archH) * -1);position:relative;z-index:2;padding:calc(var(--archH) * .55 + 2.75rem) 0 clamp(3.5rem,7vw,5rem)}
.catch ::selection{background:var(--bnf-ink);color:var(--bnf-wheat)}
.catch a:focus-visible{outline-color:var(--bnf-ink)}
.catch__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
@media (max-width:940px){.catch__grid{grid-template-columns:1fr}}
.catch .eyebrow{color:rgba(23,17,12,.65)}
.catch h2{max-width:14ch;margin-top:.875rem}
.catch__lede{color:rgba(23,17,12,.78);margin-top:1.125rem;max-width:27rem}
.catch__micro{display:flex;gap:.5625rem;align-items:baseline;margin-top:1.5rem}
.catch__micro i{width:8px;height:8px;border-radius:50%;background:var(--bnf-ink);flex:none;transform:translateY(-1px)}
.catch__alt{font-size:var(--size-micro);color:rgba(23,17,12,.65);margin-top:.875rem}
.catch__alt a{text-decoration:underline}
.fcard{background:var(--bnf-ink);color:var(--bnf-wheat);border-radius:14px;padding:clamp(1.375rem,3vw,1.875rem);box-shadow:0 30px 70px rgba(23,17,12,.35)}
.flabel{display:block;font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--bnf-wheat-42);margin:1.125rem 0 .4375rem}
.fcard .flabel:first-child{margin-top:0}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}
@media (max-width:420px){.frow{grid-template-columns:1fr}}
.finput,.fselect{appearance:none;-webkit-appearance:none;width:100%;background:var(--bnf-ink-4);border:1.5px solid var(--bnf-hair-2);border-radius:8px;padding:.8125rem .9375rem;font:inherit;font-size:.9375rem;color:var(--bnf-wheat);transition:border-color .25s ease}
.finput:hover,.fselect:hover{border-color:var(--bnf-hair-3)}
.finput::placeholder{color:var(--bnf-wheat-35)}
.fselect{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23F2E7D5' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9375rem center;padding-right:2.5rem}
.fcard .btn-coral{width:100%;text-align:center;margin-top:1.375rem}
.fcard__sub{font-size:.75rem;color:var(--bnf-wheat-42);text-align:center;margin-top:.875rem}
.fhint{font-size:.6875rem;color:var(--bnf-wheat-35);margin-top:.5rem}
.fcard__done{font-size:1.0625rem;font-weight:500;text-align:center;padding-block:2.5rem}

/* ============================================================
   footer · columns, horizon sun, greeting, ghost wordmark
   ============================================================ */
.footer{padding-top:clamp(2.75rem,6vw,4rem);padding-bottom:1.5rem;background:var(--bnf-ink)}
.footer__grid{display:flex;justify-content:center;gap:clamp(2.5rem,8vw,6.5rem);flex-wrap:wrap;text-align:left}
.fcol__head{font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--bnf-wheat-35);margin-bottom:.875rem}
.fcol a,.fcol span{display:block;font-size:var(--size-small);color:var(--bnf-wheat-62)}
.fcol span{color:var(--bnf-wheat-50)}
.fcol a{width:max-content;padding-bottom:2px;background-image:repeating-linear-gradient(90deg,var(--bnf-wheat-35) 0 5px,transparent 5px 10px),linear-gradient(90deg,var(--bnf-coral),var(--bnf-coral));background-repeat:repeat-x,no-repeat;background-size:auto 1px,0% 1.5px;background-position:left bottom,left bottom;transition:background-size .25s var(--ease-out),color .2s ease}
.fcol a:hover{color:var(--bnf-wheat);background-size:auto 1px,100% 1.5px}
.horizon{position:relative;height:48px;margin-top:2rem;border-bottom:1px solid var(--bnf-hair-2)}
.sun{position:absolute;bottom:-1px;left:var(--sunx,50%);transform:translateX(-50%);width:62px;height:31px;border-radius:62px 62px 0 0;background:var(--suncol,var(--bnf-coral));transition:left 1.4s var(--ease-out), background 1.4s ease}
.greet{text-align:center;padding-top:2rem}
.greet h2{font-size:clamp(1.75rem,4vw,2.5rem);font-variation-settings:'opsz' 84}
.greet__sub{font-size:var(--size-small);color:var(--bnf-wheat-50);margin-top:.75rem}
.mailrow{margin-top:1.5rem;display:inline-flex;align-items:center;position:relative}
.mail{font-style:italic;font-size:clamp(1.1875rem,2.6vw,1.5rem);border-bottom:1px solid var(--bnf-hair-3);padding-bottom:3px;transition:border-color .25s ease}
.mail:hover{border-color:var(--bnf-wheat-50)}
.stamp{width:26px;height:26px;opacity:0;position:absolute;right:-40px;top:50%;transform:translateY(-50%) scale(1.6) rotate(-8deg);transition:opacity .2s ease,transform .3s var(--spring);pointer-events:none}
.stamp.on{opacity:1;transform:translateY(-50%) scale(1) rotate(-8deg)}
.mailcap{font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bnf-wheat-42);opacity:0;transition:opacity .25s ease;display:block;margin-top:.625rem;min-height:1em}
.mailcap.on{opacity:1}
.dateline{font-size:.6875rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--bnf-wheat-35);text-align:center;margin-top:1.75rem}
.footer__legal{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.75rem;color:var(--bnf-wheat-35);margin-top:2.25rem;padding-top:1.25rem;border-top:1px solid var(--bnf-hair)}
.footer__legal a{color:var(--bnf-wheat-35)}
.footer__legal a:hover{color:var(--bnf-wheat-62)}

/* sticky mobile CTA */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--bnf-scrim-92);backdrop-filter:blur(12px);border-top:1px solid var(--bnf-hair);padding:.75rem var(--gutter);display:none;transform:translateY(110%);transition:transform .4s var(--ease-out)}
.sticky-cta.show{transform:translateY(0)}
.sticky-cta .btn-coral{display:block;text-align:center;padding:.8125rem}
@media (max-width:720px){.sticky-cta{display:block}}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  .hero__glow{opacity:1;transform:translateX(-50%) scale(1);transition:none}
  .lr__inner{transform:none;transition:none}
  .rev{opacity:1;transform:none;transition:none}
  .marquee__track{animation:none}
  .stdot{opacity:1;transform:none;transition:none}
  .result{transition:none}
  .msg{opacity:1;transform:none;transition:none}
  .door,.tcard,.video__play,.btn-coral{transition:none}
  .tcard__win{transition:none}
  .tcard:hover .tcard__win{transform:none}
  .steps__leash path{stroke-dashoffset:0 !important}
  .steps__dot{opacity:0 !important}
  .trail{display:none}
  .btn-ghost.rung::before{animation:none;opacity:0}
  .thcard{transition:none}
  .here span{transition:none}
  .eleven .arcpath{stroke-dashoffset:0;transition:none}
  .sun{transition:none}
  .stamp{transition:none}
}
@media (max-width:720px){.finput,.fselect{font-size:1rem}}
.fselect:invalid{color:var(--bnf-wheat-35)}
@media (pointer:coarse){
.btn-ghost{padding:.6875rem 1.375rem}
.phone__tab{padding:.5rem 1rem}
}
@media (max-width:480px){
.tl{grid-template-columns:1fr;gap:1.125rem;padding-top:1.25rem;max-width:none}
.tl::before{display:none}
.tl .node{display:grid;grid-template-columns:13px 1fr;gap:.75rem .8125rem;text-align:left;align-items:start}
.tl .node i{margin:.3125rem 0 0;grid-row:1/3}
.tl .node b{grid-column:2}
.tl .node span{grid-column:2;margin-top:.125rem}
}
.navburger{display:none;width:44px;height:44px;border-radius:10px;position:relative;margin-left:.25rem;flex:none}
.navburger span,.navburger>div{position:absolute;left:12px;right:12px;height:1.5px;background:var(--bnf-wheat);transition:transform .3s var(--ease-out)}
.navburger span:nth-child(1),.navburger>div:nth-child(1){top:17px}
.navburger span:nth-child(2),.navburger>div:nth-child(2){top:26px}
.navburger.open span:nth-child(1),.navburger.open>div:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.navburger.open span:nth-child(2),.navburger.open>div:nth-child(2){transform:translateY(-4.5px) rotate(-45deg)}
@media (max-width:720px){.navburger{display:block}}
.mnav{position:fixed;top:0;left:0;right:0;z-index:45;background:var(--bnf-scrim-97);backdrop-filter:blur(14px);border-bottom:1px solid var(--bnf-hair-2);padding:4.75rem var(--gutter) 1.5rem;transform:translateY(-10px);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .3s var(--ease-out)}
.mnav.open{opacity:1;transform:none;pointer-events:auto}
.mnav a{display:block;font-size:1.0625rem;padding:.8125rem 0;border-bottom:1px solid var(--bnf-hair);color:var(--bnf-wheat-80)}
.mnav .btn-coral{display:inline-block;margin-top:1.125rem;border-bottom:0;font-size:.9375rem;padding:.875rem 1.75rem}
@media (min-width:721px){.mnav{display:none !important}}
@media (prefers-reduced-motion:reduce){.mnav{transition:none}.navburger span,.navburger>div{transition:none}}

/* ============ BarknFur nuance additions (as-built adaptations) ============ */
.logotype,.ghostmark{font-variation-settings:'opsz' 16,'wght' 660}
.ghostmark{white-space:nowrap;pointer-events:none}
h1{font-variation-settings:'opsz' 110}h2{font-variation-settings:'opsz' 72}h3{font-variation-settings:'opsz' 40}
::selection{background:rgba(232,96,60,.32);color:var(--bnf-wheat)}
:focus-visible{outline:2px solid var(--bnf-coral);outline-offset:3px;border-radius:4px}
.prose ul li::marker{color:var(--bnf-coral)}
.eleven{display:block}
.fselect{appearance:none;-webkit-appearance:none;height:auto;line-height:1.2;padding-right:2.6rem;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23F2E7D5' stroke-opacity='.62' stroke-width='2'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 1rem center}
.tcard__portrait{position:relative;transition:border-color .45s ease}
.tcard:hover .tcard__portrait{border-color:var(--bnf-presence-strong)}
.tcard__portrait::after{content:"";position:absolute;inset:-1.5px;border-radius:inherit;border:1.5px solid var(--bnf-presence-00);pointer-events:none}
.tcard__portrait.glint::after{animation:bnfGlint 1.6s ease .15s}
@keyframes bnfGlint{0%{border-color:var(--bnf-presence-00);clip-path:inset(0 100% 85% 0)}35%{border-color:var(--bnf-presence-80);clip-path:inset(0 0 55% 0)}70%{border-color:var(--bnf-presence-45);clip-path:inset(0 0 0 0)}100%{border-color:var(--bnf-presence-00);clip-path:inset(0 0 0 0)}}
@keyframes bnfPulse{0%{box-shadow:0 0 0 0 rgba(232,96,60,.45)}100%{box-shadow:0 0 0 14px rgba(232,96,60,0)}}
.btn-ghost.attn{animation:bnfPulse 1.2s ease-out 1;border-color:rgba(232,96,60,.75)!important;transition:border-color 1.2s ease}
.btn-coral[disabled]{opacity:.72;cursor:progress;transform:none!important}
.w-form-fail{background:var(--bnf-ink-4);border:1px solid var(--bnf-error);border-radius:10px;color:var(--bnf-wheat);font-size:13px;padding:12px 16px;margin-top:12px}
.node-dot{transition:background .5s ease,border-color .5s ease}
.node-dot.lit{background:var(--bnf-coral);border-color:var(--bnf-coral)}
.rev{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.22,.7,.3,1)}
.rev.in{opacity:1;transform:none}
.lr{display:block;overflow:hidden}.lr .lr__inner{display:block;transform:translateY(110%);transition:transform .8s cubic-bezier(.22,.7,.3,1)}
.lr.in .lr__inner{transform:none}
@media (prefers-reduced-motion:reduce){.rev,.lr .lr__inner{opacity:1!important;transform:none!important;transition:none!important}.tcard__portrait.glint::after,.btn-ghost.attn{animation:none!important}}
@media print{body{background:#fff!important;color:var(--bnf-ink)!important}
 .header,.mnav,.footer,.sticky-cta,.echo,.toc,.grain{display:none!important}
 .legalpage,.prose{max-width:100%!important}
 .prose p,.prose li{color:var(--bnf-ink)!important;font-size:11pt!important}
 h1,h2,h3{color:var(--bnf-ink)!important}a{color:var(--bnf-ink)!important;text-decoration:underline}}

/* as-built overrides */
.hero h1{max-width:none}
.eleven{max-width:100%;overflow:visible}.eleven svg{width:100%;height:auto;display:block}


/* ================= BATCH 2 ================= */
/* arches: true domes at any width (container-relative radii) */
.tcard,.sp-arch,.regcard__media,.mini,.tcard__portrait,[class*="tcard__portrait"]{container-type:inline-size}
.tcard__portrait,.tcard__portrait.tcard__portrait--sp,[class*="tcard__portrait"]{border-radius:50cqw 50cqw 14px 14px}
.tcard__portrait .tcard__win,.tcard__win.tcard__win--sp{border-radius:50cqw 50cqw 9px 9px;overflow:hidden}
.reg__init{width:44px;height:56px;flex-shrink:0;border:1px solid var(--bnf-hair-2);border-radius:22px 22px 4px 4px;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:16px;color:var(--bnf-wheat-62);background:var(--bnf-ink-2)}
/* register */
.reg__group,.pblock{scroll-margin-top:150px}
.reg__row{transition:background .25s ease}
.reg__row:hover,.reg__row.is-on{background:var(--bnf-wheat-03)}
.reg__row:hover .reg__thumb,.reg__row.is-on .reg__thumb{border-color:var(--bnf-presence-strong)}
.reg__thumb{transition:border-color .3s ease}
.aindex-link{border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
.aindex-link.is-on{color:var(--bnf-wheat);border-bottom-color:var(--bnf-wheat-35)}
.reg__hint{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--bnf-wheat-35);text-align:center;margin-top:14px}
/* programs */
.pnav-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;vertical-align:middle}
.pnav-num{font-size:10px;letter-spacing:.08em;color:var(--bnf-wheat-42)}
.pnav-link{transition:color .2s ease}.pnav-link.is-on{color:var(--bnf-wheat)}
.pbul.tier-door1-t{color:var(--bnf-tier-puppy)}.pbul.tier-door2-t{color:var(--bnf-tier-basic)}.pbul.tier-door3-t{color:var(--bnf-tier-rehab)}.pbul.tier-door4-t{color:var(--bnf-tier-custom)}
/* stories */
.sfilter{cursor:pointer;transition:color .2s ease,border-color .2s ease}
.scard{transition:transform .35s cubic-bezier(.22,.7,.3,1),border-color .35s ease}
.scard.is-hidden{display:none}
.scard.has-video,.chip.has-video{cursor:pointer}
.scard.has-video:hover{transform:translateY(-3px);border-color:var(--bnf-presence-60)}
/* lightbox */
.bnf-lb{position:fixed;inset:0;background:var(--bnf-scrim-94);display:none;align-items:center;justify-content:center;z-index:9000;padding:24px}
.bnf-lb.is-open{display:flex}
.bnf-lb__box{position:relative;width:min(880px,100%);background:var(--bnf-ink-2);border:1px solid var(--bnf-wheat-12);border-radius:16px;padding:16px 16px 20px}
.bnf-lb video{width:100%;border-radius:10px;background:#000;display:block}
.bnf-lb__q{font-style:italic;font-size:18px;line-height:1.5;color:var(--bnf-wheat-85);margin:14px 4px 0}
.bnf-lb__who{font-size:12px;color:var(--bnf-wheat-55);margin:6px 4px 0}
.bnf-lb__x{position:absolute;top:6px;right:12px;background:none;border:0;color:var(--bnf-wheat);font-size:26px;line-height:1;cursor:pointer}
/* hover loops */
.arch-loop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;pointer-events:none}
.arch-loop.is-on{opacity:1}
/* profile */
.sp-vid{display:none}.sp-vid.has-clip{display:flex}
.sp-vid__player{width:100%;height:100%;object-fit:contain;background:#000}
.sp-vid .play{cursor:pointer;transition:border-color .25s ease,transform .25s ease}.sp-vid .play:hover{border-color:var(--bnf-wheat);transform:scale(1.04)}
.creds--list{display:flex;flex-direction:column;gap:8px}.cred-line{display:flex;gap:9px;align-items:baseline}
@media (min-width:992px){.sp-story{column-count:2;column-gap:40px}.sp-story p{break-inside:avoid}}
/* mail pills */
.mail{position:relative}
.mail.copied::after{content:"Copied";position:absolute;left:50%;top:-24px;transform:translateX(-50%);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bnf-success);white-space:nowrap}

/* ===== presence glow, softer and wider; crossfades slowed to feel like a dissolve ===== */
.tcard__portrait{transition:border-color .7s ease,box-shadow .9s ease}
.tcard:hover .tcard__portrait,.sp-arch:hover .tcard__portrait{border-color:var(--bnf-presence-85);box-shadow:0 0 0 2px var(--bnf-presence-soft),0 0 36px 8px var(--bnf-presence-20)}
.tcard__portrait::after{inset:-2.5px;border-width:2.5px}
@keyframes bnfGlint{0%{border-color:var(--bnf-presence-00);clip-path:inset(0 100% 85% 0)}30%{border-color:var(--bnf-presence-85);clip-path:inset(0 0 55% 0)}65%{border-color:var(--bnf-presence-50);clip-path:inset(0 0 0 0)}100%{border-color:var(--bnf-presence-00);clip-path:inset(0 0 0 0)}}
.tcard__portrait.glint::after{animation:bnfGlint 2.2s cubic-bezier(.4,0,.2,1) .15s}
.arch-loop{transition:opacity 1s cubic-bezier(.4,0,.2,1)}
.tcard__photo{transition:transform 1.4s cubic-bezier(.22,.7,.3,1)}
.tcard:hover .tcard__photo,.sp-arch:hover .tcard__photo{transform:scale(1.03)}

/* ===== anchor headroom: targets declare the space the sticky chrome needs ===== */
h1[id],h2[id],h3[id],section[id],[data-nav][id]{scroll-margin-top:104px}
.reg__group[id]{scroll-margin-top:156px}
.pblock[id]{scroll-margin-top:150px}
.prose h2[id]{scroll-margin-top:108px}

/* medallion appears only once the wire exists */
.medal{opacity:0;transition:opacity .8s ease}
.trail.is-built .medal{opacity:1}
/* register card: give sticky a tall containing block (the Collection List chain) */
.regwrap > .w-dyn-list{align-self:stretch;height:100%}
.regwrap > .w-dyn-list > .w-dyn-items,.regwrap > .w-dyn-list > .w-dyn-items > .w-dyn-item{height:100%}
.regcard{position:sticky;top:140px}

/* whisper: seat the crossfading spans on the slot's own line */
.here,.here span{line-height:1.3em}
/* programs list bullets: real tier-coloured points */
.pbul{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;font-size:0;line-height:0;flex:0 0 auto;align-self:center}
/* decorations may never cause sideways scroll */
body{overflow-x:clip}

/* the opener's animation state is also named "play"; keep the video button's costume off it */
.opener.play,.opener.play:hover{width:auto;height:auto;min-width:0;min-height:0;border:0;border-radius:0;display:block;transform:none;cursor:default;box-shadow:none;background:var(--bnf-ink)}
/* register card CTA: hug its label instead of inheriting the card's stretch */
.regcard .regcard__cta{align-self:flex-start;display:inline-block;width:auto}

/* Home story stage */
.result-vid{display:block;max-width:100%;max-height:min(62vh,480px);width:auto;margin:0 auto;border-radius:12px;background:#000;cursor:pointer}
.chip.is-live{border-color:var(--bnf-presence-strong)}
.chip[data-video]{cursor:pointer}

/* the stage's video slot wakes up once it holds a clip */
.result .video.is-live{display:block;height:auto;padding:0}

/* eleven arc: initials inside the enlarged dots */
.stdot__ab{font-size:7.5px;letter-spacing:.05em;fill:var(--bnf-ink);text-anchor:middle;dominant-baseline:central;font-weight:700;pointer-events:none;font-family:inherit}

.stdot{cursor:pointer}

/* mobile nav: the open state must win over any Webflow display setting */
.mnav{display:none}
.mnav.open{display:flex;flex-direction:column;gap:.375rem;padding:6.5rem 1.5rem 2rem}

/* touch register: tap paints the card; the button asks for the second tap */
@keyframes ctaPulse{0%,100%{transform:none;box-shadow:none}30%{transform:scale(1.035);box-shadow:0 0 0 6px var(--bnf-presence-soft)}60%{transform:scale(1.01);box-shadow:0 0 0 2px var(--bnf-presence-soft)}}
.regcard__cta.cta-pulse{animation:ctaPulse 1.2s var(--ease-out) 1}

/* trainers state bar: on the tablet band it is a one-line rail; fade + hidden scrollbar say "pan me" */
@media (min-width:768px) and (max-width:991px){
 .aindex{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 44px),transparent);
  mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 44px),transparent)}
 .aindex::-webkit-scrollbar{display:none}
}

.bnf-lb__box video{display:block;max-width:100%;max-height:74vh;width:auto;margin:0 auto;border-radius:10px;background:#000}

/* mobile anchor landings: the sticky stack is shorter here (no pinned rail) */
@media (max-width:991px){
 [id]{scroll-margin-top:78px}
 #puppy-fur,#basic-fur,#rehab-fur,#custom-fur,#priority-behavior,#off-leash,#public-access,#home-away{scroll-margin-top:118px}
}

/* mobile: the copy-stamp tucks inside the pill instead of perching past the screen edge */
@media (max-width:991px){
 .stamp{right:8px;width:20px;height:20px}
}

/* the floating CTA yields while the menu is open */
.mnav-open .sticky-cta,.mnav-open .mcta{opacity:0;pointer-events:none;transition:opacity .2s ease}
