/* ============================================================
   PUNDIT JI ONLINE — "A daylight study of the night sky"
   v4: ivory manuscript pages in daylight; the night sky lives
   only inside framed instruments (the observatory disc, the
   footer). Ink for words, indigo for actions, brass for rules,
   sindoor for marks that mean something.
   ============================================================ */

:root{
  /* daylight paper */
  --paper:#F7F4EC;
  --paper-2:#F1EDE1;
  --panel:#FCFAF4;

  /* ink */
  --ink:#211D15;
  --ink-2:#5A5447;
  --ink-3:#6E6858;

  /* night (inside instruments only) */
  --night:#161C33;
  --night-2:#1E2545;
  --on-night:#F0EDE4;

  /* actions */
  --indigo:#2B3357;
  --indigo-deep:#202643;
  --on-indigo:#F4F1E8;

  /* details */
  --brass:#A8853B;        /* rules, borders, icons          */
  --brass-text:#7C6126;   /* brass when it must be read     */
  --sindoor:#B04328;      /* marks that mean something      */
  --sindoor-deep:#8E3520;

  /* lines */
  --line-ink:rgba(33,29,21,.14);
  --line-soft:rgba(33,29,21,.08);
  --line-brass:rgba(168,133,59,.4);

  /* type */
  --f-display:"Newsreader","Georgia",serif;
  --f-body:"Newsreader","Georgia",serif;
  --f-ui:"Hanken Grotesk","Segoe UI",system-ui,sans-serif;
  --f-dev:"Tiro Devanagari Sanskrit","Noto Serif Devanagari",serif;

  --ease:cubic-bezier(.22,1,.36,1);

  /* the night sky, as a repeating pattern for instrument panels */
  --starfield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='390' height='310'%3E%3Cg fill='%23FFFFFF'%3E%3Ccircle cx='23' cy='41' r='.9' opacity='.5'/%3E%3Ccircle cx='81' cy='97' r='.7' opacity='.3'/%3E%3Ccircle cx='149' cy='33' r='1' opacity='.45'/%3E%3Ccircle cx='212' cy='129' r='.6' opacity='.28'/%3E%3Ccircle cx='47' cy='183' r='.8' opacity='.4'/%3E%3Ccircle cx='123' cy='231' r='.9' opacity='.32'/%3E%3Ccircle cx='187' cy='274' r='.6' opacity='.3'/%3E%3Ccircle cx='99' cy='152' r='.55' opacity='.24'/%3E%3Ccircle cx='268' cy='58' r='.85' opacity='.42'/%3E%3Ccircle cx='313' cy='167' r='.7' opacity='.3'/%3E%3Ccircle cx='356' cy='84' r='.9' opacity='.38'/%3E%3Ccircle cx='294' cy='247' r='.75' opacity='.33'/%3E%3Ccircle cx='352' cy='293' r='.55' opacity='.26'/%3E%3Ccircle cx='239' cy='201' r='.5' opacity='.22'/%3E%3C/g%3E%3Cg fill='%23C9AE6F'%3E%3Ccircle cx='64' cy='19' r='.8' opacity='.38'/%3E%3Ccircle cx='226' cy='11' r='.7' opacity='.3'/%3E%3Ccircle cx='17' cy='117' r='.7' opacity='.28'/%3E%3Ccircle cx='331' cy='22' r='.6' opacity='.3'/%3E%3Ccircle cx='168' cy='191' r='.8' opacity='.32'/%3E%3Ccircle cx='377' cy='198' r='.7' opacity='.26'/%3E%3C/g%3E%3C/svg%3E");

  color-scheme:light;
}

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
html.has-motion{ scroll-behavior:auto; }
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-smooth [data-lenis-prevent]{ overscroll-behavior:contain; }
.lenis.lenis-stopped{ overflow:hidden; }

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-ui);
  font-size:1rem;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
/* paper grain, barely there */
body::after{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='7'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 0.03'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='280' height='280' filter='url(%23n)'/%3E%3C/svg%3E");
}
#stars{ display:none; }
main,footer,.panchang{ position:relative; z-index:1; }

::selection{ background:var(--indigo); color:var(--on-indigo); }
:focus-visible{ outline:2px solid var(--indigo); outline-offset:3px; border-radius:2px; }
.btn-primary:focus-visible{ outline-color:var(--ink); }
.sr-only{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
a{ color:var(--indigo); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--indigo-deep); }
img,svg{ max-width:100%; }

::-webkit-scrollbar{ width:11px; }
::-webkit-scrollbar-track{ background:var(--paper); }
::-webkit-scrollbar-thumb{ background:#CFC9BA; border-radius:6px; border:2px solid var(--paper); }
::-webkit-scrollbar-thumb:hover{ background:var(--brass); }

.wrap{ max-width:76rem; margin-inline:auto; padding-inline:clamp(1.25rem,4.5vw,3.5rem); }

h1,h2,h3,h4{
  font-family:var(--f-display); font-weight:500; line-height:1.12;
  letter-spacing:-.01em; text-wrap:balance; color:var(--ink);
  font-optical-sizing:auto;
}
.dev{ font-family:var(--f-dev); font-weight:400; letter-spacing:0; }

/* ---------- shared text patterns ---------- */
.eyebrow{
  display:flex; align-items:center; gap:.7rem;
  margin-bottom:1.4rem;
}
.eyebrow::before{
  content:""; width:7px; height:7px; background:var(--brass);
  rotate:45deg; flex:none;
}
.eyebrow .star{ display:none; }
.eyebrow .dev{ font-size:1rem; line-height:1; color:var(--brass-text); }
.eyebrow .lat{
  font-family:var(--f-ui); font-weight:600; font-size:.72rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3);
}
.h-display{ font-size:clamp(2.6rem,5.2vw,4.4rem); line-height:1.06; letter-spacing:-.015em; }
.h-section{ font-size:clamp(1.9rem,3.2vw,2.7rem); }
.stand{
  font-family:var(--f-body);
  font-size:clamp(1.1rem,1.35vw,1.22rem); line-height:1.65;
  color:var(--ink-2); max-width:56ch; font-weight:400;
  text-wrap:pretty;
}
.stand em, .lede em{ font-style:italic; color:var(--ink); }

/* ---------- page veil (transitions) ---------- */
#veil{
  position:fixed; inset:0; z-index:200; background:var(--paper);
  opacity:0; pointer-events:none; transition:opacity .32s ease;
}
#veil.on{ opacity:1; pointer-events:auto; }
html.arriving #veil{ opacity:1; }
html.arriving.arrived #veil{ opacity:0; }

/* ---------- masthead over a progressive blur ---------- */
.masthead-blur{
  position:fixed; z-index:70; inset:0 0 auto 0; height:5.5rem;
  pointer-events:none; opacity:0; transition:opacity .5s ease;
}
.masthead-blur > div, .masthead-blur::before, .masthead-blur::after{
  position:absolute; inset:0;
}
.masthead-blur::before{
  content:""; z-index:1; -webkit-backdrop-filter:blur(1px); backdrop-filter:blur(1px);
  -webkit-mask:linear-gradient(to top, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 20%, rgba(0,0,0,1) 35%, rgba(0,0,0,0) 50%);
  mask:linear-gradient(to top, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 20%, rgba(0,0,0,1) 35%, rgba(0,0,0,0) 50%);
}
.masthead-blur > div:nth-of-type(1){
  z-index:2; -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  -webkit-mask:linear-gradient(to top, rgba(0,0,0,0) 20%, rgba(0,0,0,1) 35%, rgba(0,0,0,1) 55%, rgba(0,0,0,0) 72%);
  mask:linear-gradient(to top, rgba(0,0,0,0) 20%, rgba(0,0,0,1) 35%, rgba(0,0,0,1) 55%, rgba(0,0,0,0) 72%);
}
.masthead-blur > div:nth-of-type(2){
  z-index:3; -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px);
  -webkit-mask:linear-gradient(to top, rgba(0,0,0,0) 40%, rgba(0,0,0,1) 60%, rgba(0,0,0,1) 78%, rgba(0,0,0,0) 92%);
  mask:linear-gradient(to top, rgba(0,0,0,0) 40%, rgba(0,0,0,1) 60%, rgba(0,0,0,1) 78%, rgba(0,0,0,0) 92%);
}
.masthead-blur::after{
  content:""; z-index:4; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  -webkit-mask:linear-gradient(to top, rgba(0,0,0,0) 62%, rgba(0,0,0,1) 85%, rgba(0,0,0,1) 100%);
  mask:linear-gradient(to top, rgba(0,0,0,0) 62%, rgba(0,0,0,1) 85%, rgba(0,0,0,1) 100%);
}
.masthead-blur.on{ opacity:1; }
.masthead{
  position:fixed; top:0; left:0; right:0; z-index:80;
  background:linear-gradient(to bottom, rgba(247,244,236,.92), rgba(247,244,236,0));
  transition:box-shadow .4s ease;
}
.masthead .wrap{
  display:flex; align-items:center; gap:2.2rem;
  padding-block:1rem;
  transition:padding .35s ease;
}
.masthead.scrolled{ box-shadow:0 1px 0 var(--line-ink); }
.masthead.scrolled .wrap{ padding-block:.65rem; }

