/* ============================================================
   Muse - shared design system
   Brand: monochrome obsidian/porcelain, four-tile logomark.
   Porcelain-led light, deep obsidian dark. Display: Clash Display.
   Body: Inter. Used by sub-pages (privacy, terms, download, blog).
   The landing page (index.html) reuses these tokens plus its own
   inline section CSS. Structure mirrors the Echo site's stylesheet.
   ============================================================ */

/* ---------- Tokens ---------- */
:root{
  /* Brand accent: ink. Muse is monochrome; the "accent" is simply
     the darkest ink in light mode and porcelain in dark mode. */
  --ink-acc:#26242B;
  --ink-acc-deep:#141317;
  --ink-soft:rgba(38,36,43,.07);
  --silver:#C9C7C1;
  --silver-bright:#E4E2DD;

  /* Warm complementary whisper (the porcelain's warmth) */
  --accent-2:#B7A98C;
  --accent-2-soft:rgba(183,169,140,.14);
  --accent-2-ink:#8C8064;

  /* Travelling-ring highlight (house mechanic, in Muse ink/silver) */
  --ring-base:rgba(38,36,43,.16);
  --ring-arc:rgba(38,36,43,.85);

  /* Light (grey system) */
  --paper:#F4F5F6;  /* recollect.so light-grey base */
  --paper-2:#EAEBEC;
  --card:#FFFFFF;
  --ink1:#0A0A0C;   /* headings, primary text - crisp black */
  --ink2:#1B1B1F;   /* body - pulled to near-black for recollect crispness */
  --ink3:#6C6C72;   /* captions / footer / meta - neutral grey */
  --ink4:#AEACA6;   /* faint */
  --hairline:rgba(26,25,23,.10);
  --hairline-soft:rgba(26,25,23,.05);
  --accent:var(--ink-acc);
  --accent-deep:var(--ink-acc-deep);
  --accent-ink:#3A3833;        /* readable link colour on light */
  --shadow-soft:0 18px 44px rgba(32,30,26,.10);
  --shadow-tight:0 4px 14px rgba(32,30,26,.07);
  --glass:rgba(255,255,255,.72);
  --glass-line:rgba(26,25,23,.08);

  /* Hero atmosphere (overridden per theme) */
  --hero-wash:
    radial-gradient(820px 540px at 82% -8%, rgba(140,136,128,.14), transparent 60%),
    radial-gradient(560px 420px at 6% 4%, rgba(183,169,140,.12), transparent 58%),
    radial-gradient(900px 700px at 50% 120%, rgba(120,118,124,.08), transparent 60%);

  /* Scale */
  --max:1080px;
  --radius:20px;
  --radius-lg:26px;
  --radius-pill:999px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-out-expo:cubic-bezier(.19,1,.22,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);

  /* Type */
  --font-display:"General Sans",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --font-body:"General Sans","Inter",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  color-scheme:light;
}

/* ---------- Dark mode (Obsidian) ---------- */
:root[data-theme="dark"]{
  --paper:#0C0C10;
  --paper-2:#111116;
  --card:#15151B;
  --ink1:#EFEEEA;
  --ink2:#BAB8B2;
  --ink3:#84827C;
  --ink4:#575551;
  --hairline:rgba(255,255,255,.10);
  --hairline-soft:rgba(255,255,255,.05);
  --accent:#E4E2DD;
  --accent-deep:#F2F1ED;
  --accent-ink:#D6D4CE;
  --accent-2:#D8C9A6;
  --accent-2-soft:rgba(216,201,166,.14);
  --accent-2-ink:#DCCFAF;
  --ring-base:rgba(228,226,221,.14);
  --ring-arc:rgba(228,226,221,.9);
  --shadow-soft:0 24px 60px rgba(0,0,0,.55);
  --shadow-tight:0 6px 18px rgba(0,0,0,.45);
  --glass:rgba(21,21,27,.66);
  --glass-line:rgba(255,255,255,.09);
  --hero-wash:
    radial-gradient(880px 580px at 82% -10%, rgba(228,226,221,.07), transparent 58%),
    radial-gradient(620px 460px at 4% 2%, rgba(216,201,166,.05), transparent 56%),
    radial-gradient(1000px 760px at 50% 128%, rgba(160,158,164,.06), transparent 60%);
  color-scheme:dark;
}

