/* ---- self-hosted faces. Nothing is fetched from a third party: the privacy
       line on the page is a claim this file has to keep true, and three
       render-blocking round trips to Google was also the worst thing on the
       page for an Indian mobile first paint.

       The choices are evidence, not taste. AstroTalk's own stylesheet ships
       `--v2-font-deva:"Tiro Devanagari Hindi","Poppins",serif` and self-hosts
       DM Serif Display; Melooha ships Mulish; Astroyogi ships Open Sans;
       Zerodha ships Inter. Poppins is Indian Type Foundry's own Latin +
       Devanagari superfamily — one family, both scripts, drawn together — and
       is the face this audience reads all day. Tiro is the Latin companion of
       the Devanagari face the category leader uses. Newsreader and IBM Plex
       Mono are gone: they are the house style of every generated landing page
       on the internet, which is exactly how this page was reading.

       Per-face byte table is published in docs/design/saarthi/d2c-revamp.md
       and the total is 215.0 KB against a 220 KB cap. ---- */

/* Poppins — Indian Type Foundry. Chrome, controls, labels, prices, and ALL
   Hindi, including Hindi prose: Devanagari does not carry the serif/sans
   distinction Latin does, and a second Devanagari face costs 62 KB to say
   something the script cannot hear. */
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;
  src:url(/fonts/poppins-latin-400.woff2)format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;
  src:url(/fonts/poppins-latin-500.woff2)format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;
  src:url(/fonts/poppins-latin-600.woff2)format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;
  src:url(/fonts/poppins-devanagari-400.woff2)format("woff2");unicode-range:U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09}
/* 500 is dropped on Devanagari: a script with no case and no italic needs two
   weights of hierarchy, not three, and each one costs 38 KB. */
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;
  src:url(/fonts/poppins-devanagari-600.woff2)format("woff2");unicode-range:U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09}