.brand{ display:flex; align-items:center; gap:.7rem; color:var(--ink); }
.brand:hover{ color:var(--ink); }
.brand svg{ width:32px; height:32px; flex:none; transition:transform .8s var(--ease); }
.brand:hover svg{ transform:rotate(45deg); }
/* the lockup: name over a small-caps descriptor — a firm's plate, not a label */
.brand .name{ display:flex; flex-direction:column; gap:.3rem; white-space:nowrap; }
.brand .nm{
  font-family:var(--f-display); font-weight:600; font-style:normal;
  font-size:1.16rem; line-height:1; letter-spacing:.005em; color:inherit;
}
.brand .nm i{ font-style:italic; font-weight:500; color:var(--brass-text); padding-inline:.07em; }
.brand .sub{
  font-family:var(--f-ui); font-weight:600; font-style:normal;
  font-size:.565rem; line-height:1; letter-spacing:.27em; text-transform:uppercase;
  color:var(--ink-3);
}

.nav{ margin-left:auto; display:flex; align-items:center; gap:1.8rem; }
.nav a:not(.btn){
  font-family:var(--f-ui); font-weight:500; font-size:.9rem;
  letter-spacing:.01em; color:var(--ink-2);
  position:relative; padding-block:.35rem;
  transition:color .2s ease;
}
.nav a:not(.btn):hover{ color:var(--ink); }
.nav a:not(.btn)::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--indigo); transform:scaleX(0); transform-origin:left;
  transition:transform .35s var(--ease);
}
.nav a:not(.btn):hover::after{ transform:scaleX(1); }
.nav a[aria-current="page"]{ color:var(--ink); }
.nav a[aria-current="page"]::after{ transform:scaleX(1); }

/* mobile menu */
.menu-btn{
  display:none; margin-left:auto; z-index:130;
  background:none; border:1px solid var(--line-ink); border-radius:6px;
  padding:.55rem .6rem; cursor:pointer;
}
.menu-btn span{
  display:block; width:20px; height:1.5px; background:var(--ink);
  margin-block:4.5px; transition:transform .3s var(--ease), opacity .3s ease;
}
.menu-open .menu-btn span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.menu-open .menu-btn span:nth-child(2){ opacity:0; }
.menu-open .menu-btn span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media (max-width:960px){
  .menu-btn{ display:block; }
  .nav{
    position:fixed; inset:0; z-index:120;
    flex-direction:column; justify-content:center; align-items:flex-start;
    gap:0; padding:6rem clamp(2rem,9vw,5rem) 3rem;
    background:rgba(247,244,236,.97);
    -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
    opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease;
  }
  .menu-open .nav{ opacity:1; visibility:visible; }
  .nav a:not(.btn){
    font-family:var(--f-display); font-size:clamp(1.8rem,7vw,2.4rem);
    font-weight:500; letter-spacing:-.01em; color:var(--ink);
    padding-block:.5rem;
    opacity:0; transform:translateY(16px);
    transition:opacity .5s ease, transform .5s var(--ease), color .2s ease;
  }
  .menu-open .nav a:not(.btn){ opacity:1; transform:none; }
  .menu-open .nav a:nth-child(1){ transition-delay:.05s; }
  .menu-open .nav a:nth-child(2){ transition-delay:.1s; }
  .menu-open .nav a:nth-child(3){ transition-delay:.15s; }
  .menu-open .nav a:nth-child(4){ transition-delay:.2s; }
  .menu-open .nav a:nth-child(5){ transition-delay:.25s; }
  .nav .btn{ margin-top:2rem; opacity:0; transform:translateY(16px); transition:all .5s var(--ease) .3s; }
  .menu-open .nav .btn{ opacity:1; transform:none; }
  .nav a:not(.btn)::after{ display:none; }
  .nav a[aria-current="page"]{ color:var(--indigo); }
}

/* ---------- buttons: flat, quiet, exact ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--f-ui); font-weight:600; font-size:.9rem;
  letter-spacing:.01em; line-height:1;
  padding:.95em 1.6em; border-radius:6px;
  cursor:pointer;
  transition-property:background-color,border-color,color,transform,box-shadow;
  transition-duration:.2s; transition-timing-function:ease;
}
.btn:active{ transform:scale(.96); }
.btn-primary{
  color:var(--on-indigo);
  background:var(--indigo);
  box-shadow:0 1px 2px rgba(33,29,21,.18);
}
.btn-primary:hover{ background:var(--indigo-deep); color:var(--on-indigo); }
.btn-ghost{
  color:var(--ink); border:1px solid rgba(33,29,21,.25);
  background:transparent;
}
.btn-ghost:hover{ color:var(--ink); border-color:rgba(33,29,21,.45); background:rgba(33,29,21,.04); }
.btn .arr{ transition:transform .3s var(--ease); }
.btn:hover .arr{ transform:translateX(3px); }

/* text-link with drawn underline */
.tlink{
  display:inline-flex; align-items:baseline; gap:.45rem;
  font-family:var(--f-ui); font-weight:600; font-size:.88rem; letter-spacing:.01em;
  color:var(--indigo); position:relative; padding-bottom:.2rem;
}
.tlink::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:currentColor; transform:scaleX(.3); transform-origin:left; opacity:.5;
  transition:transform .4s var(--ease), opacity .3s ease;
}
.tlink:hover::after{ transform:scaleX(1); opacity:1; }
.tlink .arr{ display:inline-block; transition:transform .3s var(--ease); }
.tlink:hover .arr{ transform:translateX(4px); }

