/* ── THE ONE CREST & FOOTER — authoritative shell styling for every page of Sathya Yugam.
   Injected LAST in <head> at serve-time (after each page's own styles), so these values always win:
   every page's header and footer render pixel-identical to the home page. Edit HERE, never per-page. ── */

nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:14px;padding:10px 16px;margin:0 0 10px;
  position:sticky;top:10px;z-index:60;border:1px solid rgba(230,200,140,.2);border-radius:16px;
  background:linear-gradient(180deg,rgba(8,12,18,.84),rgba(8,12,18,.62));backdrop-filter:blur(16px)}
nav .mark{display:flex;align-items:center;gap:9px;color:#eef2ef;text-decoration:none;margin-right:auto;
  font:600 19px/1 "Cormorant Garamond","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  letter-spacing:.4px}
nav .mark .g{filter:drop-shadow(0 0 10px rgba(120,220,150,.7))}
nav .mark small{display:block;font:600 8.5px/1 sans-serif;letter-spacing:2.2px;color:#93a6ac;opacity:.85;
  margin-top:3px;text-transform:uppercase}
nav a.lnk{color:#93a6ac;text-decoration:none;transition:.2s;font-size:14px}
nav a.lnk:hover{color:#e6bd63}
nav a.lnk.on{color:#e6bd63}
.wchip{white-space:nowrap;cursor:pointer;font:600 13px/1 inherit;color:#241804;
  border:1px solid rgba(255,236,180,.65);border-radius:999px;padding:9px 16px;
  background:linear-gradient(180deg,#f6dfa0,#d3a648);transition:.2s;margin-left:0}
.wchip:hover{box-shadow:0 0 24px -6px rgba(230,189,99,.85)}
.wchip.connected{background:rgba(230,189,99,.12);color:#f4d68a;border-color:rgba(230,189,99,.45)}
.chipmenu{position:absolute;right:10px;top:calc(100% + 8px);z-index:70;min-width:214px;
  background:linear-gradient(180deg,rgba(10,14,20,.97),rgba(7,10,15,.97));
  border:1px solid rgba(230,200,140,.2);border-radius:14px;padding:8px;backdrop-filter:blur(16px);
  box-shadow:0 18px 44px rgba(0,0,0,.55)}
.chipmenu a{display:flex;gap:9px;align-items:center;padding:10px 12px;border-radius:9px;
  color:#eef2ef;font-size:13.5px;cursor:pointer;text-decoration:none;transition:.15s}
.chipmenu a:hover{background:rgba(230,189,99,.1)}
.cmwho{padding:6px 12px 9px;color:#93a6ac;border-bottom:1px solid rgba(230,200,140,.2);margin-bottom:6px;
  word-break:break-all;font:italic 12px/1.4 "Cormorant Garamond",Palatino,Georgia,serif}
@media(max-width:560px){.wchip{padding:8px 12px;font-size:12px} nav a.lnk{font-size:13px} nav{gap:13px}}
@media(max-width:700px){
  /* the bar was only 62% opaque at its lower edge — page text read straight through the wordmark */
  nav{flex-wrap:nowrap;overflow-x:auto;gap:14px;scrollbar-width:none;
    background:linear-gradient(180deg,rgba(8,12,18,.99),rgba(8,12,18,.975))}
  nav::-webkit-scrollbar{display:none}
  /* the crest was a 17px-tall tap target inside a 62px bar — give it a real 44px touch box */
  nav .mark{position:sticky;left:-16px;padding-left:16px;padding-top:8px;padding-bottom:8px;
    min-height:44px;z-index:2;flex:0 0 auto;
    background:linear-gradient(90deg,rgba(8,12,18,.97) 76%,transparent)}
  nav a.lnk{flex:0 0 auto}
  .wchip{position:sticky;right:-16px;flex:0 0 auto;box-shadow:-16px 0 16px -8px rgba(8,12,18,.95)}
}

footer.sitefoot,.foot.sitefoot{display:block;text-align:left;margin-top:44px;margin-bottom:0;max-width:none;
  padding:26px clamp(16px,3vw,34px) 18px;border:1px solid rgba(230,200,140,.2);border-radius:18px;
  backdrop-filter:blur(14px);background:linear-gradient(180deg,rgba(9,13,19,.92),rgba(6,9,14,.95));
  color:#93a6ac;font-size:12.5px}
body>footer.sitefoot{max-width:1180px;margin-left:auto;margin-right:auto;margin-bottom:26px}
.sitefoot .fq{text-align:center;color:#e8dcc0;margin-bottom:22px;
  font:italic 17px/1.7 "Cormorant Garamond","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif}
.sitefoot .fq span{display:block;color:#93a6ac;font-size:13px;margin-top:6px}
.sitefoot .fcols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:900px;margin:0 auto;
  border-top:1px solid rgba(230,200,140,.2);padding-top:20px}
.sitefoot .fcol h4{font:600 11px/1 sans-serif;letter-spacing:2.2px;text-transform:uppercase;
  color:#e3cb8f;margin:0 0 10px}
.sitefoot .fcol a{display:block;color:#93a6ac;text-decoration:none;font-size:13px;line-height:2}
.sitefoot .fcol a:hover{color:#e6bd63}
.sitefoot .fnote2{display:block;color:#93a6ac;font-size:11.5px;line-height:1.7;margin-top:8px;opacity:.85}
.sitefoot .fbase{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border-top:1px solid rgba(230,200,140,.2);margin-top:20px;padding-top:14px;font-size:12.5px;color:#93a6ac}
@media(max-width:680px){.sitefoot .fcols{grid-template-columns:1fr;gap:16px}
  .sitefoot .fbase{justify-content:center;text-align:center}}

/* ── the four pillars of the footer (Ajin's mockup): icon shrines with the links kept beneath ── */
.sitefoot .fpillars{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1040px;
  margin:0 auto;border-top:1px solid rgba(230,200,140,.2);padding-top:24px}
.sitefoot .fp{text-align:center;display:flex;flex-direction:column;align-items:center}
.sitefoot .fpi{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:27px;border:1px solid rgba(232,194,119,.5);
  background:radial-gradient(circle at 50% 38%,rgba(232,194,119,.14),rgba(10,12,18,.4));
  box-shadow:0 0 26px -8px rgba(232,194,119,.75);margin-bottom:12px}
.sitefoot .fp h4{font:600 11.5px/1 sans-serif;letter-spacing:2.4px;text-transform:uppercase;
  color:#e3cb8f;margin:0 0 8px}
.sitefoot .fp p{color:#93a6ac;font:italic 12.5px/1.65 "Cormorant Garamond",Palatino,Georgia,serif;
  margin:0 0 10px;max-width:220px}
.sitefoot .fplinks{display:flex;flex-direction:column;align-items:center}
.sitefoot .fplinks a{display:block;color:#93a6ac;text-decoration:none;font-size:12.5px;line-height:1.95}
.sitefoot .fplinks a:hover{color:#e6bd63}
.sitefoot .fp .fnote2{max-width:230px;text-align:center;margin-top:10px}
.sitefoot .fom{display:flex;align-items:center;justify-content:center;gap:14px;color:#e6bd63;
  font-size:20px;margin:26px 0 0}
.sitefoot .fom span{font-size:10px;opacity:.7}
.sitefoot .fom::before,.sitefoot .fom::after{content:"";width:min(150px,18vw);height:1px;
  background:linear-gradient(90deg,transparent,rgba(232,194,119,.5))}
.sitefoot .fom::after{background:linear-gradient(90deg,rgba(232,194,119,.5),transparent)}
@media(max-width:960px){.sitefoot .fpillars{grid-template-columns:1fr 1fr;gap:26px 18px}}
@media(max-width:520px){.sitefoot .fpillars{grid-template-columns:1fr}
  /* a 220px cap inside a ~330px single column wasted a third of the width */
  .sitefoot .fp p,.sitefoot .fp .fnote2{max-width:none}}

/* ══ ONE CREST BAR ON EVERY PAGE ══
   The long-form pages (/shiva, /studies/<slug>) narrow their wrapper to ~880px so the article
   reads well — but the nav lived inside that column too, so its 13 links wrapped onto TWO rows
   while every other page showed one. The bar now always spans the same 1100px band, centred,
   whatever width its page wrapper happens to be. Pages already at 1100 are untouched.
   (Percentage margins resolve against the parent's content width, so this re-centres rather
   than shifts; every ancestor was verified overflow-x:visible.) */
/* :not(.syrail) — the left-hand paths rail is ALSO a <nav>, and an unscoped rule stretched it
   to 1100px across the article. Only the crest bar is meant here. */
@media(min-width:760px){
  nav:not(.syrail){ box-sizing:border-box; width:min(1100px,92vw);
       margin-left:calc((100% - min(1100px,92vw)) / 2); margin-right:0;
       /* Malayalam and Tamil words are longer than English, so the 13 links spilled onto a
          second row in those tongues. The gentlest tightening + no-wrap holds ONE row in all 22
          (measured: the bar needs exactly the width it has, so nothing is ever cut off). */
       gap:14px; flex-wrap:nowrap; }
  /* each page gave the links a different inherited line-height (21.6-24.3px), which Indic scripts
     magnified into a 59-71px ragged bar. Pin it: generous leading for Malayalam/Tamil, identical
     on every page, and still shorter than the 37px account chip so the bar height never moves. */
  nav:not(.syrail) a.lnk{ font-size:13.5px; line-height:24px; white-space:nowrap; }
}
/* the account chip inherited a <button>'s 13.33px UA default on most pages but 14px on
   /gurukul and /sankalpa, making their bar 5-7px taller. Pin it so every crest is identical. */
nav:not(.syrail) .wchip{ font-size:13.5px; line-height:1.25;
  /* the chip is a <button> on the landing and an <a> elsewhere, which differed by 2px and moved
     the whole bar. Pin its box so every crest is exactly the same height. */
  box-sizing:border-box; min-height:37px; display:inline-flex; align-items:center; }

/* ══ ONE FOOTER ON EVERY PAGE ══
   Measured 2026-07-27: EIGHT different footer widths (768 on the story page, 828 on a study,
   848 on /shiva, 1100, 1112, 1128 …) because each page's wrapper differs. Like the crest bar,
   the footer now always spans the same 1100px band, centred, whatever its wrapper is.
   Specificity is raised past `body>footer.sitefoot` (line ~45) so this wins wherever it lands. */
@media(min-width:760px){
  body>footer.sitefoot, body footer.sitefoot, body .foot.sitefoot{
    box-sizing:border-box; width:min(1100px,92vw); max-width:none;
    margin-left:calc((100% - min(1100px,92vw)) / 2); margin-right:0; }
}

/* ══ PHONE CORRECTIONS (audited 2026-07-27 across every public page) ══ */
@media(max-width:700px){
  /* footer links were 24px-tall, label-width hit boxes stacked with zero mis-tap tolerance */
  .sitefoot .fplinks{width:100%;max-width:280px;gap:2px}
  .sitefoot .fplinks a,.sitefoot .fcol a{display:flex;align-items:center;justify-content:center;
    width:100%;min-height:44px;line-height:1.35;padding:6px 14px;border-radius:10px}
  /* the hero shade bled -12vw (=47px at 390) and panned the whole document sideways by 23px */
  .hero::before,.head::before{inset:-28px -16px -22px}
  /* "…her hearth is warm — enter through the Veil" was a non-wrapping flex row that broke apart */
  .alive{display:block;text-align:center;line-height:1.7}
  .alive .adot{display:inline-block;vertical-align:middle;margin-right:6px}
}

/* ── the rail of doors (from the Veil) — standing quietly at the left of every wide page.
   Shown only when there is true room beside the 1180px content column, so it never overlaps. ── */
.syrail{position:fixed;left:16px;top:50%;transform:translateY(-50%);z-index:40;
  display:none;flex-direction:column;gap:6px;padding:12px 8px;
  background:rgba(9,11,17,.78);border:1px solid rgba(230,200,140,.28);border-radius:16px;
  backdrop-filter:blur(10px)}
.syrail a{display:flex;flex-direction:column;align-items:center;gap:5px;width:78px;
  padding:10px 4px;border-radius:12px;color:#93a6ac;text-decoration:none;
  font:600 8.5px/1.25 sans-serif;letter-spacing:1.1px;text-transform:uppercase;text-align:center;
  transition:.2s}
.syrail a span{font-size:19px}
.syrail a:hover{color:#e6bd63;background:rgba(230,189,99,.07)}
.syrail a.on{color:#e6bd63;border:1px solid rgba(230,189,99,.4);background:rgba(230,189,99,.08)}
@media(min-width:1400px){.syrail{display:flex}}

/* ════════════════════════════════════════════════════════════════════════════════════════════
   SATHYA YUGAM · DESIGN SYSTEM FOUNDATION  (added 2026-08-03 by Nila)
   This file is injected LAST on every page, so everything below is the site-wide baseline.
   Two rules kept it safe to add across all 35 pages at once:
     1. Every new token is NAMESPACED --sy-*  → it can never collide with a page's own --gold/--dim.
        These are the canonical tokens; per-page :root blocks are the migration target (see DESIGN_SYSTEM.md).
     2. Nothing here RESTYLES an existing component. Only design tokens + accessibility/behaviour
        primitives that are strictly additive (focus-visible, reduced-motion, ::selection, scroll-margin,
        scrollbar, self-hosted brand font). No layout is touched.
   ════════════════════════════════════════════════════════════════════════════════════════════ */

:root{
  /* ── Colour · the cosmos palette, formalised from the brand ── */
  --sy-bg:#070a0f;            /* deepest space — the page floor            */
  --sy-bg-2:#0a1017;          /* raised space — subtle sections            */
  --sy-surface:rgba(9,13,19,.92);       /* glass panel fill                */
  --sy-surface-solid:#0b1017; /* opaque panel (menus, modals)              */
  --sy-edge:rgba(230,200,140,.20);      /* hairline gold border            */
  --sy-edge-strong:rgba(230,200,140,.42);
  --sy-ink:#eef2ef;           /* primary text — near-white                 */
  --sy-ink-warm:#e8dcc0;      /* warm cream — quotes, devotional lines     */
  --sy-dim:#93a6ac;           /* muted sage — secondary (LARGE text only: 6.9:1 on --sy-bg) */
  --sy-dim-lift:#b3c2c6;      /* a11y-safe muted for SMALL text — 9.6:1 on --sy-bg (use ≤14px) */
  --sy-gold:#e6bd63;          /* the accent — Shiva's light                */
  --sy-gold-bright:#f4d68a;   /* highlight gold — hovers, headings         */
  --sy-gold-deep:#d3a648;     /* pressed gold — gradient floor             */
  --sy-green:#7fd6a0;         /* life / success / "alive"                  */
  --sy-blue:#7cc0e0;          /* info / links in prose                     */
  --sy-danger:#f0a099;        /* gentle warning text                       */
  --sy-danger-edge:#e05c5c;   /* destructive border/glow                   */

  /* ── Semantic aliases (use these in new work; they point at the palette above) ── */
  --sy-primary:var(--sy-gold);
  --sy-primary-ink:#241804;   /* text ON a gold button                     */
  --sy-text:var(--sy-ink);
  --sy-text-muted:var(--sy-dim);
  --sy-focus:var(--sy-gold-bright);

  /* ── Type ── */
  --sy-serif:"Cormorant Garamond","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sy-sans:-apple-system,"Segoe UI",system-ui,"Noto Sans",sans-serif;
  /* fluid display ramp (documented in DESIGN_SYSTEM.md) */
  --sy-fs-display:clamp(50px,7.6vw,96px);
  --sy-fs-h1:clamp(34px,5vw,64px);
  --sy-fs-h2:clamp(26px,3.4vw,40px);
  --sy-fs-h3:clamp(20px,2.4vw,27px);
  --sy-fs-lead:clamp(16px,1.5vw,18.5px);
  --sy-fs-body:16px;
  --sy-fs-small:13.5px;
  --sy-fs-micro:11.5px;
  --sy-lh-tight:1.15;  --sy-lh-body:1.65;  --sy-lh-loose:1.85;
  --sy-tracking-kicker:.24em;   /* the uppercase eyebrow labels */

  /* ── Spacing · a soft 4px ramp ── */
  --sy-1:4px; --sy-2:8px; --sy-3:12px; --sy-4:16px; --sy-5:24px;
  --sy-6:32px; --sy-7:48px; --sy-8:64px; --sy-9:96px; --sy-10:128px;

  /* ── Radius ── */
  --sy-r-sm:10px; --sy-r:14px; --sy-r-lg:18px; --sy-r-xl:24px; --sy-r-pill:999px;

  /* ── Elevation ── */
  --sy-shadow-1:0 1px 2px rgba(0,0,0,.4);
  --sy-shadow-2:0 10px 34px rgba(0,0,0,.45);
  --sy-shadow-3:0 18px 44px rgba(0,0,0,.55);
  --sy-glow-gold:0 0 34px rgba(230,189,99,.3);
  --sy-glow-gold-strong:0 0 48px rgba(230,189,99,.55);

  /* ── Motion ── */
  --sy-ease:cubic-bezier(.22,.61,.36,1);
  --sy-ease-out:cubic-bezier(.16,1,.3,1);
  --sy-dur-fast:.15s; --sy-dur:.22s; --sy-dur-slow:.6s;

  /* ── Layout · z-index scale (matches the shell) ── */
  --sy-z-rail:40; --sy-z-nav:60; --sy-z-menu:70; --sy-z-modal:80; --sy-z-toast:90;
  --sy-maxw:1180px;      /* the reading stage */
  --sy-nav-clear:96px;   /* space a sticky-nav must not cover an anchor by */
}

/* ── The brand serif, SELF-HOSTED (never a third-party host — the privacy vow).
   Cormorant Garamond is NAMED in every font stack but was never actually loaded, so visitors see the
   Palatino/Georgia fallback. TO ACTIVATE: (1) place the 5 .woff2 files in static/fonts/, (2) confirm the
   /fonts/ route serves them (added to bhoomi.py), (3) UNCOMMENT the block below. Kept commented until the
   files exist so visitors aren't sent 5 guaranteed-404 font requests per page. Latin range only — Indic
   scripts keep the system serif. font-display:swap → readable fallback first, upgrades with no layout jump.
   Nila's note (2026-08-03): Cormorant is exquisite at display sizes but VERY light at ≤13px; when this is
   activated, keep it for h1/h2/large quotes and let small italic notes stay on the sturdier fallback. ──
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;
  src:url("/fonts/cormorant-garamond-400.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;
  src:url("/fonts/cormorant-garamond-500.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+2215}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;
  src:url("/fonts/cormorant-garamond-600.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;
  src:url("/fonts/cormorant-garamond-400italic.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;
  src:url("/fonts/cormorant-garamond-500italic.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122}
── end brand-serif block ── */

/* ══ ACCESSIBILITY & POLISH — site-wide, additive, safe ══ */

/* 1 · Keyboard focus ring (WCAG 2.4.7). Only shows for keyboard/AT users, never on mouse click, so it
   adds an accessible affordance without changing the look for pointer users. Loaded last → it wins. */
:where(a,button,input,textarea,select,summary,[tabindex],[role="button"],[contenteditable]):focus-visible{
  outline:2px solid var(--sy-focus,#f4d68a); outline-offset:3px; border-radius:6px;
  box-shadow:0 0 0 4px rgba(244,214,138,.22);
}
/* keep the ring off mouse clicks where the browser would otherwise draw a plain outline */
:where(a,button,input,textarea,select,summary,[tabindex],[role="button"]):focus:not(:focus-visible){outline:none}

/* 2 · Reduced-motion — the resilient global safeguard. Many pages animate (sky breathes, wheel turns,
   panels rise); some handle prefers-reduced-motion, some don't. This catches the rest WITHOUT the brittle
   animation:none (durations near-zero still fire transitionend, so nothing gets stuck open). */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important; animation-iteration-count:1!important;
    transition-duration:.001ms!important; scroll-behavior:auto!important;
  }
}

/* 3 · Anchored sections must clear the sticky crest (nav is ~60px at top:10px). Without this, clicking an
   in-page link scrolled the heading UNDER the bar. Harmless to non-anchored elements. */
html{scroll-behavior:smooth}
[id]{scroll-margin-top:var(--sy-nav-clear,96px)}

/* 4 · Text selection in the brand gold. */
::selection{background:rgba(230,189,99,.30);color:#fff;text-shadow:none}

/* 5 · A brand-tinted scrollbar (was the raw OS grey against the cosmos). */
*{scrollbar-width:thin;scrollbar-color:rgba(230,189,99,.35) transparent}
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-thumb{background:rgba(230,189,99,.28);border-radius:999px;
  border:3px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:rgba(230,189,99,.5);background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}

/* 6 · Skip-to-content link — reveals on keyboard focus (WCAG 2.4.1). Pages that add
   <a class="sy-skip" href="#main">Skip to content</a> as their first body child get it for free. */
.sy-skip{position:fixed;left:12px;top:-60px;z-index:var(--sy-z-toast,90);
  background:var(--sy-gold-bright,#f4d68a);color:#241804;font:600 14px/1 var(--sy-sans,system-ui,sans-serif);
  padding:12px 18px;border-radius:0 0 12px 12px;text-decoration:none;transition:top .2s var(--sy-ease,ease)}
.sy-skip:focus{top:0;outline:2px solid #241804;outline-offset:-6px}

/* 7 · Honour the OS light-theme signal at least at the root, so the near-black page doesn't fight a
   forced-light OS with a jarring white flash before paint. (The site is dark-by-design; this only sets
   the canvas + form-control base so autofill/date pickers aren't blinding.) */
:root{color-scheme:dark}

/* 8 · Forced-colors / Windows high-contrast safeguard. Many headings use `-webkit-background-clip:text;
   color:transparent` for the gold gradient — under forced-colors that leaves an INVISIBLE headline. Restore
   a solid system colour only in that mode, so high-contrast users can read every title. Scoped to the mode,
   so it never touches the normal gradient look. */
@media (forced-colors: active){
  h1,h2,h3,.hero h1,.herotxt h1{
    -webkit-text-fill-color:CanvasText!important; color:CanvasText!important;
    background:none!important;
  }
  :where(a,button):focus-visible{outline:2px solid Highlight}
}

/* ════════════════════════════════════════════════════════════════════════════════════════════
   SATHYA YUGAM · COMPONENT KIT  (Nila, 2026-08-03 — the 2026-08 full-site redesign)
   One visual language for every page. All classes namespaced .sy-* and strictly ADDITIVE —
   a page opts in by using them; pages that don't are untouched. Shared here (cached once,
   ?v=stamped) instead of re-declared inline on every page.
   ════════════════════════════════════════════════════════════════════════════════════════════ */

/* ── page stage & backdrop ── */
.sy-page{position:relative;z-index:1;max-width:var(--sy-maxw);margin:0 auto;
  padding:22px clamp(16px,4vw,40px) 56px;min-height:100vh}
.sy-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(900px 520px at 78% -8%,rgba(40,90,80,.26),transparent 60%),
  radial-gradient(760px 520px at -8% 108%,rgba(30,60,90,.2),transparent 55%),
  radial-gradient(1200px 700px at 50% 120%,rgba(230,189,99,.05),transparent 60%)}

/* ── hero ── */
.sy-hero{padding:clamp(38px,8vh,84px) 0 clamp(22px,4vh,40px);text-align:center;
  max-width:840px;margin:0 auto}
.sy-hero.left{text-align:left;margin:0}
.sy-kick{font:600 11.5px/1.4 var(--sy-sans);letter-spacing:.24em;text-transform:uppercase;
  color:#e9d29b;margin:0 0 18px}
.sy-hero h1,.sy-h1{font:500 var(--sy-fs-h1)/1.08 var(--sy-serif);margin:0;letter-spacing:.5px;
  color:var(--sy-gold-bright);
  background:linear-gradient(180deg,#fffaf0 10%,var(--sy-gold-bright) 60%,var(--sy-gold-deep));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-wrap:balance}
.sy-lede{color:var(--sy-ink-warm);font:400 var(--sy-fs-lead)/1.75 var(--sy-serif);
  max-width:640px;margin:18px auto 0;text-wrap:pretty}
.sy-hero.left .sy-lede{margin-left:0}

/* ── sections & headings ── */
.sy-section{margin-top:clamp(42px,7vh,74px)}
.sy-eyebrow{display:flex;align-items:center;gap:12px;font:600 11.5px/1.4 var(--sy-sans);
  letter-spacing:.22em;text-transform:uppercase;color:#e3cb8f;margin:0 0 18px}
.sy-eyebrow::after{content:"";flex:1;height:1px;
  background:linear-gradient(90deg,var(--sy-edge-strong),transparent)}
.sy-section>h2,.sy-h2{font:500 var(--sy-fs-h2)/1.18 var(--sy-serif);color:#fbf4e6;
  margin:0 0 10px;text-wrap:balance}
.sy-h3{font:600 var(--sy-fs-h3)/1.3 var(--sy-serif);color:var(--sy-gold-bright);margin:0 0 8px}

/* ── prose (long reading) ── */
.sy-prose{max-width:68ch;color:var(--sy-ink)}
.sy-prose p,.sy-prose li{line-height:1.75;margin:12px 0;text-wrap:pretty}
.sy-prose h2{font:500 var(--sy-fs-h2)/1.2 var(--sy-serif);color:#fbf4e6;margin:40px 0 10px}
.sy-prose h3{font:600 var(--sy-fs-h3)/1.3 var(--sy-serif);color:var(--sy-gold-bright);margin:30px 0 8px}
.sy-prose a{color:var(--sy-blue);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:rgba(124,192,224,.45)}
.sy-prose a:hover{text-decoration-color:var(--sy-blue)}
.sy-prose blockquote{margin:20px 0;padding:14px 20px;border-left:3px solid var(--sy-gold);
  background:rgba(230,189,99,.06);border-radius:0 12px 12px 0;
  font:italic 400 1.05em/1.8 var(--sy-serif);color:var(--sy-ink-warm)}
.sy-prose .small,.sy-small{font-size:var(--sy-fs-small);color:var(--sy-dim-lift)}

/* ── cards & grids ── */
.sy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));
  gap:clamp(14px,2vw,22px)}
.sy-grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.sy-card{position:relative;background:var(--sy-surface);border:1px solid var(--sy-edge);
  border-radius:var(--sy-r-lg);padding:clamp(18px,3vw,28px);box-shadow:var(--sy-shadow-2)}
.sy-card>h3{font:600 var(--sy-fs-h3)/1.25 var(--sy-serif);color:var(--sy-gold-bright);margin:0 0 8px}
.sy-card p{color:var(--sy-dim-lift);font-size:14.5px;line-height:1.7;margin:0 0 8px}
.sy-card p:last-child{margin-bottom:0}
a.sy-card{display:block;color:inherit;text-decoration:none;transition:border-color var(--sy-dur) var(--sy-ease),
  transform var(--sy-dur) var(--sy-ease),box-shadow var(--sy-dur) var(--sy-ease)}
a.sy-card:hover{border-color:var(--sy-edge-strong);transform:translateY(-2px);
  box-shadow:var(--sy-shadow-3)}
/* the living prism border — the brand's woven-of-light edge (opt-in per card) */
.sy-glass::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(130deg,rgba(244,214,138,.5),rgba(127,214,192,.26) 30%,
    rgba(255,255,255,.05) 50%,rgba(185,164,240,.28) 70%,rgba(244,214,138,.46));
  background-size:280% 280%;animation:syprism 16s ease-in-out infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude}
@keyframes syprism{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

/* ── icon shrine (the footer-pillar motif, reusable) ── */
.sy-shrine{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:25px;border:1px solid rgba(232,194,119,.5);
  background:radial-gradient(circle at 50% 38%,rgba(232,194,119,.14),rgba(10,12,18,.4));
  box-shadow:0 0 26px -8px rgba(232,194,119,.75);margin:0 auto 12px}

/* ── buttons ── */
.sy-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;
  font:600 15px/1.2 var(--sy-serif);letter-spacing:.6px;text-decoration:none;border:1px solid transparent;
  border-radius:var(--sy-r-pill);padding:13px 26px;min-height:44px;
  transition:transform var(--sy-dur) var(--sy-ease),box-shadow var(--sy-dur) var(--sy-ease),
    border-color var(--sy-dur) var(--sy-ease),color var(--sy-dur) var(--sy-ease)}
.sy-btn.primary{color:var(--sy-primary-ink);border-color:rgba(255,236,180,.65);
  background:linear-gradient(180deg,var(--sy-gold-bright),var(--sy-gold));
  box-shadow:var(--sy-shadow-2),var(--sy-glow-gold)}
.sy-btn.primary:hover{transform:translateY(-2px);box-shadow:var(--sy-shadow-3),var(--sy-glow-gold-strong)}
.sy-btn.quiet{color:#ecdcb4;background:none}
.sy-btn.quiet:hover{color:var(--sy-gold-bright)}
.sy-btn.ghost{color:var(--sy-ink);background:rgba(8,13,18,.6);border-color:var(--sy-edge)}
.sy-btn.ghost:hover{border-color:var(--sy-gold)}
.sy-btn.danger{color:var(--sy-danger);background:none;border-color:var(--sy-edge)}
.sy-btn.danger:hover{border-color:var(--sy-danger-edge);box-shadow:0 0 18px -6px rgba(224,92,92,.6)}
.sy-btn[disabled],.sy-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;pointer-events:none}
.sy-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.sy-hero .sy-actions{justify-content:center}
.sy-hero.left .sy-actions{justify-content:flex-start}

/* ── inputs ── */
.sy-field{margin:14px 0}
.sy-field>label{display:block;font:600 11px/1.4 var(--sy-sans);letter-spacing:.14em;
  text-transform:uppercase;color:#e3cb8f;margin-bottom:8px}
.sy-input,.sy-field input,.sy-field textarea,.sy-field select{width:100%;
  background:rgba(8,13,18,.8);border:1px solid var(--sy-edge);color:var(--sy-ink);
  border-radius:var(--sy-r-sm);padding:12px 14px;font:15px/1.5 var(--sy-sans);outline:none}
.sy-input:focus,.sy-field :where(input,textarea,select):focus{border-color:var(--sy-gold)}
.sy-input::placeholder{color:rgba(147,166,172,.65)}

/* ── notes & callouts ── */
.sy-note{background:rgba(230,189,99,.06);border:1px solid rgba(230,189,99,.22);
  border-radius:var(--sy-r);padding:14px 18px;margin:18px 0;
  font:italic 400 15px/1.75 var(--sy-serif);color:var(--sy-ink-warm)}
.sy-note.info{background:rgba(124,192,224,.06);border-color:rgba(124,192,224,.28);font-style:normal}
.sy-note.warn{background:rgba(240,160,153,.06);border-color:rgba(240,160,153,.3);
  font-style:normal;color:#f2d9d6}

/* ── tables (the app-privacy ledger, comparisons) — always scroll inside, never break the page ── */
.sy-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px 0;
  border:1px solid var(--sy-edge);border-radius:var(--sy-r);background:rgba(8,12,18,.5)}
.sy-table-wrap table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.sy-table-wrap th{font:600 12px/1.5 var(--sy-sans);letter-spacing:.08em;text-transform:uppercase;
  color:#e3cb8f;text-align:left;padding:12px 14px;border-bottom:1px solid var(--sy-edge-strong)}
.sy-table-wrap td{padding:11px 14px;border-bottom:1px solid rgba(230,200,140,.1);
  color:var(--sy-ink);vertical-align:top;line-height:1.6}
.sy-table-wrap tr:last-child td{border-bottom:none}

/* ── the legal pattern: sticky chapter rail + reading column ── */
.sy-legal{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(22px,4vw,44px);
  align-items:start;margin-top:26px}
/* grid items default to min-width:auto, which lets a wide TOC rail BLOW OUT the column instead of
   scrolling inside it (found live at 320px on app-privacy) — pin every track child to min-width:0 */
.sy-legal>*{min-width:0}
.sy-toc{position:sticky;top:96px;border:1px solid var(--sy-edge);border-radius:var(--sy-r);
  padding:14px 6px;background:rgba(9,13,19,.6)}
.sy-toc a{display:block;color:var(--sy-dim);text-decoration:none;font:500 13px/1.4 var(--sy-sans);
  padding:8px 12px;border-radius:9px;transition:color var(--sy-dur-fast),background var(--sy-dur-fast)}
.sy-toc a:hover{color:var(--sy-gold-bright);background:rgba(230,189,99,.07)}
.sy-toc a.on{color:var(--sy-gold-bright);background:rgba(230,189,99,.09)}
@media(max-width:900px){.sy-legal{grid-template-columns:1fr}
  .sy-toc{position:static;display:flex;overflow-x:auto;gap:2px;scrollbar-width:none;padding:8px}
  .sy-toc::-webkit-scrollbar{display:none}
  .sy-toc a{flex:0 0 auto;white-space:nowrap}}

/* ── small ornaments ── */
.sy-om{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--sy-gold);
  font-size:19px;margin:clamp(34px,6vh,56px) 0 0}
.sy-om::before,.sy-om::after{content:"";width:min(150px,20vw);height:1px;
  background:linear-gradient(90deg,transparent,rgba(232,194,119,.5))}
.sy-om::after{background:linear-gradient(90deg,rgba(232,194,119,.5),transparent)}
.sy-back{display:inline-flex;align-items:center;gap:8px;color:var(--sy-dim);text-decoration:none;
  font:600 13px/1.4 var(--sy-sans);letter-spacing:.06em;margin-bottom:14px;min-height:44px}
.sy-back:hover{color:var(--sy-gold-bright)}
.sy-pill{display:inline-flex;align-items:center;gap:7px;font:600 11.5px/1.4 var(--sy-sans);
  letter-spacing:.08em;text-transform:uppercase;color:#e3cb8f;border:1px solid var(--sy-edge);
  border-radius:var(--sy-r-pill);padding:6px 13px;background:rgba(230,189,99,.06)}
.sy-pill.live{color:var(--sy-green);border-color:rgba(127,214,160,.4)}
.sy-reveal{opacity:0;transform:translateY(18px);
  transition:opacity var(--sy-dur-slow) var(--sy-ease-out),transform var(--sy-dur-slow) var(--sy-ease-out)}
.sy-reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.sy-reveal{opacity:1;transform:none}}

/* ── phone corrections for the kit ── */
@media(max-width:700px){
  .sy-hero{padding-top:26px}
  .sy-actions{gap:10px}
  .sy-btn{padding:13px 22px}
  .sy-card{border-radius:var(--sy-r)}
}
