/* ============================================================
   Miracle Noodle — "Awkward Winner"
   Shared foundation: tokens, type, nav, footer, buttons, motion
   Bridges Seed (premium-clinical, serif, cream) + Graza (playful, chunky, lime)
   ============================================================ */

/* ---- Fonts (local, in-project) ---- */
@font-face{font-family:'Switzer';src:url('fonts/switzer-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Switzer';src:url('fonts/switzer-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Zodiak';src:url('fonts/zodiak-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Zodiak';src:url('fonts/zodiak-400i.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Plex Mono';src:url('fonts/plex-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Plex Mono';src:url('fonts/plex-mono-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}

:root{
  /* Surfaces — warm cream stack (Seed) */
  --paper:#f4efe6;          /* warm cream canvas (Seed) */
  --paper-2:#eae3d4;        /* deeper section ground */
  --card:#fdfbf5;           /* elevated card */
  --ink:#13202c;            /* deep navy near-black (brand-tied) */
  --ink-soft:#3a4a5b;       /* secondary text — slate */
  --sage:#4c5560;           /* muted captions — darkened for AA contrast on cream (~6:1) */
  --line:#dcd4c2;           /* warm hairline */
  --line-soft:#e7dfcc;

  /* MN brand blues — dark block + the single bright pop */
  --olive:#165386;          /* MN dark blue — dominant block color (var name kept for reuse) */
  --olive-2:#1c66a3;        /* mid blue — eyebrows, hovers, borders */
  --lime:#57BDE9;           /* MN light blue — the surgical bright pop */
  --lime-deep:#2ea3d6;      /* deeper light blue — button shadow/hover */
  --periwinkle:#2b6fa6;     /* mid-blue tertiary block (product page) */
  --cream-pop:#f3efe4;      /* warm tile / text on dark blue */
  --signal:#2ea3d6;

  --maxw:1320px;
  --gut:clamp(20px,5vw,72px);
  /* crisp, editorial radii — soft rounding is the #1 template tell */
  --r-sm:3px; --r-md:6px; --r-lg:10px; --r-xl:14px; --r-pill:999px;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);

  --font-disp:'Zodiak',Georgia,serif;
  --font-ui:'Switzer',ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-mono:'Plex Mono',ui-monospace,Menlo,monospace;
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--font-ui);
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  /* our fonts ship 400/500 only — forbid synthetic bold so any weight>500 falls to the real 500 face, never a smeared faux-bold */
  font-synthesis-weight:none;
}
b,strong{font-weight:500}
/* printed-paper grain — lifts every cream/ink/blue surface from flat-div to material */
body::after{content:"";position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.045;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px}
img,video,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--lime);color:var(--ink)}
/* Global keyboard focus ring (WCAG 2.4.7/2.4.11) — the reset strips default outlines */
:where(a,button,input,select,textarea,summary,[tabindex],[role="button"],[role="tab"]):focus-visible{outline:2px solid var(--olive);outline-offset:2px;border-radius:3px}
.band--ink :focus-visible,.band--blue :focus-visible,.footer :focus-visible,.askbot__head :focus-visible,.hero--scene :focus-visible{outline-color:var(--lime)}

.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- Type ---- */
.display{font-family:var(--font-disp);font-weight:400;line-height:.92;letter-spacing:-.025em}
.display em{font-style:italic}
h1,h2,h3{font-weight:400}
.eyebrow{
  font-family:var(--font-mono);font-size:.7rem;font-weight:500;
  letter-spacing:.24em;text-transform:uppercase;color:var(--olive-2);
}
.lede{font-size:clamp(1.08rem,1.7vw,1.4rem);line-height:1.45;color:var(--ink-soft);max-width:44ch}

/* editorial index number — Seed-style figure labels */
.index-num{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:var(--olive-2);display:inline-flex;align-items:center;gap:.6em}
.index-num::before{content:"";width:28px;height:1px;background:currentColor;opacity:.5}

/* oversized editorial numeral */
.stat-xl{font-family:var(--font-disp);font-weight:400;line-height:.82;letter-spacing:-.03em;font-size:clamp(3.4rem,9vw,8rem);display:block}

/* full-bleed band utility */
.band{width:100vw;margin-left:calc(50% - 50vw);position:relative}
.band--blue{background:var(--olive);color:var(--cream-pop)}
.band--blue .eyebrow{color:var(--lime)}
.band--ink{background:var(--ink);color:var(--paper)}
.band--ink .eyebrow{color:var(--lime)}

/* editorial figure (photo + mono caption) */
.figure figcaption{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sage);margin-top:.7rem;display:flex;justify-content:space-between;gap:1rem}

/* blue duotone treatment for photography */
.duotone{filter:grayscale(1) contrast(1.05);background:var(--olive);mix-blend-mode:luminosity}
.duotone-wrap{background:var(--olive);overflow:hidden}
.duotone-wrap img{mix-blend-mode:luminosity;opacity:.86;filter:grayscale(1) contrast(1.04)}

/* the flat-line motif divider — steady, with a heartbeat-style flat pulse */
.flatline{display:block;width:100%;height:18px;color:var(--olive-2);overflow:visible}
.flatline path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:var(--len,1200);stroke-dashoffset:var(--len,1200);transition:stroke-dashoffset 1.6s var(--ease)}
[data-reveal].in .flatline path,.flatline.in path{stroke-dashoffset:0}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--font-ui);font-weight:500;font-size:.96rem;letter-spacing:-.01em;
  padding:.92em 1.5em;border-radius:var(--r-pill);
  transition:transform .13s var(--ease),background .3s var(--ease),color .3s var(--ease),box-shadow .13s var(--ease);
  white-space:nowrap;
}
/* tactile press-down: button rests on a hard offset shadow, presses into it */
.btn--ink{background:var(--ink);color:var(--paper);box-shadow:0 4px 0 #060f0b}
.btn--ink:hover{transform:translateY(-1px);box-shadow:0 5px 0 #060f0b}
.btn--ink:active{transform:translateY(4px);box-shadow:0 0 0 #060f0b}
.btn--lime{background:var(--lime);color:var(--ink);box-shadow:0 4px 0 var(--lime-deep)}
.btn--lime:hover{transform:translateY(-1px);box-shadow:0 5px 0 var(--lime-deep)}
.btn--lime:active{transform:translateY(4px);box-shadow:0 0 0 var(--lime-deep)}
.btn--ghost{border:1px solid var(--ink);color:var(--ink);box-shadow:0 4px 0 rgba(20,32,24,.2)}
.btn--ghost:hover{background:var(--ink);color:var(--paper);transform:translateY(-1px)}
.btn--ghost:active{transform:translateY(4px);box-shadow:0 0 0 rgba(20,32,24,0)}
.btn__dot{width:1.9em;height:1.9em;border-radius:50%;background:rgba(0,0,0,.08);display:grid;place-items:center;margin-right:-.5em}
.btn--ink .btn__dot{background:rgba(255,255,255,.16)}

.txtlink{display:inline-flex;align-items:center;gap:.4em;font-weight:500;border-bottom:1px solid var(--ink);padding-bottom:2px;transition:gap .3s var(--ease)}
.txtlink:hover{gap:.75em}

/* ---- Announce bar ---- */
/* single, rotating announcement bar — one line on every screen */
.announce{
  display:flex;justify-content:center;align-items:center;
  background:var(--ink);color:var(--paper);
  font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  padding:.78em 1em;line-height:1;min-height:36px;text-align:center;
  white-space:nowrap;overflow:hidden;
}
.announce__msg{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;transition:opacity .45s var(--ease)}
.announce.is-fading .announce__msg{opacity:0}
.announce strong{color:#fff;font-weight:600}
@media(max-width:600px){.announce{font-size:.62rem;letter-spacing:.08em;padding:.72em .7em}}
.credbar{background:var(--ink);color:var(--paper);text-align:center;font-family:var(--font-mono);
  font-size:.66rem;letter-spacing:.06em;padding:.5em 1em;line-height:1.4}
.credbar b{font-weight:500;color:#fff}
@media(max-width:600px){.credbar{font-size:.58rem;letter-spacing:.04em;padding:.5em .8em}}
.capmodal{position:fixed;inset:0;z-index:130;background:rgba(16,20,18,.7);display:none;align-items:center;justify-content:center;padding:24px}
.capmodal.is-open{display:flex}
.capmodal__card{background:var(--paper,#fbf8f0);max-width:440px;width:100%;border-radius:16px;padding:clamp(28px,5vw,40px);position:relative;text-align:center;box-shadow:0 30px 80px rgba(16,20,18,.4)}
.capmodal__card h3{font-family:var(--font-disp);font-size:clamp(1.55rem,4vw,2.05rem);line-height:1.05;margin-bottom:.6rem}
.capmodal__card p{color:var(--ink-soft);margin-bottom:1.2rem;line-height:1.5}
.capmodal__card input{width:100%;padding:.85em 1em;border:1px solid var(--line);border-radius:10px;margin-bottom:.7rem;font-size:1rem;font-family:inherit}
.capmodal__card button[type=submit]{width:100%}
.capmodal__x{position:absolute;top:12px;right:14px;border:0;background:none;font-size:1.3rem;cursor:pointer;color:var(--sage);line-height:1}
.capmodal__fine{font-size:.7rem;color:var(--sage);margin-top:.8rem;margin-bottom:0}
.cart__bonus{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.03em;color:var(--olive);background:color-mix(in oklab,var(--lime) 18%,transparent);border-radius:8px;padding:.6em .8em;margin:0 0 .9rem;line-height:1.45}
/* founder film + video modal */
.founderfilm{position:relative;cursor:pointer}
.founderfilm img{display:block}
.founderfilm__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(16,20,18,0) 45%,rgba(16,20,18,.5))}
.founderfilm__play b{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:1.2rem;padding-left:4px}
.founderfilm__cap{position:absolute;left:18px;bottom:16px;color:#fff;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.vmodal{position:fixed;inset:0;z-index:140;background:rgba(16,20,18,.84);display:none;align-items:center;justify-content:center;padding:24px}
.vmodal.is-open{display:flex}
.vmodal__inner{max-width:min(900px,94vw);max-height:84vh;background:#000;border-radius:12px;overflow:hidden;position:relative;line-height:0}
.vmodal video,.vmodal img{display:block;max-width:min(900px,94vw);max-height:84vh;width:auto;height:auto;background:#000}
.vmodal__close{position:absolute;top:-44px;right:0;color:#fff;background:none;border:0;font-size:1.6rem;cursor:pointer}
/* follow the doctor */
.follow__head{text-align:center;max-width:62ch;margin:0 auto clamp(30px,4vw,52px)}
.follow__head .eyebrow{display:flex;justify-content:center}
.follow__head p{margin:1rem auto 0;max-width:56ch}
/* video carousel */
.follow__carousel{position:relative;min-width:0;max-width:1000px;margin:0 auto}
.vcar__track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px;justify-content:safe center}
.vcar__track::-webkit-scrollbar{display:none}
.vcard{flex:0 0 200px;scroll-snap-align:start;position:relative;border:0;padding:0;cursor:pointer;border-radius:14px;overflow:hidden;background:var(--paper-2,#ece6d8);aspect-ratio:9/16}
.vcard img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.vcard:hover img{transform:scale(1.05)}
.vcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,20,18,0) 42%,rgba(16,20,18,.62))}
.vcard__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:1rem;padding-left:3px;transition:transform .25s var(--ease)}
.vcard:hover .vcard__play{transform:translate(-50%,-50%) scale(1.08)}
.vcard__title{position:absolute;left:12px;right:12px;bottom:12px;z-index:2;color:#fff;font-family:var(--font-ui);font-weight:500;font-size:.9rem;line-height:1.18;text-align:left}
.vcar__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(16,20,18,.14);transition:opacity .2s}
.vcar__prev{left:-14px}.vcar__next{right:-14px}
.vcar__nav:disabled{opacity:.28;cursor:default}
@media(max-width:760px){.vcar__nav{display:none}.vcard{flex-basis:62vw;max-width:240px}}
.fnote{display:block;font-family:var(--font-mono);font-size:.62rem;color:var(--sage);margin-top:.7rem;line-height:1.5;letter-spacing:.01em}
.fnote a{color:inherit;text-decoration:underline;text-underline-offset:2px}
/* a11y: 44px touch targets on primary icon controls (WCAG 2.5.8) */
.nav__search{width:44px;height:44px}
.askbot__close{width:40px;height:40px;display:flex;align-items:center;justify-content:center}
.footer__form button{min-height:44px}

/* ---- Nav (shared) ---- */
.nav{position:sticky;top:0;z-index:60;background:#f4efe6;background:color-mix(in oklab,var(--paper) 86%,transparent);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid transparent;transition:border-color .4s,background .4s}
.nav.is-stuck{border-color:var(--line);background:#f4efe6;background:color-mix(in oklab,var(--paper) 94%,transparent)}
/* MUD\WTR-style nav: Menu (left) · logo (center) · Ask + Cart (right) */
.nav__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;height:72px}
.nav__menu{justify-self:start;display:inline-flex;align-items:center;gap:.6em;font-family:var(--font-ui);font-weight:500;font-size:.98rem;color:var(--ink);cursor:pointer;line-height:1}
.nav__menu:hover{opacity:.6}
.nav__burgersvg{display:block;width:22px;height:22px;color:var(--ink)}
.nav__brand{justify-self:center;display:flex;align-items:center}
.nav__logo{height:40px;width:auto;display:block}
.nav__actions{justify-self:end;display:flex;align-items:center;gap:1.3rem}
.nav__ask{font-size:.95rem;color:var(--ink-soft);transition:color .25s}
.nav__ask:hover{color:var(--ink)}
.nav__cart{font-size:.95rem;color:var(--ink-soft);display:flex;align-items:center;gap:.4em;transition:color .25s}
.nav__cart:hover{color:var(--ink)}
.nav__cart b{font-family:var(--font-mono);font-size:.7rem;background:var(--ink);color:var(--paper);border-radius:var(--r-pill);padding:.1em .5em}
@media(min-width:901px){
  .nav{top:16px;margin:16px auto 16px;width:calc(100% - 2*var(--gut));max-width:1060px;
    border:1px solid var(--line);border-radius:999px;background:#f4efe6;background:color-mix(in oklab,var(--paper) 90%,transparent)}
  .nav.is-stuck{box-shadow:0 14px 36px -20px rgba(20,28,24,.32)}
  .nav__inner{height:64px;padding-inline:22px 24px}
  .nav__logo{height:44px}
}
@media(max-width:900px){.nav__ask{display:none}.nav__logo{height:32px}}
@media(max-width:430px){.nav__menulabel{display:none}}

/* Product menu overlay (opens from "Menu") — products only, links to footer */
.menusheet{position:fixed;inset:0;z-index:120;background:var(--ink);color:var(--paper);
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;overflow-y:auto;-webkit-overflow-scrolling:touch}
.menusheet.is-open{opacity:1;visibility:visible}
.menusheet__panel{min-height:100%;display:flex;flex-direction:column}
.menusheet__bar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;
  padding:1.05rem clamp(1.1rem,4vw,3rem);background:var(--ink);border-bottom:1px solid rgba(255,255,255,.12);z-index:2}
.menusheet__brand{font-family:var(--font-disp);font-size:1.2rem;color:#fff}
.menusheet__close{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);display:inline-flex;align-items:center;gap:.5em;cursor:pointer}
.menusheet__close:hover{color:#fff}
.menusheet__scroll{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:clamp(2rem,5vw,3.4rem) clamp(1.1rem,4vw,3rem) clamp(3rem,6vw,4.4rem)}
.menusheet__head{display:flex;align-items:baseline;gap:1rem;margin-bottom:clamp(1.4rem,3vw,2.1rem)}
.menusheet__head h2{font-size:clamp(2rem,5vw,3.2rem);color:#fff}
.menusheet__tag{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.menusheet__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.7rem,1.4vw,1.05rem)}
.mtile{position:relative;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:var(--tint,#3a4a57);display:block;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.mtile:hover{transform:translateY(-4px);box-shadow:0 22px 40px -22px rgba(0,0,0,.6)}
.mtile__name{position:absolute;top:0;left:0;right:0;z-index:2;padding:.9rem 1rem 0;font-family:var(--font-disp);font-size:clamp(1rem,1.5vw,1.25rem);color:#fff;line-height:1.05;text-shadow:0 1px 10px rgba(0,0,0,.3)}
.mtile__pic{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:30% 14% 9%}
.mtile__pic img{max-width:82%;max-height:100%;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(0,0,0,.34))}
.menusheet__all{display:inline-flex;align-items:center;justify-content:center;margin-top:clamp(2rem,4vw,3rem);
  border:1.5px solid rgba(255,255,255,.5);border-radius:var(--r-pill);color:#fff;font-family:var(--font-mono);font-size:.78rem;
  letter-spacing:.1em;text-transform:uppercase;padding:1em 2.6em;transition:background .25s,color .25s,border-color .25s}
.menusheet__all:hover{background:#fff;color:var(--ink);border-color:#fff}
.menusheet__links{display:flex;flex-wrap:wrap;gap:1.1rem 2rem;margin-top:clamp(2.4rem,5vw,3.4rem);padding-top:clamp(1.6rem,3vw,2.2rem);border-top:1px solid rgba(255,255,255,.12)}
.menusheet__links a{font-family:var(--font-ui);font-size:1rem;color:rgba(255,255,255,.72);transition:color .25s}
.menusheet__links a:hover{color:#fff}
@media(max-width:760px){.menusheet__grid{grid-template-columns:repeat(2,1fr)}}
body.menu-open{overflow:hidden}

/* ---- Footer (shared) ---- */
.footer{background:var(--ink);color:var(--paper);margin-top:0;padding-top:clamp(56px,7vw,96px);overflow:hidden}
.footer a{color:#cfd2c4;transition:color .25s}.footer a:hover{color:var(--lime)}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;padding-bottom:3.5rem;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__pitch{font-family:var(--font-disp);font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.1;max-width:18ch;color:var(--paper)}
.footer__news{margin-top:2rem;max-width:36ch}
.footer__news p{color:#aeb2a3;font-size:.92rem;margin-bottom:.8rem}
.footer__form{display:flex;gap:.5rem;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:.5rem}
.footer__form input{flex:1;background:none;border:none;color:var(--paper);font:inherit;outline:none}
.footer__form input::placeholder{color:#8b8f80}
.footer__form button{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.footer__col h4{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#8b8f80;margin-bottom:1.1rem}
.footer__col ul{list-style:none;display:flex;flex-direction:column;gap:.7rem;font-size:.94rem}
.footer__legal{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding:2rem 0 1.5rem;font-size:.78rem;color:#8b8f80}
.footer__mark{font-family:var(--font-disp);font-size:clamp(4rem,22vw,20rem);line-height:.8;color:rgba(255,255,255,.045);text-align:center;padding-bottom:.1em;user-select:none;letter-spacing:-.03em}
.footer__mark em{font-style:italic}
@media(max-width:760px){.footer__top{grid-template-columns:1fr;gap:2.5rem}.footer__cols{grid-template-columns:1fr 1fr}}

/* ---- Scroll reveal ---- */
[data-reveal]{opacity:0;transform:translateY(14px);filter:blur(5px);transition:opacity .6s var(--ease),transform .6s var(--ease),filter .6s var(--ease)}
[data-reveal].in{opacity:1;transform:none;filter:none}
[data-reveal-stagger]>*{opacity:0;transform:translateY(14px);filter:blur(5px);transition:opacity .55s var(--ease),transform .55s var(--ease),filter .55s var(--ease)}
[data-reveal-stagger].in>*{opacity:1;transform:none;filter:none}
[data-reveal-stagger].in>*:nth-child(2){transition-delay:.08s}
[data-reveal-stagger].in>*:nth-child(3){transition-delay:.16s}
[data-reveal-stagger].in>*:nth-child(4){transition-delay:.24s}
[data-reveal-stagger].in>*:nth-child(5){transition-delay:.32s}
[data-reveal-stagger].in>*:nth-child(6){transition-delay:.40s}
[data-reveal-stagger].in>*:nth-child(7){transition-delay:.48s}
[data-reveal-stagger].in>*:nth-child(8){transition-delay:.56s}

/* ---- "Alive" toolkit ---- */
/* scroll progress */
.scrollbar{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:left;transform:scaleX(0);z-index:100;
  background:var(--lime);will-change:transform}

/* button shine sweep */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);transition:left .6s var(--ease)}
.btn:hover::after{left:140%}
.btn--lime::after{background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent)}

/* magnetic */
[data-magnetic]{will-change:transform}

/* animated noodle squiggle accent */
.squiggle{display:block;color:var(--lime);overflow:visible}
.squiggle path{stroke:currentColor;stroke-width:5;fill:none;stroke-linecap:round;
  stroke-dasharray:var(--len,600);stroke-dashoffset:var(--len,600);transition:stroke-dashoffset 1.3s var(--ease)}
[data-reveal].in .squiggle path,.squiggle.in path{stroke-dashoffset:0}

/* ambient drift blobs (subtle, brand light-blue) */
.ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.ambient span{position:absolute;border-radius:50%;filter:blur(60px);opacity:.16;background:var(--lime)}
.ambient span:nth-child(1){width:380px;height:380px;top:-80px;right:-60px;animation:drift1 18s ease-in-out infinite}
.ambient span:nth-child(2){width:300px;height:300px;bottom:-100px;left:-40px;background:var(--olive);opacity:.10;animation:drift2 22s ease-in-out infinite}
@keyframes drift1{0%,100%{transform:translate(0,0)}50%{transform:translate(-40px,30px)}}
@keyframes drift2{0%,100%{transform:translate(0,0)}50%{transform:translate(30px,-26px)}}

/* live pulse dot */
.pulse-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--lime-deep);position:relative;vertical-align:middle}
.pulse-dot::after{display:none}

/* ---- Ask Jonathan Carp, MD — assistant ---- */
.askbot{position:fixed;right:24px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:90}
@media(max-width:920px){.askbot{bottom:calc(86px + env(safe-area-inset-bottom));right:16px}}
.askbot__launch{display:flex;align-items:center;gap:.7rem;background:var(--olive);color:#fff;
  border-radius:var(--r-pill);padding:.45rem 1.3rem .45rem .45rem;
  box-shadow:0 16px 36px -14px rgba(19,32,44,.55);transition:transform .3s var(--ease),box-shadow .3s var(--ease),opacity .3s var(--ease)}
.askbot--peek .askbot__launch{opacity:0;pointer-events:none;transform:translateY(14px) scale(.96)}
.askbot__launch:hover{transform:translateY(-3px);box-shadow:0 22px 44px -16px rgba(19,32,44,.65)}
.askbot__launch:active{transform:translateY(-1px) scale(.99)}
.askbot__launch img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.3)}
.askbot__launch span{font-weight:500;font-size:1rem;letter-spacing:-.01em;padding-right:.3rem}
.askbot.is-open .askbot__launch{opacity:0;pointer-events:none;transform:scale(.9)}
@media(max-width:520px){.askbot__launch{padding:.42rem 1.1rem .42rem .42rem}.askbot__launch span{font-size:.92rem}}

.askbot__panel{position:absolute;right:0;bottom:0;width:min(384px,calc(100vw - 32px));
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;
  box-shadow:0 34px 80px -26px rgba(19,32,44,.6);display:flex;flex-direction:column;
  max-height:min(72dvh,660px);transform:translateY(16px) scale(.97);opacity:0;pointer-events:none;
  transform-origin:bottom right;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.askbot.is-open .askbot__panel{opacity:1;transform:none;pointer-events:auto}
.askbot__head{background:var(--olive);color:#fff;padding:1rem 1.1rem;display:flex;align-items:center;gap:.8rem}
.askbot__head img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.25)}
.askbot__head b{display:block;font-family:var(--font-disp);font-size:1.12rem;line-height:1.1}
.askbot__head .stat{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:.4em;margin-top:.2rem}
.askbot__head .pulse-dot{background:var(--lime)}
.askbot__close{margin-left:auto;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;font-size:1.2rem;line-height:1;transition:background .2s}
.askbot__close:hover{background:rgba(255,255,255,.3)}
.askbot__body{flex:1;overflow-y:auto;padding:1.1rem;display:flex;flex-direction:column;gap:.7rem;background:var(--paper)}
.askbot__msg{max-width:86%;padding:.68rem .9rem;border-radius:14px;font-size:.92rem;line-height:1.45;animation:botin .35s var(--ease)}
.askbot__msg--bot{background:var(--card);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
.askbot__msg--user{background:var(--olive);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
@keyframes botin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.askbot__typing{align-self:flex-start;display:flex;gap:4px;padding:.7rem .9rem;background:var(--card);border:1px solid var(--line);border-radius:14px;border-bottom-left-radius:4px}
.askbot__typing i{width:6px;height:6px;border-radius:50%;background:var(--sage);animation:typing 1.2s infinite}
.askbot__typing i:nth-child(2){animation-delay:.2s}.askbot__typing i:nth-child(3){animation-delay:.4s}
@keyframes typing{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.askbot__tabs{display:flex;flex-wrap:wrap;gap:.4rem;padding:.7rem 1.1rem .3rem;background:var(--paper);border-top:1px solid var(--line)}
.askbot__tab{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);
  border:1px solid var(--line);border-radius:var(--r-pill);padding:.4em .8em;background:var(--card);transition:.2s var(--ease);cursor:pointer}
.askbot__tab:hover{border-color:var(--olive-2)}
.askbot__tab.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.askbot__chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:.2rem 1.1rem .9rem;background:var(--paper)}
.askbot__chip{font-size:.8rem;border:1px solid var(--line);border-radius:var(--r-pill);padding:.45em .9em;color:var(--ink-soft);transition:.2s var(--ease);text-align:left;background:var(--card)}
.askbot__chip:hover{border-color:var(--olive);color:var(--ink)}
.askbot__follows{display:flex;flex-wrap:wrap;gap:.4rem;align-self:flex-start;max-width:92%;margin:-.15rem 0 .25rem}
.askbot__follow{font-size:.76rem;border:1px dashed var(--line);border-radius:var(--r-pill);padding:.4em .8em;color:var(--olive-2);background:var(--paper);transition:.2s var(--ease);text-align:left}
.askbot__follow::before{content:"↘ ";opacity:.55}
.askbot__follow:hover{border-style:solid;border-color:var(--olive);color:var(--ink)}
.askbot__input{display:flex;gap:.5rem;padding:.75rem .9rem;border-top:1px solid var(--line);background:var(--card)}
.askbot__input input{flex:1;border:1px solid var(--line);border-radius:var(--r-pill);padding:.62em 1em;font:inherit;font-size:.92rem;outline:none;background:var(--paper)}
.askbot__input input:focus{border-color:var(--olive-2)}
.askbot__input button{width:40px;height:40px;border-radius:50%;background:var(--lime);color:var(--ink);display:grid;place-items:center;font-size:1.05rem;flex:none;transition:background .2s}
.askbot__input button:hover{background:var(--lime-deep)}
.askbot__contact{display:flex;gap:.4rem 1.2rem;flex-wrap:wrap;justify-content:center;padding:.7rem 1rem .3rem;background:var(--card);border-top:1px solid var(--line)}
.askbot__contact a{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.03em;color:var(--olive-2);padding:.2em 0;transition:color .2s}
.askbot__contact a:hover{color:var(--ink)}
.askbot__disc{font-size:.6rem;color:var(--sage);text-align:center;padding:.4rem 1rem .7rem;background:var(--card);line-height:1.4}

/* ---- Slide-in cart drawer ---- */
.cart{position:fixed;inset:0;z-index:95;visibility:hidden}
.cart.is-open{visibility:visible}
.cart__overlay{position:absolute;inset:0;background:rgba(15,20,18,.42);opacity:0;transition:opacity .4s var(--ease);cursor:pointer}
.cart.is-open .cart__overlay{opacity:1}
.cart__panel{position:absolute;top:0;right:0;height:100%;width:min(420px,100%);background:var(--paper);display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .45s var(--ease);box-shadow:-24px 0 70px -34px rgba(15,20,18,.55)}
.cart.is-open .cart__panel{transform:none}
.cart__head{display:flex;align-items:center;justify-content:space-between;padding:1.3rem 1.4rem;border-bottom:1px solid var(--line);
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.cart__head b{color:var(--ink)}
.cart__close{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);transition:color .2s;cursor:pointer}
.cart__close:hover{color:var(--ink)}
.cart__items{flex:1;overflow-y:auto;padding:.6rem 1.4rem}
.cart__empty{color:var(--sage);text-align:center;padding:3.5rem 0;font-size:.95rem}
.citem{display:grid;grid-template-columns:62px 1fr auto;gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--line);align-items:start}
.citem__img{width:62px;height:62px;border-radius:var(--r-md);background:var(--paper-2);object-fit:contain;padding:5px}
.citem__name{font-family:var(--font-disp);font-size:1.05rem;line-height:1.08}
.citem__meta{font-family:var(--font-mono);font-size:.66rem;color:var(--sage);margin-top:.3rem;text-transform:uppercase;letter-spacing:.06em}
.citem__qty{display:inline-flex;align-items:center;gap:.55rem;margin-top:.7rem}
.citem__qty button{width:26px;height:26px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:.95rem;line-height:1;transition:border-color .2s;cursor:pointer}
.citem__qty button:hover{border-color:var(--ink)}
.citem__qty span{font-family:var(--font-mono);font-size:.85rem;min-width:1.4ch;text-align:center}
.citem__r{text-align:right}
.citem__price{font-family:var(--font-mono);font-size:.9rem}
.citem__remove{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.07em;text-transform:uppercase;color:var(--sage);margin-top:.6rem;transition:color .2s;cursor:pointer}
.citem__remove:hover{color:var(--ink)}
.cart__foot{border-top:1px solid var(--line);padding:1.4rem}
.cart__sub{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.1rem;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}
.cart__sub b{font-family:var(--font-disp);font-size:1.5rem;letter-spacing:0;text-transform:none}
.cart__checkout{width:100%;justify-content:center}
.cart__note{font-family:var(--font-mono);font-size:.62rem;color:var(--sage);text-align:center;margin-top:.9rem;letter-spacing:.04em}

/* ---- Cart upsell carousel ---- */
.cart__upsell{padding:.3rem 1.4rem 1.1rem}
.upsell__kicker{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin-bottom:.6rem}
.upsell__viewport{overflow:hidden;border-radius:var(--r-lg)}
.upsell__track{display:flex;transition:transform .5s var(--ease);will-change:transform}
.ucard{flex:0 0 100%;display:flex;align-items:center;gap:1rem;padding:1rem;background:#e6f0f8}
.ucard img{width:76px;height:76px;object-fit:contain;flex:none}
.ucard__b{flex:1;min-width:0}
.ucard__q{font-family:var(--font-disp);font-size:1.08rem;line-height:1.08;margin-bottom:.25rem}
.ucard__meta{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--sage);margin-bottom:.7rem}
.ucard__row{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.ucard__price{font-family:var(--font-mono);font-size:.86rem}
.ucard__add{font-family:var(--font-ui);font-weight:500;font-size:.76rem;border:1px solid var(--ink);border-radius:var(--r-pill);padding:.55em 1.05em;
  background:var(--paper);color:var(--ink);box-shadow:0 3px 0 var(--ink);transition:transform .12s var(--ease),box-shadow .12s var(--ease);cursor:pointer;white-space:nowrap}
.ucard__add:hover{transform:translateY(-1px);box-shadow:0 4px 0 var(--ink)}
.ucard__add:active{transform:translateY(3px);box-shadow:0 0 0 var(--ink)}
.upsell__dots{display:flex;justify-content:center;gap:.4rem;margin-top:.7rem}
.upsell__dot{width:7px;height:7px;border-radius:50%;background:rgba(27,35,26,.2);cursor:pointer;transition:.2s var(--ease);border:none;padding:0}
.upsell__dot.on{background:var(--olive);width:18px;border-radius:4px}

/* ---- Search ---- */
.nav__search{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-soft);transition:border-color .2s,color .2s;cursor:pointer;flex:none}
.nav__search:hover{border-color:var(--ink);color:var(--ink)}
.nav__search svg{display:block}
.search{position:fixed;inset:0;z-index:96;visibility:hidden}
.search.is-open{visibility:visible}
.search__overlay{position:absolute;inset:0;background:rgba(15,20,18,.4);opacity:0;transition:opacity .35s var(--ease);cursor:pointer}
.search.is-open .search__overlay{opacity:1}
.search__panel{position:absolute;top:0;left:0;right:0;background:var(--paper);padding:clamp(18px,3vw,30px) var(--gut) clamp(22px,3vw,34px);
  transform:translateY(-101%);transition:transform .42s var(--ease);box-shadow:0 30px 60px -30px rgba(15,20,18,.4)}
.search.is-open .search__panel{transform:none}
.search__bar{display:flex;align-items:center;gap:.9rem;max-width:760px;margin:0 auto;border-bottom:1.5px solid var(--ink);padding-bottom:.7rem}
.search__bar svg{color:var(--ink-soft);flex:none}
.search__bar input{flex:1;border:none;background:none;outline:none;font-family:var(--font-disp);font-size:clamp(1.3rem,3vw,2rem);color:var(--ink)}
.search__bar input::placeholder{color:var(--sage)}
.search__bar button{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);cursor:pointer;transition:color .2s}
.search__bar button:hover{color:var(--ink)}
.search__results{max-width:760px;margin:1.4rem auto 0;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.sresult{display:flex;align-items:center;gap:1rem;padding:.7rem;border-radius:var(--r-md);transition:background .2s}
.sresult:hover{background:var(--paper-2)}
.sresult img{width:46px;height:46px;object-fit:contain;background:var(--paper-2);border-radius:var(--r-sm);padding:3px;flex:none}
.sresult b{font-family:var(--font-disp);font-size:1.04rem;font-weight:400;display:block;line-height:1.1}
.sresult span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;color:var(--sage)}
.search__empty{grid-column:1/-1;color:var(--sage);text-align:center;padding:1.6rem 0;font-size:.95rem}
@media(max-width:640px){.search__results{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  [data-reveal],[data-reveal-stagger]>*{opacity:1!important;transform:none!important}
  .squiggle path{stroke-dashoffset:0!important}
  .scrollbar{display:none}
}

/* ==== Shared: "flow" — gethapply-style scroll-driven product slider (home + PDP) ==== */
.flow{--fg:var(--ink);--bg:var(--paper);--ac:var(--olive);
  position:relative;height:200vh;
  background:var(--bg);color:var(--fg);
  transition:background-color .7s var(--ease),color .7s var(--ease)}
.flow__sticky{position:sticky;top:0;min-height:100vh;display:flex;align-items:center;
  padding:clamp(54px,8vw,96px) 0;overflow:hidden}
.flow__head{margin-bottom:clamp(28px,4vw,52px)}
.flow__head .index-num,.flow__head .eyebrow{color:var(--ac);transition:color .8s var(--ease)}
.flow__head h2{font-size:clamp(2.4rem,6.4vw,5rem)}
.flow__head em{font-style:italic;color:var(--ac);transition:color .8s var(--ease)}
.flow__body{display:grid;grid-template-columns:0.92fr 1.08fr;gap:clamp(28px,5vw,80px);align-items:center}
.flow__stage{position:relative;height:clamp(360px,46vw,560px);
  display:flex;align-items:center;justify-content:center}
.flow__stage::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(78%,440px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--ac) 24%,transparent),transparent 72%);
  opacity:.7;transition:background .8s var(--ease)}
.flow__slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(46px) scale(.96);pointer-events:none;
  transition:opacity .6s var(--ease),transform .7s var(--ease)}
.flow__slide.out{opacity:0;transform:translateY(-46px) scale(.96)}
.flow__slide.on{opacity:1;transform:translateY(0) scale(1);z-index:2}
.flow__slide img{width:auto;height:100%;max-width:100%;object-fit:contain;
  filter:drop-shadow(0 30px 50px rgba(15,25,35,.28))}
.flow__list{position:relative;display:flex;flex-direction:column;
  border-top:1px solid color-mix(in srgb,var(--fg) 18%,transparent)}
.flow__item{border-bottom:1px solid color-mix(in srgb,var(--fg) 18%,transparent)}
.flow__row{width:100%;display:flex;align-items:baseline;gap:1rem;
  padding:clamp(.85rem,1.6vw,1.25rem) 0;background:none;border:0;cursor:pointer;
  text-align:left;color:var(--fg);font-family:var(--font-disp);
  font-size:clamp(1.5rem,3vw,2.4rem);line-height:1;letter-spacing:-.02em;
  opacity:.42;transition:opacity .4s var(--ease)}
.flow__item.on .flow__row{opacity:1}
.flow__row:hover{opacity:.8}
.flow__ix{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;
  opacity:.7;flex:none;width:auto;min-width:2.2em;transform:translateY(-.2em)}
.flow__name{flex:1}
.flow__price{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.02em;
  opacity:0;transition:opacity .4s var(--ease);align-self:center}
.flow__item.on .flow__price{opacity:.85}
.flow__panel{max-height:0;overflow:hidden;opacity:0;
  transition:max-height .55s var(--ease),opacity .45s var(--ease),padding .55s var(--ease)}
.flow__item.on .flow__panel{max-height:360px;opacity:1;padding-bottom:clamp(1.1rem,2vw,1.6rem)}
.flow__tag{font-size:clamp(1.02rem,1.5vw,1.22rem);line-height:1.4;
  max-width:46ch;margin:.2rem 0 1.1rem;color:var(--fg)}
.flow__specs{display:flex;gap:clamp(1.2rem,3vw,2.4rem);list-style:none;margin:0 0 1.4rem;padding:0;flex-wrap:wrap}
.flow__specs li{display:flex;flex-direction:column;gap:.25em}
.flow__specs b{font-family:var(--font-disp);font-weight:400;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1;color:var(--ac);transition:color .8s var(--ease)}
.flow__specs span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.flow__cta{display:flex;align-items:center;gap:clamp(1rem,2vw,1.6rem);flex-wrap:wrap}
.flow__view{font-family:var(--font-ui);font-weight:500;font-size:.92rem;color:var(--fg);
  text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--fg) 45%,transparent);
  padding-bottom:2px;transition:opacity .2s var(--ease)}
.flow__view:hover{opacity:.65}
.flow__progress{margin-top:clamp(28px,4vw,48px);height:2px;background:color-mix(in srgb,var(--fg) 16%,transparent);border-radius:2px;overflow:hidden}
.flow__bar{display:block;height:100%;width:33.33%;background:var(--ac);border-radius:2px;
  transition:transform .6s var(--ease),background .8s var(--ease)}
@media(max-width:820px){
  .flow{height:auto}
  .flow__sticky{position:static;min-height:0;padding:clamp(44px,11vw,72px) 0}
  .flow__body{grid-template-columns:1fr;gap:clamp(12px,4vw,20px)}
  /* pin the pack while the three items scroll past — pack rotates with scroll */
  .flow__stage{height:clamp(230px,44vh,330px);order:-1;position:sticky;top:56px;z-index:3;background:var(--bg,var(--paper))}
  .flow__panel,.flow__item.on .flow__panel{max-height:none;opacity:1;padding-bottom:clamp(1.1rem,2vw,1.6rem)}
  .flow__row{cursor:default}
}
@media (prefers-reduced-motion:reduce){
  .flow{height:auto}
  .flow__sticky{position:static;min-height:0}
  .flow,.flow__slide,.flow__panel,.flow__bar{transition:none}
}

/* ===== 45+ READABILITY FLOOR & TAP TARGETS (audit fixes) ===== */
/* Raise the smallest labels so nothing reads below ~12.5px, and lift mono-caption contrast. */
.fnote{font-size:.74rem}
.index-num{font-size:.76rem}
.eyebrow{font-size:.74rem}
.credbar{font-size:.72rem}
.figure figcaption,.founderfilm__cap,.nav__rx{font-size:.74rem}
@media(max-width:600px){
  .announce{font-size:.7rem}
  .credbar{font-size:.66rem}
}
/* Tap targets: give icon/utility buttons a comfortable, finger-friendly hit area. */
.nav__burger,.nav__search,.vcar__nav,.askbot__close{min-width:44px;min-height:44px;
  display:inline-flex;align-items:center;justify-content:center}
.nav__mobile a,.footer__col a,.txtlink{min-height:34px;display:inline-flex;align-items:center}
.footer__col li{margin-bottom:.15rem}

/* Proactive chat teaser — a single objection-busting nudge above the launcher */
.askbot__teaser{position:absolute;right:0;bottom:calc(100% + 12px);width:max-content;max-width:248px;text-align:left;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 14px 34px rgba(20,20,25,.18);
  padding:.85rem 1.9rem .85rem 1rem;font-size:.9rem;line-height:1.35;color:var(--ink);
  opacity:0;transform:translateY(8px) scale(.96);transform-origin:bottom right;pointer-events:none;
  transition:opacity .35s var(--ease),transform .35s var(--ease)}
.askbot__teaser.show{opacity:1;transform:none;pointer-events:auto}
.askbot__teaser::after{content:"";position:absolute;right:26px;bottom:-7px;width:14px;height:14px;background:var(--card);
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}
.askbot__teaser-txt{cursor:pointer;display:block}
.askbot__teaser-x{position:absolute;top:3px;right:6px;border:0;background:none;font-size:1.15rem;line-height:1;color:var(--sage);cursor:pointer;padding:.15em .25em}
.askbot__teaser-x:hover{color:var(--ink)}
.askbot.is-open .askbot__teaser{display:none}

/* Shared trust strip — credentials, used under the hero/header on every page */
/* infinite scrolling trust ticker (MUD\WTR-style) */
.trustbar{background:var(--ink);color:var(--paper);overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.trustbar__track{display:flex;width:max-content;animation:trustscroll 42s linear infinite}
.trustbar:hover .trustbar__track{animation-play-state:paused}
.trustbar__set{display:flex;align-items:center;flex:none}
.trustbar__set span{display:inline-flex;align-items:center;gap:.55em;white-space:nowrap;
  font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.95rem clamp(1.5rem,3.5vw,2.8rem)}
.trustbar__set i{color:var(--lime);font-style:normal;font-weight:600}
@keyframes trustscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:680px){.trustbar__set span{font-size:.64rem;letter-spacing:.08em;padding:.85rem 1.3rem}
  .trustbar__track{animation-duration:30s}}
@media(prefers-reduced-motion:reduce){.trustbar__track{animation:none;width:auto;flex-wrap:wrap;justify-content:center}
  .trustbar__set{flex-wrap:wrap;justify-content:center}
  .trustbar__set[aria-hidden="true"]{display:none}}