/* ---------- panchang strip ---------- */
.panchang{
  border-block:1px solid var(--line-soft);
  background:var(--paper-2);
}
.panchang .wrap{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  column-gap:clamp(1.3rem,3.2vw,2.8rem); row-gap:.35rem;
  padding-block:.8rem;
}
.panchang .pi{
  display:flex; align-items:center; gap:.55rem;
  font-size:.82rem; font-weight:500; color:var(--ink-3); white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.panchang .pi .dev{ color:var(--brass-text); font-size:.8rem; }
.panchang .pi b{ font-weight:600; color:var(--ink-2); }
.panchang .moonglyph{ width:15px; height:15px; flex:none; }
.panchang .divider{ width:4px; height:4px; background:var(--brass); rotate:45deg; flex:none; }
@media (max-width:720px){ .panchang .divider{ display:none; } .panchang .pi{ font-size:.76rem; } }

/* ---------- sections ---------- */
section{ scroll-margin-top:4.6rem; }
.section{ padding-block:clamp(4rem,8.5vw,7rem); }
.sec-head{ margin-bottom:clamp(2.4rem,4.5vw,3.6rem); max-width:60rem; }
.sec-head .stand{ margin-top:1rem; }

/* ---------- hero ---------- */
.hero{ padding-top:clamp(7rem,13vh,10rem); padding-bottom:clamp(3rem,5.5vw,5rem); }
.hero .wrap{
  display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  align-items:center; gap:clamp(2rem,5vw,4.5rem);
}
.hero .wrap > div:only-child{ grid-column:1 / -1; max-width:56rem; }
.hero h1 .ln{ display:block; overflow:hidden; }
.hero h1 .ln > span{ display:block; }
.hero h1 .ln i{ font-style:italic; color:var(--indigo); }
.hero .stand{ margin-top:1.5rem; }
.hero .cta{ display:flex; flex-wrap:wrap; align-items:center; gap:.9rem; margin-top:2.2rem; }
html.has-motion .hero h1 .ln > span{ transform:translateY(112%); }
html.has-motion .hero [data-hero]{ visibility:hidden; }
html.has-motion .panchang .pi,
html.has-motion .panchang .divider{ visibility:hidden; }
@keyframes appear{ to{ opacity:1; } }

/* ---------- the observatory: a night window on the page ---------- */
.observatory{ position:relative; perspective:900px; }
.yantra-tilt{ transform-style:preserve-3d; will-change:transform; }
.yantra-stack{
  position:relative; width:min(100%,33rem); margin-inline:auto; aspect-ratio:1;
  overflow:clip; border-radius:50%;
  background:
    var(--starfield),
    radial-gradient(circle at 50% 42%, var(--night-2), var(--night) 72%);
  border:1px solid var(--line-brass);
  box-shadow:
    0 0 0 6px var(--paper),
    0 0 0 7px var(--line-ink),
    0 24px 48px -24px rgba(33,29,21,.35);
}
.yantra-stack svg{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.yantra-stack .ring-stroke{ fill:none; stroke:rgba(201,174,111,.22); stroke-width:1; }
.yantra-stack .ring-stroke.strong{ stroke:rgba(201,174,111,.4); }
.yantra-stack .tick{ stroke:rgba(201,174,111,.32); stroke-width:1; }
.yantra-stack .tick.minor{ stroke:rgba(201,174,111,.15); }
.yantra-stack text{ fill:rgba(240,237,228,.72); }
.yantra-stack .nak-name{ font-family:var(--f-dev); font-size:11.5px; letter-spacing:.06em; }
.yantra-stack .nak-name.hot{ fill:#E9CE8F; }
.yantra-stack .rashi-name{ font-family:var(--f-dev); font-size:15.5px; fill:var(--on-night); letter-spacing:.1em; }
.yantra-stack .marker path{ fill:#C75B3D; }
.yantra-stack .moon-core .lit{ fill:#EDE9DC; }
.yantra-stack .moon-core .dark{ fill:#232A49; }
.yantra-stack .moon-core .rim{ fill:none; stroke:rgba(201,174,111,.45); stroke-width:1; }
.yantra-stack .moon-halo{ fill:none; stroke:rgba(237,233,220,.12); stroke-width:10; filter:blur(6px); }
.spin-slow, .spin-rev{ will-change:transform; }
html.js .spin-slow{ animation:spin 260s linear infinite; }
html.js .spin-rev{ animation:spin 200s linear infinite reverse; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.observatory .caption{
  margin-top:1.4rem; text-align:center;
  font-size:.82rem; line-height:1.6; color:var(--ink-3);
  max-width:40ch; margin-inline:auto;
}
.observatory .caption b{ font-weight:600; color:var(--ink-2); }
.observatory .glow{ display:none; }
@media (max-width:920px){
  .hero .wrap{ grid-template-columns:1fr; }
  .observatory{ order:2; margin-top:1rem; }
}

/* ---------- manuscript panels (were "sheets") ---------- */
.sheet{
  position:relative;
  background:var(--panel);
  color:var(--ink);
  border:1px solid var(--line-ink);
  border-radius:10px;
  padding:clamp(2.2rem,5vw,3.8rem);
  box-shadow:
    0 1px 1px rgba(33,29,21,.04),
    0 3px 3px rgba(33,29,21,.04),
    0 6px 6px rgba(33,29,21,.04),
    0 12px 12px rgba(33,29,21,.04);
}
.sheet::after{
  content:""; position:absolute; inset:10px; border-radius:5px; pointer-events:none;
  border:1px solid rgba(168,133,59,.22);
}
.sheet > *{ position:relative; z-index:1; }
.sheet h2,.sheet h3{ color:var(--ink); }
.sheet .eyebrow::before{ background:var(--brass); }
.sheet .eyebrow .lat{ color:var(--ink-3); }
.sheet .eyebrow .dev{ color:var(--brass-text); }
.sheet p{
  font-family:var(--f-body); font-size:1.06rem; line-height:1.7;
  color:var(--ink-2);
}
.sheet p strong{ color:var(--ink); font-weight:600; }
.sheet a:not(.btn):not(.tlink){ color:var(--indigo); text-decoration:underline; text-decoration-color:rgba(43,51,87,.35); text-underline-offset:3px; }
.sheet a:not(.btn):not(.tlink):hover{ color:var(--indigo-deep); }
.sheet .drop::first-letter{
  font-family:var(--f-display); font-weight:600;
  font-size:3.9em; line-height:.8; color:var(--sindoor);
  float:left; padding:.07em .14em 0 0;
}

/* ---------- home: parampara teaser ---------- */
.teaser .wrap{
  display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  gap:clamp(2.2rem,5vw,4.5rem); align-items:start;
}
.margin-note{ padding-top:.6rem; position:sticky; top:7rem; }
.margin-note .rule{ width:3rem; height:2px; background:var(--brass); margin-bottom:1.6rem; }
.margin-note .word{ font-family:var(--f-dev); font-size:clamp(2.4rem,3.6vw,3.1rem); color:var(--ink); line-height:1.3; }
.margin-note .translit{
  font-family:var(--f-ui); font-weight:500; font-size:.85rem; letter-spacing:.04em;
  color:var(--brass-text); margin-top:.5rem;
}
.margin-note .meaning{
  font-family:var(--f-body); margin-top:1rem; color:var(--ink-2);
  font-size:1.02rem; line-height:1.65; max-width:30ch;
}
@media (max-width:920px){
  .teaser .wrap{ grid-template-columns:1fr; }
  .margin-note{ position:static; }
}

/* ---------- vidya index (home) ---------- */
.vidya-list{ border-top:1px solid var(--line-ink); }
.vidya-row{
  display:grid;
  grid-template-columns:minmax(7.5rem,9.5rem) minmax(0,1fr) minmax(0,1.35fr) auto;
  align-items:center; gap:clamp(1.2rem,3vw,2.6rem);
  padding-block:1.7rem;
  border-bottom:1px solid var(--line-soft);
  color:inherit; position:relative;
  transition:padding-left .35s var(--ease), background-color .3s ease;
}
.vidya-row::before{
  content:""; position:absolute; left:0; top:50%; translate:0 -50%;
  width:2px; height:0; background:var(--indigo);
  transition:height .35s var(--ease);
}
.vidya-row:hover{ padding-left:1.2rem; background:rgba(43,51,87,.035); color:inherit; }
.vidya-row:hover::before{ height:56%; }
.vidya-row .term{
  font-family:var(--f-dev); font-size:clamp(1.35rem,2vw,1.7rem);
  color:var(--brass-text); line-height:1.4; transition:color .25s ease;
}
.vidya-row:hover .term{ color:var(--indigo); }
.vidya-row h3{ font-size:1.32rem; font-weight:500; letter-spacing:0; }
.vidya-row h3 span{
  display:block; font-family:var(--f-ui); font-weight:600; font-size:.68rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); margin-top:.3rem;
}
.vidya-row p{
  font-size:.92rem; line-height:1.55; color:var(--ink-2); max-width:44ch;
  text-wrap:pretty;
}
.vidya-row .arr{
  font-family:var(--f-ui); font-size:1.15rem; color:var(--ink-3);
  transition:transform .35s var(--ease), color .25s ease;
}
.vidya-row:hover .arr{ transform:translateX(6px); color:var(--indigo); }
@media (max-width:860px){
  .vidya-row{ grid-template-columns:minmax(6rem,7.5rem) minmax(0,1fr) auto; }
  .vidya-row p{ display:none; }
}
@media (max-width:520px){
  .vidya-row{ grid-template-columns:minmax(0,1fr) auto; row-gap:.3rem; }
  .vidya-row .term{ font-size:1.25rem; }
  .vidya-row .arr{ display:none; }
}

/* ---------- pull quote ---------- */
.pull{ max-width:60rem; margin-inline:auto; text-align:center; }
.pull .mark{ font-family:var(--f-display); font-size:4rem; line-height:.4; color:var(--brass); display:block; margin-bottom:1.4rem; }
.pull blockquote{
  font-family:var(--f-display); font-style:italic; font-weight:400;
  font-size:clamp(1.6rem,3vw,2.5rem); line-height:1.35; color:var(--ink);
  letter-spacing:-.005em;
}
.pull blockquote b{ color:var(--ink); font-weight:500; }
.pull figcaption{
  margin-top:1.8rem; font-family:var(--f-ui); font-size:.82rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2);
}
.pull figcaption .g{ color:var(--brass-text); }
.review-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.6rem,4vw,3.5rem);
  margin-top:clamp(2.6rem,5vw,4rem); padding-top:clamp(2.2rem,4vw,3rem);
  border-top:1px solid var(--line-soft);
}
.review blockquote{
  font-family:var(--f-body); color:var(--ink-2);
  font-size:1.02rem; line-height:1.65;
}
.review blockquote::before{ content:"— "; color:var(--brass-text); }
.review figcaption{
  margin-top:.9rem; font-family:var(--f-ui); font-size:.78rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink);
}
.review figcaption span{ color:var(--ink-3); font-weight:500; text-transform:none; letter-spacing:.01em; font-size:.82rem; }
@media (max-width:760px){ .review-grid{ grid-template-columns:1fr; } }

/* ---------- rashi ribbon (home): quiet medallions ---------- */
.ribbon{ text-align:center; }
.ribbon .glyphs{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:clamp(.5rem,1.4vw,.9rem); margin-block:2.4rem;
}
.ribbon .g{
  width:clamp(3.1rem,5.2vw,3.9rem); aspect-ratio:1;
  display:grid; place-items:center;
  font-family:var(--f-dev); font-size:clamp(1.05rem,1.8vw,1.3rem);
  color:var(--ink-2);
  border:1px solid var(--line-ink); border-radius:50%;
  background:var(--panel);
  transition-property:color,border-color,background-color,box-shadow;
  transition-duration:.25s; transition-timing-function:ease;
}
.ribbon .g:hover{
  color:var(--indigo); border-color:var(--indigo);
  background:#FFFEF9;
  box-shadow:0 2px 6px rgba(33,29,21,.08);
}

/* ---------- rashi page cards ---------- */
.rashi-grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.4rem);
}
.rcard{
  position:relative;
  border:1px solid var(--line-ink); border-radius:10px;
  background:var(--panel);
  padding:1.6rem 1.4rem 1.5rem;
  transition-property:transform,border-color,box-shadow;
  transition-duration:.3s; transition-timing-function:var(--ease);
}
.rcard:hover{
  transform:translateY(-3px);
  border-color:rgba(43,51,87,.45);
  box-shadow:
    0 1px 1px rgba(33,29,21,.05),
    0 3px 3px rgba(33,29,21,.05),
    0 6px 6px rgba(33,29,21,.05),
    0 12px 12px rgba(33,29,21,.05);
}
.rcard .rname{ font-family:var(--f-dev); font-size:1.9rem; color:var(--ink); line-height:1.35; }
.rcard .rlat{
  font-family:var(--f-ui); font-weight:600; font-size:.74rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--indigo); margin-top:.2rem;
}
.rcard .rdates{
  font-size:.82rem; font-weight:500; color:var(--ink-3); margin-top:.7rem;
  font-variant-numeric:tabular-nums;
}
.rcard .rmeta{
  display:flex; flex-wrap:wrap; gap:.3rem 1.1rem;
  margin-top:.9rem; padding-top:.8rem;
  border-top:1px solid var(--line-soft);
}
.rcard .chip{
  display:inline-flex; align-items:center; gap:.45rem;
  font-family:var(--f-ui); font-size:.78rem; font-weight:500; letter-spacing:.02em;
  color:var(--ink-2); white-space:nowrap;
}
.rcard .chip::before{
  content:""; width:5px; height:5px; background:var(--brass); rotate:45deg; flex:none;
}
.rcard .rnature{
  font-family:var(--f-body); margin-top:.85rem; color:var(--ink-2);
  font-size:.98rem; line-height:1.6; text-wrap:pretty;
}
@media (max-width:1080px){ .rashi-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px){ .rashi-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:470px){ .rashi-grid{ grid-template-columns:1fr; } }