/* DM Serif Display — the headline only. AstroTalk self-hosts this same face. */
@font-face{font-family:"DM Serif Display";font-style:normal;font-weight:400;font-display:swap;
  src:url(/fonts/dmserif-latin-400.woff2)format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Tiro Devanagari Hindi, Latin cut — the reading voice: the model's prose, the
   sample reading, the report body. Its Devanagari is not shipped; see above. */
@font-face{font-family:"Tiro Devanagari Hindi";font-style:normal;font-weight:400;font-display:swap;
  src:url(/fonts/tiro-latin-400.woff2)format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Tiro Devanagari Hindi";font-style:italic;font-weight:400;font-display:swap;
  src:url(/fonts/tiro-latin-400i.woff2)format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* DM Mono — computed data only: degrees, arcseconds, dates, the nine-planet
   table. Replaces IBM Plex Mono, which is the single clearest "this was made
   by a developer tool" signal in the old system. */
@font-face{font-family:"DM Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url(/fonts/dmmono-latin-400.woff2)format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"DM Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url(/fonts/dmmono-latin-500.woff2)format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Tiro Devanagari Sanskrit — the sloka, and nothing else. Subset at download to
   the glyphs of the one verse this site ships. */
@font-face{font-family:"Tiro Devanagari Sanskrit";font-style:normal;font-weight:400;font-display:swap;
  src:url(/fonts/sloka-devanagari-400.woff2)format("woff2");unicode-range:U+0900-097F, U+200C-200D, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09}

/* Saarthi design language v1.0 — docs/design/saarthi/d2c-revamp.md.
   Paper is the default ground: this is a page that asks a stranger for their
   exact birth minute and Rs 499, and light is the register money and identity
   live in. Night is scoped to the two surfaces that earn it — the kundali
   panel and the reading room — with `.surface-night`. One accent hue, mor
   pankh 185 degrees, in two tones. Sentence case everywhere but one eyebrow. */
:root{
  color-scheme: light dark;

  --ground-0:#FBF7F0; --ground-1:#F4EEE2; --ground-2:#EBE3D3;
  --ink-1:#171C3A; --ink-2:#3E4360; --ink-3:#565A72;

  --accent:#0B6E78; --on-accent:#FBF7F0; --accent-press:#095A62;
  --accent-ink:#0A626B; --accent-wash:#E3E9E4;
  --neel:#22307B; --shyam:#020319;

  --rule:rgba(23,28,58,.14); --rule-strong:rgba(23,28,58,.28);
  --ok:#2F6B3C; --warn:#7A5410; --danger:#96382A;
  --elev-1:0 1px 2px rgba(23,28,58,.06), 0 10px 28px rgba(23,28,58,.05);

  --font-sans:Poppins,"Noto Sans Devanagari",system-ui,-apple-system,sans-serif;
  --font-deva:Poppins,"Noto Sans Devanagari",sans-serif;
  --font-display:"DM Serif Display",Poppins,"Iowan Old Style",Georgia,serif;
  --font-text:"Tiro Devanagari Hindi",Poppins,"Iowan Old Style",Georgia,serif;
  --font-sloka:"Tiro Devanagari Sanskrit","Noto Serif Devanagari",serif;
  --font-mono:"DM Mono",Poppins,"SFMono-Regular",Menlo,monospace;

  --fs-13:.8125rem; --fs-15:.9375rem; --fs-17:1.0625rem; --fs-20:1.25rem;
  --fs-24:1.5rem; --fs-30:1.875rem; --fs-38:2.375rem; --fs-48:3rem; --fs-60:3.75rem;
  --lh-body:1.6; --lh-tight:1.1;
  --track-display:-.01em; --track-eyebrow:.04em;
  --measure:66ch; --deva-scale-small:1.06;

  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:20px; --s-5:32px; --s-6:52px;
  --s-7:96px; --s-8:136px;
  --r-precision:2px; --r-consumer:12px; --r-pill:999px;
  --ease:cubic-bezier(.2,0,0,1); --dur-fast:150ms; --dur-base:220ms;
  --page-max:1120px; --gutter:clamp(20px,6vw,88px);
}
:root[data-theme="dark"], .surface-night{
  --ground-0:#020319; --ground-1:#0A0E2C; --ground-2:#141A3F;
  --ink-1:#EDE6D6; --ink-2:#A9A48F; --ink-3:#8F8A7C;
  --accent:#2FA6AE; --on-accent:#020319; --accent-press:#57C2CA;
  --accent-ink:#4FBFC9; --accent-wash:#0D1D32;
  --rule:rgba(237,230,214,.14); --rule-strong:rgba(237,230,214,.28);
  --ok:#7FA37A; --warn:#C9A36B; --danger:#C97F70;
  --elev-1:none;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground-0:#020319; --ground-1:#0A0E2C; --ground-2:#141A3F;
    --ink-1:#EDE6D6; --ink-2:#A9A48F; --ink-3:#8F8A7C;
    --accent:#2FA6AE; --on-accent:#020319; --accent-press:#57C2CA;
    --accent-ink:#4FBFC9; --accent-wash:#0D1D32;
    --rule:rgba(237,230,214,.14); --rule-strong:rgba(237,230,214,.28);
    --ok:#7FA37A; --warn:#C9A36B; --danger:#C97F70;
    --elev-1:none;
  }
}

*{box-sizing:border-box}
html{background:var(--ground-0);color:var(--ink-1);scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--ground-0);color:var(--ink-1);
  font-family:var(--font-sans);font-size:var(--fs-17);line-height:var(--lh-body);
  font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* Paper grain at 2.5%. Static, never a divider, suppressed on small screens
   where it costs more than it gives. Both composites are in the contrast
   matrix (d2c-revamp.md 3.2), because that is where real failures happen. */
@media (min-width:400px){
  body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
    opacity:.025;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
  :root[data-theme="dark"] body::before,
  .surface-night body::before{opacity:0}
}
@media (prefers-color-scheme: dark){body::before{opacity:0}}

h1,h2,h3,h4{margin:0;line-height:var(--lh-tight);text-wrap:balance;font-weight:600}
h1{font-family:var(--font-display);font-weight:400;
  font-size:clamp(var(--fs-38),5.2vw,var(--fs-60));letter-spacing:var(--track-display)}
h2{font-size:clamp(var(--fs-30),3.4vw,var(--fs-38));letter-spacing:var(--track-display)}
h3{font-size:var(--fs-20)}
p{margin:0}
/* Devanagari coverage lives in each stack above — DM Serif and Tiro carry no
   Devanagari, so both fall through to Poppins for it. Only the sloka needs a
   face of its own, and it asks for it by name. */
.deva{font-family:var(--font-deva)}
:lang(sa){font-family:var(--font-sloka)}
.sloka{font-family:var(--font-sloka)}
.small:lang(hi){font-size:calc(1em * var(--deva-scale-small))}

a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent-ink);
  text-underline-offset:.16em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--neel);outline-offset:2px;border-radius:2px}