/* Honour OS preference when no explicit theme is set */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0C0C10; --paper-2:#111116; --card:#15151B;
    --ink1:#EFEEEA; --ink2:#BAB8B2; --ink3:#84827C; --ink4:#575551;
    --hairline:rgba(255,255,255,.10); --hairline-soft:rgba(255,255,255,.05);
    --accent:#E4E2DD; --accent-deep:#F2F1ED; --accent-ink:#D6D4CE;
    --accent-2:#D8C9A6; --accent-2-soft:rgba(216,201,166,.14); --accent-2-ink:#DCCFAF;
    --ring-base:rgba(228,226,221,.14); --ring-arc:rgba(228,226,221,.9);
    --shadow-soft:0 24px 60px rgba(0,0,0,.55); --shadow-tight:0 6px 18px rgba(0,0,0,.45);
    --glass:rgba(21,21,27,.66); --glass-line:rgba(255,255,255,.09);
    --hero-wash:
      radial-gradient(880px 580px at 82% -10%, rgba(228,226,221,.07), transparent 58%),
      radial-gradient(620px 460px at 4% 2%, rgba(216,201,166,.05), transparent 56%),
      radial-gradient(1000px 760px at 50% 128%, rgba(160,158,164,.06), transparent 60%);
    color-scheme:dark;
  }
}

/* ---------- Reset / base ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  overflow-x:hidden;
  background:var(--page-bg);
  color:var(--ink1);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-feature-settings:"cv05" 1,"ss01" 1;
}
/* ---------- Page background ----------
   A single document-height gradient (it lightens as you scroll down).
   Sub-pages (dark text throughout) get a gentle light-grey wash.
   The landing (body.home) gets the dramatic version: a dark charcoal
   masthead behind the white hero text that melts into light grey by the
   time the content begins - the transition % is tuned to sit just below
   the hero's app window. Dark mode keeps the obsidian, both variants. */
:root{
  /* light: flat recollect-grey for sub-pages */
  --page-bg:#F4F5F6;
  /* light: flat recollect-grey masthead (light hero) */
  --page-bg-home:#F4F5F6;
}
:root[data-theme="dark"]{
  --page-bg:#101015;
  --page-bg-home:#101015;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --page-bg:#101015;
    --page-bg-home:#101015;
  }
}
body.home{background:var(--page-bg-home)}
/* A whisper of film grain over the whole page so the large low-contrast
   gradient never bands. Fixed to the viewport; grain does not need to scroll.
   Kept as a plain low-opacity overlay (no blend mode) so it composites the
   same on every GPU. */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  opacity:.6;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
  background-size:200px 200px}
img{max-width:100%;display:block}
a{color:var(--accent-ink);text-decoration:none}
::selection{background:rgba(140,136,128,.28)}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.04;letter-spacing:-.028em;color:var(--ink1)}
.tabular{font-variant-numeric:tabular-nums}