/* graha table */
.graha-row{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:clamp(.7rem,2vw,1.4rem); margin-top:2.6rem;
}
.graha{
  text-align:center; min-width:6rem; padding:1rem .9rem;
  border:1px solid var(--line-ink); border-radius:8px; background:var(--panel);
  transition-property:border-color,box-shadow,transform;
  transition-duration:.25s; transition-timing-function:ease;
}
.graha:hover{ border-color:rgba(43,51,87,.4); transform:translateY(-2px); box-shadow:0 3px 8px rgba(33,29,21,.07); }
.graha .gd{ font-family:var(--f-dev); font-size:1.4rem; color:var(--brass-text); }
.graha .gl{
  font-family:var(--f-ui); font-size:.7rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); margin-top:.35rem;
}

/* live moon line */
.livemoon{
  display:flex; align-items:center; justify-content:center; gap:.7rem;
  margin-top:2.2rem;
  font-size:.95rem; font-weight:500; color:var(--ink-2);
}
.livemoon b{ font-weight:600; color:var(--indigo); }

/* ---------- teachers (seals) ---------- */
.guru-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.3rem,3vw,2.2rem);
}
.guru{
  display:flex; gap:1.5rem; align-items:flex-start;
  padding:1.9rem; border:1px solid var(--line-ink); border-radius:10px;
  background:var(--panel);
  transition-property:border-color,transform,box-shadow;
  transition-duration:.3s; transition-timing-function:var(--ease);
}
.guru:hover{
  border-color:rgba(43,51,87,.4); transform:translateY(-2px);
  box-shadow:
    0 1px 1px rgba(33,29,21,.05),
    0 3px 3px rgba(33,29,21,.05),
    0 6px 6px rgba(33,29,21,.05),
    0 12px 12px rgba(33,29,21,.05);
}
.seal{
  flex:none; width:4.4rem; height:4.4rem; border-radius:50%;
  display:grid; place-items:center; rotate:-6deg;
  font-family:var(--f-dev); font-size:1.45rem; color:var(--brass-text);
  border:1.5px solid var(--brass);
  position:relative;
  transition:rotate .45s var(--ease);
}
.seal::after{
  content:""; position:absolute; inset:5px; border-radius:50%;
  border:1px dashed rgba(168,133,59,.45);
}
.guru:hover .seal{ rotate:3deg; }
.guru h3{ font-size:1.4rem; font-weight:500; }
.guru .role{
  font-family:var(--f-ui); font-weight:600; font-size:.72rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--indigo); margin-top:.4rem;
}
.guru p{
  font-size:.95rem; line-height:1.6; margin-top:.75rem;
  color:var(--ink-2); max-width:44ch; text-wrap:pretty;
}
@media (max-width:820px){ .guru-grid{ grid-template-columns:1fr; } }

/* ---------- services page ---------- */
.vidya-full{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);
  gap:clamp(2rem,5vw,4.5rem);
  padding-block:clamp(2.8rem,5.5vw,4.2rem);
  border-top:1px solid var(--line-soft);
}
.vidya-full:first-of-type{ border-top:none; }
.vidya-full .side .term{ font-family:var(--f-dev); font-size:clamp(2rem,3.6vw,2.8rem); color:var(--brass-text); line-height:1.35; }
.vidya-full .side h2{ font-size:clamp(1.6rem,2.4vw,2rem); margin-top:.35rem; }
.vidya-full .side .mode{
  margin-top:1.2rem; font-family:var(--f-ui); font-weight:600; font-size:.76rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); line-height:2;
}
.vidya-full .body p{
  font-family:var(--f-body); font-size:1.08rem; line-height:1.7;
  color:var(--ink-2); max-width:58ch;
}
.vidya-full .body p + p{ margin-top:1.1rem; }
.vidya-full .body p strong{ color:var(--ink); font-weight:500; }
@media (max-width:820px){ .vidya-full{ grid-template-columns:1fr; gap:1.3rem; } }

/* steps — a real sequence */
.steps{ counter-reset:step; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.4rem,3vw,2.4rem); }
.step{ counter-increment:step; position:relative; padding-top:1.3rem; }
.step::before{
  content:counter(step, devanagari);
  font-family:var(--f-dev); font-size:2.9rem; line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(168,133,59,.6);
  position:absolute; top:0; left:0;
}
.step h3{ font-size:1.28rem; margin-top:2.4rem; }
.step p{
  font-size:.95rem; line-height:1.6; color:var(--ink-2);
  margin-top:.55rem; max-width:34ch; text-wrap:pretty;
}
@media (max-width:760px){ .steps{ grid-template-columns:1fr; } .step h3{ margin-top:2rem; } }

/* kundali figure (services) */
.kundali-fig{ text-align:center; }
.kundali{ width:min(100%,23rem); margin-inline:auto; display:block; }
.kundali .kl{ stroke:var(--ink); stroke-width:1.6; fill:none; }
.kundali .kl.outer{ stroke-width:2.4; }
.kundali .kdot{ fill:var(--brass); }
.kundali text{ font-family:var(--f-dev); fill:var(--ink-2); font-size:15px; }
.kundali .kg{ fill:var(--sindoor-deep); font-size:14px; }
.kundali-fig .cap{ margin-top:1rem; font-size:.82rem; line-height:1.55; color:var(--ink-3); }
html.has-motion .kundali .kl{ stroke-dasharray:1; stroke-dashoffset:1; }
html.has-motion .k-drawn .kl{ animation:draw 1.1s var(--ease) forwards; }
html.has-motion .k-drawn .kl.d2{ animation-delay:.3s; }
html.has-motion .k-drawn .kl.d3{ animation-delay:.55s; }
html.has-motion .kundali text, html.has-motion .kundali .kdot{ opacity:0; }
html.has-motion .k-drawn text, html.has-motion .k-drawn .kdot{ animation:appear .8s ease 1s forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }

/* ---------- checklist ---------- */
.need{ list-style:none; display:flex; flex-direction:column; gap:.75rem; margin-top:1.5rem; }
.need li{
  position:relative; padding-left:1.6rem;
  font-family:var(--f-body); font-size:1.04rem; line-height:1.6; color:var(--ink-2);
}
.need li b{ color:var(--ink); font-weight:600; }
.need li::before{
  content:""; position:absolute; left:2px; top:.58em;
  width:7px; height:7px; background:var(--sindoor); rotate:45deg;
}

/* ---------- contact ---------- */
.contact-grid{
  display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  gap:clamp(2.4rem,5vw,4.5rem); align-items:start;
}
.seat{ padding-block:1.4rem; border-top:1px solid var(--line-soft); }
.seat:first-child{ border-top:none; padding-top:0; }
.seat .label{
  font-family:var(--f-ui); font-weight:600; font-size:.76rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--indigo);
}
.seat p{ margin-top:.45rem; font-size:.98rem; line-height:1.6; color:var(--ink-2); }
.seat .tlink{ margin-top:.55rem; font-size:.82rem; }
.big-actions{ display:flex; flex-direction:column; gap:.85rem; margin-top:2rem; max-width:24rem; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }

/* faq */
.faq{ max-width:46rem; }
.faq details{ border-bottom:1px solid var(--line-soft); }
.faq summary{
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem;
  padding-block:1.3rem;
  font-family:var(--f-display); font-size:1.28rem; font-weight:500; color:var(--ink);
  transition:color .25s ease;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--indigo); }
.faq summary .ind{
  font-family:var(--f-ui); color:var(--indigo); font-size:1.25rem; line-height:1;
  transition:rotate .35s var(--ease); flex:none;
}
.faq details[open] summary .ind{ rotate:45deg; }
.faq details p{
  font-family:var(--f-body); padding-bottom:1.4rem;
  font-size:1.02rem; line-height:1.65; color:var(--ink-2); max-width:56ch;
}

/* ---------- diya ---------- */
.diya{ width:40px; height:auto; margin-inline:auto; display:block; }
.diya .bowl{ fill:none; stroke:var(--brass); stroke-width:1.6; }
.diya .flame{ fill:url(#flameGrad); transform-origin:50% 88%; }
html.js .diya .flame{ animation:flick 1.9s ease-in-out infinite alternate, flick2 1.3s ease-in-out infinite alternate; }
@keyframes flick{ from{ transform:scale(1) skewX(0deg);} to{ transform:scale(.94,1.06) skewX(-2.5deg);} }
@keyframes flick2{ from{ opacity:.92; } to{ opacity:1; } }
.diya-glow{
  width:110px; height:54px; margin:-34px auto 0; border-radius:50%;
  background:radial-gradient(ellipse, rgba(168,133,59,.18), transparent 65%);
}

/* ---------- footer: the page ends at night ---------- */
footer{
  background:
    var(--starfield),
    linear-gradient(180deg, var(--night-2), #101527);
  color:rgba(240,237,228,.75);
  padding-top:clamp(3.2rem,5.5vw,4.5rem);
  border-top:1px solid var(--line-ink);
}
.foot-grid{
  display:grid; grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));
  gap:clamp(2rem,5vw,4rem);
  padding-bottom:2.8rem;
}
.foot-brand .brand{ margin-bottom:1rem; color:var(--on-night); }
.foot-brand .brand:hover{ color:var(--on-night); }
.foot-brand .brand .nm i{ color:#C9AE6F; }
.foot-brand .brand .sub{ color:rgba(240,237,228,.55); }
.foot-brand p{
  font-family:var(--f-body); font-style:italic;
  font-size:.98rem; line-height:1.6; color:rgba(240,237,228,.55); max-width:34ch;
}
.foot-col .fh{
  font-family:var(--f-ui); font-weight:600; font-size:.74rem; letter-spacing:.14em;
  text-transform:uppercase; color:#C9AE6F; margin-bottom:1.1rem;
}
.foot-col ul{ list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.foot-col a{ color:rgba(240,237,228,.75); font-size:.92rem; }
.foot-col a:hover{ color:var(--on-night); }
.foot-col li{ color:rgba(240,237,228,.75); font-size:.92rem; line-height:1.55; }
.foot-base{
  border-top:1px solid rgba(240,237,228,.12);
  padding-block:1.3rem;
  display:flex; flex-wrap:wrap; gap:.6rem 2.5rem; justify-content:space-between;
  font-size:.78rem; font-weight:500; letter-spacing:.02em;
  color:rgba(240,237,228,.55);
  font-variant-numeric:tabular-nums;
}
@media (max-width:820px){ .foot-grid{ grid-template-columns:1fr; gap:2rem; } }

/* values — three promises (about) */
.values{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.4rem,3.5vw,3rem); }
.value{ border-top:2px solid var(--brass); padding-top:1.2rem; }
.value .vh{
  font-family:var(--f-display); font-weight:500; font-size:1.3rem;
  color:var(--ink);
}
.value p:not(.vh){
  margin-top:.5rem; font-size:.95rem; line-height:1.6;
  color:var(--ink-2); max-width:34ch; text-wrap:pretty;
}
@media (max-width:760px){ .values{ grid-template-columns:1fr; } }

/* ---------- motion-system pre-states ---------- */
html.has-motion [data-motion-text],
html.has-motion [data-reveal],
html.has-motion [data-reveal-item],
html.has-motion [data-sheet-reveal]{ visibility:hidden; }
.w-mask{ display:inline-block; overflow:hidden; vertical-align:top; }
.w{ display:inline-block; }

/* ============================================================
   SOUL LAYER — dawn light, ornaments, living details
   ============================================================ */

/* first light on the paper */
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(64rem 34rem at 84% -14%, rgba(198,161,91,.14), transparent 62%),
    radial-gradient(50rem 28rem at 4% -10%, rgba(184,72,46,.06), transparent 58%);
}

/* manuscript ornament above section heads: rule — diamond — rule */
.sec-head::before{
  content:""; display:block; width:8.5rem; height:9px; margin-bottom:1.6rem;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='144' height='9'%3E%3Cline x1='0' y1='4.5' x2='60' y2='4.5' stroke='%23A8853B' stroke-opacity='.45' stroke-width='1'/%3E%3Cpath d='M72 .8 l3.7 3.7 -3.7 3.7 -3.7 -3.7 Z' fill='%23A8853B'/%3E%3Cline x1='84' y1='4.5' x2='144' y2='4.5' stroke='%23A8853B' stroke-opacity='.45' stroke-width='1'/%3E%3C/svg%3E") left center / contain no-repeat;
}
.sec-head[style*="margin-inline"]::before{ margin-inline:auto; background-position:center; }

/* warm rim on the night window */
.yantra-stack{
  box-shadow:
    0 0 0 6px var(--paper),
    0 0 0 7px var(--line-ink),
    0 2px 24px -6px rgba(184,72,46,.18),
    0 24px 48px -24px rgba(33,29,21,.38);
}

/* embers drifting inside the observatory */
.mote{
  position:absolute; bottom:-6px; border-radius:50%; pointer-events:none;
  background:rgba(233,206,143,.85);
  opacity:0;
  animation:mote-rise var(--md,18s) linear var(--mdel,0s) infinite;
}
@keyframes mote-rise{
  0%{ transform:translate3d(0,0,0); opacity:0; }
  10%{ opacity:var(--mo,.4); }
  80%{ opacity:var(--mo,.4); }
  100%{ transform:translate3d(var(--mx,8px), var(--rise,-480px), 0); opacity:0; }
}

/* constellation figures on rashi cards (real asterisms, simplified) */
.rconst{
  position:absolute; top:1.15rem; right:1.15rem; width:62px; height:62px;
  pointer-events:none;
}
.rconst line{ stroke:rgba(43,51,87,.3); stroke-width:1; }
.rconst circle{ fill:var(--brass); }
.rconst circle.big{ fill:#8F753B; }
.rcard:hover .rconst line{ stroke:rgba(43,51,87,.5); }

/* rashi card depth: symbol · direction, and naming syllables */
.rcard .rsym{ font-size:.82rem; color:var(--ink-3); margin-top:.3rem; }
.rcard .rsounds{
  margin-top:.85rem; padding-top:.75rem; border-top:1px solid var(--line-soft);
  display:flex; align-items:baseline; gap:.6rem;
}
.rcard .rsounds .lbl{
  font-family:var(--f-ui); font-size:.64rem; font-weight:600;
  letter-spacing:.1em; color:var(--ink-3); text-transform:uppercase; flex:none;
}
.rcard .rsounds .dev{ font-size:.92rem; color:var(--brass-text); line-height:1.6; letter-spacing:.05em; }

/* fact line (about hero) */
.factline{
  display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; margin-top:1.7rem;
  font-family:var(--f-ui); font-size:.85rem; font-weight:600; color:var(--ink-2);
}
.factline span{ display:inline-flex; gap:.55rem; align-items:center; }
.factline span::before{ content:""; width:5px; height:5px; background:var(--brass); rotate:45deg; flex:none; }

/* quiet phone note under hero actions */
.cta-note{ margin-top:1.1rem; font-size:.9rem; color:var(--ink-3); }
.cta-note a{ font-weight:600; }

/* featured vidya (Swa-Sankalp) */
.vidya-full.featured{
  border:1px solid var(--line-ink); border-radius:12px; background:var(--panel);
  padding:clamp(1.8rem,4vw,3rem);
  margin-block:clamp(1.4rem,3vw,2.2rem);
  box-shadow:
    0 1px 1px rgba(33,29,21,.04),
    0 3px 3px rgba(33,29,21,.04),
    0 6px 6px rgba(33,29,21,.04),
    0 12px 12px rgba(33,29,21,.04);
}
.vidya-full.featured + .vidya-full{ border-top:none; }
.flag{
  display:inline-flex; align-items:center; gap:.45rem;
  font-family:var(--f-ui); font-weight:600; font-size:.68rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--sindoor-deep);
  margin-top:.9rem;
}
.flag::before{ content:""; width:5px; height:5px; background:var(--sindoor); rotate:45deg; }

/* the lamp stays lit (footer) */
.foot-diya{
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  padding-bottom:1.7rem;
}
.foot-diya .diya{ width:32px; }
.foot-diya .diya .bowl{ stroke:#C9AE6F; }
.foot-diya p{
  font-family:var(--f-body); font-style:italic;
  font-size:.9rem; color:rgba(240,237,228,.55);
}

/* ============================================================
   v6 — legibility, interaction, identity
   ============================================================ */

/* the dial reads clearly now */
.yantra-stack .nak-name{ font-size:12.5px; fill:rgba(240,237,228,.85); }
.yantra-stack .nak-name.hot{ fill:#F2D89B; }
.yantra-stack .rashi-name{ font-size:17px; fill:#F4F1E8; }
.yantra-stack .tick{ stroke:rgba(201,174,111,.42); }
.yantra-stack .tick.minor{ stroke:rgba(201,174,111,.2); }
.yantra-stack .ring-stroke.strong{ stroke:rgba(201,174,111,.5); }

/* twelve doors, larger in the sky */
.ribbon .h-section{ font-size:clamp(2.3rem,4.2vw,3.5rem); }
.ribbon .glyphs{ margin-block:2.8rem; gap:clamp(.6rem,1.6vw,1.1rem); }
.ribbon .g{ width:clamp(3.6rem,6.2vw,4.7rem); font-size:clamp(1.2rem,2.1vw,1.55rem); }

/* rashi cards flip to teach */
.rcard{ cursor:pointer; perspective:1200px; }
.r-inner{
  position:relative; transform-style:preserve-3d;
  transition:transform .55s cubic-bezier(.77,0,.175,1);
}
.rcard.flipped .r-inner{ transform:rotateY(180deg); }
.r-face{ backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.r-back{
  position:absolute; inset:0; transform:rotateY(180deg);
  display:flex; flex-direction:column; gap:.55rem; justify-content:center;
  overflow:auto;
}
.r-back .bk-deg{
  font-family:var(--f-ui); font-size:.72rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--indigo);
  font-variant-numeric:tabular-nums;
}
.r-back p{ font-size:.9rem; line-height:1.55; color:var(--ink-2); }
.r-back p b{ color:var(--ink); font-weight:600; }
.r-back .bk-line{ font-family:var(--f-body); font-style:italic; color:var(--ink); font-size:.98rem; margin-top:.2rem; }
/* the card itself is the control: cursor + hover carry the affordance */
.rcard::after{
  content:""; position:absolute; right:.85rem; bottom:.85rem;
  width:10px; height:10px; border-right:1.5px solid var(--line-brass);
  border-bottom:1.5px solid var(--line-brass);
  transition:border-color .2s ease;
}
.rcard:hover::after{ border-color:var(--brass); }

/* grahas answer when asked */
.graha{ cursor:pointer; }
.graha.sel{ border-color:var(--indigo); background:rgba(43,51,87,.05); }
.graha-detail{
  max-width:46rem; margin:1.8rem auto 0; text-align:left;
  background:var(--panel); border:1px solid var(--line-ink); border-radius:10px;
  padding:1.4rem 1.7rem;
}
.graha-detail .gd-title{
  font-family:var(--f-display); font-weight:500; font-size:1.2rem; color:var(--ink);
}
.graha-detail .gd-body{
  font-family:var(--f-body); margin-top:.35rem;
  font-size:1rem; line-height:1.65; color:var(--ink-2);
}

/* today's-sky chart */
.kundali .k-num{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; fill:var(--ink-3); }
.kundali .kg{ font-size:13.5px; }
.kundali-fig .cap b{ font-weight:600; color:var(--ink); }
.kundali-fig .cap [data-p="skyline"]{ font-family:var(--f-dev); color:var(--brass-text); }

/* service diagrams */
.side-fig{ margin-top:1.5rem; width:min(11.5rem,80%); }
.side-fig .ln{ stroke:var(--ink-2); stroke-width:1.1; fill:none; }
.side-fig .ln.soft{ stroke:rgba(33,29,21,.3); }
.side-fig .au{ fill:var(--brass); }
.side-fig .sd{ fill:var(--sindoor); }
.side-fig text{ font-family:var(--f-ui); font-size:7.5px; font-weight:600; letter-spacing:.06em; fill:var(--ink-3); text-transform:uppercase; }
.side-fig .devt{ font-family:var(--f-dev); font-size:9px; fill:var(--brass-text); letter-spacing:0; text-transform:none; }
.side-cap{ margin-top:.5rem; font-size:.74rem; color:var(--ink-3); max-width:22ch; }

/* five teachers, composed: two elders above, three hands below */
.guru-grid{ grid-template-columns:repeat(6,minmax(0,1fr)); }
.guru{ grid-column:span 3; }
.guru:nth-child(n+3){ grid-column:span 2; padding:1.5rem; }
.guru:nth-child(n+3) .seal{ width:3.6rem; height:3.6rem; font-size:1.2rem; }
.guru:nth-child(n+3) h3{ font-size:1.2rem; }
@media (max-width:820px){
  .guru-grid{ grid-template-columns:1fr; }
  .guru, .guru:nth-child(n+3){ grid-column:auto; }
}

/* whatsapp, where every Indian practice keeps it */
.wa-float{
  position:fixed; right:1.3rem; bottom:1.3rem; z-index:90;
  width:3.3rem; height:3.3rem; border-radius:50%;
  display:grid; place-items:center;
  background:var(--indigo); color:var(--on-indigo);
  box-shadow:0 2px 4px rgba(33,29,21,.18), 0 8px 20px rgba(33,29,21,.16);
  transition-property:background-color,transform,box-shadow;
  transition-duration:.2s; transition-timing-function:ease;
}
.wa-float:hover{ background:var(--indigo-deep); color:var(--on-indigo); transform:translateY(-2px); }
.wa-float:active{ transform:scale(.96); }
.wa-float svg{ width:1.55rem; height:1.55rem; }

/* the closing blessing */
.foot-diya .bless{
  font-family:var(--f-dev); font-size:.92rem; color:#C9AE6F; letter-spacing:.14em;
}

/* ============================================================
   v7 — instruments you can operate, forms that compose,
   pages that travel well
   ============================================================ */

/* skip link */
.skip-link{
  position:fixed; top:.6rem; left:.6rem; z-index:300;
  background:var(--ink); color:var(--paper);
  font-family:var(--f-ui); font-weight:600; font-size:.85rem;
  padding:.6em 1em; border-radius:6px;
  transform:translateY(-300%); transition:transform .2s ease;
}
.skip-link:focus{ transform:none; color:var(--paper); }

/* ---------- composer (WhatsApp intake) ---------- */
.composer{ max-width:56rem; }
.composer legend{
  font-family:var(--f-display); font-weight:500; font-size:1.2rem; color:var(--ink);
  padding-bottom:.5rem;
}
.composer fieldset{ border:0; min-width:0; }
.c-grid.two{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.4rem,3.5vw,2.6rem); }
.c-row{ display:flex; gap:1rem; }
.c-row .c-field{ flex:1; }
.c-field{ margin-top:.9rem; min-width:0; }
.c-field label{
  display:block; font-family:var(--f-ui); font-size:.68rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); margin-bottom:.35rem;
}
.c-field input, .c-field select, .c-field textarea{
  width:100%; font-family:var(--f-ui); font-size:16px; color:var(--ink);
  background:#FFFEFA; border:1px solid var(--line-ink); border-radius:6px;
  padding:.6em .75em;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.c-field input:focus, .c-field select:focus, .c-field textarea:focus{
  outline:none; border-color:var(--indigo); box-shadow:0 0 0 3px rgba(43,51,87,.12);
}
.c-chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.4rem; }
.c-chips label{
  display:inline-flex; align-items:center; gap:.45rem; cursor:pointer;
  font-family:var(--f-ui); font-size:.85rem; font-weight:500; color:var(--ink-2);
  border:1px solid var(--line-ink); border-radius:99px; padding:.45em 1em;
  background:#FFFEFA;
  transition:border-color .15s ease, background-color .15s ease, color .15s ease;
}
.c-chips input{ position:absolute; opacity:0; pointer-events:none; }
.c-chips label:has(input:checked){
  border-color:var(--indigo); background:rgba(43,51,87,.07); color:var(--ink);
}
.c-chips label:has(input:focus-visible){ outline:2px solid var(--indigo); outline-offset:2px; }
.c-preview{
  margin-top:1.4rem; border:1px dashed rgba(143,117,59,.45); border-radius:8px;
  background:rgba(168,133,59,.05); padding:1rem 1.2rem;
}
.c-preview-label{
  font-family:var(--f-ui); font-size:.66rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3);
}
.c-preview-text{
  font-family:var(--f-body); font-size:.98rem; line-height:1.6; color:var(--ink-2);
  white-space:pre-line; margin-top:.4rem;
}
.c-actions{ display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; margin-top:1.4rem; }
.c-fine{ margin-top:1rem; font-family:var(--f-body); font-style:italic; font-size:.9rem; color:var(--ink-3); }
.clockline{
  margin-top:1.1rem; font-size:.88rem; font-weight:500; color:var(--ink-2);
  font-variant-numeric:tabular-nums;
}
.clockline b{ color:var(--indigo); font-weight:600; }
@media (max-width:760px){ .c-grid.two{ grid-template-columns:1fr; } .c-row{ flex-direction:column; gap:0; } }

/* ---------- the tithi instrument ---------- */
.tithi-wrap{ height:260vh; position:relative; }
.tithi-stage{
  position:sticky; top:0; height:100vh;
  display:grid; place-items:center; padding:1rem;
}
.tithi-panel{
  width:min(92vw, 30rem);
  background:
    var(--starfield),
    radial-gradient(circle at 50% 38%, var(--night-2), var(--night) 75%);
  border:1px solid var(--line-brass); border-radius:16px;
  box-shadow:
    0 0 0 6px var(--paper), 0 0 0 7px var(--line-ink),
    0 30px 60px -30px rgba(33,29,21,.4);
  padding:clamp(1.4rem,4vw,2.4rem);
  text-align:center;
}
.tithi-panel svg{ width:min(100%, 19rem); height:auto; display:block; margin-inline:auto; }
.tithi-panel .t-tick{ stroke:rgba(201,174,111,.35); stroke-width:1.5; }
.tithi-panel .t-tick.on{ stroke:#E9CE8F; stroke-width:2; }
.tithi-panel .t-tick.today{ stroke:#C75B3D; stroke-width:2.2; }
.tithi-panel .t-ring{ fill:none; stroke:rgba(201,174,111,.28); }
.tithi-read{ margin-top:1.1rem; }
.t-paksha{
  font-family:var(--f-ui); font-size:.7rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:#C9AE6F;
}
.t-name{
  font-family:var(--f-display); font-weight:500; font-size:1.5rem; color:var(--on-night);
  margin-top:.3rem; font-variant-numeric:tabular-nums;
}
.t-today{ font-size:.82rem; font-weight:500; color:rgba(240,237,228,.6); margin-top:.4rem; }
.t-today b{ color:#E9CE8F; font-weight:600; }
.tithi-hint{
  margin-top:1rem; text-align:center;
  font-family:var(--f-ui); font-size:.72rem; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3);
}
html.motion-off .tithi-wrap, html.no-pin .tithi-wrap{ height:auto; }
html.motion-off .tithi-stage, html.no-pin .tithi-stage{ position:static; height:auto; padding-block:1rem; }
@media (prefers-reduced-motion: reduce){
  .tithi-wrap{ height:auto; }
  .tithi-stage{ position:static; height:auto; padding-block:1rem; }
  .tithi-hint{ display:none; }
}

/* ---------- lineage constellation (about) ---------- */
.lineage-band{
  background:
    var(--starfield),
    linear-gradient(175deg, var(--night-2), #101527);
  border:1px solid var(--line-brass); border-radius:14px;
  box-shadow:0 0 0 6px var(--paper), 0 0 0 7px var(--line-ink);
  padding:clamp(1.4rem,4vw,2.6rem);
  overflow:hidden;
}
.lineage-band svg{ width:100%; height:auto; display:block; }
.lineage-band .lg-curve{ stroke:rgba(201,174,111,.6); stroke-width:1.2; fill:none; }
.lineage-band .lg-minor-line{ stroke:rgba(201,174,111,.26); stroke-width:.8; }
.lineage-band .lg-leader{ stroke:rgba(201,174,111,.4); stroke-width:1; }
.lineage-band .lg-star{ fill:#E9CE8F; }
.lineage-band .lg-star.main{ fill:#F2E2B0; }
.lineage-band .lg-star.minor{ fill:rgba(233,206,143,.55); }
.lineage-band .lg-halo{ fill:none; stroke:rgba(233,206,143,.22); }
.lineage-band .lg-year{
  font-family:var(--f-ui); font-size:13px; font-weight:600; letter-spacing:.08em;
  fill:#C9AE6F; text-transform:uppercase;
}
.lineage-band .lg-name{ font-family:var(--f-display); font-size:15px; fill:rgba(240,237,228,.9); }

/* ---------- the months ahead (computed calendar) ---------- */
.kaal-list{ max-width:44rem; margin-inline:auto; border-top:1px solid var(--line-ink); text-align:left; }
.kaal-row{
  display:grid; grid-template-columns:9.5rem minmax(0,1fr) auto auto;
  gap:1rem; align-items:baseline;
  padding-block:.85rem; border-bottom:1px solid var(--line-soft);
}
.kaal-row .kics{
  font-family:var(--f-ui); font-size:.72rem; font-weight:600;
  color:var(--indigo); white-space:nowrap;
}
.kaal-row .kics:hover{ color:var(--indigo-deep); }

/* milan feature band (home) */
.milan-band{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  gap:clamp(1.4rem,4vw,2.6rem); align-items:center;
}
@media (max-width:700px){
  .milan-band{ grid-template-columns:1fr; text-align:center; justify-items:center; }
}

/* naming helper */
.naam-box{ max-width:30rem; margin:2rem auto 0; text-align:left; }
.naam-out{
  margin-top:1.3rem; text-align:center;
  border:1px solid var(--line-ink); border-radius:10px; background:var(--panel);
  padding:1.4rem 1.2rem;
}
.naam-syll{
  font-family:var(--f-dev); font-size:clamp(1.7rem,3.4vw,2.2rem);
  color:var(--ink); letter-spacing:.14em; line-height:1.5;
}
.naam-meta{ margin-top:.5rem; font-size:.88rem; color:var(--ink-2); }
.naam-note{ margin-top:1rem; font-family:var(--f-body); font-style:italic; font-size:.88rem; color:var(--ink-3); }
.kaal-row .kd{
  font-family:var(--f-ui); font-weight:600; font-size:.88rem; color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.kaal-row .ke{ font-family:var(--f-body); font-size:1rem; color:var(--ink-2); }
.kaal-row .kv{ font-family:var(--f-dev); font-size:.95rem; color:var(--brass-text); white-space:nowrap; }
.kaal-note{ margin-top:1rem; font-family:var(--f-body); font-style:italic; font-size:.88rem; color:var(--ink-3); max-width:52ch; margin-inline:auto; }
@media (max-width:560px){ .kaal-row{ grid-template-columns:7.2rem minmax(0,1fr); } .kaal-row .kv{ display:none; } }

/* ---------- steps progress hairline ---------- */
.steps-line{
  height:2px; background:var(--line-soft); margin-bottom:1.6rem; position:relative; overflow:hidden;
}
.steps-line i{
  position:absolute; inset:0; background:var(--brass);
  transform:scaleX(0); transform-origin:left; display:block;
}

/* ---------- print ---------- */
@media print{
  #stars, #veil, .masthead-blur, .wa-float, .menu-btn, .skip-link,
  .observatory, .tithi-wrap, .lineage-band, .foot-diya, .cursor{ display:none !important; }
  body::before, body::after{ display:none !important; }
  .masthead{ position:static; background:none; box-shadow:none; }
  body{ background:#fff; color:#000; }
  .sheet{ box-shadow:none; border:1px solid #999; }
  footer{ background:none; color:#000; border-top:1px solid #999; padding-top:1rem; }
  .foot-col a, .foot-col li, .foot-brand p, .foot-base{ color:#333 !important; }
  .foot-col .fh{ color:#000; }
  a{ color:#000; }
  .btn{ border:1px solid #000; background:none !important; color:#000 !important; box-shadow:none; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001s !important; animation-iteration-count:1 !important; transition-duration:.001s !important; }
  html.js .spin-slow, html.js .spin-rev{ animation:none; }
  .yantra-tilt{ transform:none !important; }
  .mote{ display:none; }
}

.rcard{ scroll-margin-top:6rem; }


/* ============================================================
   v10 — the second sitting: night menu, composed footer,
   the pinned lineage sky, and full pages for the family.
   ============================================================ */

/* ---------- the menu becomes a night sky ---------- */
@media (max-width:960px){
  .nav{
    background:var(--night);
    background-image:var(--starfield);
    -webkit-backdrop-filter:none; backdrop-filter:none;
  }
  .nav::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background:radial-gradient(90% 60% at 50% 110%, rgba(198,161,91,.13), transparent 62%);
  }
  .nav a:not(.btn){ color:#EDE9DC; }
  .nav a:not(.btn):hover{ color:#fff; }
  .nav a[aria-current="page"]{ color:#C9AE6F; }
  .nav .btn-primary{ background:#EDE9DC; color:var(--night); }
  .nav .btn-primary:hover{ background:#fff; color:var(--night); }
  .menu-open .menu-btn{ border-color:rgba(240,237,228,.35); background:rgba(22,28,51,.4); }
  .menu-open .menu-btn span{ background:#EDE9DC; }
  .nav-foot{
    display:flex; align-items:center; gap:1rem; margin-top:2.6rem;
    opacity:0; transform:translateY(16px);
    transition:opacity .5s ease .38s, transform .5s var(--ease) .38s;
  }
  .menu-open .nav-foot{ opacity:1; transform:none; }
  .nav .nav-foot a:not(.btn){
    font-family:var(--f-ui); font-weight:600; font-size:.92rem; letter-spacing:.02em;
    color:#C9AE6F; opacity:1; transform:none; padding-block:0; white-space:nowrap;
  }
  .nav .nav-foot a:not(.btn):hover{ color:#E0C287; }
  .nav-foot .nf-dot{ width:4px; height:4px; rotate:45deg; background:var(--brass); opacity:.6; }
}
@media (min-width:961px){ .nav-foot{ display:none; } }

/* ---------- footer, recomposed ---------- */
.foot-call{
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  padding-bottom:2.6rem; margin-bottom:3rem;
  border-bottom:1px solid rgba(240,237,228,.14);
}
.fc-line{
  font-family:var(--f-display); font-weight:500;
  font-size:clamp(1.5rem,3.4vw,2.05rem); line-height:1.25; letter-spacing:-.01em;
  color:var(--on-night); text-wrap:balance;
}
.fc-line i{ font-style:italic; color:#C9AE6F; }
.foot-call .btn-primary{ background:#EDE9DC; color:var(--night); flex:none; }
.foot-call .btn-primary:hover{ background:#fff; color:var(--night); }
.foot-grid{ grid-template-columns:1.45fr 1fr .95fr .8fr; gap:2.6rem; }
.foot-panch{
  margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid rgba(240,237,228,.12);
  font-family:var(--f-ui); font-size:.84rem; color:rgba(240,237,228,.6) !important;
}
.foot-panch [data-p]{ color:#C9AE6F; }
@media (max-width:960px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .foot-grid{ grid-template-columns:1fr; gap:2rem; } }

/* ---------- the lineage sky locks while it draws ---------- */
html.has-motion .lineage-wrap{ height:250vh; }
html.has-motion .lineage-stage{
  position:sticky; top:0; min-height:100svh;
  display:grid; align-items:center; padding:5.5rem 0 2rem;
}
.lineage-band svg.vert{ display:block; max-width:min(420px,92vw); margin-inline:auto; }
@media (prefers-reduced-motion: reduce){
  html.has-motion .lineage-wrap{ height:auto; }
  html.has-motion .lineage-stage{ position:static; min-height:0; padding:0; }
}

/* ---------- the family cards are doors ---------- */
.guru.has-view{ cursor:pointer; position:relative; }
.guru.has-view::after{
  content:"\2197"; position:absolute; top:1.1rem; right:1.2rem;
  font-family:var(--f-ui); font-size:.95rem; color:var(--brass-text); opacity:.45;
  transition:opacity .25s ease, transform .35s var(--ease);
}
.guru.has-view:hover::after{ opacity:1; transform:translate(2px,-2px); }
.guru.has-view:focus-visible{ outline:2px solid var(--indigo); outline-offset:3px; }

/* ---------- the person, full page ---------- */
html.gv-open, html.gv-open body{ overflow:hidden; }
.guru-view{ position:fixed; inset:0; z-index:220; background:var(--paper); }
.guru-view[hidden]{ display:none; }
.gv-scroll{ height:100%; overflow-y:auto; overscroll-behavior:contain; }
.gv-head{
  position:relative; overflow:hidden; color:var(--on-night);
  background:linear-gradient(180deg, var(--night-2), var(--night));
  padding:2.4rem 0 2.8rem;
}
.gv-head::before{
  content:""; position:absolute; inset:0; background-image:var(--starfield); opacity:.85;
}
.gv-head::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(80% 70% at 85% 20%, rgba(198,161,91,.14), transparent 60%);
}
.gv-head .wrap{ position:relative; z-index:1; }
.gv-ghost{
  position:absolute; right:-.05em; bottom:-.32em; z-index:0; pointer-events:none;
  font-family:var(--f-dev); font-size:clamp(8rem,22vw,13rem); line-height:1;
  color:rgba(198,161,91,.13);
}
.gv-close{
  appearance:none; background:none; cursor:pointer;
  border:1px solid rgba(240,237,228,.28); border-radius:99px;
  color:rgba(240,237,228,.85); font-family:var(--f-ui); font-weight:600;
  font-size:.8rem; letter-spacing:.05em; padding:.5rem 1.05rem;
  margin-bottom:2.4rem;
  transition:color .2s ease, border-color .2s ease, transform .2s var(--ease);
}
.gv-close:hover{ color:#E0C287; border-color:rgba(198,161,91,.6); }
.gv-close:active{ transform:scale(.96); }
.gv-kicker{
  font-family:var(--f-ui); font-weight:600; font-size:.7rem;
  letter-spacing:.24em; text-transform:uppercase; color:#C9AE6F; margin-bottom:.9rem;
}
.gv-name{
  font-family:var(--f-display); font-weight:600; letter-spacing:-.015em;
  font-size:clamp(2.1rem,6vw,3.3rem); line-height:1.05; color:var(--on-night);
  text-wrap:balance;
}
.gv-role{ margin-top:.65rem; font-family:var(--f-ui); font-weight:500; font-size:.95rem; color:rgba(240,237,228,.66); }
.gv-body{ padding:3rem 0 5rem; }
.gv-cols{ display:grid; grid-template-columns:1.55fr 1fr; gap:3.2rem; align-items:start; }
.gv-main p{ max-width:58ch; font-size:1.05rem; line-height:1.78; color:var(--ink-2); }
.gv-main p + p{ margin-top:1.15em; }
.gv-quote{ margin-top:2.4rem; border-left:2px solid var(--brass); padding:.35rem 0 .35rem 1.4rem; }
.gv-quote p{
  font-family:var(--f-display); font-style:italic; font-size:1.14rem;
  line-height:1.62; color:var(--ink); max-width:52ch;
}
.gv-quote cite{
  display:block; margin-top:.9rem; font-style:normal;
  font-family:var(--f-ui); font-weight:600; font-size:.72rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3);
}
.gv-photo{
  margin:0 0 1.7rem; padding:.6rem; background:var(--panel);
  border:1px solid var(--line-ink); border-radius:14px; rotate:-1.2deg;
  box-shadow:0 1px 1px rgba(33,29,21,.05), 0 4px 9px rgba(33,29,21,.06), 0 16px 32px rgba(33,29,21,.09);
}
.gv-photo img{ display:block; width:100%; border-radius:9px; }
.gv-sealcard{
  display:grid; place-items:center; height:220px; margin-bottom:1.7rem;
  background-image:var(--starfield), linear-gradient(160deg, var(--night-2), var(--night));
  border-radius:14px; border:1px solid rgba(198,161,91,.25);
}
.gv-sealcard span{ font-family:var(--f-dev); font-size:4.6rem; color:#C9AE6F; }
.gv-facts{
  display:flex; flex-direction:column; gap:.95rem;
  border-top:1px solid var(--line-ink); padding-top:1.5rem; margin-bottom:2rem;
}
.gv-facts div{ display:grid; gap:.2rem; }
.gv-facts dt{
  font-family:var(--f-ui); font-weight:600; font-size:.68rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3);
}
.gv-facts dd{ font-size:.95rem; line-height:1.5; color:var(--ink); }
@media (max-width:820px){
  .gv-cols{ grid-template-columns:1fr; gap:2.4rem; }
  .gv-head{ padding-top:1.6rem; }
}

/* ---------- the desk today — the two of them ---------- */
.duo-fig{
  margin:0 auto 3rem; max-width:430px; padding:.65rem;
  background:var(--panel); border:1px solid var(--line-ink); border-radius:14px;
  rotate:-1deg;
  box-shadow:0 1px 1px rgba(33,29,21,.05), 0 4px 9px rgba(33,29,21,.06), 0 16px 32px rgba(33,29,21,.09);
}
.duo-fig img{ display:block; width:100%; border-radius:9px; }
.duo-fig figcaption{
  padding:.8rem .5rem .45rem; text-align:center;
  font-family:var(--f-ui); font-size:.82rem; color:var(--ink-3);
}
.duo-fig figcaption .dev{ color:var(--brass-text); }

/* the refined diya — inner core breathes against the outer flame */
.diya .core{ transform-origin:50% 88%; }
html.js .diya .core{ animation:flick2 1.3s ease-in-out infinite alternate; }