.surface-night :focus-visible{outline-color:var(--accent-ink)}
::selection{background:var(--accent-wash);color:var(--ink-1)}

.skip{position:absolute;left:-9999px;top:0;background:var(--accent);
  color:var(--on-accent);padding:var(--s-3) var(--s-4);z-index:99;
  border-radius:0 0 var(--r-consumer) 0;text-decoration:none}
.skip:focus{left:0}

.wrap{max-width:var(--page-max);margin:0 auto;padding:0 var(--gutter);
  position:relative;z-index:1}

/* ---- controls ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  min-height:48px;padding:14px 22px;border-radius:var(--r-consumer);
  font-family:var(--font-sans);font-size:var(--fs-17);font-weight:500;
  letter-spacing:0;text-decoration:none;border:1px solid transparent;
  cursor:pointer;transition:background-color var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease)}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-press)}
.btn-secondary{background:transparent;color:var(--ink-1);border-color:var(--neel)}
.surface-night .btn-secondary{border-color:var(--accent-ink);color:var(--ink-1)}
.btn-secondary:hover{background:var(--ground-1)}
.btn-sm{min-height:44px;padding:10px 16px;font-size:var(--fs-15)}

.eyebrow{display:block;font-family:var(--font-sans);font-size:var(--fs-13);
  font-weight:500;text-transform:uppercase;letter-spacing:var(--track-eyebrow);
  color:var(--ink-2);margin-bottom:var(--s-3)}
.eyebrow:lang(hi){text-transform:none;letter-spacing:0}
.dek{color:var(--ink-2);font-size:var(--fs-20);max-width:var(--measure);
  margin-top:var(--s-3)}
.prose{max-width:var(--measure);color:var(--ink-2);margin-top:var(--s-3)}
.prose + .prose{margin-top:var(--s-4)}
.serif{font-family:var(--font-text)}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:60;background:var(--ground-0);
  border-bottom:1px solid var(--rule)}
.nav .inner{max-width:var(--page-max);margin:0 auto;
  padding:var(--s-3) var(--gutter);display:flex;justify-content:space-between;
  align-items:center;gap:var(--s-4)}
.mark{display:flex;align-items:center;gap:var(--s-2);text-decoration:none}
.feather{width:13px;height:22px;flex:none;display:block}
.marktext{line-height:1.05}
.marktext .deva{display:block;font-size:.95rem;color:var(--neel);font-weight:500}
.marktext .latin{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
.navright{display:flex;align-items:center;gap:var(--s-4)}
.navlinks{display:flex;gap:var(--s-4);align-items:center;
  font-size:var(--fs-15);font-weight:500}
.navlinks a{text-decoration:none;color:var(--ink-2)}
.navlinks a:hover{color:var(--ink-1);text-decoration:underline}
@media (max-width:860px){.navlinks{display:none}}
.langpill{display:inline-flex;border:1px solid var(--rule-strong);
  border-radius:var(--r-pill);overflow:hidden}
.langpill a{display:flex;align-items:center;justify-content:center;
  min-height:44px;min-width:56px;padding:0 var(--s-3);text-decoration:none;
  font-size:var(--fs-15);font-weight:500;color:var(--ink-2)}
.langpill a[aria-current="page"]{background:var(--accent-wash);color:var(--accent-ink)}

/* ---- hero ---- */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);
  gap:var(--s-6);align-items:start;padding:var(--s-6) 0 var(--s-7)}