.container{max-width:var(--max);margin:0 auto;padding:0 28px}
.eyebrow{font-family:var(--font-body);font-weight:600;font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink3)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-body);font-weight:600;font-size:15px;line-height:1;
  padding:13px 22px;border-radius:13px;border:1px solid transparent;cursor:pointer;
  transition:transform .15s var(--ease-out),box-shadow .2s var(--ease-out),background .2s,color .2s;
  text-decoration:none;white-space:nowrap;
}
.btn-primary{background:linear-gradient(180deg,#33313A,var(--ink-acc-deep));color:#FFFFFF;
  box-shadow:0 8px 22px rgba(26,25,23,.28)}
:root[data-theme="dark"] .btn-primary{background:linear-gradient(180deg,#FFFFFF,var(--silver-bright));color:#141317}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn-primary{background:linear-gradient(180deg,#FFFFFF,var(--silver-bright));color:#141317}}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(26,25,23,.36)}
.btn-primary:active{transform:scale(.97)}
.btn-ghost{background:transparent;color:var(--ink1);border-color:var(--hairline)}
.btn-ghost:hover{transform:translateY(-2px);background:var(--ink-soft)}
.btn-ghost:active{transform:scale(.97)}

/* ---- Grouped Download | Buy control (house mechanic, Muse ink) ----
   A pill holding a filled ink "Download Free Trial" and a quiet "Buy",
   split by a hairline, with a soft highlight travelling the perimeter. */
@property --bg-ang{syntax:'<angle>';initial-value:0deg;inherits:false}
.buy-group{position:relative;display:inline-flex;align-items:center;gap:2px;padding:6px;
  background:var(--card);border-radius:999px;border:1px solid var(--hairline-soft);
  box-shadow:0 12px 30px rgba(32,30,26,.18)}
:root[data-theme="dark"] .buy-group{background:rgba(255,255,255,.07)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .buy-group{background:rgba(255,255,255,.07)}}
.buy-group::before,.travel-ring::before{content:'';position:absolute;inset:-1.5px;border-radius:inherit;padding:1.5px;
  background:conic-gradient(from var(--bg-ang),
    var(--ring-base) 0deg, var(--ring-base) 232deg, var(--ring-arc) 286deg, var(--ring-base) 332deg, var(--ring-base) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  filter:drop-shadow(0 0 3px var(--ring-arc));pointer-events:none;z-index:4;animation:bgRing 4.5s linear infinite}
@keyframes bgRing{to{--bg-ang:360deg}}
@media (prefers-reduced-motion:reduce){.buy-group::before,.travel-ring::before{animation:none}}
.bg-btn{position:relative;z-index:1;border:none;cursor:pointer;border-radius:999px;font-family:var(--font-body);
  font-weight:600;font-size:15.5px;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:7px;
  padding:11px 21px;transition:background .15s,transform .15s,box-shadow .15s}
.bg-download{color:#fff;background:linear-gradient(180deg,#33313A,var(--ink-acc-deep));
  box-shadow:0 3px 10px rgba(26,25,23,.35),inset 0 1px 0 rgba(255,255,255,.18)}
.bg-download:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(26,25,23,.45),inset 0 1px 0 rgba(255,255,255,.18)}
:root[data-theme="dark"] .bg-download{background:linear-gradient(180deg,#FFFFFF,var(--silver-bright));color:#141317;
  box-shadow:0 3px 10px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.9)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bg-download{background:linear-gradient(180deg,#FFFFFF,var(--silver-bright));color:#141317;
  box-shadow:0 3px 10px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.9)}}
.bg-divider{width:1px;align-self:stretch;margin:6px 2px;background:var(--hairline)}
.bg-buy{color:var(--ink1);background:transparent}
.bg-buy:hover{background:var(--ink-soft)}
:root[data-theme="dark"] .bg-buy:hover{background:rgba(255,255,255,.08)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bg-buy:hover{background:rgba(255,255,255,.08)}}
.bg-btn .px{font-variant-numeric:tabular-nums}

/* Standalone travelling-ring host (e.g. solo pricing button) */
.travel-ring{position:relative}

/* Header mini CTA */
.cta-mini{position:relative;border:none;cursor:pointer;border-radius:999px;font-family:var(--font-body);
  font-weight:600;font-size:14px;color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:6px;
  background:linear-gradient(180deg,#33313A,var(--ink-acc-deep));padding:9px 16px;
  box-shadow:0 3px 10px rgba(26,25,23,.3);transition:transform .15s,box-shadow .15s}
.cta-mini:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(26,25,23,.4)}
.cta-mini .px{font-variant-numeric:tabular-nums}
:root[data-theme="dark"] .cta-mini{background:linear-gradient(180deg,#FFFFFF,var(--silver-bright));color:#141317}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .cta-mini{background:linear-gradient(180deg,#FFFFFF,var(--silver-bright));color:#141317}}

/* ---------- Four-tile logomark ---------- */
/* The real app icon, sized by font-size like a glyph. Light render in light
   mode, dark render in dark mode. Rounded to the app's squircle. */
.muse-mark{display:inline-block;width:1.18em;height:1.18em;vertical-align:-.26em;
  border-radius:.27em;overflow:hidden;background:center/contain no-repeat;
  background-image:url(/muse/images/muse-icon-light.png)}
.muse-mark i{display:none}
:root[data-theme="dark"] .muse-mark{background-image:url(/muse/images/muse-icon-dark.png)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .muse-mark{background-image:url(/muse/images/muse-icon-dark.png)}}
@media (prefers-reduced-motion: no-preference){
  .muse-mark.live i{animation:tileSheen 3.2s var(--ease-out) infinite}
  .muse-mark.live i:nth-child(2){animation-delay:.25s}
  .muse-mark.live i:nth-child(3){animation-delay:.5s}
  .muse-mark.live i:nth-child(4){animation-delay:.75s}
}
@keyframes tileSheen{0%,100%{filter:brightness(1)}12%{filter:brightness(1.3)}30%{filter:brightness(1)}}
/* the footer brand's tiles glint when you hover it */
@media (prefers-reduced-motion: no-preference){
  .site-footer .brand:hover .muse-mark.live i{animation-duration:1.1s}
}

.brand{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);
  font-weight:600;font-size:19px;letter-spacing:-.01em;color:var(--ink1)}
.brand .muse-mark{font-size:21px}

/* ---------- Floating glass-pill nav ---------- */
.site-header{position:fixed;top:16px;left:0;right:0;z-index:80;display:flex;justify-content:center;
  pointer-events:none;padding:0 16px}
.nav-pill{pointer-events:auto;display:flex;align-items:center;gap:8px;
  background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border:1px solid var(--glass-line);border-radius:var(--radius-pill);
  padding:9px 9px 9px 18px;box-shadow:var(--shadow-tight);max-width:min(940px,calc(100vw - 32px))}
.nav-pill .brand{font-size:17px;margin-right:6px}
.nav-pill .brand .muse-mark{font-size:18px}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links a{font-family:var(--font-body);font-weight:500;font-size:14.5px;color:var(--ink2);
  padding:8px 13px;border-radius:var(--radius-pill);transition:color .18s,background .18s}
.nav-links a:hover{color:var(--ink1);background:var(--ink-soft)}
:root[data-theme="dark"] .nav-links a:hover{background:rgba(255,255,255,.08)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nav-links a:hover{background:rgba(255,255,255,.08)}}
.nav-cta{margin-left:4px}
.theme-toggle{pointer-events:auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--glass-line);
  background:var(--card);color:var(--ink2);display:grid;place-items:center;cursor:pointer;
  transition:color .18s,transform .18s}
.theme-toggle:hover{color:var(--ink1);transform:rotate(15deg)}
/* Mobile nav: Email Link + Download in one buy-group pill. Hidden on desktop. */
.nav-buy{display:none;padding:5px}
.nav-buy .bg-btn{padding:9px 14px;font-size:13.5px}
.nav-buy .bg-divider{margin:5px 1px}
@media (max-width:720px){.nav-links{display:none}.nav-cta{display:none}.nav-buy{display:inline-flex}}
@media (max-width:460px){.nav-pill{padding:6px 6px 6px 13px;gap:6px}.nav-buy .bg-btn{padding:8px 12px;font-size:13px}}

/* ---------- Footer ---------- */
/* a soft "floor": the page deepens toward the very bottom instead of ending flat */
.site-footer{background:linear-gradient(180deg, transparent 28%, rgba(18,17,22,.12) 100%);margin-top:0}
:root[data-theme="dark"] .site-footer{background:linear-gradient(180deg, transparent 22%, rgba(0,0,0,.78) 100%)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .site-footer{background:linear-gradient(180deg, transparent 22%, rgba(0,0,0,.78) 100%)}}
.footer-inner{max-width:var(--max);margin:0 auto;padding:72px 28px 40px}
.footer-cta{text-align:center;margin-bottom:56px}
.footer-cta h2{font-size:clamp(30px,4.4vw,46px);margin-bottom:24px}
.footer-cta-actions{display:flex;justify-content:center}
.footer-main{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:40px 26px;padding-top:8px}
.footer-brandcol .brand{margin-bottom:16px}
.footer-brandcol p{color:var(--ink2);font-size:14.5px;line-height:1.55;max-width:26ch}
.footer-tag{color:var(--ink3);font-size:13px;margin-top:12px}
.footer-col h4{font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:-.005em;
  color:var(--ink1);margin-bottom:14px}
.footer-col > a{display:block;color:var(--ink3);font-size:14.5px;padding:8px 0;transition:color .15s;text-decoration:none}
.footer-col > a:hover{color:var(--ink1)}
/* placeholder pages we intend to build - marked so they read as "planned" */
.footer-col > a.soon{display:flex;align-items:center;gap:8px}
.footer-col > a.soon::after{content:"Soon";font-family:var(--font-mono);font-size:9px;line-height:1;
  letter-spacing:.05em;text-transform:uppercase;color:var(--ink4);
  border:1px solid var(--hairline);border-radius:5px;padding:2px 5px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  margin-top:44px;padding-top:24px;color:var(--ink3);font-size:13px}
.footer-disc{font-size:11.5px;color:var(--ink4);max-width:440px;text-align:right;line-height:1.45;text-wrap:balance}
@media (max-width:560px){.footer-disc{text-align:center;max-width:none}}
@media (max-width:900px){.footer-main{grid-template-columns:repeat(3,1fr);gap:32px 20px}
  .footer-brandcol{grid-column:1 / -1;margin-bottom:8px}}
@media (max-width:560px){.footer-main{grid-template-columns:repeat(2,1fr)}
  .footer-col > a{padding:9px 0}
  /* simplified mobile footer: drop the heavy Compare column and the "Soon" extension links */
  .foot-hide-mobile{display:none}
  .footer-col > a.soon{display:none}
  /* brand row laid out horizontally: icon+name, tagline, then the Follow pill on the right */
  .footer-brandcol{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-bottom:20px}
  .footer-brandcol .brand{margin-bottom:0}
  .footer-brandcol p{display:none}
  .footer-brandcol .footer-x{margin-top:0;margin-left:auto}
  .footer-bottom{justify-content:center;text-align:center}}
.footer-x{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:8px 15px;
  border-radius:10px;border:none;background:var(--ink1);color:var(--paper);
  font-size:13.5px;font-weight:600;text-decoration:none;
  transition:opacity .18s,transform .18s var(--ease-out)}
.footer-x:hover{opacity:.85;transform:translateY(-1px)}
.footer-x:active{transform:scale(.97)}
.footer-x svg{width:15px;height:15px;fill:currentColor;display:block}

/* ---------- Keycap ---------- */
.kbd{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-mono);font-size:12px;
  font-weight:500;color:var(--ink2);background:var(--card);border:1px solid var(--hairline);
  border-bottom-width:2px;border-radius:7px;padding:3px 7px;line-height:1;box-shadow:0 1px 0 var(--hairline-soft)}

/* ---------- Reveal-on-scroll (enhances an already-visible default) ----------
   Content is visible without JS; only when html.js is set do we hide-then-reveal,
   so headless renderers and no-JS clients never ship blank sections. */
.reveal{transition:opacity .8s var(--ease-out-expo),transform .8s var(--ease-out-expo)}
.js .reveal{opacity:0;transform:translateY(24px)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal[style*="--i"]{transition-delay:calc(var(--i) * 70ms)}
@media (prefers-reduced-motion: reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* ---------- Delight primitives ---------- */
.nav-pill{transition:box-shadow .35s var(--ease-out),background .35s}
.site-header.scrolled .nav-pill{box-shadow:0 14px 36px rgba(32,30,26,.18)}
.site-header{transition:transform .45s var(--ease-out-expo)}
.site-header.nav-hid{transform:translateY(calc(-100% - 20px))}
@media (prefers-reduced-motion:reduce){.site-header{transition:none}}

/* ============ Legal pages (Systematic Spec) + download page ============ */
.page-hero{position:relative;max-width:900px;margin:0 auto;padding:150px 32px 22px}
.page-hero .eyebrow{display:block;margin-bottom:20px}
.page-hero h1{font-size:clamp(32px,4.6vw,50px);font-weight:600;letter-spacing:-.03em;line-height:1.03;margin-bottom:0}
.page-hero h1 em{font-style:normal;color:var(--ink4)}
.page-hero .updated{font-family:var(--font-mono);font-size:12.5px;color:var(--ink3);margin:18px 0 0}
.page-hero .lede{font-size:clamp(16px,1.7vw,18px);color:var(--ink2);max-width:60ch;margin:20px 0 0;line-height:1.62}

.legal{max-width:900px;margin:0 auto;padding:26px 32px 96px;counter-reset:sec}
/* each section: mono number in a left gutter, content on the right, hairline divider */
.legal .sec{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:24px;
  border-top:1px solid var(--hairline);padding-top:32px;margin-top:32px;counter-increment:sec}
.legal .sec::before{content:counter(sec,decimal-leading-zero);grid-column:1;grid-row:1;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;color:var(--ink4);padding-top:7px}
.legal .sec > *{grid-column:2;min-width:0}
.legal h2{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:-.015em;color:var(--ink1);margin:0 0 14px}
.legal h3{font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin:22px 0 8px}
.legal p{font-size:15.5px;line-height:1.72;color:var(--ink2);margin:12px 0 0}
.legal .sec > p:first-of-type{margin-top:0}
.legal ul{list-style:none;padding:0;margin:12px 0 0}
.legal ul li{font-size:15.5px;line-height:1.7;color:var(--ink2);padding-left:18px;position:relative;margin:9px 0}
.legal ul li::before{content:"";position:absolute;left:0;top:12px;width:7px;height:1px;background:var(--ink4)}
.legal strong{color:var(--ink1);font-weight:600}
.legal code{font-family:var(--font-mono);font-size:12.5px;color:var(--ink1);background:var(--ink-soft);border-radius:5px;padding:1px 6px}
.legal a{color:var(--ink1);text-decoration:underline;text-decoration-color:var(--ink4);text-underline-offset:3px}
.legal a:hover{text-decoration-color:var(--ink1)}
.legal .em{display:block;font-family:var(--font-mono);font-size:12px;line-height:1.62;letter-spacing:.01em;color:var(--ink3);margin-top:14px}

/* label -> value rows (the spec table) */
.legal .rows{margin-top:14px}
.legal .row{display:grid;grid-template-columns:168px minmax(0,1fr);gap:22px;padding:15px 0;border-top:1px solid var(--hairline-soft)}
.legal .row:first-child{border-top:0;padding-top:2px}
.legal .row .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);line-height:1.5;padding-top:2px}
.legal .row .v{font-size:15px;line-height:1.68;color:var(--ink2)}
.legal .row .v b,.legal .row .v strong{color:var(--ink1);font-weight:600}
.legal .row .v p{margin:0}.legal .row .v p + p{margin-top:8px}
.legal .row .basis{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3);margin-top:9px}

hr.rule{border:0;height:1px;background:var(--hairline);margin:38px 0 0}
/* 14-day waiver tickbox (minimal) */
.legal .tickbox{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:16px 18px;
  border:1px dashed var(--hairline);border-radius:10px;background:var(--ink-soft);
  font-size:14.5px;line-height:1.55;color:var(--ink1);font-weight:500}
.legal .tickbox .box{flex:none;width:18px;height:18px;border:2px solid var(--ink3);border-radius:5px;margin-top:1px}
/* analytics opt-out button */
.legal .btn-optout{font:inherit;font-weight:600;cursor:pointer;color:var(--card);background:var(--ink-acc-deep);border:none;border-radius:8px;padding:11px 16px;margin-top:12px}
:root[data-theme="dark"] .legal .btn-optout{color:#141317;background:var(--silver-bright)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .legal .btn-optout{color:#141317;background:var(--silver-bright)}}

@media (max-width:640px){
  .legal .sec{grid-template-columns:1fr;column-gap:0;padding-top:26px;margin-top:26px}
  .legal .sec::before{grid-row:auto;padding-top:0;margin-bottom:8px}
  .legal .sec > *{grid-column:1}
  .legal .row{grid-template-columns:1fr;gap:5px;padding:12px 0}
  .legal .row .k{padding-top:0}
}

/* download page */
.dl-hero{text-align:center;max-width:700px;margin:0 auto;padding:150px 28px 28px;position:relative}
.dl-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(720px 360px at 50% -30px, var(--ink-soft), transparent 60%)}
.dl-badge{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.04em;
  color:var(--ink1);background:var(--card);border:1px solid var(--hairline);border-radius:99px;padding:6px 14px;margin-bottom:22px}
.dl-hero h1{font-size:clamp(34px,5vw,52px);font-weight:600;letter-spacing:-.025em;margin-bottom:14px}
.dl-sub{font-size:18px;color:var(--ink2);max-width:48ch;margin:0 auto 30px;line-height:1.55}
.dl-download{display:inline-flex;align-items:center;gap:11px;font-family:var(--font-body);font-weight:600;font-size:17px;
  color:#fff;background:linear-gradient(180deg,#33313A,var(--ink-acc-deep));border-radius:14px;padding:15px 28px;
  text-decoration:none;box-shadow:0 8px 22px rgba(26,25,23,.3);transition:transform .15s,box-shadow .15s}
.dl-download:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(26,25,23,.4)}
.dl-download svg{width:20px;height:20px;fill:#fff}
:root[data-theme="dark"] .dl-download{background:linear-gradient(180deg,#FFFFFF,var(--silver-bright));color:#141317}
:root[data-theme="dark"] .dl-download svg{fill:#141317}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .dl-download{background:linear-gradient(180deg,#FFFFFF,var(--silver-bright));color:#141317}
  :root:not([data-theme="light"]) .dl-download svg{fill:#141317}}
.dl-meta{font-size:13.5px;color:var(--ink3);margin-top:14px}
.dl-steps{max-width:880px;margin:0 auto;padding:clamp(40px,7vh,80px) 28px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.dl-step{background:var(--card);border:1px solid var(--hairline);border-radius:18px;padding:24px;box-shadow:0 1px 2px rgba(32,30,26,.04),0 12px 30px rgba(32,30,26,.05)}
.dl-step-n{width:34px;height:34px;border-radius:10px;background:var(--ink-soft);color:var(--ink1);font-weight:700;display:grid;place-items:center;font-family:var(--font-mono);font-size:15px;margin-bottom:14px}
.dl-step h3{font-family:var(--font-display);font-weight:600;font-size:17px;margin-bottom:6px}
.dl-step p{font-size:13.5px;color:var(--ink2);line-height:1.5}
.dl-key{max-width:880px;margin:36px auto 0;padding:0 28px}
.dl-key-card{display:flex;flex-wrap:wrap;align-items:center;gap:16px;background:var(--card);border:1px solid var(--hairline);border-radius:18px;padding:22px 24px;box-shadow:var(--shadow-tight)}
.dl-key-ico{width:44px;height:44px;border-radius:12px;background:var(--ink-soft);color:var(--ink1);display:grid;place-items:center;flex:none}
.dl-key-body{flex:1;min-width:200px}
.dl-key-h{font-weight:700;color:var(--ink1);font-size:15.5px;margin-bottom:3px}
.dl-key-p{font-size:14px;color:var(--ink2);margin-bottom:6px}
.dl-key-help{font-size:13px;color:var(--ink3)}
.dl-key-code{font-family:var(--font-mono);font-size:13px;color:var(--ink1);background:var(--ink-soft);border:1px dashed var(--hairline);border-radius:10px;padding:10px 14px}
@media (max-width:680px){.dl-steps{grid-template-columns:1fr}}
