/* ==========================================================================
   PRAVAH — Anugachtu Pravah Welfare Foundation
   Shared stylesheet (Session 1 — Foundation)
   Sections: 1 Tokens · 2 Base · 3 Type · 4 Layout · 5 Buttons & links
             6 Components · 7 Header · 8 Mobile menu · 9 Footer
             10 Page hero · 11 Flow line · 12 Motion · 13 Utilities
   ========================================================================== */

/* 0. FONTS (self-hosted) ================================================
   Files live in assets/fonts/ — exact names below. If a file is missing the
   site still works (it falls back to the system font), it just looks plainer.
   ======================================================================== */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/fraunces/fraunces-700.woff2') format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:500;font-display:swap;src:url('../fonts/fraunces/fraunces-500-italic.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/manrope/manrope-400.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/manrope/manrope-600.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/manrope/manrope-700.woff2') format('woff2')}
@font-face{font-family:'Mukta';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/mukta/mukta-400.woff2') format('woff2')}
@font-face{font-family:'Mukta';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/mukta/mukta-600.woff2') format('woff2')}
@font-face{font-family:'Tiro Devanagari Hindi';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/tiro/tiro-devanagari-hindi-400.woff2') format('woff2')}

/* 1. TOKENS ============================================================== */
:root{
  --river-deep:#0B3C5D; --river:#1479A6; --river-light:#63C5E6; --mist:#EAF6FA;
  --leaf:#2E9E6A; --leaf-light:#DDF3E8;
  --marigold:#F29F05; --marigold-dk:#C67F00;
  --sand:#FAF7F0; --ink:#102A3A; --ink-soft:#4A6273; --paper:#FFFFFF; --line:#D6E6EE;

  /* tributary colours (areas of work) */
  --t-health:#E5534B; --t-edu:#3B6FD8; --t-women:#C2479B; --t-child:#F2A93B;
  --t-skill:#7A5AF8; --t-env:#2E9E6A; --t-comm:#16A3A3; --t-poverty:#D9822B;

  --radius-s:10px; --radius-m:18px; --radius-l:32px;
  --shadow-1:0 2px 8px rgba(11,60,93,.08);
  --shadow-2:0 12px 40px rgba(11,60,93,.14);
  --ease-flow:cubic-bezier(.22,.61,.36,1);

  --font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-display-hi:'Tiro Devanagari Hindi','Mukta',serif;
  --font-body-hi:'Mukta','Noto Sans Devanagari',system-ui,sans-serif;

  --gutter:clamp(16px,4vw,40px);
  --maxw:1200px;
  --header-h:84px;
  color-scheme:light;
}

/* 2. BASE ================================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;color:var(--ink);
  background:var(--paper);overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
:lang(hi){font-family:var(--font-body-hi);line-height:1.8}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--river)}
p{margin:0 0 1em}
ul,ol{padding-left:1.2em}
::selection{background:var(--river-light);color:var(--river-deep)}
:focus-visible{outline:2px solid var(--river);outline-offset:3px;border-radius:4px}
body.menu-open{overflow:hidden}

/* bilingual switch — paragraph-level spans; .bi-title children always show */
html[data-lang="hi"] [lang="en"]:not(.bi-en):not(.keep),
html[data-lang="en"] [lang="hi"]:not(.bi-hi):not(.keep){display:none!important}

/* 3. TYPE ================================================================ */
h1,h2,h3,h4{font-family:var(--font-display);color:var(--river-deep);line-height:1.15;margin:0 0 .5em;font-weight:700;letter-spacing:-.01em}
h1:lang(hi),h2:lang(hi),h3:lang(hi),h4:lang(hi){font-family:var(--font-display-hi);font-weight:400;letter-spacing:0;line-height:1.35}
h1{font-size:clamp(2.4rem,6vw,4.6rem)}
h2{font-size:clamp(1.9rem,4vw,3rem)}
h3{font-size:1.35rem}
h4{font-size:1.1rem}
.lead{font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ink-soft);max-width:62ch}
.muted{color:var(--ink-soft)}
.eyebrow{display:inline-flex;align-items:center;gap:.6em;font:700 .78rem/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--river);margin-bottom:1rem}
.eyebrow::before{content:"";width:28px;height:8px;background:currentColor;
  -webkit-mask:var(--wave-mask) repeat-x 0 50%/14px 8px;mask:var(--wave-mask) repeat-x 0 50%/14px 8px}

/* signature bilingual heading */
:root{--wave-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 8'%3E%3Cpath d='M0 4c1.75-3 3.5-3 5.25 0S8.75 7 10.5 4 12.25 1 14 4' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E")}
.bi-title{display:flex;flex-direction:column;gap:.18em;font-size:clamp(1.9rem,4vw,3rem);margin:0 0 .7em}
.bi-title .bi-en{font-family:var(--font-display);font-weight:700;font-size:1em;line-height:1.12;color:var(--river-deep);letter-spacing:-.015em}
.bi-title .bi-hi{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-display-hi);font-weight:400;font-size:.55em;line-height:1.45;color:var(--river);letter-spacing:0}
.bi-title .bi-hi::before{content:"";flex:none;width:2.2em;height:.5em;background:currentColor;
  -webkit-mask:var(--wave-mask) repeat-x 0 50%/1.1em .5em;mask:var(--wave-mask) repeat-x 0 50%/1.1em .5em;
  animation:wave-slide 2.4s linear infinite}
.bi-title--xl{font-size:clamp(2.4rem,6vw,4.6rem)}
.bi-title--sm{font-size:clamp(1.4rem,2.6vw,1.9rem)}
.bi-title--center{align-items:center;text-align:center}
.bi-title--light .bi-en{color:#fff}
.bi-title--light .bi-hi{color:var(--river-light)}
@keyframes wave-slide{to{-webkit-mask-position:1.1em 50%;mask-position:1.1em 50%}}

/* 4. LAYOUT ============================================================== */
.container{width:min(var(--maxw),100% - 2*var(--gutter));margin-inline:auto}
.container--narrow{--maxw:820px}
.section{position:relative;padding-block:clamp(72px,10vw,136px)}
.section--mist{background:var(--mist)}
.section--sand{background:var(--sand)}
.section--leaf{background:var(--leaf-light)}
.section--deep{background:var(--river-deep);color:#e7f2f8}
.section--deep h2,.section--deep h3{color:#fff}
.section > .container{position:relative;z-index:2}
.section-head{max-width:760px;margin-bottom:clamp(32px,5vw,56px)}
.section-head--center{margin-inline:auto;text-align:center}
.section-head--center .bi-title{align-items:center}

.grid{display:grid;gap:clamp(16px,2.4vw,28px)}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.split{display:grid;gap:clamp(32px,5vw,72px);align-items:center}
@media (min-width:900px){.split{grid-template-columns:1fr 1fr}.split--wide-left{grid-template-columns:1.2fr .8fr}}
.stack > * + *{margin-top:var(--stack,1rem)}
.cluster{display:flex;flex-wrap:wrap;gap:var(--gap,.75rem);align-items:center}

/* wave divider — sits at bottom of a section, colour = next section bg */
.wave-divider{position:absolute;left:0;right:0;bottom:-1px;height:clamp(40px,6vw,90px);color:var(--wave,#fff);
  pointer-events:none;z-index:1;overflow:hidden}
.wave-divider svg{position:absolute;left:-5%;width:110%;max-width:none;height:100%}
.wave-divider path:nth-child(1){opacity:.35;transform:translateX(calc(var(--p,0) * 30px))}
.wave-divider path:nth-child(2){opacity:.6;transform:translateX(calc(var(--p,0) * -20px))}
.wave-divider path:nth-child(3){transform:translateX(calc(var(--p,0) * 10px))}
.wave-divider--top{top:-1px;bottom:auto;transform:scaleY(-1)}

/* 5. BUTTONS & LINKS ===================================================== */
.btn{--bg:var(--marigold);--fg:#1d1300;--fill:var(--marigold-dk);--bd:transparent;
  position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  min-height:48px;padding:.75em 1.5em;border:2px solid var(--bd);border-radius:999px;background:var(--bg);color:var(--fg);
  font:700 1rem/1.2 var(--font-body);text-decoration:none;white-space:nowrap;
  transition:transform .35s var(--ease-flow),box-shadow .35s var(--ease-flow),color .35s}
.btn:lang(hi){font-family:var(--font-body-hi);font-weight:600}
.btn::before{content:"";position:absolute;z-index:-1;left:-60%;top:110%;width:220%;aspect-ratio:1;border-radius:42%;
  background:var(--fill);transition:top .6s var(--ease-flow);animation:liquid 6s linear infinite}
.btn:hover,.btn:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px rgba(11,60,93,.18);color:var(--fg-h,var(--fg))}
.btn:hover::before,.btn:focus-visible::before{top:-60%}
.btn:active{transform:translateY(0)}
.btn svg{width:1.15em;height:1.15em;flex:none}
@keyframes liquid{to{transform:rotate(360deg)}}
.btn--river{--bg:var(--river-deep);--fg:#fff;--fill:var(--river)}
.btn--outline{--bg:transparent;--fg:var(--river-deep);--fill:var(--mist);--bd:var(--river)}
.btn--ghost{--bg:transparent;--fg:var(--river-deep);--fill:var(--mist);padding-inline:1em}
.btn--light{--bg:#fff;--fg:var(--river-deep);--fill:var(--mist)}
.btn--outline-light{--bg:transparent;--fg:#fff;--fill:rgba(255,255,255,.14);--bd:rgba(255,255,255,.6)}
.btn--sm{min-height:40px;padding:.5em 1.1em;font-size:.9rem}
.btn--block{width:100%}

.link-wave{color:var(--river);font-weight:600;text-decoration:none;padding-bottom:6px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 6'%3E%3Cpath d='M0 3c1.75-2.4 3.5-2.4 5.25 0S8.75 5.4 10.5 3 12.25.6 14 3' fill='none' stroke='%231479A6' stroke-width='1.4'/%3E%3C/svg%3E") repeat-x 0 100%/14px 6px;
  transition:background-position .6s var(--ease-flow)}
.link-wave:hover,.link-wave:focus-visible{background-position:28px 100%}
.link-arrow{display:inline-flex;align-items:center;gap:.4em;font-weight:700;color:var(--river);text-decoration:none}
.link-arrow svg{width:1.1em;height:1.1em;transition:transform .35s var(--ease-flow)}
.link-arrow:hover svg{transform:translateX(4px)}

/* 6. COMPONENTS ========================================================== */
[data-area="health"]{--accent:var(--t-health)} [data-area="education"]{--accent:var(--t-edu)}
[data-area="women"]{--accent:var(--t-women)} [data-area="child"]{--accent:var(--t-child)}
[data-area="skill"]{--accent:var(--t-skill)} [data-area="environment"]{--accent:var(--t-env)}
[data-area="community"]{--accent:var(--t-comm)} [data-area="poverty"]{--accent:var(--t-poverty)}

/* card */
.card{position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-m);
  padding:clamp(20px,3vw,32px);box-shadow:var(--shadow-1);transition:transform .4s var(--ease-flow),box-shadow .4s var(--ease-flow)}
.card::before{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:var(--accent,var(--river));transition:width .6s var(--ease-flow)}
.card:hover,.card:focus-within{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.card:hover::before,.card:focus-within::before{width:100%}
.card h3{margin-bottom:.35em}
.card p:last-child{margin-bottom:0}
.card--flat{box-shadow:none}
.card--mist{background:var(--mist);border-color:transparent}

/* icon chip */
.icon-chip{--accent-c:var(--accent,var(--river));display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;
  color:var(--accent-c);background:color-mix(in srgb,var(--accent-c) 13%,#fff);margin-bottom:1rem;position:relative}
.icon-chip::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--accent-c) 30%,transparent);
  opacity:0;transform:scale(.8);transition:opacity .4s,transform .6s var(--ease-flow)}
.card:hover .icon-chip::after{opacity:1;transform:scale(1)}
.icon-chip svg{width:26px;height:26px}
.icon-chip--lg{width:76px;height:76px}.icon-chip--lg svg{width:34px;height:34px}
[data-icon]{display:inline-block;line-height:0}
[data-icon] > svg{width:var(--icon,1.25em);height:var(--icon,1.25em)}

/* chips (filters, tags) */
.chip{display:inline-flex;align-items:center;gap:.45em;min-height:40px;padding:.4em 1em;border-radius:999px;border:1.5px solid var(--line);
  background:var(--paper);color:var(--ink);font-weight:600;font-size:.92rem;line-height:1.2;transition:all .3s var(--ease-flow)}
.chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent,var(--river));flex:none}
.chip:hover{border-color:var(--accent,var(--river))}
.chip[aria-pressed="true"],.chip.is-active{background:var(--accent,var(--river-deep));border-color:var(--accent,var(--river-deep));color:#fff}
.chip[aria-pressed="true"]::before,.chip.is-active::before{background:#fff}
.tag{display:inline-block;padding:.2em .7em;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em;
  color:var(--accent,var(--river));background:color-mix(in srgb,var(--accent,var(--river)) 12%,#fff)}

/* badges */
.badge{display:inline-flex;align-items:center;gap:.35em;padding:.25em .7em;border-radius:999px;font-size:.78rem;font-weight:700}
.badge svg{width:1em;height:1em}
.badge--verified{color:#1d6b47;background:var(--leaf-light)}
.badge--soon{color:var(--ink-soft);background:#eef2f4}

/* copy field */
.copy-field{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.25rem 1rem;padding:14px 16px;border-radius:var(--radius-s);
  background:var(--paper);border:1px solid var(--line)}
.copy-field__label{grid-column:1;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.copy-field__value{grid-column:1;font:700 clamp(1.05rem,2.4vw,1.3rem)/1.3 var(--font-body);color:var(--river-deep);letter-spacing:.03em;word-break:break-all}
.copy-btn{grid-column:2;grid-row:1/3;display:inline-flex;align-items:center;gap:.4em;min-height:44px;padding:.4em .9em;border-radius:999px;
  border:1.5px solid var(--river);background:transparent;color:var(--river);font-weight:700;font-size:.88rem;transition:all .3s}
.copy-btn:hover{background:var(--river);color:#fff}
.copy-btn svg{width:1.05em;height:1.05em}
.copy-btn.is-copied{background:var(--leaf);border-color:var(--leaf);color:#fff}

/* toast */
.toast{position:fixed;left:50%;bottom:28px;z-index:200;transform:translate(-50%,20px);opacity:0;pointer-events:none;
  padding:.75em 1.3em;border-radius:999px;background:var(--river-deep);color:#fff;font-weight:600;box-shadow:var(--shadow-2);
  transition:opacity .35s,transform .45s var(--ease-flow)}
.toast.is-on{opacity:1;transform:translate(-50%,0)}

/* modal (native dialog) */
.modal{width:min(720px,100% - 32px);max-height:min(88vh,900px);padding:0;border:0;border-radius:var(--radius-m);
  box-shadow:var(--shadow-2);color:var(--ink);background:var(--paper)}
.modal::backdrop{background:rgba(11,60,93,.45);backdrop-filter:blur(6px)}
.modal[open]{animation:modal-in .45s var(--ease-flow)}
.modal__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:18px 22px;border-bottom:1px solid var(--line)}
.modal__head h3{margin:0}
.modal__body{padding:22px;overflow:auto}
.modal__close,.lightbox__btn{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:0;background:var(--mist);color:var(--river-deep);flex:none}
.modal__close svg,.lightbox__btn svg{width:22px;height:22px}
.modal--wide{width:min(1100px,100% - 32px)}
@keyframes modal-in{from{opacity:0;transform:translateY(24px) scale(.98)}}

/* lightbox */
.lightbox{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(6,30,46,.94);color:#fff}
.lightbox::backdrop{background:transparent}
.lightbox[open]{display:grid;grid-template-rows:auto 1fr auto;animation:fade-in .3s}
.lightbox__bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:.9rem;opacity:.85}
.lightbox__stage{display:grid;place-items:center;padding:0 clamp(8px,6vw,80px);min-height:0;touch-action:pan-y}
.lightbox__stage img,.lightbox__stage .ph-img{max-width:100%;max-height:100%;width:auto;border-radius:var(--radius-s);object-fit:contain}
.lightbox__stage .ph-img{width:min(900px,90vw)}
.lightbox__cap{padding:14px 20px 24px;text-align:center;max-width:70ch;margin-inline:auto}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%)}
.lightbox__nav--prev{left:12px}.lightbox__nav--next{right:12px}
.lightbox .lightbox__btn{background:rgba(255,255,255,.12);color:#fff}
.lightbox .lightbox__btn:hover{background:rgba(255,255,255,.25)}
@keyframes fade-in{from{opacity:0}}

/* tabs */
.tabs__list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.tabs__list [role="tab"]{min-height:44px;padding:.5em 1.1em;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);
  font-weight:700;font-size:.92rem;color:var(--ink-soft);transition:all .3s}
.tabs__list [role="tab"][aria-selected="true"]{background:var(--river-deep);border-color:var(--river-deep);color:#fff}
[role="tabpanel"]{animation:fade-up .45s var(--ease-flow)}
[role="tabpanel"][hidden]{display:none}
@keyframes fade-up{from{opacity:0;transform:translateY(10px)}}

/* timeline (along the river) */
.timeline{position:relative;list-style:none;margin:0;padding:0 0 0 44px}
.timeline::before{content:"";position:absolute;left:14px;top:6px;bottom:6px;width:3px;border-radius:3px;
  background:linear-gradient(var(--river-light),var(--river))}
.timeline__item{position:relative;padding-bottom:32px}
.timeline__item::before{content:"";position:absolute;left:-38px;top:4px;width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:radial-gradient(circle at 60% 40%,#ffd36b,var(--marigold));box-shadow:0 0 0 5px var(--paper),0 0 18px rgba(242,159,5,.6)}
.timeline__date{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--river)}

/* placeholder image */
.ph-img{position:relative;overflow:hidden;display:grid;place-items:center;aspect-ratio:var(--ratio,4/3);border-radius:var(--radius-m);
  background:linear-gradient(160deg,color-mix(in srgb,var(--accent,var(--river-light)) 22%,#fff),var(--mist));color:var(--river-deep)}
.ph-img::after{content:"";position:absolute;inset:auto 0 0;height:38%;opacity:.5;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 80' preserveAspectRatio='none'%3E%3Cpath d='M0 40C70 10 130 70 200 40S330 10 400 40V80H0z' fill='%2363C5E6'/%3E%3Cpath d='M0 55C80 30 140 80 220 55S340 35 400 55V80H0z' fill='%231479A6' opacity='.5'/%3E%3C/svg%3E") 0 100%/100% 100% no-repeat}
.ph-img__label{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--ink-soft);text-align:center;padding:1rem}
.ph-img__label svg{width:34px;height:34px;color:var(--accent,var(--river))}

/* definition list (org facts) */
.facts{display:grid;gap:0;margin:0}
.facts > div{display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:1rem;padding:14px 0;border-bottom:1px solid var(--line)}
.facts dt{font-weight:700;color:var(--ink-soft);font-size:.9rem}
.facts dd{margin:0;font-weight:600;color:var(--river-deep)}
@media (max-width:560px){.facts > div{grid-template-columns:1fr;gap:.1rem}}

/* quote */
.quote{position:relative;margin:0;font-family:var(--font-display-hi);font-size:clamp(1.5rem,3.4vw,2.4rem);line-height:1.5;color:var(--river-deep)}
.quote::before{content:"\201C";position:absolute;left:-.1em;top:-.55em;font-family:var(--font-display);font-size:3.5em;line-height:1;color:var(--river-light);opacity:.4}
.quote cite{display:block;margin-top:.8rem;font:600 1rem/1.5 var(--font-body);font-style:normal;color:var(--ink-soft)}

/* 7. HEADER ============================================================== */
.skip-link{position:fixed;left:16px;top:-60px;z-index:300;padding:.7em 1.1em;border-radius:var(--radius-s);background:var(--river-deep);color:#fff;font-weight:700;transition:top .2s}
.skip-link:focus{top:16px}

.site-header{position:sticky;top:0;z-index:100;transition:transform .45s var(--ease-flow)}
.site-header.is-condensed{transform:translateY(-36px)}
.topstrip{height:36px;background:var(--river-deep);color:#d5e9f3;font-size:.82rem}
.topstrip .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:100%}
.topstrip a{color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:.4em}
.topstrip a svg{width:14px;height:14px}
.topstrip__cin{opacity:.85;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topstrip__right{display:flex;align-items:center;gap:1.2rem;flex:none}
@media (max-width:640px){.topstrip__cin{display:none}.topstrip .container{justify-content:flex-end}}

.navbar{background:rgba(255,255,255,.96);transition:background .35s,box-shadow .35s}
.site-header.is-scrolled .navbar{background:rgba(255,255,255,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);box-shadow:var(--shadow-1)}
.navbar .container{display:flex;align-items:center;gap:1rem;height:var(--header-h);transition:height .4s var(--ease-flow)}
.site-header.is-scrolled .navbar .container{height:64px}

.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--river-deep);flex:none}
.brand__mark{width:46px;height:46px;transition:width .4s,height .4s}
.site-header.is-scrolled .brand__mark{width:38px;height:38px}
.brand__text{display:flex;flex-direction:column;line-height:1.05}
.brand__name{font:700 1.18rem/1.05 var(--font-display);letter-spacing:-.01em}
.brand__sub{font:700 .6rem/1.2 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--river);margin-top:4px}

.nav-menu{display:none;margin:0 auto;padding:0;list-style:none;gap:clamp(.6rem,1.1vw,1.25rem)}
.nav-menu a{position:relative;display:block;padding:.6em 0;font:700 .76rem/1 var(--font-body);letter-spacing:.07em;text-transform:uppercase;
  color:var(--ink);text-decoration:none;white-space:nowrap;transition:color .3s}
.nav-menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--river);opacity:0;transform:scaleX(.3);
  -webkit-mask:var(--wave-mask) repeat-x 0 50%/10px 6px;mask:var(--wave-mask) repeat-x 0 50%/10px 6px;transition:opacity .3s,transform .45s var(--ease-flow)}
.nav-menu a:hover{color:var(--river)}
.nav-menu a:hover::after,.nav-menu a[aria-current="page"]::after{opacity:1;transform:none}
.nav-menu a[aria-current="page"]{color:var(--river)}
.nav-menu a[aria-current="page"]::after{animation:wave-slide-sm 1.6s linear infinite}
@keyframes wave-slide-sm{to{-webkit-mask-position:10px 50%;mask-position:10px 50%}}
.nav-actions{display:flex;align-items:center;gap:.6rem;margin-left:auto}
.nav-donate{display:none}
@media (min-width:1220px){.nav-menu{display:flex}.nav-actions{margin-left:0}.nav-donate{display:inline-flex}.burger{display:none!important}}
@media (min-width:560px){.nav-donate{display:inline-flex}}

/* language toggle */
.lang-toggle{display:inline-flex;align-items:center;padding:3px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:inherit;font-size:.78rem;font-weight:700;line-height:1}
.lang-toggle span{padding:.35em .75em;border-radius:999px;transition:background .3s,color .3s}
.lang-toggle .lt-hi{font-family:var(--font-body-hi);font-size:.9rem}
html[data-lang="en"] .lang-toggle .lt-en,html[data-lang="hi"] .lang-toggle .lt-hi{background:#fff;color:var(--river-deep)}
.lang-toggle--dark{border-color:var(--line);background:var(--mist);color:var(--ink-soft)}
html[data-lang="en"] .lang-toggle--dark .lt-en,html[data-lang="hi"] .lang-toggle--dark .lt-hi{background:var(--river-deep);color:#fff}

/* burger — wavy lines that become an × */
.burger{display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:var(--mist);color:var(--river-deep)}
.burger{position:relative}
.burger svg{position:absolute;width:26px;height:26px;transition:opacity .35s,transform .5s var(--ease-flow)}
.burger__x{opacity:0;transform:rotate(-90deg) scale(.6)}
.burger[aria-expanded="true"] .burger__wave{opacity:0;transform:scaleX(.4)}
.burger[aria-expanded="true"] .burger__x{opacity:1;transform:none}
[data-lightbox]{text-decoration:none;color:inherit;display:block;border-radius:var(--radius-m)}

/* header floating over a dark hero — <body class="header-over"> + hero with [data-header-over]
   (added Session 2). Turns solid once you scroll past the hero. */
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .topstrip{background:transparent;border-bottom:1px solid rgba(255,255,255,.08)}
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .navbar{background:transparent}
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .brand{color:#fff}
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .brand__sub{color:#FFD59A}
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .nav-menu a{color:rgba(255,255,255,.88)}
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .nav-menu a:hover,
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .nav-menu a[aria-current="page"]{color:#FFD59A}
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .nav-menu a::after{background:#FFD59A}
.header-over:not(.menu-open) .site-header:not(.is-scrolled) .burger{background:rgba(255,255,255,.12);color:#fff}
.header-over:not(.menu-open) .site-header.is-floating:not(.is-scrolled) .navbar{background:rgba(6,14,31,.62);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}

/* Hindi in the header / footer (added Session 5) — no caps tracking on Devanagari */
.nav-menu a [lang="hi"]{font:600 .9rem/1 var(--font-body-hi);letter-spacing:0;text-transform:none}
.brand__name [lang="hi"]{font-family:var(--font-display-hi);font-weight:400;letter-spacing:0}
.brand__sub [lang="hi"]{font-family:var(--font-body-hi);font-weight:600;font-size:.72rem;letter-spacing:.04em;text-transform:none}
.skip-link [lang="hi"],.site-footer [lang="hi"]{font-family:var(--font-body-hi)}
.site-footer h3 [lang="hi"]{letter-spacing:.04em;font-size:.95rem}

/* 8. MOBILE MENU ========================================================= */
.mobile-menu{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;overflow-y:auto;
  padding:calc(var(--header-h) + 52px) var(--gutter) 32px;background:linear-gradient(180deg,var(--paper) 0%,var(--mist) 100%);
  clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .65s var(--ease-flow),visibility 0s .65s}
.mobile-menu.is-open{clip-path:inset(0);visibility:visible;transition:clip-path .65s var(--ease-flow)}
.mobile-menu ul{list-style:none;margin:0;padding:0}
.mobile-menu li{opacity:0;transform:translateY(16px);transition:opacity .4s,transform .5s var(--ease-flow)}
.mobile-menu.is-open li{opacity:1;transform:none;transition-delay:calc(.15s + var(--i,0) * .04s)}
.mobile-menu a.mm-link{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none}
.mm-link .bi-en{font:700 1.45rem/1.2 var(--font-display);color:var(--river-deep)}
.mm-link .bi-hi{font:400 1rem/1.3 var(--font-display-hi);color:var(--river)}
.mm-link[aria-current="page"] .bi-en{color:var(--river)}
.mobile-menu__foot{margin-top:auto;padding-top:28px;display:grid;gap:12px}
.mobile-menu__foot .cluster{justify-content:space-between}
.mobile-menu__foot a.mm-phone{display:inline-flex;align-items:center;gap:.5em;font-weight:700;color:var(--river-deep);text-decoration:none}
.mobile-menu__foot svg{width:18px;height:18px}
.mobile-menu::after{content:"";position:fixed;left:0;right:0;bottom:0;height:90px;pointer-events:none;opacity:.6;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 80' preserveAspectRatio='none'%3E%3Cpath d='M0 40C70 10 130 70 200 40S330 10 400 40V80H0z' fill='%2363C5E6' opacity='.35'/%3E%3C/svg%3E") 0 100%/100% 100% no-repeat}

/* 9. FOOTER ============================================================== */
.site-footer{position:relative;margin-top:0;padding:clamp(90px,10vw,130px) 0 0;color:#cfe3ee;
  background:linear-gradient(180deg,var(--river-deep) 0%,#072a42 100%);overflow:hidden}
.site-footer::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(99,197,230,.10) 45%,transparent 60%) 0 0/250% 100%;animation:shimmer 9s linear infinite}
@keyframes shimmer{to{background-position:-250% 0}}
.site-footer .wave-divider{top:-1px;bottom:auto;color:var(--footer-wave,#fff)}
.site-footer .wave-divider svg{transform:scaleY(-1)}
.footer-grid{position:relative;display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
@media (min-width:1000px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.3fr}}
.site-footer h3{font:700 .8rem/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--river-light);margin:0 0 1.2rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.site-footer a{color:#e7f2f8;text-decoration:none;transition:color .25s}
.site-footer a:hover{color:var(--marigold)}
.site-footer .brand{color:#fff}
.site-footer .brand__sub{color:var(--river-light)}
.footer-tagline{margin:1.1rem 0 .6rem;font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:#fff}
.footer-tagline span{display:block;font:400 1rem/1.6 var(--font-display-hi);font-style:normal;color:var(--river-light)}
.footer-small{font-size:.82rem;opacity:.75}
.footer-contact li{display:flex;gap:.6rem;align-items:flex-start}
.footer-contact svg{width:18px;height:18px;flex:none;margin-top:4px;color:var(--river-light)}
.footer-msg{position:relative;margin:clamp(48px,6vw,72px) 0 0;padding:28px 0;border-top:1px solid rgba(255,255,255,.12);text-align:center;
  font:400 clamp(1.2rem,2.6vw,1.7rem)/1.5 var(--font-display-hi);color:#fff}
.footer-bottom{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;padding:20px 0 28px;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem;opacity:.8}

/* 10. INNER PAGE HERO ==================================================== */
.page-hero{position:relative;overflow:hidden;min-height:max(320px,46vh);display:flex;align-items:flex-end;padding:clamp(48px,8vw,96px) 0 clamp(70px,9vw,110px);
  color:#fff;background:linear-gradient(170deg,#0e4a70 0%,var(--river-deep) 55%,#082f49 100%)}
.page-hero__poster{position:absolute;inset:0;pointer-events:none}
.page-hero__poster svg{position:absolute;left:-6%;width:112%;max-width:none;bottom:0;height:70%}
.page-hero__poster path{animation:drift 14s ease-in-out infinite alternate}
.page-hero__poster path:nth-child(2){animation-duration:18s;animation-direction:alternate-reverse}
.page-hero__poster path:nth-child(3){animation-duration:22s}
@keyframes drift{to{transform:translateX(-4%)}}
.page-hero__canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s}
.page-hero__canvas.is-ready{opacity:1}
.page-hero .container{position:relative;z-index:2}
.page-hero .lead{color:#cfe3ee}
.breadcrumb{display:flex;flex-wrap:wrap;gap:.4em;margin:0 0 1.2rem;padding:0;list-style:none;font-size:.85rem;color:#a9cfe2}
.breadcrumb a{color:#fff;text-decoration:none}
.breadcrumb li + li::before{content:"›";margin-right:.4em;opacity:.6}
/* river-ribbon stage + poster (added Session 4) — markup: .page-hero > .page-hero__stage[data-river-ribbon] > .page-hero__poster */
.page-hero{min-height:max(340px,46vh)}
.page-hero__stage{position:absolute;inset:0}
.page-hero__stage::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 90% at 0% 100%,rgba(6,30,48,.55),transparent 70%)}
.page-hero__poster path:nth-child(1){fill:#1479A6;opacity:.5}
.page-hero__poster path:nth-child(2){fill:#63C5E6;opacity:.28}
.page-hero__poster path:nth-child(3){fill:#0B3C5D;opacity:.6}
.page-hero.is-3d .page-hero__poster{opacity:0;transition:opacity 1.2s}
.page-hero .bi-title{margin-bottom:.6rem}
.page-hero .bi-title .bi-hi{color:#FFD59A}
.page-hero .lead{max-width:58ch}
.page-hero .wave-divider{z-index:3}
.page-hero .wave-divider path:nth-child(1){fill:#63C5E6;opacity:.22}
.page-hero .wave-divider path:nth-child(2){fill:#BFE6F3;opacity:.55}

/* 11. FLOW LINE ========================================================== */
main[data-flow]{position:relative}
.flow-line{position:absolute;left:0;top:0;z-index:3;pointer-events:none;overflow:visible}
.flow-line__track{fill:none;stroke:var(--line);stroke-width:2;opacity:.7}
.flow-line__main{fill:none;stroke:url(#flowGrad);stroke-width:3;stroke-linecap:round}
.flow-line__shimmer{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-dasharray:2 22;opacity:.9;animation:shimmer-dash 3s linear infinite}
@keyframes shimmer-dash{to{stroke-dashoffset:-48}}
.ghat-node{position:absolute;z-index:4;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;display:grid;place-items:center;
  background:var(--paper);border:2px solid var(--line);color:var(--ink-soft);pointer-events:none;
  transition:background .5s,border-color .5s,color .5s,transform .5s var(--ease-flow)}
.ghat-node svg{width:18px;height:18px}
.ghat-node.is-active{background:var(--river);border-color:var(--river);color:#fff;transform:scale(1.05)}
.ghat-node.is-active::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid var(--river);animation:ghat-pulse 1.4s var(--ease-flow) 1 forwards}
@keyframes ghat-pulse{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2.1)}}
@media (max-width:1359px){.ghat-node{width:22px;height:22px;margin:-11px 0 0 -11px}.ghat-node svg{display:none}.flow-line__main{stroke-width:2}}
@media (max-width:700px){.flow-line,.ghat-node{opacity:.55}}

/* 12. MOTION ============================================================= */
.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease-flow),transform .9s var(--ease-flow);transition-delay:var(--d,0s)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="fade"]{transform:none}
.js [data-reveal="left"]{transform:translateX(-32px)}
.js [data-reveal="right"]{transform:translateX(32px)}
.js [data-reveal="scale"]{transform:scale(.94)}

/* page transition — three river waves rise on leave, drain on arrival
   (light → mid → deep). Each layer has a wavy crest that keeps flowing sideways. */
.wave-wipe{position:fixed;inset:0;z-index:500;pointer-events:none;overflow:hidden}
.ww{position:absolute;inset:0;transform:translateY(calc(100% + 130px));transition:transform .6s cubic-bezier(.65,0,.35,1)}
.ww::before{content:"";position:absolute;left:0;right:0;bottom:calc(100% - 1px);height:72px;background:inherit;
  -webkit-mask:var(--crest) repeat-x 0 100%/260px 72px;mask:var(--crest) repeat-x 0 100%/260px 72px;animation:ww-flow 1.6s linear infinite}
.ww--1{background:var(--river-light);transition-delay:.18s}
.ww--2{background:var(--river);transition-delay:.09s}
.ww--3{background-color:var(--river-deep);transition-delay:0s;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='60' viewBox='0 0 240 60'%3E%3Cpath d='M0 30Q60 14 120 30T240 30' fill='none' stroke='%2363C5E6' stroke-opacity='.16' stroke-width='2'/%3E%3C/svg%3E");
  background-size:240px 60px;animation:ww-current 6s linear infinite}
@keyframes ww-current{to{background-position:-240px 0}}
.ww__boat{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;color:#fff;opacity:.9;animation:ww-bob 1.6s ease-in-out infinite}
.ww__boat svg{width:100%;height:100%}
@keyframes ww-bob{50%{transform:translateY(-7px) rotate(4deg)}}
.ww--2::before{animation-direction:reverse;animation-duration:2.1s;-webkit-mask-size:340px 72px;mask-size:340px 72px}
.ww--3::before{animation-duration:2.6s;-webkit-mask-size:420px 72px;mask-size:420px 72px}
:root{--crest:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 72' preserveAspectRatio='none'%3E%3Cpath d='M0 40Q65 4 130 40T260 40V72H0Z'/%3E%3C/svg%3E")}
@keyframes ww-flow{to{-webkit-mask-position:-260px 100%;mask-position:-260px 100%}}
.ww--2::before{animation-name:ww-flow-2}@keyframes ww-flow-2{to{-webkit-mask-position:-340px 100%;mask-position:-340px 100%}}
.ww--3::before{animation-name:ww-flow-3}@keyframes ww-flow-3{to{-webkit-mask-position:-420px 100%;mask-position:-420px 100%}}
html.is-leaving .ww{transform:translateY(0)}
html.is-leaving .ww--1{transition-delay:0s}
html.is-leaving .ww--2{transition-delay:.09s}
html.is-leaving .ww--3{transition-delay:.18s}
html.is-entering .ww{transform:translateY(0);transition:none;animation:ww-safety 0s 2.5s forwards}
@keyframes ww-safety{to{transform:translateY(calc(100% + 130px))}}

/* cursor — a drop of water (mouse / trackpad only; touch screens are untouched).
   Normal: blue drop. Over links & buttons: marigold drop. Text fields keep the text cursor. */
:root{
  --cur-drop:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='32' viewBox='0 0 26 32'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%2363C5E6'/%3E%3Cstop offset='1' stop-color='%231479A6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M13 1.5S3.5 12.6 3.5 20a9.5 9.5 0 0 0 19 0C22.5 12.6 13 1.5 13 1.5Z' fill='url(%23g)' stroke='%230B3C5D' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M8.6 19.5c0 2.3 1.4 4.1 3.4 4.8' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' opacity='.85'/%3E%3C/svg%3E") 13 2;
  --cur-drop-hover:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='32' viewBox='0 0 26 32'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23FFD36B'/%3E%3Cstop offset='1' stop-color='%23F29F05'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M13 1.5S3.5 12.6 3.5 20a9.5 9.5 0 0 0 19 0C22.5 12.6 13 1.5 13 1.5Z' fill='url(%23g)' stroke='%230B3C5D' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M8.6 19.5c0 2.3 1.4 4.1 3.4 4.8' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' opacity='.9'/%3E%3C/svg%3E") 13 2;
}
@media (pointer:fine){
  html{cursor:var(--cur-drop),auto}
  a[href],button:not(:disabled),[role="tab"],label,summary,select,.chip,[data-lightbox]{cursor:var(--cur-drop-hover),pointer}
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,[contenteditable]{cursor:text}
}
/* click = a ripple on the water */
.cursor-ripple{position:fixed;z-index:399;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;border:1.5px solid var(--river);pointer-events:none;animation:ripple .9s var(--ease-flow) forwards}
.cursor-ripple--2{border-color:var(--river-light);animation-delay:.14s;opacity:0;animation-name:ripple-2}
@keyframes ripple{from{opacity:.9}to{transform:scale(7);opacity:0}}
@keyframes ripple-2{0%{opacity:.8;transform:scale(1)}to{transform:scale(10);opacity:0}}

/* back to top — paper boat */
.to-top{position:fixed;right:18px;bottom:18px;z-index:80;width:54px;height:54px;border:0;border-radius:50%;display:grid;place-items:center;
  background:var(--paper);color:var(--river-deep);box-shadow:var(--shadow-2);opacity:0;transform:translateY(20px);pointer-events:none;
  transition:opacity .4s,transform .5s var(--ease-flow)}
.to-top.is-on{opacity:1;transform:none;pointer-events:auto}
.to-top svg{width:30px;height:30px;animation:bob 2.6s ease-in-out infinite}
.to-top.is-sailing svg{animation:sail .8s var(--ease-flow) forwards}
@keyframes bob{50%{transform:translateY(-3px) rotate(-4deg)}}
@keyframes sail{to{transform:translateY(-40px) rotate(-10deg);opacity:0}}

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

/* 13. UTILITIES ========================================================== */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.text-center{text-align:center}
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.review-flag{outline:1px dashed var(--marigold)} /* optional: add to elements needing client review during QA */
@media print{.site-header,.mobile-menu,.to-top,.flow-line,.ghat-node,.wave-wipe{display:none!important}}

/* 14. PERFORMANCE ========================================================
   Same look — less work for the phone.                                     */
/* animations inside off-screen sections are paused (pravah.js adds .is-paused) */
.is-paused,.is-paused::before,.is-paused::after,.is-paused *,.is-paused *::before,.is-paused *::after{animation-play-state:paused!important}
/* button "liquid" only turns while hovered (it is hidden below the button otherwise) */
.btn::before{animation-play-state:paused}
.btn:hover::before,.btn:focus-visible::before{animation-play-state:running}
/* closed phone menu and hidden back-to-top boat don't animate */
.mobile-menu:not(.is-open),.mobile-menu:not(.is-open) *,.mobile-menu:not(.is-open) *::before{animation-play-state:paused!important}
.to-top:not(.is-on) svg{animation-play-state:paused}
/* the river line shimmers only while scrolling */
.flow-line__shimmer{animation-play-state:paused}
html.is-scrolling .flow-line__shimmer{animation-play-state:running}
/* page-change waves: hidden and still, except during a page change */
html:not(.is-leaving):not(.is-entering):not(.is-draining) .wave-wipe{visibility:hidden}
html:not(.is-leaving):not(.is-entering):not(.is-draining) .wave-wipe *,
html:not(.is-leaving):not(.is-entering):not(.is-draining) .wave-wipe *::before{animation-play-state:paused}
/* PERFORMANCE: the browser skips laying out and painting sections that are
   far below the screen until you scroll near them. Nothing looks different —
   it just stops the phone working on parts of the page nobody is looking at. */
main > section:not(:first-child),.site-footer{content-visibility:auto;contain-intrinsic-size:auto 900px}
@media print{main > section,.site-footer{content-visibility:visible}}