@media (max-width:900px){.hero{grid-template-columns:1fr;gap:var(--s-5)}}
.hero h1{max-width:19ch}
.hero .sub{margin-top:var(--s-4);color:var(--ink-2);font-size:var(--fs-20);
  max-width:56ch}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-5)}
.chip{display:inline-flex;align-items:center;gap:var(--s-1);
  background:var(--accent-wash);color:var(--accent-ink);
  border-radius:var(--r-pill);padding:6px 14px;font-size:var(--fs-13);
  font-weight:500}
.chip .mono{font-family:var(--font-mono);font-weight:400}

/* ---- the framed edge: a precision panel inset in a consumer container.
       This is the one seam in the system, and it is always drawn here. ---- */
.panel-night{background:var(--shyam);color:#EDE6D6;border-radius:var(--r-consumer);
  padding:var(--s-4);border:1px solid var(--rule-strong)}
.panel-night .kundali{display:block;width:100%;height:auto;
  border-radius:var(--r-precision)}
.legend{font-family:var(--font-mono);font-size:var(--fs-13);color:var(--ink-3);
  margin-top:var(--s-3);letter-spacing:.02em;line-height:1.5}
.kundali .hn{font-family:var(--font-mono);font-size:7px;fill:#8F8A7C}
.kundali .rn{font-family:var(--font-mono);font-size:9px;fill:#A9A48F}
.kundali .pl{font-family:var(--font-text);font-size:11px;fill:#EDE6D6}

/* ---- bands ---- */
.band{margin-top:var(--s-7);padding:var(--s-7) 0;background:var(--ground-0);
  color:var(--ink-1)}
.section{margin-top:var(--s-7);padding-top:var(--s-5);
  border-top:1px solid var(--rule)}
.section:first-of-type{border-top:0}

.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--s-5);margin-top:var(--s-5)}
@media (max-width:860px){.grid3{grid-template-columns:1fr;gap:var(--s-4)}}
.promise{border-top:2px solid var(--accent-ink);padding-top:var(--s-3)}
.promise h3{font-size:var(--fs-24)}
.promise p{margin-top:var(--s-2);color:var(--ink-2);font-size:var(--fs-17)}

.card{background:var(--ground-1);border-radius:var(--r-consumer);
  box-shadow:var(--elev-1);padding:var(--s-4);border:1px solid transparent}
:root[data-theme="dark"] .card,
.surface-night .card{border-color:var(--rule-strong)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .card{border-color:var(--rule-strong)}}
.card h3{margin-top:var(--s-3)}
.card p{margin-top:var(--s-2);color:var(--ink-2);font-size:var(--fs-15)}
.shot{border-radius:var(--r-precision);overflow:hidden;display:block;
  width:100%;height:auto;background:var(--shyam)}
.shot.paper{background:#FBF7F0;border:1px solid var(--rule-strong)}

/* ---- conversation: still no bubbles. The seam between a computed fact and
       an interpretation is drawn as a mono chip, so I-1 is legible to the
       reader and not only to the engineer. ---- */
.convo{margin-top:var(--s-5);max-width:var(--measure)}
.who{display:block;font-size:var(--fs-13);font-weight:500;
  text-transform:uppercase;letter-spacing:var(--track-eyebrow);color:var(--ink-2)}
.who.deva{text-transform:none;letter-spacing:0;font-size:var(--fs-15)}
.ask{font-family:var(--font-text);font-style:italic;font-size:var(--fs-20);
  border-left:2px solid var(--neel);padding-left:var(--s-3);margin-top:var(--s-2)}
.answer{background:var(--ground-1);border-radius:var(--r-consumer);
  padding:var(--s-4);margin-top:var(--s-2);font-family:var(--font-text)}
.answer p + p{margin-top:var(--s-3)}
.fact{font-family:var(--font-mono);font-size:.86em;background:var(--accent-wash);
  color:var(--accent-ink);border-radius:var(--r-precision);padding:2px 6px;
  white-space:nowrap;font-variant-numeric:tabular-nums}

.verse{margin-top:var(--s-5);background:var(--shyam);color:#EDE6D6;
  border-radius:var(--r-consumer);padding:var(--s-5);max-width:var(--measure)}
.verse .sloka{display:block;font-size:var(--fs-20);line-height:1.9;color:#EDE6D6}
.verse .tr{font-family:var(--font-mono);font-size:var(--fs-13);color:#8F8A7C;
  margin-top:var(--s-3);line-height:1.6}
.verse .meaning{font-family:var(--font-text);font-style:italic;
  font-size:var(--fs-17);color:#EDE6D6;margin-top:var(--s-3)}
.verse .cite{font-family:var(--font-mono);font-size:var(--fs-13);color:#8F8A7C;
  margin-top:var(--s-3)}

/* ---- pricing: a real section with a real heading, not a 13px footnote ---- */
.prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--s-4);margin-top:var(--s-5)}
@media (max-width:860px){.prices{grid-template-columns:1fr}}
.price-card{background:var(--ground-1);border-radius:var(--r-consumer);
  box-shadow:var(--elev-1);padding:var(--s-5);display:flex;flex-direction:column;
  gap:var(--s-3);border:1px solid transparent}
:root[data-theme="dark"] .price-card,
.surface-night .price-card{border-color:var(--rule-strong)}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .price-card{border-color:var(--rule-strong)}}
.price{font-family:var(--font-sans);font-size:var(--fs-38);font-weight:600;
  letter-spacing:var(--track-display);color:var(--ink-1);
  font-variant-numeric:tabular-nums}
.price .per{font-size:var(--fs-17);font-weight:400;color:var(--ink-2)}
.status{display:inline-flex;align-items:center;align-self:flex-start;
  border-radius:var(--r-pill);padding:4px 12px;font-size:var(--fs-13);
  font-weight:500;background:var(--ground-2);color:var(--ink-2)}
.status.open{background:var(--accent-wash);color:var(--accent-ink)}
.price-card ul{margin:0;padding-left:1.1em;color:var(--ink-2);font-size:var(--fs-15)}
.price-card li + li{margin-top:var(--s-1)}
.paylines{margin-top:var(--s-4);color:var(--ink-3);font-size:var(--fs-15);
  max-width:var(--measure)}

/* ---- computed data: mono, hairline rows, precision radius ---- */
.facts{margin-top:var(--s-5);border-radius:var(--r-precision)}
.factrow{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);
  padding:var(--s-3) 0;border-bottom:1px solid var(--rule);font-size:var(--fs-15)}
.factrow .k{flex:0 0 200px;font-family:var(--font-sans);font-size:var(--fs-13);
  font-weight:500;text-transform:uppercase;letter-spacing:var(--track-eyebrow);
  color:var(--ink-2);padding-top:3px}
.factrow .v{font-family:var(--font-mono);color:var(--ink-1);
  font-variant-numeric:tabular-nums}
.factrow .v .hl{color:var(--accent-ink);font-weight:500}

.tablewrap{overflow-x:auto;margin-top:var(--s-3)}
table{width:100%;border-collapse:collapse;font-family:var(--font-mono);
  font-size:var(--fs-15);min-width:640px}
th{text-align:left;font-family:var(--font-sans);font-weight:500;
  font-size:var(--fs-13);text-transform:uppercase;
  letter-spacing:var(--track-eyebrow);color:var(--ink-2);
  padding:var(--s-2) var(--s-3) var(--s-2) 0;
  border-bottom:1px solid var(--rule-strong)}
td{padding:var(--s-2) var(--s-3) var(--s-2) 0;border-bottom:1px solid var(--rule);
  font-variant-numeric:tabular-nums;color:var(--ink-1)}
td.planet{color:var(--accent-ink);font-weight:500}
tr.cur td{background:var(--accent-wash)}
.tag{font-family:var(--font-sans);font-size:var(--fs-13);color:var(--ink-2);
  border:1px solid var(--rule-strong);border-radius:var(--r-precision);
  padding:1px 6px;margin-right:4px;white-space:nowrap}

details{margin-top:var(--s-4);border-top:1px solid var(--rule)}
summary{cursor:pointer;padding:var(--s-3) 0;min-height:48px;
  display:flex;align-items:center;font-size:var(--fs-17);font-weight:500;
  list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";margin-left:auto;font-family:var(--font-mono);
  color:var(--ink-2);font-size:var(--fs-20)}
details[open] > summary::after{content:"\2212"}
details > *:not(summary){padding-bottom:var(--s-4)}
.faq details p{color:var(--ink-2);max-width:var(--measure)}

footer{margin-top:var(--s-7);background:var(--shyam);color:#EDE6D6;
  padding:var(--s-6) 0 var(--s-5)}
footer .inner{max-width:var(--page-max);margin:0 auto;padding:0 var(--gutter)}
footer a{color:#EDE6D6;text-decoration-color:#4FBFC9}
.footgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--s-4);margin-top:var(--s-4)}
@media (max-width:860px){.footgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.footgrid h4{font-size:var(--fs-13);text-transform:uppercase;
  letter-spacing:var(--track-eyebrow);color:#8F8A7C;font-weight:500}
.footgrid ul{list-style:none;margin:var(--s-2) 0 0;padding:0;font-size:var(--fs-15)}
.footgrid li{margin-top:var(--s-2)}
.footnote{margin-top:var(--s-5);padding-top:var(--s-4);
  border-top:1px solid rgba(237,230,214,.14);color:#8F8A7C;font-size:var(--fs-13);
  max-width:var(--measure)}

/* ---- document pages: policies, contact, 404. Paper, always: these are the
       surfaces people agree to and keep. ---- */
.doc{max-width:72ch;margin:0 auto;padding:var(--s-6) var(--gutter) var(--s-7)}
.doc h1{font-size:clamp(var(--fs-30),4vw,var(--fs-48));max-width:22ch}
.doc h2{font-size:var(--fs-24);margin-top:var(--s-5)}
.doc h3{font-size:var(--fs-20);margin-top:var(--s-4)}
.doc p,.doc li{color:var(--ink-2);margin-top:var(--s-3)}
.doc strong{color:var(--ink-1)}
.doc ul,.doc ol{padding-left:1.2em;margin-top:var(--s-3)}
.doc .updated{font-family:var(--font-mono);font-size:var(--fs-13);color:var(--ink-3);
  margin-top:var(--s-2)}
.doc .owner{background:var(--ground-2);border-left:2px solid var(--warn);
  border-radius:0 var(--r-consumer) var(--r-consumer) 0;padding:var(--s-3) var(--s-4);
  margin-top:var(--s-4);color:var(--ink-2);font-size:var(--fs-15)}
.doc dl{margin-top:var(--s-4)}
.doc dt{font-weight:600;color:var(--ink-1);margin-top:var(--s-3)}
.doc dd{margin:var(--s-1) 0 0;color:var(--ink-2)}
.center{text-align:center;padding:var(--s-7) 0}

/* ---- the questions people actually arrive with. The category leads with
       Love / Career / Marriage / Health / Money; this is that grid, in a
       voice that does not promise to predict the answer. ---- */
.asks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3);
  margin-top:var(--s-5)}
@media (max-width:860px){.asks{grid-template-columns:1fr}}
.ask-card{background:var(--ground-1);border-radius:var(--r-consumer);
  padding:var(--s-4);border:1px solid var(--rule)}
.ask-card .tagline{display:block;font-size:var(--fs-13);font-weight:500;
  text-transform:uppercase;letter-spacing:var(--track-eyebrow);
  color:var(--accent-ink);margin-bottom:var(--s-2)}
.ask-card .tagline:lang(hi){text-transform:none;letter-spacing:0}
.ask-card q{font-family:var(--font-text);font-size:var(--fs-17);
  color:var(--ink-1);quotes:"\201C" "\201D";display:block;line-height:1.45}
.freeline{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-2);
  margin-top:var(--s-4);font-size:var(--fs-17);color:var(--ink-2)}
.freeline strong{color:var(--ink-1);font-weight:600}
