/* H1 home + language. Scoped under .h1-root so existing screens stay put. */
.h1-root{
  /* Same values as :root in index.html -- see the note there. The
     two scopes used to disagree, which is the whole of C18. */
  --g:#22492E;--g2:#22492E;--night:#22492E;--gold:#CAAB5E;--gold2:#8A5A1E;
  --paper:#F6EFE0;--ink:#1A1A1A;--mu:#55524C;--line:#E2D9C4;--amber:#FBE8C8;--sage:#DCEBDD;--gold-ink:#8A5A1E;--radius:14px;
  /* One scale, same names as :root in index.html. C18 proved that
     two scopes with different values is how an app ends up looking
     like two apps; the type scale gets the same treatment from the
     start rather than after the complaint. */
  --t-display:32px;--t-h1:25px;--t-h2:19px;--t-body:16px;
  --t-small:13px;--t-micro:12px;--lh-body:1.5;--lh-tight:1.2;
  position:relative;max-width:430px;min-height:100%;margin:0 auto;
  background:var(--paper);color:var(--ink);
  /* The `font:` SHORTHAND here overrides the body stack for
     everything inside .h1-root, which is most of the app. That is
     why a Hindi Home rendered in whatever system-ui resolves to
     rather than the Noto Sans Devanagari we ship -- the body rule
     naming it never got a chance. Named explicitly. */
  font:15px/1.5 "IBM Plex Sans","Noto Sans Devanagari","Noto Sans Tamil","Noto Sans Kannada","Noto Sans Telugu","Noto Sans Bengali","Noto Sans Malayalam",system-ui,sans-serif;
  overflow-x:hidden;width:100%;
}
.h1-root button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
.h1-root button:focus-visible,.h1-root .h1-tile:focus-visible{
  outline:3px solid var(--gold);outline-offset:2px
}
.h1-welcome{
  position:relative;min-height:100vh;min-height:100dvh;
  background:radial-gradient(120% 70% at 50% 0%,#22492E 0,#22492E 45%,var(--night) 100%);
  color:#F5EBD3;padding:48px 20px 28px;overflow:hidden
}
.h1-sky{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.h1-wtop{position:relative;text-align:center}
.h1-emb{
  display:block;width:112px;height:112px;margin:8px auto 0;
  object-fit:contain;border:0;outline:none;background:none;
  filter:drop-shadow(0 0 24px rgba(230,190,90,.35));
  box-shadow:none
}
.h1-wtop h1{font:600 40px/1.05 var(--mv-sans);margin:18px 0 6px;letter-spacing:.01em}
.h1-wtop p{margin:0 auto;max-width:30ch;color:#E3D6B6;font-size:16px}
.brand-welcome-title .brand-tm{
  font-size:.35em;vertical-align:super;font-weight:600;
  opacity:.45;letter-spacing:0;margin-left:.05em;line-height:0
}
.h1-wtop,.h1-wtop h1,.brand-welcome-tag{display:block;width:100%;text-align:center;margin-left:0;margin-right:0}
.brand-welcome-tag{
  text-align:center;margin:8px auto 0;max-width:none;
  font:400 18px/1.3 var(--brand-wordmark-font,-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI"),system-ui,sans-serif;
  letter-spacing:.02em;color:#FDFAF2
}
.h1-wlang{position:relative;margin-top:30px}
.h1-wlang h2{font:600 12px system-ui;letter-spacing:.16em;text-transform:uppercase;color:#D9C59A;text-align:center;margin:0 0 12px}
.h1-lg{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.h1-lt{
  aspect-ratio:1;border-radius:18px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;
  transition:transform .2s,background .2s,border-color .2s;min-width:0
}
.h1-lt.wide{grid-column:1/-1;aspect-ratio:auto;flex-direction:row;gap:12px;padding:14px;justify-content:flex-start}
.h1-lt.wide b{font-size:28px}.h1-lt.wide small{font-size:14px;color:#F2E6C8}
.h1-lt.wide em{margin-left:auto;font-style:normal;font-size:12px;color:#D9C59A}
.h1-lt b{font-size:22px;line-height:1.1;font-weight:400;color:#F7E7BE}
.h1-lt small{font-size:10.5px;color:#D9CDB0;text-align:center}
.h1-lt:hover{background:rgba(255,255,255,.12)}
.h1-lt.sel{background:rgba(242,213,138,.18);border-color:#F2D58A;transform:scale(1.04)}
/* C52: .h1-ROOT .h1-go, NOT .h1-go. This rule has been losing to
   `.h1-root button{background:none;color:inherit}` fifty lines above it
   -- one class plus a type beats one class -- so the app's FIRST BUTTON,
   the Continue that every reader taps to get in, has been painting as
   bare text on the green with no gold pill at all. Not a dark-mode
   defect: it renders that way in both schemes and always has. The
   entry-flow test now measures the button's background instead of
   trusting this rule, which is how it was found. */
.h1-root .h1-go{
  display:block;width:100%;margin-top:20px;padding:15px;border-radius:var(--radius);
  background:#22492E;color:#FDFAF2;font-weight:700;font-size:16px;
  box-shadow:none
}
/* C52: REACHABLE WITHOUT SCROLLING. This screen now opens EVERY session,
   and Continue sat below thirteen language chips and six country chips --
   measured at 412x915, its top was at 1057px, 142px past the bottom of
   the screen. "A returning reader taps Continue once" is only true if
   they can see it.
   FIXED, NOT STICKY, and the reason is worth keeping: .h1-welcome has
   overflow:hidden (it clips the starfield), and an ancestor that clips
   is exactly what makes position:sticky do nothing. I shipped sticky
   first and the test still measured 1057px -- the fix looked right and
   changed nothing, which is why the number is asserted rather than the
   rule. The container gains bottom padding so the last chips are not
   left underneath it. */
.h1-welcome:not(.h1-welcome--review) .h1-go{
  position:fixed;left:16px;right:16px;bottom:12px;width:auto;margin-top:0;
  z-index:5
}
.h1-welcome:not(.h1-welcome--review){padding-bottom:96px}
.h1-welcome--review{
  display:flex;flex-direction:column;align-items:stretch;
  padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))
}
.h1-welcome--review .h1-wtop{flex:none}
.h1-welcome--review .h1-welcome-actions{
  flex:none;width:100%;max-width:360px;margin:28px auto 0;
  display:flex;flex-direction:column;gap:18px
}
.h1-welcome--review .h1-wcc{margin:0}
.h1-welcome--review .h1-go{
  position:static;width:100%;margin-top:0;
  margin-bottom:0
}
.h1-cc.h1-cc-review{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;flex-wrap:unset
}
.h1-cc.h1-cc-review .h1-ct{
  flex:none;width:100%;min-width:0;justify-content:center;text-align:center;
  display:flex;align-items:center
}
.h1-wfoot{position:relative;text-align:center;font-size:12px;color:#BFB293;margin-top:14px}
.h1-bar{display:flex;align-items:center;gap:10px;padding:14px 16px 6px}
.h1-mark{
  width:34px;height:34px;border-radius:50%;flex:none;
  background:radial-gradient(circle at 50% 40%, #F2D58A 0 14%, #22492E 55%, #22492E 100%);
  box-shadow:0 0 0 1px rgba(201,161,74,.4)
}
.h1-bar b{font:600 18px var(--mv-sans);color:var(--g)}
.h1-chip{margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;min-height:44px}
.h1-subject{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 16px 0;font-size:14px;color:var(--mu)}
.h1-subject-k{margin-right:4px;font-weight:400;color:var(--ink)}
.h1-subject-chip,.h1-subject-add{padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:12px}
.h1-subject-chip.on,.h1-subject-add{background:var(--g);color:#fff;border-color:var(--g)}
.h1-subject-form{width:100%;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}
.h1-subject-form label{display:block;margin:6px 0;font-size:12px;color:var(--mu)}
.h1-subject-form input{width:100%;margin-top:4px;padding:8px;border:1px solid var(--line);border-radius:8px;font:inherit}
.h1-subject-form-actions{display:flex;gap:8px;margin-top:8px;justify-content:flex-end}
.h1-hello{padding:4px 16px 0;font:400 14px system-ui;color:var(--mu)}
.h1-today{
  position:relative;margin:10px 16px 0;border-radius:24px;overflow:hidden;
  min-height:250px;color:#fff;display:flex;align-items:flex-end;text-align:left;
  width:calc(100% - 32px);max-width:100%
}
.h1-today img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* FOUNDER, 24 Sep: the Today card's words sit on a photograph, so
   they need a real overlay and white text, contrast >= 4.5:1.

   The old gradient thinned to 15% at 30% height -- which is exactly
   where the headline sits -- so the largest, most important line on
   the card was the one sitting on a bare picture. It is now dark
   where the text is, and the text block carries its own scrim as
   well, so the contrast does not depend on which photograph the
   engine happened to choose. Measured, not eyeballed: see
   tests/app/smoke_app.py::today_card_contrast, which hides the text,
   samples the LIGHTEST pixel actually behind each line, and checks
   the ratio against that worst case. */
.h1-today::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,74,44,.38) 0%,rgba(15,74,44,.52) 38%,rgba(15,74,44,.92) 100%)}
.h1-today .in{position:relative;z-index:1;padding:18px;width:100%;background:linear-gradient(180deg,rgba(15,74,44,.58) 0%,rgba(15,74,44,.78) 30%,rgba(15,74,44,.94) 100%)}
.h1-today .d{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#E6C46B}
/* The day's quote. One size was wrong for every length: a 207-char
   clause at 25px filled the whole card. Clamped by length, and
   capped at five lines with a fade rather than a hard cut. */
.h1-today h2{font:600 22px/1.2 var(--mv-sans);margin:6px 0 8px;color:#fff;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.h1-today h2[data-len="mid"]{font-size:18px;line-height:1.28}
.h1-today h2.h1-open{-webkit-line-clamp:unset;display:block}
/* The way past the clamp. 13px is the smallest this pass allows
   and it sits on the dark card, so it is checked against that
   ground, not against paper. */
.h1-tmore{display:inline-block;margin:0 0 6px;padding:4px 10px;
  border:1px solid rgba(255,255,255,.45);border-radius:999px;
  background:transparent;color:#fff;font-size:14px}
.h1-today h2[data-len="long"]{font-size:16px;line-height:1.38}
html[data-lang="hi"] .h1-today h2,html[data-lang="ta"] .h1-today h2,html[data-lang="kn"] .h1-today h2,html[data-lang="te"] .h1-today h2,html[data-lang="bn"] .h1-today h2{line-height:1.5}
.h1-today .cite{font-size:12px;color:#F0E8D4}
.h1-pills{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.h1-pills span{font-size:12px;border-radius:999px;padding:4px 10px;background:rgba(220,235,221,.95);color:var(--g);font-weight:600}
.h1-pills span.a{background:rgba(251,232,200,.95);color:#7A4E0C}
.h1-ask{
  margin:16px 16px 0;display:flex;align-items:center;gap:10px;background:#fff;
  border:1.5px solid var(--g);border-radius:18px;padding:14px 14px 14px 16px;
  box-shadow:0 8px 24px rgba(15,74,44,.08);width:calc(100% - 32px);max-width:100%;text-align:left
}
.h1-ask-row{display:flex;align-items:center;gap:10px;width:100%;min-width:0}
.h1-ask .ph{flex:1;color:var(--mu);font-size:16px;min-height:22px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.h1-ask .ph::after{content:none}   /* no typing caret: the bar is an empty ask box with a short placeholder (founder review 6 Oct) */
@keyframes h1-blink{50%{opacity:0}}
.h1-ask i{width:36px;height:36px;border-radius:var(--radius);background:var(--g);display:grid;place-items:center;flex:none}
/* The ask field stays on the first screen, above the bottom nav.
   --l365-nav-h is the nav's own box: padding 4+4, button padding 6+4,
   icon 22, gap 3, label 18. */
body:has(.install-chip){--l365-install-h:120px}
form.h1-home-ask{
  position:fixed;z-index:45;left:50%;transform:translateX(-50%);
  width:min(398px, calc(100vw - 32px));
  bottom:calc(var(--l365-nav-h) + var(--l365-install-h, 0px) + 8px);
  margin:0;box-sizing:border-box;
  flex-direction:column;align-items:stretch;flex-wrap:wrap
}
form.h1-home-ask .h1-ask-row{flex:0 0 auto}
form.h1-home-ask input{
  flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;
  min-height:44px;padding:0;color:#22492E
}
form.h1-home-ask .h1-ask-row button,
form.h1-home-ask > button{
  width:36px;height:36px;min-width:36px;padding:0;border:0;border-radius:12px;
  background:#22492E;display:grid;place-items:center;flex:none
}
/* Suggestions sit under the field, full width, at every width. A row
   between the field and Send squeezed them to a thin strip at 860/1280. */
form.h1-home-ask .ta-list{
  flex:1 0 100%;width:100%;max-width:100%;box-sizing:border-box;
  margin:8px 0 0;position:static
}
form.h1-home-ask .ta-item{min-height:44px;white-space:normal}
/* Tablet and desktop: the ask card stays in the page, above the tiles,
   so a fixed bar cannot cover "What we can answer". */
@media (min-width:720px){
  form.h1-home-ask{
    position:relative;left:auto;right:auto;bottom:auto;transform:none;
    width:calc(100% - 32px);margin:12px 16px 0;z-index:2
  }
}
html[data-screen="h1home"] .h1-root{padding-bottom:88px}
.h1-root .h1-share-row,.h1-root .h1-name-note{margin:8px 16px 0}
.h1-name-note{margin:8px 16px 0;padding:0 2px;font-size:12px;line-height:1.35;color:var(--mu);max-width:calc(100% - 32px)}
form.h1-home-ask .h1-name-note{margin:8px 0 0;max-width:100%}
.h1-h4{font:600 18px/1.25 var(--mv-sans);color:#22492E;margin:24px 16px 10px;display:flex;align-items:baseline;gap:8px}
.h1-h4 small{margin-left:auto;font:400 12px system-ui;color:var(--mu)}
.h1-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px}
.h1-tile{
  position:relative;border-radius:20px;overflow:hidden;aspect-ratio:1/1.08;
  color:#fff;text-align:left;display:flex;align-items:flex-end;transition:transform .18s
}
.h1-tile:active{transform:scale(.97)}
.h1-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.h1-tile:hover img{transform:scale(1.06)}
.h1-tile[data-h1key="marriage_timing"] img{object-position:62% 40%}
/* Same class of bug as the Wisdom quote, found by the same sweep: the
   tile set no colour of its own, so the label inherited the page's dark
   ink and sat on a photograph. On a dark picture it vanished; on a
   light one the pale sub-label did. Which half failed depended on
   whichever image the engine chose, which is not a thing to leave to
   chance. The tile now states white, and the text block carries its own
   scrim so the backdrop is dark whatever the photo is. */
.h1-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(6,35,26,.62) 58%,rgba(6,35,26,.92))}
.h1-tile .t{position:relative;z-index:1;padding:12px;width:100%;background:linear-gradient(180deg,rgba(6,35,26,0),rgba(6,35,26,.55) 45%,rgba(6,35,26,.82))}
.h1-tile b{display:block;font:600 16px/1.15 var(--mv-sans);color:#fff}
.h1-tile small{font-size:12px;color:#EFE6CF}
.h1-tile.wide{grid-column:1/-1;aspect-ratio:2.1/1}
.h1-tools{display:flex;gap:10px;overflow-x:auto;padding:0 16px 4px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.h1-tool{flex:0 0 132px;scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;text-align:left}
.h1-tool svg{width:100%;height:auto;display:block;border-radius:var(--radius);background:#FBF8F1}
.h1-tool b{display:block;font-size:14px;margin-top:8px}
.h1-tool small{color:var(--mu);font-size:12px}
.h1-wis{margin:0 16px;background:linear-gradient(135deg,#22492E,#22492E);color:#F5EBD3;border-radius:22px;padding:18px;position:relative;overflow:hidden}
.h1-wis::before{content:"";position:absolute;right:-30px;top:-30px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(242,213,138,.25),transparent 70%)}
.h1-wis .k{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#F2D58A}
/* FOUNDER, 25 Sep: this quote was dark grey on dark green, 1.15:1,
   unreadable. It had no colour of its own, and app/index.html's global
   `p{color:var(--body)}` (#55524C) beats a colour inherited from the
   card -- so every <p> dropped on a dark surface renders dark grey no
   matter what the card sets on itself. Stating the colour here is the
   fix; tests/app/contrast_cards.py is the guard, because the ordinary
   sweep skips anything over a gradient and that is where this hid. */
.h1-wis p{font:400 18px/1.35 var(--mv-sans);margin:8px 0;color:#FBF7EE}
/* The source line stays gold, as ordered. */
.h1-wis small{color:#F2D58A}
.h1-safe{margin:16px;display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;font-size:14px;color:var(--mu);text-align:left;width:calc(100% - 32px);max-width:100%}
.h1-safe b{color:var(--g)}
.h1-safe-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.h1-safe-links a{color:var(--g);font-weight:600;display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:0 8px}
.h1-nav{
  position:sticky;bottom:0;display:flex;flex-direction:row;
  background:rgba(251,248,241,.96);border-top:1px solid var(--line);
  padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));margin-top:22px;z-index:5
}
.h1-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;color:var(--mu);padding:4px;min-height:44px;min-width:44px}
.h1-nav button.on{color:var(--g);font-weight:700}
.h1-nav svg{width:22px;height:22px}
.h1-scrim{position:fixed;inset:0;background:rgba(6,35,26,.55);opacity:0;pointer-events:none;transition:opacity .25s;z-index:10}
.h1-scrim.on{opacity:1;pointer-events:auto}
.h1-sheet{
  position:fixed;left:0;right:0;bottom:0;max-height:88%;overflow-y:auto;
  background:var(--paper);border-radius:26px 26px 0 0;
  transform:translateY(105%);transition:transform .32s cubic-bezier(.2,.8,.2,1);
  z-index:11;padding-bottom:20px;width:100%;max-width:100%
}
.h1-sheet.on{transform:none;display:flex;flex-direction:column;height:88%;overflow:hidden;padding-bottom:calc(var(--l365-nav-h) + var(--l365-install-h, 0px) + 96px)}
.h1-sheet.on .h1-sec{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.h1-sheet.on .h1-qc{flex:none;max-height:22vh;overflow-y:auto;margin-top:8px;padding-top:8px;border-top:1px solid var(--line,#E2D9C4)}
.h1-sheet.on .h1-thread{flex:1;min-height:45vh;max-height:none;overflow-y:auto}

/* A2: THE CONVERSATION IS THE PRODUCT, SO GIVE IT THE ROOM.

   Measured on the review build at 1366x648 -- the size the audit was
   taken at -- the sheet is 570px and the conversation got 167 of them:

       header picture   150
       chips             96
       ask box           48
       labels, padding  ~109
       -----------------------
       conversation     167

   An answer card is taller than that on its own, so the reader saw a
   line or two of it through a slot. Two changes, neither of which
   removes anything:

   1. The header picture is proportional to the viewport instead of a
      flat 150px. On a laptop at 648 it becomes ~104; on a 390x844 phone
      it stays 135. A photograph above a conversation is worth having,
      and it is not worth a quarter of a short screen.

   2. Once a conversation exists, the chips shrink to about two rows and
      scroll. They are how a conversation STARTS -- they should not go
      on owning a fifth of the sheet after it has started. Before the
      first answer they keep their full height, because then they really
      are the main event. */
.h1-sheet.on .hd{height:92px;max-height:96px}
/* Two FULL rows, not a number that happens to be smaller. A chip is
   44px plus an 8px gap, so 96 shows two rows cleanly and 84 cut the
   second one in half -- which reads as broken rather than as "scroll
   for more", however correctly it scrolled. */
.h1-sheet.on.has-thread .h1-qc{max-height:112px;flex-shrink:0}
.h1-sheet.on.has-thread .h1-brief{max-height:18vh;overflow-y:auto}
.h1-sheet.on.has-thread .h1-lbl{margin:8px 0 6px}
.h1-sample-local{margin:4px 2px 8px;font-size:16px;line-height:1.4;color:var(--ink)}
.h1-sheet .grab{width:44px;height:5px;border-radius:5px;background:#D8CFBB;margin:10px auto}
.h1-sheet .hd{position:relative;height:92px;max-height:96px;margin:0 12px;border-radius:14px;overflow:hidden}
.h1-sheet .hd img{width:100%;height:100%;object-fit:cover;object-position:center 15%}
.h1-sheet .hd::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 20%,rgba(15,74,44,.72))}
.h1-sheet .hd h3{position:absolute;left:14px;bottom:8px;margin:0;color:#fff;font:600 16px/1.3 var(--mv-sans);z-index:1}
.h1-sheet .x{position:absolute;right:12px;top:10px;z-index:2;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.92);font-size:16px}
.h1-sec{padding:0 16px}
.h1-lbl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mu);margin:16px 0 8px}
.h1-qc{display:flex;flex-wrap:wrap;gap:8px}
.h1-qc button{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:9px 12px;font-size:14px;text-align:left;min-height:44px}
.h1-qc button.on{border-color:var(--g);background:#EEF5EE}
/* C59 (CLAUDE__TYPE-TO-ASK): the one rotating example, styled like a
   placeholder hint -- grey text, no border, no fill -- so it reads as
   "a question could look like this", not as one more button in a row of
   choices. bindHome() still wires a tap to ask it. */
.h1-help{background:none;border:1px solid var(--line,#d9d3c5);border-radius:999px;color:var(--faint,#6f6a5e);padding:6px 14px;font-size:14px;min-height:36px}
.h1-qex{background:none;border:0;color:var(--faint,#8a8578);padding:2px 0;font-size:14px;font-style:italic;text-align:left;min-height:32px}
.h1-thread{margin:12px 0;display:flex;flex-direction:column;gap:8px;max-height:38vh;overflow-y:auto}
.h1-turn{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;width:100%;box-sizing:border-box}
.h1-turn.chat-turn{background:transparent;border:0;padding:2px 0;display:flex;flex-direction:column;align-items:stretch;gap:6px}
.chat-row{display:flex;width:100%}
.chat-row--me{justify-content:flex-end}
.chat-row--mav{justify-content:flex-start;align-items:flex-end;gap:6px}
.chat-bubble{max-width:80%;font-size:16px;line-height:1.5;padding:10px 12px;border-radius:16px;overflow-wrap:anywhere;white-space:pre-wrap}
.chat-bubble--me{background:#22492E;color:#FDFAF2;border-bottom-right-radius:4px}
.chat-bubble--mav{background:#fff;color:#1A1A1A;border:1px solid #E2D9C4;border-bottom-left-radius:4px}
.chat-chips{display:flex;flex-wrap:wrap;gap:8px;max-width:80%}
.chat-chip{border:0;background:#F4EBD4;color:#22492E;border-radius:999px;padding:8px 12px;min-height:36px;font:inherit;font-size:16px;line-height:1.3;text-align:left}
.chat-hear-slot{flex:none}
.chat-turn .voice-row{margin:0;min-height:0}
.chat-turn .voice-hear{width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border-radius:50%;border:0;background:#F3E6C4;color:#22492E}
.chat-turn .voice-hear span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.chat-typing{display:flex;gap:4px;align-items:center;width:64px;height:36px;padding:0 12px;box-sizing:border-box;background:#fff;border:1px solid #E2D9C4;border-radius:16px}
.chat-typing i{width:7px;height:7px;border-radius:50%;background:#8A8478;display:block;animation:chatDot 1.2s infinite}
.chat-typing i:nth-child(2){animation-delay:.15s}
.chat-typing i:nth-child(3){animation-delay:.3s}
@keyframes chatDot{50%{opacity:.35;transform:translateY(-2px)}}
@media (prefers-reduced-motion:reduce){.chat-typing i{animation:none}}
@media (min-width:840px){
  .h1-sheet.on{width:480px;left:calc(50% - 240px);right:auto}
}
.h1-turn p{margin:0 0 6px;overflow-wrap:anywhere}
.h1-turn small{display:block;color:#5C4310;font-size:14px;overflow-wrap:anywhere}
.h1-thread-ask{display:flex;gap:8px;align-items:center}
.h1-thread-ask input{flex:1;min-width:0;min-height:48px;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;font:inherit;font-size:16px;background:#fff}
.h1-thread-ask button{min-height:48px;min-width:72px;border:0;border-radius:var(--radius);background:var(--g);color:#fff;font-weight:700}
.h1-viz{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:8px}
.h1-viz svg{width:100%;height:auto;display:block}
.h1-gv{margin-top:10px;background:#fff;border-left:4px solid var(--g);border-radius:var(--radius);padding:10px 12px;font-size:14px}
.h1-gv small{display:block;color:var(--gold2);margin-top:4px;font-size:12px}
.h1-wl{margin-top:8px;padding:9px 11px;background:#EEF5EE;border-left:3px solid var(--g);border-radius:var(--radius);font-size:14px}
.h1-wl small{display:block;color:var(--gold2);font-size:12px}
.h1-cta{display:block;width:calc(100% - 32px);max-width:100%;margin:16px 16px 0;padding:14px;border-radius:var(--radius);background:var(--g);color:#fff;font-weight:700}
@media(prefers-reduced-motion:reduce){
  .h1-root *{animation:none!important;transition:none!important}
}
html[data-screen="h1lang"] .foot,html[data-screen="h1home"] .foot,
html[data-screen="h1lang"] .lang-chip:not(.h1-chip),html[data-screen="h1home"] .rv-row{display:none}
html[data-screen="h1lang"] .wrap,html[data-screen="h1home"] .wrap{
  padding:0;max-width:430px;overflow-x:hidden
}
html[data-screen="h1lang"] body{background:#22492E}
html[data-screen="h1home"] body{background:#FBF8F1}
.h1-root p{margin:0}


/* ---- welcome: country, under language ------------------------------ */
/* Country is a choice the reader makes, never something guessed from an
   IP. It only became one when it got a control. */
.h1-wcc{margin:18px 0 0}
.h1-wcc h2{font:600 12px/1.2 IBM Plex Sans,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,213,138,.75);margin:0 0 10px}
.h1-cc{display:flex;flex-wrap:wrap;gap:8px}
.h1-ct{
  flex:0 0 auto;min-height:44px;padding:0 14px;border-radius:999px;
  border:1px solid rgba(242,213,138,.28);background:rgba(255,255,255,.06);
  color:#F7EFD8;font:400 14px IBM Plex Sans,system-ui,sans-serif
}
/* C52: NO font-weight CHANGE HERE. Selecting a country used to bolden its
   chip, which made the chip wider -- India went 107px -> 111px and pushed
   every chip after it 4px along, under a finger already on its way down.
   That is the same bug as the full repaint this screen used to do, one
   order of magnitude smaller, and it is why the rule is that selection
   changes a class and never the layout. The fill and the dark ink carry
   the state; text-shadow gives the weight back without touching metrics. */
.h1-ct.sel{background:#F2D58A;border-color:#F2D58A;color:#22492E;text-shadow:0 0 .4px currentColor}
.h1-ct:focus-visible{outline:2px solid #F2D58A;outline-offset:2px}

/* ---- the mark on sign-up ------------------------------------------- */
/* Drawn, not fetched: app/ ships the mark as an 79-154 KB PNG and the
   complaint this morning was that the app is slow. Same emblem as the
   welcome screen, smaller, and it costs nothing over the wire. */
.gate-logo{display:flex;align-items:center;gap:10px;margin:0 0 18px}
.gate-logo b{font:600 18px var(--mv-sans);color:var(--g,#22492E)}
.gate-emb{
  width:38px;height:38px;border-radius:50%;flex:none;
  background:
    radial-gradient(circle at 50% 78%, #22492E 0 18%, transparent 19%),
    radial-gradient(circle at 50% 42%, #C9A14A 0 8%, transparent 9%),
    radial-gradient(circle at 50% 55%, #22492E 0 28%, transparent 29%),
    radial-gradient(120% 80% at 50% 30%, #22492E, #22492E);
  box-shadow:0 0 0 1px rgba(201,161,74,.4)
}


/* ---- the official marks -------------------------------------------- */
/* One look on every screen, in every edition and every language: none of
   this reads the locale or the edition, which is the only way to keep
   that promise. width/height are on the <img>, so nothing below a mark
   moves when it lands. */
.brand-home{
  display:inline-flex;align-items:center;justify-content:center;
  padding:0;border:0;background:none;flex:none;
  min-width:44px;min-height:44px          /* a real tap target at 40px */
}
.brand-home:focus-visible{outline:2px solid var(--g,#22492E);outline-offset:3px;border-radius:50%}
.brand-emblem{width:40px;height:40px;display:block}
.h1-brand{margin-left:-2px}
.brand-lockup{margin:0 0 18px}
.brand-wordmark{width:220px;height:auto;max-width:100%;display:block}
.brand-text{display:block;font:var(--brand-wordmark-weight,600) 34px/1.05 var(--brand-wordmark-font,-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI"),system-ui,sans-serif;letter-spacing:var(--brand-wordmark-spacing,1px);color:var(--brand-navy,#22492E)}
.brand-text--inline{font-size:18px;line-height:1.1;display:inline-block;vertical-align:middle}
.brand-text sup{font-size:.45em;vertical-align:super;font-weight:600}
.brand-tagline{display:block;margin-top:4px;font:400 14px/1.3 system-ui,sans-serif;color:var(--mu,#55524C)}
.brand-welcome-title{font:var(--brand-wordmark-weight,600) 40px/1.05 var(--brand-wordmark-font,-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI"),sans-serif;letter-spacing:var(--brand-wordmark-spacing,1px);margin:18px auto 0;text-align:center;display:block;max-width:220px}
.brand-by{display:block;margin-top:2px;font:400 12px/1.2 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.08em;color:var(--faint,#7A6A54);text-transform:none}
/* The sign-up mark is the official emblem now, not the drawn circle. */
.gate-emb-img{width:38px;height:38px;flex:none;display:block}


/* THE ONE BOTTOM NAV, and it is deliberately NOT scoped to .h1-root.

   A1: the old shell drew its own nav -- "Today | Year | Ask | Account" --
   in the old palette, dark on dark and unreadable, on every screen it
   owns. Two navs in two designs in one app.

   Every other rule in this file is scoped to .h1-root so the new design
   cannot disturb the old screens. This one must reach BOTH, because it
   is the thing they now share: the same bar, the same colours, the same
   three destinations (Guide, Solutions, Me), whichever screen you are
   standing on. home.css is loaded by index.html on every page, so a
   top-level rule here applies everywhere without touching app.css, which
   is another lane's file. */
:root{
  --l365-nav-h:calc(4px + 6px + 22px + 3px + 18px + 4px + 4px + env(safe-area-inset-bottom, 0px));
}
.l365-nav{
  /* BELOW THE AREA SHEET ON PURPOSE (the sheet is z-index 11, its scrim
     10). The first version sat at 60 and covered the sheet's own Ask
     button: the smoke could not submit a question, and neither could a
     reader. A bottom sheet covers the tab bar -- that is the convention
     everywhere, and it is also the only arrangement where the focused
     surface owns the bottom of the screen. */
  position:fixed;left:0;right:0;bottom:0;z-index:9;
  height:var(--l365-nav-h);box-sizing:border-box;
  display:flex;flex-direction:row;align-items:stretch;
  gap:0;padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));
  background:var(--brand-navy,#22492E);
  border-top:1px solid color-mix(in srgb,var(--brand-gold,#E6C46B) 35%,transparent);
  box-sizing:border-box;width:100%;max-width:100%;
}
.l365-nav button{
  appearance:none;border:0;background:transparent;
  font:600 12px/1.15 "IBM Plex Sans",system-ui,sans-serif;
  color:var(--brand-ivory,#FDFAF2);
  padding:6px 2px 4px;border-radius:var(--radius);cursor:pointer;
  min-height:44px;min-width:0;width:100%;max-width:100%;
  box-sizing:border-box;
}
/* Tab icons (brand icon family): Guide = today, Solutions = your reading, Me = your compass */
.l365-nav button{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  gap:3px;flex:1 1 0;
}
.l365-nav button::before{
  content:"";display:block;flex:none;width:22px;height:22px;
  background:center/contain no-repeat;opacity:.88;
}
.l365-nav button[aria-current="page"]::before{opacity:1}
.l365-nav button[data-nav="home"]::before{background-image:url(./media/icons/icon_today.svg)}
.l365-nav button[data-nav="services"]::before{background-image:url(./media/icons/icon_your_reading.svg)}
.l365-nav button[data-nav="me"]::before{background-image:url(./media/icons/icon_your_compass.svg)}
.l365-nav .l365-nav-label{
  display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;text-align:center;line-height:1.15;
  font:inherit;font-weight:inherit;
}
.l365-nav button[aria-current="page"]{
  color:var(--brand-gold,#E6C46B);
  background:color-mix(in srgb,var(--brand-gold,#E6C46B) 14%,var(--brand-navy,#22492E));
  font-weight:700;
}
.l365-nav button[aria-current="page"] .l365-nav-label{font-weight:700}
html[dir="rtl"] .l365-nav{direction:rtl}
body{padding-bottom:var(--l365-nav-h)}

/* Day 8, the trial is over. Calm, not a wall: the Today card below it still works, and so
   do help and crisis. This is an offer, not a gate. */
.h1-root .h1-trial-over{
  margin:10px 2px 0;padding:12px 14px;border-radius:var(--radius);
  background:#FBE8C8;border:1px solid #E6C98A;
}
.h1-root .h1-trial-over-line{
  margin:0 0 8px;font-size:14px;line-height:1.4;color:#55524C;
}
.h1-root .h1-trial-over-go{
  min-height:44px;padding:0 16px;border:0;border-radius:var(--radius);
  background:#22492E;color:#fff;font-weight:700;font-size:14px;
}


/* The needs-a-birth-date card. An offer inside the conversation, in the
   same shape as a turn, because that is what it is -- a reply to what
   was asked, not an error. */
.h1-root .h1-needs-birth{border-left:3px solid var(--gold)}
.h1-root .h1-nb-q{color:var(--mu);font-size:14px;margin:0 0 6px}
.h1-root .h1-nb-add{
  min-height:44px;padding:0 16px;margin-top:8px;border:0;border-radius:var(--radius);
  background:var(--g);color:#fff;font-weight:700;font-size:14px;
}
.h1-root .h1-nb-prashna{
  display:block;margin-top:8px;padding:0;border:0;background:none;
  color:var(--g);font-size:14px;text-decoration:underline;min-height:44px;
}

/* ABOUT YOU on the Me screen (C3). Deliberately unscoped, like the nav:
   the Me screen is not inside .h1-root yet -- that is the rest of A1 --
   and this has to look right there today. */
.ay-block{margin:14px 0 18px}
.ay-h{font:600 14px/1.3 "IBM Plex Sans",system-ui,sans-serif;
  letter-spacing:.08em;text-transform:uppercase;color:#55524C;margin:0 0 8px}
.ay-list{border:1px solid #E6DDC8;border-radius:var(--radius);overflow:hidden;background:#fff}
.ay-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;
  align-items:center;padding:10px 12px;border-bottom:1px solid #EDE5D3}
.ay-row:last-child{border-bottom:0}
.ay-k{grid-column:1;font-size:12px;color:#55524C}
.ay-v{grid-column:1;font-size:16px;color:#1A1A1A;overflow-wrap:anywhere}
.ay-v.ay-none{color:#55524C;font-style:italic}
.ay-go{grid-column:2;grid-row:1/3;min-height:44px;min-width:72px;
  border:1px solid #22492E;border-radius:var(--radius);background:#fff;color:#22492E;
  font-weight:700;font-size:14px;cursor:pointer}
.ay-why{margin:8px 2px 0;font-size:12px;line-height:1.45;color:#55524C}
.ay-star{margin:12px 0 4px}
.ay-cards{margin:16px 0 4px}
.ay-card{border:1px solid #E6DDC8;border-radius:var(--radius);background:#fff;padding:12px 14px;margin:0 0 10px}
.ay-card-h{margin:0 0 6px;font:600 16px/1.3 "IBM Plex Sans",system-ui,sans-serif;color:#22492E}
.ay-card-p{margin:0 0 6px;font-size:16px;line-height:1.5;color:#1A1A1A}
.ay-card-p:last-child{margin-bottom:0}
.ay-star-card{margin:0;max-width:280px}
.ay-star-img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid #E6DDC8}
.rv-star-art{margin:0 0 10px;max-width:320px}
.rv-star-art[hidden]{display:none!important}
.rv-star-img{display:block;width:100%;height:auto;border-radius:14px;border:1px solid #E6DDC8}

/* The share card preview (C4). The canvas IS the picture that gets
   sent, scaled to the column -- so what the reader checks under the
   privacy line is the file, not an approximation of it. */
.share-page{padding:12px}
.share-canvas{display:block;width:100%;height:auto;aspect-ratio:1/1;
  border-radius:var(--radius);border:1px solid #E6DDC8;background:#FBF8F1}
.share-privacy{margin:10px 2px;font-size:14px;line-height:1.45;color:#55524C}
.share-page .primary,.share-page .ghost{width:100%;min-height:48px;margin-top:8px}

/* MY CHART (C6). The diamond is an SVG so it is sharp at any size and
   readable by a screen reader; the twelve rows below it carry the same
   information in words, which is the version that actually works on a
   390px phone. */
.kv-page{padding:12px 14px 80px}
.kv-lagna{margin:4px 0 10px;font-size:16px;color:#1A1A1A}
.kv-chart{display:block;width:100%;max-width:340px;margin:0 auto 14px;
  aspect-ratio:1/1;background:#FBF8F1;border-radius:var(--radius)}
.kv-frame{fill:none;stroke:#22492E;stroke-width:1.4}
.kv-line{fill:none;stroke:#22492E;stroke-width:.8;opacity:.75}
.kv-num{font:3.6px "IBM Plex Sans",system-ui,sans-serif;fill:#55524C;
  text-anchor:middle}
.kv-gr{font:600 4.4px "IBM Plex Sans",system-ui,sans-serif;fill:#1A1A1A;
  text-anchor:middle}
.kv-h2{margin:18px 0 8px;font:600 12px/1.3 "IBM Plex Sans",system-ui,sans-serif;
  letter-spacing:.09em;text-transform:uppercase;color:#55524C}
.kv-rows{list-style:none;margin:0;padding:0;border:1px solid #E6DDC8;
  border-radius:var(--radius);overflow:hidden;background:#fff}
.kv-row{padding:10px 12px;border-bottom:1px solid #EDE5D3}
.kv-row:last-child{border-bottom:0}
.kv-row-top{display:flex;gap:10px;align-items:baseline;font-size:14px}
.kv-row-top b{min-width:20px;color:#22492E}
.kv-sign{color:#1A1A1A}
.kv-gr-list{margin-left:auto;color:#55524C;font-size:14px}
.kv-line{margin:6px 0 0;font-size:14px;line-height:1.45;color:#1A1A1A}
.kv-src{margin:4px 0 0;font:400 14px/1.4 "IBM Plex Sans",system-ui,sans-serif;
  color:#55524C}
.kv-period{margin-top:18px;padding:12px 14px;border:1px solid #E6DDC8;
  border-radius:var(--radius);background:#fff}
.kv-maha{margin:0;font-size:16px;color:#1A1A1A}
.kv-antar{margin:4px 0 0;font-size:14px;color:#55524C}
.kv-west,.kv-withheld{margin:12px 2px 0;font-size:14px;color:#55524C}
.kv-noverdict{margin:12px 2px 0;font-size:14px;line-height:1.5;color:#55524C}
.kv-signonly{list-style:none;margin:10px 0;padding:0;display:grid;
  grid-template-columns:repeat(2,1fr);gap:6px;font-size:14px;color:#1A1A1A}
.kv-skel{width:100%;max-width:340px;margin:0 auto;aspect-ratio:1/1;
  border-radius:var(--radius);background:linear-gradient(100deg,#F3EDE0 30%,#FBF8F1 50%,#F3EDE0 70%);
  background-size:200% 100%;animation:kv-shine 1.4s linear infinite}
@keyframes kv-shine{to{background-position:-200% 0}}

/* TWO CHARTS (C7). The score is large because it is what the reader
   came for; everything under it is why, which is what they stay for. */
.mf-page{padding:12px 14px 80px}
.mf-h2{margin:16px 0 8px;font:600 12px/1.3 "IBM Plex Sans",system-ui,sans-serif;
  letter-spacing:.09em;text-transform:uppercase;color:#55524C}
.mf-me,.mf-them{margin-top:10px}
.mf-page label{display:block;margin:8px 0;font-size:14px;color:#55524C}
.mf-page input[type=text],.mf-page input[type=date],.mf-page input[type=time]{
  display:block;width:100%;min-height:48px;margin-top:4px;padding:10px 12px;
  border:1px solid #E6DDC8;border-radius:var(--radius);font:inherit;font-size:16px;
  background:#fff;color:#1A1A1A}
.mf-check{display:flex;gap:8px;align-items:center;min-height:44px}
.mf-privacy{margin:12px 2px;font-size:14px;line-height:1.45;color:#55524C}
.mf-page .primary,.mf-page .ghost{width:100%;min-height:48px;margin-top:10px}
.mf-score{margin:6px 0 0;font:600 64px/1 var(--mv-sans);color:#22492E}
/* Asking for the second birth, inside the thread. A form, not a wall:
   the reader keeps their question on screen above it. */
.h1-partner{display:block;padding:12px 14px;border:1px solid #E6DDC8;
  border-radius:var(--radius);background:#fff}
.h1-p-title{margin:0;font-size:16px;font-weight:600;color:#1A1A1A}
.h1-p-body{margin:4px 0 10px;font-size:14px;line-height:1.45;color:#55524C}
.h1-partner label{display:block;margin:0 0 8px;font-size:14px;color:#55524C}
.h1-partner input[type=date],.h1-partner input[type=time]{display:block;
  width:100%;margin-top:4px;padding:10px;font-size:16px;
  border:1px solid #D9CEB4;border-radius:var(--radius);background:#FBF8F1;
  color:#1A1A1A}
.h1-p-consent{display:flex;align-items:flex-start;gap:8px;margin:2px 0 10px}
.h1-p-consent input{margin-top:2px;width:auto}
.h1-p-full{display:inline-block;margin-left:12px;font-size:14px;
  color:#55524C}

/* Today's panchang. A table of times, so the numbers lead and the
   prose is quiet under them. */
.pv-top{display:flex;align-items:baseline;justify-content:space-between;
  gap:10px;flex-wrap:wrap}
.pv-city{border:1px solid #D9CEB4;border-radius:999px;padding:5px 12px;
  background:#FBF8F1;color:#55524C;font-size:14px}
.pv-sun{margin:8px 0 0;font-size:14px;color:#55524C}
.pv-table{width:100%;margin:10px 0 0;border-collapse:collapse;
  border:1px solid #E6DDC8;border-radius:var(--radius);overflow:hidden;
  background:#fff}
.pv-table th{width:34%;text-align:left;padding:9px 10px;font-size:14px;
  color:#55524C;font-weight:600;vertical-align:top}
.pv-table td{padding:9px 10px;font-size:14px;color:#1A1A1A;
  border-bottom:1px solid #EDE5D3}
.pv-table tr:last-child td,.pv-table tr:last-child th{border-bottom:0}
.pv-until,.pv-next{font-size:14px;color:#55524C}
.pv-pak{font-size:12px;color:#55524C}
.pv-h2{margin:16px 0 6px;font-size:16px;color:#1A1A1A}
.pv-avoid,.pv-good{list-style:none;margin:0;padding:0}
.pv-avoid li{padding:8px 10px;margin-bottom:6px;border-radius:var(--radius);
  background:#FBE8C8;color:#55524C;font-size:14px;
  border-left:3px solid #C9A14A}
.pv-good li{padding:8px 10px;margin-bottom:6px;border-radius:var(--radius);
  background:#EDF3E6;color:#2A3A1C;font-size:14px;
  border-left:3px solid #6F8F4A}
.pv-src{color:#55524C;font-size:12px}
.pv-small{margin:10px 0 0;font-size:14px;color:#55524C}
.pv-absent{color:#55524C}
.pv-note{margin:4px 0 0;font-size:12px;line-height:1.5;color:#55524C}
.pv-foot{margin-top:14px}
.pv-limit{margin:10px 0 0;padding:9px 11px;border-left:3px solid #C9A14A;
  background:#FBE8C8;font-size:14px;line-height:1.5;color:#55524C}
.pv-cityl input{display:block;width:100%;margin-top:6px;padding:11px;
  font-size:16px;border:1px solid #D9CEB4;border-radius:var(--radius);
  background:#FBF8F1;color:#1A1A1A}
.pv-hits{list-style:none;margin:8px 0 0;padding:0}
.pv-hit{display:block;width:100%;text-align:left;padding:10px 12px;
  margin-bottom:6px;border:1px solid #E6DDC8;border-radius:var(--radius);
  background:#fff;color:#1A1A1A;font-size:14px}
.pv-skel{width:100%;height:90px;margin-top:12px;border-radius:var(--radius);
  background:linear-gradient(100deg,#F3EDE0 30%,#FBF8F1 50%,#F3EDE0 70%);
  background-size:200% 100%;animation:kv-shine 1.4s linear infinite}

/* The coming festivals. The date leads, the reason sits under it. */
.fv-list{list-style:none;margin:12px 0 0;padding:0}
.fv-item{padding:12px 14px;margin-bottom:10px;border:1px solid #E6DDC8;
  border-radius:var(--radius);background:#fff}
.fv-date{margin:0;font-size:14px;color:#55524C;letter-spacing:.02em}
.fv-name{margin:2px 0 0;font-size:16px;color:#1A1A1A}
.fv-bits{margin:6px 0 0;font-size:14px;color:#55524C}
.fv-month{margin:2px 0 0;font-size:14px;color:#55524C}
.fv-moment-note{margin:8px 0 0;padding:8px 10px;border-left:3px solid #C9A14A;
  background:#FBE8C8;font-size:14px;line-height:1.5;color:#55524C}
.fv-note{margin:14px 2px 0;font-size:14px;line-height:1.55;color:#55524C}
.fv-src{margin:6px 2px 0;font-size:12px;color:#55524C}
.fav-none{margin:12px 0 0;padding:14px;border:1px solid #E4DFD5;border-radius:12px;background:#FBF8F1}.fav-none h2{margin:0 0 6px;font-size:16px}.fav-none p{margin:0;font-size:14px;color:#55524C}.fav-item .acct-name{flex:1 1 100%}.fav-rm{min-height:44px}.fav-back{display:inline-block;margin-top:16px}
.fv-none{margin:12px 0 0;font-size:14px;color:#55524C}
.fv-skel{width:100%;height:96px;margin-top:12px;border-radius:var(--radius);
  background:linear-gradient(100deg,#F3EDE0 30%,#FBF8F1 50%,#F3EDE0 70%);
  background-size:200% 100%;animation:kv-shine 1.4s linear infinite}

/* A tile with no country picture. Not a placeholder for one -- there
   is no neutral art yet and an Indian scene is forbidden abroad -- so it
   is a finished plain tile: the same shape, the same title, a painted
   ground instead of a photograph. Title contrast measured, not assumed. */
.h1-tile.plain{background:linear-gradient(160deg,#55524C 0%,#1A1A1A 100%)}
.h1-tile.plain .t{background:none}

/* Buy. The button sits on the row it pays for, and the answer appears
   under that row rather than at the top of the page. */
.buy-btn{margin-left:10px;padding:7px 14px;border:0;border-radius:999px;
  background:#1F6F43;color:#fff;font-size:14px;font-weight:600}
.buy-amt{font-weight:400;opacity:.92}
.buy-say{margin:8px 0 0;padding:9px 11px;border-radius:var(--radius);
  font-size:14px;line-height:1.5}
.buy-say-t{margin:0;font-weight:600}
.buy-say-b{margin:4px 0 0;font-weight:400}
.buy-wait{background:#F3EDE0;color:#55524C}
.buy-ok{background:#EDF3E6;color:#24371A;border-left:3px solid #1F6F43}
.buy-note{background:#F3EDE0;color:#55524C}
.buy-bad{background:#FBE8C8;color:#55524C;border-left:3px solid #C9A14A}

.mf-agree{margin:6px 0 0;font-size:16px;color:#1A1A1A}
.mf-weak{margin:10px 0 0;font-size:14px;color:#55524C}
.mf-withheld,.mf-basis{margin:10px 2px 0;font-size:14px;line-height:1.5;
  color:#55524C}
.mf-noverdict{margin:12px 2px 0;padding:10px 12px;border-left:3px solid #C9A14A;
  font-size:14px;line-height:1.55;color:#55524C;background:#FBE8C8}
.mf-kootas{list-style:none;margin:8px 0 0;padding:0;border:1px solid #E6DDC8;
  border-radius:var(--radius);overflow:hidden;background:#fff}
.mf-koota{padding:10px 12px;border-bottom:1px solid #EDE5D3}
.mf-koota:last-child{border-bottom:0}
/* A factor the server excluded. It reads as a label, never as a
   number, so the column cannot be totalled to 36. */
.mf-k-out{background:#FBF8F1}
.mf-k-out .mf-k-top span{font-size:14px;color:#55524C;letter-spacing:.01em}
.mf-k-top{display:flex;justify-content:space-between;font-size:16px;
  color:#1A1A1A}
.mf-k-detail{margin:4px 0 0;font-size:14px;line-height:1.45;color:#1A1A1A}
.mf-src{margin:4px 0 0;font-size:12px;color:#55524C}
.mf-skel{width:100%;height:120px;margin-top:12px;border-radius:var(--radius);
  background:linear-gradient(100deg,#F3EDE0 30%,#FBF8F1 50%,#F3EDE0 70%);
  background-size:200% 100%;animation:kv-shine 1.4s linear infinite}

/* ---- lane 21 product covers (app/shelf/covers/covers.css),
   merged here so the services grid does not need a second
   stylesheet request. Scoped under .l365-shelf, exactly as the
   original is. ---- */
/* Mavella -- animated product covers, shared shell.
   Scoped under .l365-shelf so nothing here can leak into app.css's
   global :root variables or unrelated screens.

   Contract every cover file (app/shelf/covers/<id>.js) follows:
   - it injects one <svg class="cvr-svg cvr-<id>"> into a
     ".cvr-cover" host, with no <style> of its own -- all animation
     lives here, keyed off a shared set of conventions:
     - every animated element carries a class starting "cvr-anim-"
     - animations default to paused (first frame only, until the
       host gets ".is-playing" from an IntersectionObserver)
     - prefers-reduced-motion forces every "cvr-anim-*" element back
       to a static first frame, unconditionally
   - only transform/opacity are animated (GPU-friendly, no layout
     thrash), loops run 2-6s with an ease timing function
   - no text is drawn into the SVG, so one asset works in all 13
     app languages; the product name/label lives in the card DOM */

.l365-shelf {
  --shelf-green: #22492E;
  --shelf-green-soft: #22492E;
  --shelf-gold: #CAAB5E;
  --shelf-gold-soft: #E4C77C;
  --shelf-cream: #F6EFE0;
  --shelf-ink: #1B2A20;
}

.cvr-cover {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(160deg, var(--shelf-green) 0%, var(--shelf-green-soft) 100%);
  display: block;
}

.cvr-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

/* Every animated part starts paused (frame 0) until the shelf strip's
   IntersectionObserver marks the cover ".is-playing" -- this is the
   "lazy-start" contract, and it also doubles as the resting state a
   screenshot or a slow connection will actually see. */
.cvr-cover [class*="cvr-anim-"] {
  animation-play-state: paused;
  transform-box: fill-box;
  will-change: transform, opacity;
}

.cvr-cover.is-playing [class*="cvr-anim-"] {
  animation-play-state: running;
}

/* Reduced motion wins over everything, including .is-playing: every
   cover renders its static first frame and nothing more. */
@media (prefers-reduced-motion: reduce) {
  .cvr-cover [class*="cvr-anim-"] {
    animation: none !important;
    transition: none !important;
  }
}

/* ---- full_reading: chart wheel, turning slowly ---- */
.cvr-full_reading .fr-ring-outer { fill: none; stroke: var(--shelf-gold); stroke-width: 1.5; opacity: .85; }
.cvr-full_reading .fr-ring-inner { fill: none; stroke: var(--shelf-cream); stroke-width: 1; opacity: .4; }
.cvr-full_reading .fr-tick { stroke: var(--shelf-cream); stroke-width: 1; opacity: .55; }
.cvr-full_reading .fr-hub { fill: var(--shelf-gold); }
@keyframes cvr-kf-fr-spin { to { transform: rotate(360deg); } }
.cvr-anim-fr-spin { animation: cvr-kf-fr-spin 6s linear infinite; }
@keyframes cvr-kf-fr-glow {
  0%, 100% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}
.cvr-anim-fr-glow { animation: cvr-kf-fr-glow 3s ease-in-out infinite; }

/* ---- gemstone: faceted gem rotating, planet ring orbiting ---- */
.cvr-gemstone .gem-orbit-path { fill: none; stroke: var(--shelf-gold); stroke-width: 1; opacity: .35; }
.cvr-gemstone .gem-planet { fill: var(--shelf-cream); }
.cvr-gemstone .gem-face { fill: var(--shelf-gold-soft); opacity: .9; }
.cvr-gemstone .gem-facet { fill: var(--shelf-gold); opacity: .18; stroke: var(--shelf-cream); stroke-width: .5; stroke-opacity: .4; }
@keyframes cvr-kf-gem-spin {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(180deg) scaleX(.72); }
  100% { transform: rotate(360deg) scaleX(1); }
}
.cvr-anim-gem-spin { animation: cvr-kf-gem-spin 5s ease-in-out infinite; }
@keyframes cvr-kf-gem-orbit { to { transform: rotate(-360deg); } }
.cvr-anim-gem-orbit { animation: cvr-kf-gem-orbit 4s linear infinite; }

/* ---- life365_complete: wheel + compass + Lo Shu grid, merging ---- */
.cvr-life365_complete .lc-ring { fill: none; stroke: var(--shelf-gold); stroke-width: 1.4; opacity: .8; }
.cvr-life365_complete .lc-tick { stroke: var(--shelf-cream); stroke-width: 1; opacity: .5; }
.cvr-life365_complete .lc-compass-ring { fill: none; stroke: var(--shelf-cream); stroke-width: 1; opacity: .45; }
.cvr-life365_complete .lc-compass-line { stroke: var(--shelf-cream); stroke-width: 1; opacity: .4; }
.cvr-life365_complete .lc-cell { fill: none; stroke: var(--shelf-gold); stroke-width: 1; opacity: .55; }
.cvr-life365_complete .lc-hub { fill: var(--shelf-gold); }
@keyframes cvr-kf-lc-wheel { to { transform: rotate(360deg); } }
.cvr-anim-lc-wheel { animation: cvr-kf-lc-wheel 6s linear infinite; }
@keyframes cvr-kf-lc-compass { to { transform: rotate(-360deg); } }
.cvr-anim-lc-compass { animation: cvr-kf-lc-compass 5s linear infinite; }
@keyframes cvr-kf-lc-grid {
  0%, 100% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.08); opacity: 1; }
}
.cvr-anim-lc-grid { animation: cvr-kf-lc-grid 5s ease-in-out infinite; }
@keyframes cvr-kf-lc-hub {
  0%, 100% { opacity: .75; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.35); }
}
.cvr-anim-lc-hub { animation: cvr-kf-lc-hub 4s ease-in-out infinite; }

/* ---- marriage_timing: wheel with 7th house + Venus + window ---- */
.cvr-marriage_timing .mt-ring-outer { fill: none; stroke: var(--shelf-gold); stroke-width: 1.5; opacity: .8; }
.cvr-marriage_timing .mt-ring-inner { fill: none; stroke: var(--shelf-cream); stroke-width: 1; opacity: .35; }
.cvr-marriage_timing .mt-tick { stroke: var(--shelf-cream); stroke-width: 1; opacity: .5; }
.cvr-marriage_timing .mt-hub { fill: var(--shelf-gold); opacity: .9; }
.cvr-marriage_timing .mt-track { fill: var(--shelf-cream); opacity: .25; }
.cvr-marriage_timing .mt-house7 { fill: var(--shelf-gold); }
.cvr-marriage_timing .mt-venus { fill: var(--shelf-cream); }
.cvr-marriage_timing .mt-window { fill: var(--shelf-gold-soft); }
@keyframes cvr-kf-mt-house7 {
  0%, 100% { opacity: .35; }
  50% { opacity: .9; }
}
.cvr-anim-mt-house7 { animation: cvr-kf-mt-house7 4s ease-in-out infinite; }
@keyframes cvr-kf-mt-venus {
  0%, 100% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
}
.cvr-anim-mt-venus { animation: cvr-kf-mt-venus 3s ease-in-out infinite; }
@keyframes cvr-kf-mt-window {
  0%, 100% { opacity: .45; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
}
.cvr-anim-mt-window { animation: cvr-kf-mt-window 3.5s ease-in-out infinite; }

/* ---- kundli_matching: two wheels, kootas rising in a wave ---- */
.cvr-kundli_matching .km-ring { fill: none; stroke: var(--shelf-gold); stroke-width: 1.3; opacity: .75; }
.cvr-kundli_matching .km-tick { stroke: var(--shelf-cream); stroke-width: 1; opacity: .5; }
.cvr-kundli_matching .km-bar { fill: var(--shelf-gold-soft); opacity: .85; }
@keyframes cvr-kf-km-wheel-l { to { transform: rotate(360deg); } }
.cvr-anim-km-wheel-l { animation: cvr-kf-km-wheel-l 6s linear infinite; }
@keyframes cvr-kf-km-wheel-r { to { transform: rotate(-360deg); } }
.cvr-anim-km-wheel-r { animation: cvr-kf-km-wheel-r 5s linear infinite; }
@keyframes cvr-kf-km-bar {
  0%, 100% { transform: scaleY(.3); opacity: .55; }
  50% { transform: scaleY(1); opacity: 1; }
}
.cvr-anim-km-bar0 { animation: cvr-kf-km-bar 2.6s ease-in-out infinite; }
.cvr-anim-km-bar1 { animation: cvr-kf-km-bar 2.6s ease-in-out infinite; animation-delay: .2s; }
.cvr-anim-km-bar2 { animation: cvr-kf-km-bar 2.6s ease-in-out infinite; animation-delay: .4s; }
.cvr-anim-km-bar3 { animation: cvr-kf-km-bar 2.6s ease-in-out infinite; animation-delay: .6s; }
.cvr-anim-km-bar4 { animation: cvr-kf-km-bar 2.6s ease-in-out infinite; animation-delay: .8s; }
.cvr-anim-km-bar5 { animation: cvr-kf-km-bar 2.6s ease-in-out infinite; animation-delay: 1s; }
.cvr-anim-km-bar6 { animation: cvr-kf-km-bar 2.6s ease-in-out infinite; animation-delay: 1.2s; }
.cvr-anim-km-bar7 { animation: cvr-kf-km-bar 2.6s ease-in-out infinite; animation-delay: 1.4s; }

/* ---- career_money: static D10 grid, five-year climbing timeline ---- */
.cvr-career_money .cm-cell { fill: none; stroke: var(--shelf-gold); stroke-width: 1; opacity: .5; }
.cvr-career_money .cm-baseline { stroke: var(--shelf-cream); stroke-width: 1; opacity: .4; }
.cvr-career_money .cm-bar { fill: var(--shelf-gold-soft); opacity: .9; }
@keyframes cvr-kf-cm-bar {
  0%, 100% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.18); opacity: 1; }
}
.cvr-anim-cm-bar0 { animation: cvr-kf-cm-bar 3s ease-in-out infinite; }
.cvr-anim-cm-bar1 { animation: cvr-kf-cm-bar 3s ease-in-out infinite; animation-delay: .3s; }
.cvr-anim-cm-bar2 { animation: cvr-kf-cm-bar 3s ease-in-out infinite; animation-delay: .6s; }
.cvr-anim-cm-bar3 { animation: cvr-kf-cm-bar 3s ease-in-out infinite; animation-delay: .9s; }
.cvr-anim-cm-bar4 { animation: cvr-kf-cm-bar 3s ease-in-out infinite; animation-delay: 1.2s; }

/* ---- year_ahead: 12-segment ring filling in month by month ---- */
.cvr-year_ahead .ya-ring-inner { fill: none; stroke: var(--shelf-cream); stroke-width: 1; opacity: .3; }
.cvr-year_ahead .ya-hub { fill: var(--shelf-gold); }
.cvr-year_ahead .ya-seg { stroke: var(--shelf-gold); stroke-width: 3; stroke-linecap: round; }
@keyframes cvr-kf-ya-seg {
  0% { opacity: .15; }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { opacity: .15; }
}
.cvr-anim-ya-seg0 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; }
.cvr-anim-ya-seg1 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: .25s; }
.cvr-anim-ya-seg2 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: .5s; }
.cvr-anim-ya-seg3 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: .75s; }
.cvr-anim-ya-seg4 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: 1s; }
.cvr-anim-ya-seg5 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: 1.25s; }
.cvr-anim-ya-seg6 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: 1.5s; }
.cvr-anim-ya-seg7 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: 1.75s; }
.cvr-anim-ya-seg8 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: 2s; }
.cvr-anim-ya-seg9 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: 2.25s; }
.cvr-anim-ya-seg10 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: 2.5s; }
.cvr-anim-ya-seg11 { animation: cvr-kf-ya-seg 3s ease-in-out infinite; animation-delay: 2.75s; }

/* ---- dosha_check: three badges flickering into one calm glow ---- */
.cvr-dosha_check .dc-badge { fill: var(--shelf-gold-soft); stroke: var(--shelf-gold); stroke-width: 1; opacity: .8; }
.cvr-dosha_check .dc-glow { fill: var(--shelf-cream); opacity: 0; }
@keyframes cvr-kf-dc-badge {
  0%, 100% { opacity: .55; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.25); }
}
.cvr-anim-dc-badge1 { animation: cvr-kf-dc-badge 3s ease-in-out infinite; }
.cvr-anim-dc-badge2 { animation: cvr-kf-dc-badge 3s ease-in-out infinite; animation-delay: .4s; }
.cvr-anim-dc-badge3 { animation: cvr-kf-dc-badge 3s ease-in-out infinite; animation-delay: .8s; }
@keyframes cvr-kf-dc-glow {
  0%, 100% { opacity: .15; transform: scale(1); }
  50% { opacity: .6; transform: scale(1.3); }
}
.cvr-anim-dc-glow { animation: cvr-kf-dc-glow 3s ease-in-out infinite; animation-delay: 1.2s; }

/* ---- numerology: Lo Shu grid, cells fading in one by one ---- */
.cvr-numerology .nm-cell { fill: none; stroke: var(--shelf-gold); stroke-width: 1; }
@keyframes cvr-kf-nm-cell {
  0%, 100% { opacity: .15; transform: scale(.6); }
  40% { opacity: 1; transform: scale(1); }
  90% { opacity: 1; transform: scale(1); }
}
.cvr-anim-nm-cell0 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; }
.cvr-anim-nm-cell1 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; animation-delay: .15s; }
.cvr-anim-nm-cell2 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; animation-delay: .3s; }
.cvr-anim-nm-cell3 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; animation-delay: .45s; }
.cvr-anim-nm-cell4 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; animation-delay: .6s; }
.cvr-anim-nm-cell5 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; animation-delay: .75s; }
.cvr-anim-nm-cell6 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; animation-delay: .9s; }
.cvr-anim-nm-cell7 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; animation-delay: 1.05s; }
.cvr-anim-nm-cell8 { animation: cvr-kf-nm-cell 3s ease-in-out infinite; animation-delay: 1.2s; }

/* ---- numerology_pack: tile row flipping letters into numbers ---- */
.cvr-numerology_pack .np-tile { fill: var(--shelf-gold-soft); opacity: .85; }
.cvr-numerology_pack .np-mark { fill: var(--shelf-green); opacity: .8; }
@keyframes cvr-kf-np-tile {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(0); }
}
.cvr-anim-np-tile0 { animation: cvr-kf-np-tile 2.6s ease-in-out infinite; }
.cvr-anim-np-tile1 { animation: cvr-kf-np-tile 2.6s ease-in-out infinite; animation-delay: .2s; }
.cvr-anim-np-tile2 { animation: cvr-kf-np-tile 2.6s ease-in-out infinite; animation-delay: .4s; }
.cvr-anim-np-tile3 { animation: cvr-kf-np-tile 2.6s ease-in-out infinite; animation-delay: .6s; }
.cvr-anim-np-tile4 { animation: cvr-kf-np-tile 2.6s ease-in-out infinite; animation-delay: .8s; }
.cvr-anim-np-tile5 { animation: cvr-kf-np-tile 2.6s ease-in-out infinite; animation-delay: 1s; }

/* ---- occasion_muhurta: month grid with good dates out of phase ---- */
.cvr-occasion_muhurta .om-cell { fill: none; stroke: var(--shelf-cream); stroke-width: .75; opacity: .4; }
.cvr-occasion_muhurta .om-good { fill: var(--shelf-gold); }
@keyframes cvr-kf-om-good {
  0%, 100% { opacity: .35; }
  50% { opacity: 1; }
}
.cvr-anim-om-good0 { animation: cvr-kf-om-good 3s ease-in-out infinite; }
.cvr-anim-om-good1 { animation: cvr-kf-om-good 3s ease-in-out infinite; animation-delay: .6s; }
.cvr-anim-om-good2 { animation: cvr-kf-om-good 3s ease-in-out infinite; animation-delay: 1.2s; }

/* ---- home_vastu: 16-zone compass grid sweeping cell by cell ---- */
.cvr-home_vastu .hv-cross { stroke: var(--shelf-cream); stroke-width: 1; opacity: .35; }
.cvr-home_vastu .hv-cell { fill: none; stroke: var(--shelf-gold); stroke-width: .75; }
@keyframes cvr-kf-hv-cell {
  0%, 100% { opacity: .2; }
  50% { opacity: .95; }
}
.cvr-anim-hv-cell0 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; }
.cvr-anim-hv-cell1 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: .18s; }
.cvr-anim-hv-cell2 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: .36s; }
.cvr-anim-hv-cell3 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: .54s; }
.cvr-anim-hv-cell4 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: .72s; }
.cvr-anim-hv-cell5 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: .9s; }
.cvr-anim-hv-cell6 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 1.08s; }
.cvr-anim-hv-cell7 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 1.26s; }
.cvr-anim-hv-cell8 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 1.44s; }
.cvr-anim-hv-cell9 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 1.62s; }
.cvr-anim-hv-cell10 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 1.8s; }
.cvr-anim-hv-cell11 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 1.98s; }
.cvr-anim-hv-cell12 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 2.16s; }
.cvr-anim-hv-cell13 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 2.34s; }
.cvr-anim-hv-cell14 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 2.52s; }
.cvr-anim-hv-cell15 { animation: cvr-kf-hv-cell 3s ease-in-out infinite; animation-delay: 2.7s; }

/* ---- commercial_vastu: shop floor plan, zones lighting in turn ---- */
.cvr-commercial_vastu .cv-outline { fill: none; stroke: var(--shelf-gold); stroke-width: 1.5; opacity: .85; }
.cvr-commercial_vastu .cv-divider { stroke: var(--shelf-cream); stroke-width: 1; opacity: .4; }
.cvr-commercial_vastu .cv-zone { fill: var(--shelf-gold-soft); }
@keyframes cvr-kf-cv-zone {
  0%, 100% { opacity: .12; }
  50% { opacity: .55; }
}
.cvr-anim-cv-zone0 { animation: cvr-kf-cv-zone 3s ease-in-out infinite; }
.cvr-anim-cv-zone1 { animation: cvr-kf-cv-zone 3s ease-in-out infinite; animation-delay: .5s; }
.cvr-anim-cv-zone2 { animation: cvr-kf-cv-zone 3s ease-in-out infinite; animation-delay: 1s; }

/* ---- property_verdict: floor plan, verdict ribbon breathing ---- */
.cvr-property_verdict .pv-outline { fill: none; stroke: var(--shelf-gold); stroke-width: 1.5; opacity: .85; }
.cvr-property_verdict .pv-divider { stroke: var(--shelf-cream); stroke-width: 1; opacity: .35; }
.cvr-property_verdict .pv-band { fill: var(--shelf-gold); opacity: .85; }
@keyframes cvr-kf-pv-band {
  0%, 100% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.06); }
}
.cvr-anim-pv-band { animation: cvr-kf-pv-band 3.5s ease-in-out infinite; }

/* ---- concord: three voices drifting to a shared centre and back ---- */
.cvr-concord .cn-voice { fill: var(--shelf-gold-soft); opacity: .85; }
.cvr-concord .cn-glow { fill: var(--shelf-cream); opacity: 0; }
@keyframes cvr-kf-cn-voice-a {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(15.6px, 15.6px); }
}
.cvr-anim-cn-voice-a { animation: cvr-kf-cn-voice-a 3s ease-in-out infinite; }
@keyframes cvr-kf-cn-voice-b {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-15.6px, 15.6px); }
}
.cvr-anim-cn-voice-b { animation: cvr-kf-cn-voice-b 3s ease-in-out infinite; animation-delay: .4s; }
@keyframes cvr-kf-cn-voice-c {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(0px, -21.6px); }
}
.cvr-anim-cn-voice-c { animation: cvr-kf-cn-voice-c 3s ease-in-out infinite; animation-delay: .8s; }
@keyframes cvr-kf-cn-glow {
  0%, 100% { opacity: 0; transform: scale(1); }
  50% { opacity: .65; transform: scale(1.4); }
}
.cvr-anim-cn-glow { animation: cvr-kf-cn-glow 3s ease-in-out infinite; }

/* ---- C36: Plans & Services, redesigned ---- */
.svc2-h{margin:22px 0 4px;font-size:var(--t-h2,19px);color:var(--ink,#1A1A1A)}
.svc2-plans{display:grid;gap:10px;margin-top:10px}
.svc2-plan{position:relative;padding:14px;border:1px solid #E2D9C4;
  border-radius:var(--radius);background:#fff}
.svc2-plan.is-raised{border-color:#22492E;box-shadow:0 6px 18px rgba(26,26,26,.08)}
.svc2-ribbon{position:absolute;top:-10px;left:14px;margin:0;padding:3px 10px;
  border-radius:999px;background:#22492E;color:#fff;font-size:var(--t-micro,12px);
  font-weight:600}
.svc2-plan h3{margin:2px 0 0;font-size:var(--t-h2,19px);color:var(--ink,#1A1A1A)}
.svc2-price{margin:4px 0 0;font-size:22px;font-weight:600;color:var(--ink,#1A1A1A)}
.svc2-note{margin:2px 0 0;font-size:var(--t-small,13px);color:#55524C}
.svc2-perk{margin:6px 0 0;padding:6px 9px;border-radius:10px;background:#EDF3E6;
  color:#24371A;font-size:var(--t-small,13px)}
.svc2-choose{margin-top:10px;width:100%;padding:11px;border:0;
  border-radius:999px;background:#22492E;color:#fff;
  font-size:var(--t-body,16px);font-weight:600}
.svc2-group{margin-top:18px}
.svc2-gh{margin:0 0 8px;font-size:var(--t-body,16px);color:#55524C;
  letter-spacing:.04em;text-transform:uppercase}
.svc2-grid,.svc-calm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.svc-calm-grid{margin:12px 0 0}
.svc-calm-card{text-decoration:none;color:#22492E;background:#FBF8F1;
  border:1px solid #C6A15B;border-radius:16px}
.svc-calm-art{position:relative;aspect-ratio:3/4;background:#22492E;overflow:hidden}
.svc-calm-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.svc-calm-art .cvr-cover{position:absolute;inset:0;height:100%}
.svc-calm-card .svc2-free-tag{background:#C6A15B;color:#22492E}
.svc2-card{border:1px solid #E2D9C4;border-radius:var(--radius);
  background:#fff;overflow:hidden;display:flex;flex-direction:column}
.svc2-card .cvr-cover{width:100%;aspect-ratio:16/10;background:#F6EFE0}
.svc2-body{padding:10px 11px 12px;display:flex;flex-direction:column;flex:1}
.svc2-card h3{margin:0;font-size:var(--t-body,16px);color:var(--ink,#1A1A1A)}
.svc2-promise{margin:4px 0 0;font-size:var(--t-small,13px);line-height:1.45;
  color:#55524C}
.svc2-pages{margin:4px 0 0;font-size:var(--t-micro,12px);color:#55524C}
.svc2-buyrow{display:flex;align-items:center;justify-content:space-between;
  gap:8px;margin:10px 0 0}
.svc2-amt{font-size:var(--t-body,16px);color:var(--ink,#1A1A1A)}
/* Coming soon is a statement, not a disabled button. A greyed-out Buy
   invites a tap and explains nothing. */
.svc2-soon{margin:10px 0 0;padding:5px 10px;align-self:flex-start;
  border-radius:999px;background:#F3EDE0;color:#55524C;
  font-size:var(--t-small,13px);font-weight:600}
.svc2-soonwhy{margin:4px 0 0;font-size:var(--t-micro,12px);color:#55524C}
.svc2-sample{margin-top:8px;font-size:var(--t-small,13px);color:#22492E}
@media (max-width:359px){.svc2-grid,.svc-calm-grid{grid-template-columns:1fr}}
.svc-calm-card .cvr-cover{width:100%;height:100%;aspect-ratio:auto}

.svc2-toggle{display:inline-flex;margin:8px 0 2px;padding:3px;gap:3px;
  border:1px solid #E2D9C4;border-radius:999px;background:#F6EFE0}
.svc2-toggle button{padding:6px 14px;border:0;border-radius:999px;
  background:transparent;color:#55524C;font-size:var(--t-small,13px)}
.svc2-toggle button.is-on{background:#22492E;color:#fff;font-weight:600}
.svc2-plan.is-trial{border-style:dashed;background:#F6EFE0}
.svc2-save{margin:4px 0 0;padding:3px 9px;align-self:flex-start;
  display:inline-block;border-radius:999px;background:#EDF3E6;
  color:#24371A;font-size:var(--t-micro,12px);font-weight:600}

.pv-remind{margin:14px 0 0;padding:9px 16px;border:1px solid #22492E;
  border-radius:999px;background:transparent;color:#22492E;
  font-size:var(--t-small,13px);font-weight:600}
.pv-remind[data-on="1"]{background:#22492E;color:#fff}
.pv-remind-say{margin:6px 0 0;font-size:var(--t-small,13px);color:#55524C}

/* A1: the AI disclosure. Small and quiet, but never hidden, never
   collapsed behind a tap, and never lighter than the AA floor -- a
   disclosure nobody can read is not one. 6.1:1 on the cream ground. */
.ai-note{margin:6px 0 10px;font-size:var(--t-small,13px);
  line-height:1.5;color:#55524C}

/* C43: the beta strip. One line, above the screen, quiet but readable --
   it is an invitation, not a warning, and it must not look like an error
   banner or testers will stop seeing it by the second day. AA on cream. */
.beta-strip{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  margin:0;padding:8px 16px;background:#F3EEE4;
  font-size:var(--t-small,13px);line-height:1.45;color:#55524C}
.beta-tag{flex:none;padding:1px 8px;border-radius:999px;
  background:#22492E;color:#fff;font-size:var(--t-micro,12px);
  font-weight:700;letter-spacing:.02em}
.beta-line{flex:1 1 auto;min-width:0}

/* C43: the free-text line under an answer. */
.fb-say{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin:8px 0 0}
.fb-say-l{flex:1 1 100%;font-size:var(--t-small,13px);color:#55524C}
.fb-say-i{flex:1 1 60%;min-width:0;padding:8px 10px;border:1px solid #C9C2B4;
  border-radius:8px;font-size:var(--t-body,16px);background:#fff;
  color:#1A1A1A}
.fb-send{flex:none;padding:8px 14px;border:1px solid #22492E;
  border-radius:999px;background:#22492E;color:#fff;
  font-size:var(--t-small,13px);font-weight:600}
.fb-send[disabled]{opacity:.55}
.fb-btn[aria-pressed="true"],.fb-btn.on{background:#22492E;color:#fff;
  border-color:#22492E}
/* A1: the customer row is three emoji buttons, one changeable choice; the pressed one is tinted, not filled, so the emoji stays visible */
.fb-emoji{min-width:40px;min-height:40px;font-size:18px;line-height:1;padding:4px 10px}
.fb-reasons{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0;width:100%}
.fb-reason{min-height:36px;padding:6px 12px;border:1px solid var(--line,#E2D9C4);border-radius:999px;background:#fff;font-size:var(--t-small,13px);color:var(--ink,#1A1A1A);cursor:pointer}
.fb-reason.on{border-color:var(--g,#22492E);background:#EEF5EE}
/* Lane 5: three equal buttons on ONE row at 390 px, always in the order heart / like / dislike (the base .fb-btn basis of 50% is for the four-button reviewer widget) */
.fb-row .fb-emoji{flex:1 1 0;min-width:0}
.fb-emoji[aria-pressed="true"],.fb-emoji.on{background:#E6F1EA;color:inherit;border-color:#22492E}

/* C41: the place-of-supply question, asked in the buy flow. Plain and
   short -- it interrupts someone who is trying to pay, so it says what it
   needs and why in two lines and gets out of the way. */
/* FULL WIDTH WHEREVER IT LANDS. It used to inherit the width of whatever
   it was appended to, and the shop's buy row is a narrow flex cell inside
   a scrolling grid -- 125px on a 412px phone, spilling over the next
   card. It climbs to a container with room now (gst_state.js), and this
   makes sure it fills it rather than the cell it came from. */
.gst-state{margin:10px 0 0;padding:12px;border:1px solid #C9C2B4;
  border-radius:12px;background:#fff;width:100%;max-width:100%;
  box-sizing:border-box;display:block;flex-basis:100%}
.gst-q{margin:0 0 4px;font-size:var(--t-body,16px);font-weight:600;
  color:#1A1A1A}
.gst-why{margin:0 0 10px;font-size:var(--t-small,13px);color:#55524C}
.gst-l{display:block;margin:0 0 10px}
.gst-sel{width:100%;max-width:100%;padding:10px;border:1px solid #C9C2B4;
  border-radius:8px;font-size:var(--t-body,16px);background:#fff;
  color:#1A1A1A}
.gst-go{width:100%}
.gst-need{margin:8px 0 0;font-size:var(--t-small,13px);color:#8A2A1B}

/* C44: My reports. */
.myrep-list{margin:14px 0 0}
.myrep-row{margin:0 0 14px;padding:12px;border:1px solid #C9C2B4;
  border-radius:12px;background:#fff}
.myrep-name{margin:0 0 4px;font-size:var(--t-h2,19px);color:#1A1A1A}
.myrep-state{margin:0 0 10px;font-size:var(--t-small,13px);color:#55524C}
.myrep-badge{display:inline-block;padding:1px 8px;border-radius:999px;
  background:#22492E;color:#fff;font-size:var(--t-micro,12px);
  font-weight:700;margin-right:6px}
.myrep-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0}
.myrep-say{margin:8px 0 0;font-size:var(--t-small,13px);color:#55524C}
.myrep-none{margin:18px 0 0;padding:16px;border:1px dashed #C9C2B4;
  border-radius:12px;background:#FDFAF2}
.myrep-none h2{margin:0 0 6px;font-size:var(--t-h2,19px);color:#1A1A1A}
.myrep-none p{margin:0 0 12px;font-size:var(--t-body,16px);color:#55524C}
.myrep-sheet-cards{margin:10px 0 0;max-width:100%;overflow-wrap:anywhere}.myrep-sheet-opt{margin:0 0 8px;font-size:var(--t-small,13px);color:#6b5a1e;font-weight:600}.myrep-sheet-card{margin:0 0 8px;padding:10px 12px;border:1px solid #E8E4DC;border-radius:10px;background:#fff}html body #root .myrep-sheet-card,html body #root .myrep-sheet-card :where(h3,p){color:#1A1A1A;font-family:inherit;white-space:normal}.myrep-sheet-card h3{margin:0 0 4px;font-size:var(--t-body,16px)}.myrep-sheet-card p{margin:0 0 4px;font-size:var(--t-body,15px)}html body #root .myrep-sheet-card .myrep-sheet-why{color:#4A443B;font-size:var(--t-small,13px)}
.myrep-notes-pre{margin:10px 0 0;padding:10px;border:1px solid #E8E4DC;
  border-radius:8px;font-size:var(--t-small,13px);white-space:pre-wrap;
  color:#333;font-family:inherit;max-height:240px;overflow:auto}

/* C34: Compare my reports. Same palette and radii as the rest of the
   screens here -- nothing new invented for one page. The two price cards
   sit in a grid that becomes one column under 420px, because at 390 the
   promise text is the part that has to stay readable. */
.cmp-never{margin:0 0 14px}
.cmp-prices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px}
@media (max-width:420px){.cmp-prices{grid-template-columns:1fr}}
.cmp-price{padding:12px;border:1px solid #C9C2B4;border-radius:12px;
  background:#FFFDF8}
.cmp-price h3{margin:0 0 4px;font-size:var(--t-h3,17px);color:#1A1A1A}
.cmp-price p{margin:0;font-size:var(--t-small,14px);color:#55524C}
.cmp-amt{font-size:var(--t-h2,19px);color:#1A1A1A;margin:0 0 6px !important}
.cmp-consent,.cmp-age,.cmp-up{margin:0 0 16px;padding:14px;
  border:1px solid #C9C2B4;border-radius:12px;background:#FDFAF2}
.cmp-consent h2,.cmp-age h2,.cmp-up h2{margin:0 0 10px;
  font-size:var(--t-h2,19px);color:#1A1A1A}
.cmp-choices{display:flex;flex-direction:column;gap:8px;margin:0}
.cmp-choices button{width:100%;text-align:left}
/* A refusal is not an error: same calm box as the rest of the page, no
   red, no warning icon. The reader has not done anything wrong. */
.cmp-refused{margin:0 0 16px;padding:14px;border:1px solid #C9C2B4;
  border-radius:12px;background:#FDFAF2}
.cmp-refused h2{margin:0 0 6px;font-size:var(--t-h2,19px);color:#1A1A1A}
.cmp-refused p{margin:0;font-size:var(--t-body,16px);color:#55524C}
.cmp-slot{margin:0 0 14px;padding:12px;border:1px solid #C9C2B4;
  border-radius:12px;background:#FFFDF8}
.cmp-slot h3{margin:0 0 4px;font-size:var(--t-h3,17px);color:#1A1A1A}
/* CLIPPED, NOT display:none and not [hidden] -- either would take the
   input out of the tab order, and the label is not focusable on its own,
   so a keyboard user could never open the picker. */
.cmp-file{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;
  white-space:nowrap}
.cmp-said{margin:8px 0 0;font-size:var(--t-small,14px);color:#55524C;
  overflow-wrap:anywhere}
.cmp-state{margin:10px 0 0;font-size:var(--t-body,16px);color:#1A1A1A}
.cmp-keep{margin:18px 0 0;padding:14px;border:1px dashed #C9C2B4;
  border-radius:12px}
.cmp-keep h2{margin:0 0 6px;font-size:var(--t-h3,17px);color:#1A1A1A}
.cmp-keep p{margin:0;font-size:var(--t-small,14px);color:#55524C}
/* C34: the product is not open yet, said on arrival rather than after the
   reader has chosen two files. */
.cmp-shut{margin:0 0 16px;padding:14px;border:1px solid #C9C2B4;
  border-radius:12px;background:#F2ECDF}
.cmp-shut h2{margin:0 0 6px;font-size:var(--t-h2,19px);color:#1A1A1A}
.cmp-shut p{margin:0;font-size:var(--t-body,16px);color:#55524C}
/* C34: our own words on the file picker. A bare <input type="file"> draws
   "Choose Files" from the browser in English whatever the page is in. */
.cmp-pick{display:inline-block;margin:10px 0 0;padding:10px 14px;
  border:1px solid #22492E;border-radius:10px;background:#FFFDF8;
  color:#22492E;font-size:var(--t-body,16px);cursor:pointer}
.cmp-pick:focus-within,.cmp-file:focus + .cmp-pick{outline:2px solid #22492E;
  outline-offset:2px}
/* C34: the delete the spec asks for, offered once files are actually with
   us. A ghost button, not a primary -- it is not the main thing to do. */
.cmp-del{margin:12px 0 0;display:flex;gap:10px;align-items:center;
  flex-wrap:wrap}
.cmp-del-said{font-size:var(--t-small,14px);color:#55524C}

/* B6, Page 2 profile. The nine-square grid keeps its own "See my home
   reading" footer for the vastu tool; on the profile page the page's one
   Save button is the action, so the grid's footer is hidden here only. */
.boot-profile .pf-h2 { margin: 24px 0 4px; font-size: 18px; line-height: 1.3; }
.boot-profile .pf-vastu { max-width: 100%; overflow-x: hidden; }
.boot-profile .pf-vastu .vg-foot, .boot-profile .pf-vastu .vg-ideal { display: none; }
.boot-profile .ac-opt { display: flex; gap: 10px; align-items: flex-start; margin: 14px 0; }
.boot-profile input[type="text"], .boot-profile input[type="date"],
.boot-profile input[type="time"], .boot-profile input[type="search"] {
  max-width: 100%; box-sizing: border-box; }
.boot-profile .cons-links { margin: 14px 0 4px; }
.boot-profile .cons-links .link { background: none; border: 0; padding: 6px 2px; color: inherit;
  font: inherit; text-decoration: underline; min-height: 44px; cursor: pointer; }
.boot-profile .need { color: #8A2A12; font-weight: 600; }
.boot-profile .primary { display: block; width: 100%; margin: 16px 0 8px; }

/* B8, the Account tab. */
.acct-page { max-width: 100%; }
/* Calm Me hub: five rows, gold on navy, one accent. */
.me-rows { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 16px; }
.me-row {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px;
  padding: 8px 14px; border-radius: 14px; border: 1px solid rgba(15,74,44,.14);
  background: #FDFAF2; color: #22492E; text-align: left; text-decoration: none;
  font: 600 16px/1.2 var(--mv-sans); cursor: pointer;
}
.me-ico {
  width: 28px; height: 28px; border-radius: 8px; background: #22492E;
  display: grid; place-items: center; flex: 0 0 28px;
}
.account-page:has(.me-rows) [data-go="services"].primary {
  background: transparent; color: #22492E; border: 1px solid rgba(15,74,44,.2);
}
.plans-intro {
  max-height: 4.8em; overflow: hidden;
}
.ac-flow-block.ac-pace { opacity: 0; }
.ac-flow-block.ac-pace.ac-pace-in { opacity: 1; transition: opacity .25s ease; }
@media (prefers-reduced-motion: reduce) {
  .ac-flow-block.ac-pace { opacity: 1; }
}
.acct-sec { margin: 22px 0; }
.acct-sec h2 { font-size: 18px; line-height: 1.3; margin: 0 0 8px; }
.acct-list { list-style: none; margin: 0; padding: 0; }
.acct-list li { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center;
  padding: 12px 0; border-top: 1px solid rgba(0,0,0,.12); }
.acct-name { flex: 1 1 100%; font-weight: 600; overflow-wrap: anywhere; }
.acct-meta { flex: 1 1 auto; min-width: 0; font-size: 14px; overflow-wrap: anywhere; }
.acct-dl { flex: 0 0 auto; min-height: 44px; }
.acct-tag { color: #8A2A12; border: 1px solid #8A2A12; border-radius: 4px; padding: 0 5px; font-size: 12px; }
.acct-test { color: #8A2A12; font-weight: 600; }

/* B10, the founders' review. */
.fr-page { max-width: 100%; }
.fr-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.fr-chip { min-height: 44px; padding: 8px 12px; border: 1px solid rgba(0,0,0,.25); border-radius: 22px;
  background: transparent; font: inherit; cursor: pointer; }
.fr-chip.on { background: #124A33; color: #FBFAF7; border-color: #124A33; }
.fr-q { width: 100%; box-sizing: border-box; min-height: 44px; margin: 6px 0 10px; }
.fr-list { list-style: none; margin: 0; padding: 0; }
.fr-card { border-top: 1px solid rgba(0,0,0,.15); padding: 14px 0; overflow-wrap: anywhere; }
.fr-tag { display: inline-block; padding: 1px 8px; border-radius: 4px; font-size: 12px; font-weight: 700;
  border: 1px solid currentColor; margin-right: 8px; }
.fr-tag-approved { color: #124A33; } .fr-tag-held { color: #8A5A00; }
.fr-tag-rejected { color: #8A2A12; } .fr-tag-policy_hold { color: #7A6A54; } .fr-tag-gap { color: #444; }
.fr-served { font-size: 12px; opacity: .8; }
.fr-qtext { font-weight: 600; margin: 8px 0 4px; }
.fr-atext { margin: 4px 0; white-space: pre-wrap; }
.fr-meta { font-size: 12px; opacity: .75; margin: 4px 0; }
.fr-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.fr-b, .fr-save, .fr-cancel { min-height: 44px; }
.fr-edit { width: 100%; box-sizing: border-box; font: inherit; }
.fr-versions { padding-left: 20px; margin: 8px 0; }
.fr-gap { opacity: .95; }

/* B10.1: one row of actions, a text link for Versions, a quiet slug. */
.fr-row { flex-wrap: nowrap; align-items: center; gap: 8px; }
.fr-row .fr-b { flex: 1 1 0; min-width: 0; padding-left: 6px; padding-right: 6px; margin: 0; }
.fr-link { flex: 0 0 auto; background: none; border: 0; color: inherit; font: inherit;
  text-decoration: underline; padding: 0 4px; min-height: 44px; cursor: pointer; }
.fr-slug { font-size: 12px; color: #767676; margin: 0 0 4px; }

/* B9, type-to-ask suggestions: at most five, under the box, only once typing. */
.ta-list { list-style: none; margin: 4px 0 8px; padding: 0; max-width: 100%;
  border: 1px solid rgba(0,0,0,.18); border-radius: 10px; background: #FBFAF7; overflow: hidden; }
.ta-list li + li { border-top: 1px solid rgba(0,0,0,.1); }
.ta-item { display: block; width: 100%; min-height: 44px; padding: 10px 12px; text-align: left;
  background: none; border: 0; font: inherit; color: inherit; cursor: pointer; overflow-wrap: anywhere; }
.ta-item:hover, .ta-item:focus-visible { background: rgba(18,74,51,.08); }

/* B11: the comment is a short textarea now (up to 1000 characters). */
textarea.fb-say-i { flex: 1 1 100%; resize: vertical; font: inherit; box-sizing: border-box; }

/* B11: tabs on the founders' screen, and the feedback rows. */
.fr-tabs { display: flex; gap: 8px; margin: 10px 0 4px; border-bottom: 1px solid rgba(0,0,0,.18); }
.fr-tab { min-height: 44px; padding: 8px 14px; background: none; border: 0; border-bottom: 3px solid transparent;
  font: inherit; font-weight: 600; cursor: pointer; }
.fr-tab.on { border-bottom-color: #124A33; color: #124A33; }
.fr-comment { margin: 8px 0 4px; white-space: pre-wrap; overflow-wrap: anywhere; font-weight: 600; }
.fr-linked { margin-top: 10px; padding: 10px 12px; border-left: 3px solid rgba(18,74,51,.35); background: rgba(0,0,0,.025); }
.fr-unlinked { margin-top: 8px; }

/* A long comment (up to 1000 characters) scrolls inside its row so the list stays scannable on a phone. */
.fr-comment { max-height: 8.5em; overflow-y: auto; }

/* B5, Page 1 sign-in. */
.login-page { max-width: 100%; }
.login-page input[type="text"] { width: 100%; box-sizing: border-box; min-height: 48px; font-size: 18px; margin: 6px 0 12px; }
.login-page .primary { display: block; width: 100%; margin: 8px 0; }
.login-page .link { background: none; border: 0; color: inherit; font: inherit; text-decoration: underline;
  min-height: 44px; padding: 0 4px; cursor: pointer; }
.login-page .link[disabled] { opacity: .55; text-decoration: none; }
.login-page .need { color: #8A2A12; font-weight: 600; }
.fb-kept { flex: 1 1 100%; margin: 2px 0 0; }

/* B7, Page 3. Home's own Today card and share row are not drawn in this build: a
   first visit has no prediction yet and a later one shows the theme card. */
html.p3 .h1-today, html.p3 .h1-share-row { display: none; }
.p3-chip { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; margin: 6px 0 2px; padding: 4px 12px 4px 4px;
  border: 1px solid rgba(0,0,0,.18); border-radius: 999px; background: #FBFAF7; color: inherit; text-decoration: none; min-height: 44px; box-sizing: border-box; }
.p3-ini { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px;
  border-radius: 50%; background: #124A33; color: #FBFAF7; font-weight: 700; }
.p3-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.p3-top { max-width: 100%; }
.p3-today { position: relative; margin: 10px 0; border-radius: 14px; overflow: hidden; background: #FBFAF7; border: 1px solid rgba(0,0,0,.12); }
.p3-today img { display: block; width: 100%; height: auto; max-height: 190px; object-fit: cover; }
.p3-today .in { padding: 12px 14px 14px; }
.p3-today .d { font-size: 14px; opacity: .75; }
.p3-line { margin: 6px 0 0; font-size: 18px; line-height: 1.45; overflow-wrap: anywhere; }
.p3-cta { display: inline-block; margin-top: 10px; text-align: center; text-decoration: none; }
.p3-block { margin: 18px 16px; padding: 14px 14px 16px; border: 1px solid var(--line,#E6DFCF); border-radius: var(--radius,14px); background: #fff; box-sizing: border-box; }
.p3-block h2 { font-size: 18px; margin: 0 0 8px; }
.p3-block.tarot-card{display:flex;flex-direction:column;align-items:stretch;min-height:0}
.p3-block.tarot-card .tarot-face{align-self:center}
.p3-items { list-style: none; margin: 8px 0 0; padding: 0; }
.p3-item { border-top: 1px solid rgba(0,0,0,.12); padding: 12px 0; overflow-wrap: anywhere; }
.p3-say { margin: 0 0 4px; font-weight: 600; }
.p3-label, .p3-conf { margin: 2px 0; font-size: 14px; opacity: .8; }
.p3-tap { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.p3-b { min-height: 44px; }
.p3-home { margin: 12px 0; padding: 10px 12px; border-left: 3px solid rgba(18,74,51,.4); background: rgba(0,0,0,.03); overflow-wrap: anywhere; }

/* PAY-REVIEW, the review checkout sheet. */
.rp-page { max-width: 100%; }
.rp-list { list-style: none; margin: 8px 0; padding: 0; }
.rp-opt { display: block; width: 100%; text-align: left; margin: 8px 0; padding: 12px 14px; box-sizing: border-box;
  border: 1px solid rgba(0,0,0,.22); border-radius: 12px; background: #FBFAF7; color: inherit; font: inherit; cursor: pointer; min-height: 44px; }
.rp-opt.on { border-color: #124A33; box-shadow: 0 0 0 2px rgba(18,74,51,.35); }
/* walk 691d21dbf F5: cream text on a cream card. tokens.css forces button colour (1,0,2), so these carry the same weight: dark card, cream text */
html body #root .rp-opt { background: #0B2A1C; color: #F5EFE0; border-color: rgba(214,180,90,.45); }
html body #root .rp-opt.on { border-color: #D6B45A; box-shadow: 0 0 0 2px rgba(214,180,90,.45); }
html body #root .rp-opt .rp-name, html body #root .rp-opt .rp-price, html body #root .rp-opt .rp-desc, html body #root .rp-opt .rp-pages { color: #F5EFE0; }
html body #root .rp-sheet { background: #0B2A1C; color: #F5EFE0; border-color: rgba(214,180,90,.3); }
html body #root .rp-sheet .rp-what, html body #root .rp-sheet .rp-receipt { background: rgba(245,239,224,.06); color: #F5EFE0; border-color: rgba(214,180,90,.4); }
html body #root .rp-sheet .rp-fix, html body #root .rp-sheet .rp-review { color: #E9E2CE; }
.rp-name { display: block; font-weight: 700; }
.rp-price { display: block; font-size: 18px; margin: 2px 0; overflow-wrap: anywhere; }
.rp-desc { display: block; font-size: 14px; opacity: .8; }
.rp-sheet { margin-top: 18px; padding: 14px; border: 1px solid rgba(0,0,0,.18); border-radius: 14px; background: #fff; }
.rp-sheet h2 { margin: 0 0 8px; font-size: 18px; }
.rp-total { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 6px 0; overflow-wrap: anywhere; }
.rp-review { margin: 6px 0 10px; font-size: 12px; color: #55524C; }
/* L4, rulebook s8: what you get + tax, the separate unticked box, the fix-or-refund line, the receipt */
.rp-what { margin: 10px 0; padding: 10px 12px; border: 1px solid rgba(0,0,0,.14); border-radius: 10px; background: #FBFAF7; overflow-wrap: anywhere; }
.rp-what h3, .rp-receipt h3 { margin: 0 0 4px; font-size: 14px; }
.rp-what p, .rp-receipt p { margin: 4px 0; font-size: 14px; line-height: 1.4; }
.rp-tick { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0 4px; font-size: 14px; line-height: 1.4; min-height: 44px; overflow-wrap: anywhere; cursor: pointer; }
.rp-tick input { width: 24px; height: 24px; flex: none; margin: 0; }
.rp-tickhint { margin: 2px 0 6px; }
.rp-sheet .primary:disabled { background: #6b7a72; color: #fff; cursor: not-allowed; }
.rp-fix { margin: 6px 0 4px; font-size: 14px; color: #3E3B35; }
.rp-receipt { margin: 10px 0; padding: 10px 12px; border: 1px dashed rgba(0,0,0,.3); border-radius: 10px; background: #fff; overflow-wrap: anywhere; }
.rp-sheet .primary, .rp-thanks .primary { display: block; width: 100%; text-align: center; text-decoration: none; margin: 8px 0; }
.rp-thanks .ghost { display: block; width: 100%; margin: 8px 0; }
.acct-buy { display: block; text-align: center; margin: 10px 0; text-decoration: none; }

/* The Ask send button on the answer sheet read 1.14:1 (white on the cream sheet: another rule had cleared its
   background). A solid green button with white text is 9:1. */
#h1threads, .h1-thread-ask #h1threads{background:var(--g,#22492E);color:#fff;border:0;border-radius:var(--radius,12px);padding:0 16px}
#h1threads:disabled{background:#6b7a72;color:#fff}

/* Feature switches: a switched feature stays hidden until the server has answered (app/switches.js sets html[data-sw]);
   the per-key rules for the OFF ones are added by that script. */
html:not([data-sw]) [data-switch]{display:none!important}

/* The review card (app/review_ask.js): the same card for everyone. */
.rask-card{margin:14px 16px;padding:16px;border:1px solid var(--line,#E6DFCF);border-radius:var(--radius,14px);background:#fff}
.rask-card h2{margin:0 0 10px;font-size:18px}
.rask-row{display:flex;flex-wrap:wrap;gap:8px}
.rask-row button{min-height:44px}
.rask-form{margin-top:10px}
.rask-form textarea{width:100%;min-height:84px;box-sizing:border-box;font:inherit;padding:10px;border:1px solid var(--line,#E6DFCF);border-radius:10px}
.rask-sharebox{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rask-line{font-weight:600}

/* Remedies (app/remedies.js): one line, always with its disclaimer. */
.rem-line{margin:10px 0 0;font-size:16px;line-height:1.5}
.rem-disc{display:block;margin-top:4px;font-size:12px;color:var(--faint,#7A6A54)}
.rem-card .rem-line{margin-top:6px}

/* The daily hooks strip (app/daily_hooks.js): last on Page 3. */
.p3-hooks h2{margin:0 0 6px;font-size:16px}
.p3-hook-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.p3-hook-list li{background:#fff;border:1px solid var(--line,#E6DFCF);border-radius:999px;padding:6px 12px;font-size:14px;line-height:1.35}

/* Tarot (app/tarot.js): a typographic card face until there is art. */
.tarot-face{margin:8px 0;padding:14px 12px 12px;width:150px;box-sizing:border-box;background:#FBF6E8;color:#22492E;border:2px solid #CAAB5E;
  border-radius:14px;text-align:center;box-shadow:0 1px 0 rgba(0,0,0,.06)}
.tarot-num{display:block;font:600 14px/1 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.12em;color:#8A5A1E}
.tarot-motif{display:block;margin:10px auto 6px}
.tarot-img{display:block;width:100%;height:auto;border-radius:8px;margin:8px 0}
.tarot-name{font:400 16px/1.25 var(--mv-sans)}
.tarot-rev{font-size:12px;color:#8A5A1E}
.tarot-line{margin:8px 0 0;font-size:14px;line-height:1.4;color:var(--ink,#1A1A1A);text-align:start}
.tarot-todo{margin:6px 0 0;font-size:14px;color:var(--body,#55524C);text-align:start}
.tarot-card .tarot-face{width:min(180px,100%)}
.tarot-streak{margin:4px 0 8px;font-size:14px;color:var(--faint,#7A6A54)}
.tarot-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.tarot-slot h2{font-size:14px;margin:0;text-align:center}
.tarot-page input{width:100%;box-sizing:border-box;min-height:48px;font:inherit;padding:10px;border:1px solid var(--line,#E6DFCF);border-radius:10px;margin:6px 0 12px}
.tarot-pay{margin-top:14px}

/* Page 3: the same side gutter as the rest of Home (the blocks and the chip sat at x=0 at 390px). */
.p3-top{padding-inline:16px;box-sizing:border-box}
#p3chip{margin-inline:16px}
.tarot-card .tarot-face{margin-bottom:12px}
.tarot-streak{display:block;clear:both;margin:10px 0 10px;line-height:1.4}
/* the day chips: a tap shows the traditional name */
.h1-pills span[data-more]{cursor:pointer}
.h1-pills span.more::after{content:" \00b7  " attr(data-more);font-weight:400;opacity:.85}
.tarot-card a.ghost{display:inline-block;margin-top:4px}

/* The life-so-far movie (app/life_reel.js). When it is on, its cards replace the plain life-so-far block. */
html[data-sw-on~="life_reel"] #p3lsf{display:none}
.reel-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.reel-btns button{min-height:44px}
.reel-q{font-size:16px;line-height:1.4;margin:6px 0}
.reel-end{margin-top:12px}
.reel-end-text{font:400 18px/1.4 var(--mv-sans);margin:0 0 6px}
.reel-end-small{font-size:12px;color:var(--faint,#7A6A54);margin:0 0 10px}
.reel-teaser{font-weight:600}
/* after-film check + "That was me" / Skip (app/after_film.js) */
.af-card{padding:16px;border-radius:16px;background:var(--card,#fffaf0);border:1px solid var(--line,rgba(0,0,0,.1))}
.af-card h2{font-size:18px;line-height:1.3;margin:0 0 12px}
.af-item{margin:0 0 14px}
.af-say{margin:0 0 8px;font-size:16px;line-height:1.4}
.af-btns{display:flex;gap:8px}
.af-btns button{flex:1 1 0;min-height:44px;border-radius:12px;font:inherit;font-weight:600}
.af-btns .af-me{background:#0f4a30;color:#fff;border:1px solid #0f4a30}
.af-btns .af-skip,.af-skipall{background:transparent;color:var(--ink,#1b1b1b);border:1px solid var(--line,rgba(0,0,0,.28))}
.af-btns .af-skip{flex:0 0 36%}
.af-btns button:disabled{opacity:.55}
.af-btns[data-picked="yes"] .af-me{opacity:1;outline:2px solid var(--accent,#c9a24a)}
.af-private{margin:6px 0 10px;font-size:14px;line-height:1.45;color:var(--faint,var(--body))}
.af-skipall{min-height:44px;border-radius:12px;font:inherit}
.af-thanks{margin:8px 0;font-size:16px;line-height:1.45;color:var(--ink)}
.reel-end-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.reel-end-row>a,.reel-end-row>button{flex:1 1 140px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-align:center;text-decoration:none}
.reel-end{padding:0 14px}
.sa-art{margin:0 0 12px}
.sa-art .ai-wrap,.sa-art .rv-banner{display:block;width:100%}
.reel-small{font:600 14px/1.2 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
/* T5 THE FILM PLAYER: full-bleed 9:16 on a phone (safe-area aware); a centred 9:16 frame, max 480px, on a desktop. Palette only. */
.reel-stage{position:fixed;inset:0;z-index:9999;background:#072617;color:#FAF6EE;overflow:hidden}
.reel-frame{position:absolute;inset:0;overflow:hidden;background:#072617;font-family:var(--mv-sans)}
@media (min-width:601px){.reel-frame{inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);width:min(480px,56.25vh);width:min(480px,calc(100dvh * 9 / 16));height:calc(min(480px,calc(100dvh * 9 / 16)) * 16 / 9);border-radius:14px}}
.reel-scene{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .6s ease}
.reel-scene.on{opacity:1}
.reel-scene.on,.reel-scene.on *{pointer-events:auto}
.reel-img{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:#0F4A2C;transform-origin:50% 50%}
@media (prefers-reduced-motion:no-preference){
  .reel-scene.on .reel-img{animation:reelKen var(--d,6s) ease-out forwards}
  .reel-scene.done .reel-img{transform:scale(1.08)}
  .reel-paused .reel-img,.reel-paused .reel-seg b{animation-play-state:paused}
}
@keyframes reelKen{from{transform:scale(1)}to{transform:scale(1.08)}}
.reel-progress{position:absolute;top:max(12px,env(safe-area-inset-top));left:12px;right:64px;z-index:4;display:flex;gap:4px}
.reel-seg{flex:1 1 0;height:3px;border-radius:2px;background:#3B6E52;overflow:hidden}
.reel-seg b{display:block;height:100%;width:0;background:#E6DEC8}
.reel-seg.done b{width:100%}
.reel-seg.on b{animation:reelFill var(--d,6s) linear forwards}
.reel-paused .reel-seg.on b{animation-play-state:paused}
@keyframes reelFill{from{width:0}to{width:100%}}
.reel-close{position:absolute;top:max(8px,env(safe-area-inset-top));right:8px;z-index:6;width:44px;height:44px;border-radius:50%;border:0;background:rgba(7,38,23,.6);color:#FAF6EE;font-size:22px;line-height:1;cursor:pointer}
.reel-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:120px 24px max(40px,calc(env(safe-area-inset-bottom) + 28px));background:linear-gradient(to top,#072617 0%,rgba(7,38,23,.88) 40%,rgba(7,38,23,0) 100%);text-align:left}
.reel-when{margin:0 0 8px;font:700 14px/1.25 system-ui,sans-serif;letter-spacing:.05em;color:#F0D48A;text-shadow:0 1px 3px rgba(7,38,23,.9)}
.reel-line{margin:0;font:500 clamp(20px,6vw,26px)/1.3 -apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;color:#FAF6EE}
.reel-cover{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;background-color:#072617;transition:opacity .6s ease,visibility 0s linear 0s}
.reel-cover::before{content:"";position:absolute;inset:0;background:rgba(7,38,23,.66)}
.reel-cover-in{position:relative;text-align:center;padding:0 24px}
.reel-cover-title{margin:0 0 24px;font:500 clamp(28px,9vw,40px)/1.15 -apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;color:#FAF6EE}
.reel-play{width:76px;height:76px;border-radius:50%;border:0;background:#C89B2C;color:#072617;display:inline-flex;align-items:center;justify-content:center;padding:0 0 0 6px;box-sizing:border-box;cursor:pointer;box-shadow:0 0 0 8px rgba(200,155,44,.25)}
.reel-started .reel-cover{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .6s ease,visibility 0s linear .6s}
.reel-closing{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:140px 24px max(48px,calc(env(safe-area-inset-bottom) + 36px));text-align:center;background:linear-gradient(to top,#072617 55%,rgba(7,38,23,0) 100%)}
.reel-closing-title{margin:0 0 22px;font:500 clamp(28px,9vw,38px)/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;color:#FAF6EE}
.reel-closing-btns{display:flex;flex-direction:column;gap:10px;max-width:320px;margin:0 auto}
.reel-gold,.reel-ghost{min-height:48px;padding:0 20px;border-radius:999px;font:600 16px/1.2 system-ui,sans-serif;cursor:pointer;box-sizing:border-box}
.reel-gold{background:#C89B2C;color:#072617;border:1px solid #C89B2C}
.reel-ghost{background:transparent;color:#E6DEC8;border:1px solid #E6DEC8}
.reel-gold:focus-visible,.reel-ghost:focus-visible,.reel-play:focus-visible,.reel-close:focus-visible{outline:2px solid #E6DEC8;outline-offset:2px}
.reel-stage .reel-line,.reel-stage .reel-when,.reel-stage .reel-closing-title,.reel-stage .reel-cover-title{text-shadow:0 1px 3px rgba(7,38,23,.5)}
/* the entry card, after the first reading */
.reel-entry{border-radius:14px;overflow:hidden;border:1px solid var(--line,#e5dfd0);background:var(--card,#fff);padding:0 0 14px;margin:14px 0}
.reel-entry>*{margin-left:14px;margin-right:14px}
.reel-entry>.reel-entry-art{margin:0 0 10px;width:100%;aspect-ratio:7 / 4;background-size:100% auto;background-position:50% 25.3%;background-repeat:no-repeat;background-color:#22492E}
.reel-entry .reel-small{margin-top:0;margin-bottom:2px;color:var(--faint,#7A6A54)}
.reel-entry h2{margin:0 14px 8px;font-size:18px;line-height:1.3}
.reel-entry button{min-height:44px}
.fv-mute{position:absolute;top:12px;left:12px;z-index:4;min-width:44px;min-height:44px;padding:0 12px;border-radius:999px;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:14px}

/* Morning line + soon cards (app/soon.js) */
.morning-line{font:400 18px/1.4 var(--mv-sans);margin:4px 0 8px}
.morning-todo{margin:0 0 6px}
.soon-list{list-style:none;margin:6px 0;padding:0}
.soon-list li{padding:8px 0;border-bottom:1px solid var(--line,#e3e0d8);line-height:1.4}
.soon-list li:last-child{border-bottom:0}

/* NPS card (app/nps.js) */
.nps-q{margin:4px 0 8px;line-height:1.4}
.nps-scale{display:flex;flex-wrap:wrap;gap:6px}
.nps-n{min-width:40px;min-height:44px;padding:0 8px;border:1px solid var(--line,#d9d4c7);border-radius:10px;background:transparent;font:inherit}
.nps-n.on{background:var(--green,#22492E);color:#fff;border-color:var(--green,#22492E)}
.nps-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--faint,#7A6A54);margin:6px 0}
.nps-why textarea{display:block;width:100%;box-sizing:border-box;margin:6px 0 10px;font:inherit}

/* Language search (app/lang_search.js): no list */
.ls-pick{display:flex;flex-direction:column;gap:10px}
.ls-other{align-self:flex-start;min-height:44px}
.ls-search label{display:block;margin-bottom:6px;font-size:14px}
.ls-search input{width:100%;box-sizing:border-box;min-height:48px;font:inherit;padding:0 12px}
.ls-res{display:flex;flex-direction:column;gap:8px;margin-top:8px}

/* pay sheet: the honest lines (review_pay.js) */
.rp-renew{margin:6px 0;font-size:14px;line-height:1.4}
.rp-launch{margin:4px 0}

/* Go deeper (app/deep.js) */
.deep-go{margin:12px 0}
.ac-tools-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin:10px 0 6px;width:100%}
.ac-tools-bar .ac-more,.ac-tools-bar .voice-hear,.ac-tools-bar .deep-btn{flex:1 1 calc(33.33% - 8px);min-width:0;width:auto;margin:0;min-height:44px;font-size:14px;padding:8px 10px}
.ac-tools-bar .voice-row{margin:0;display:contents}
.ac-tools-bar .deep-go{margin:0;display:contents}
.ac-deep-slot .deep-once,.ac-deep-slot .deep-btn{display:none}
.acct-chats{display:block;margin:8px 0 0;font-weight:600}
.acct-chats-p{margin:4px 0 12px}
.fb-react-wrap{display:flex;align-items:center;gap:4px;margin:8px 0 12px;width:100%}
.fb-react-wrap .fb-row{flex:1;margin:0}
.fb-react-wrap .cr-more{position:static;margin-left:auto;flex:none;align-self:center}
.deep-btn{min-height:44px}
.deep-out h3{margin:12px 0 4px;font-size:16px}
.deep-out ul{margin:4px 0 8px 18px;padding:0}

/* free first page (app/report_preview.js) */
.rp-preview{margin:0 0 calc(var(--mv-nav-h,64px) + 84px);scroll-margin-bottom:calc(var(--mv-nav-h,64px) + 96px);text-align:center}
.rp-preview h3{margin:0 0 6px;font-size:16px}
.rp-preview-img{max-width:100%;height:auto;border:1px solid var(--line,#e3e0d8);border-radius:8px}

/* consent: the six rows (app/onboard.js) */
.cons-rows{margin:10px 0 12px}
.cons-rows dt{font-weight:600;margin-top:10px}
.cons-rows dd{margin:2px 0 0;line-height:1.45}

/* the "New" card (app/new_cards.js) */
.new-card{border-left:4px solid var(--g,#22492E)}
.new-card h2{margin:0 0 4px}
.new-card .nc-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:8px}

/* the compatibility entry (app/compat_entry.js) */
.compat-entry label{display:block;margin:8px 0}
.compat-entry input[type=text],.compat-entry input[type=date],.compat-entry input[type=time],.compat-entry input[type=search]{display:block;width:100%;box-sizing:border-box;margin-top:4px}
.compat-entry .ce-chk{display:flex;gap:8px;align-items:center}
.compat-entry .ce-hits{list-style:none;margin:4px 0;padding:0}
.compat-entry .ce-hit.on{outline:2px solid var(--g,#22492E)}
.compat-entry fieldset{border:1px solid var(--line,#ccd);border-radius:10px;padding:8px 12px}

/* the reviewer kit (app/reviewer_kit.js) */
.reviewer-kit{border-left:4px solid var(--gold,#C9A227)}
.reviewer-kit h2{margin:0 0 4px}

/* PALM (app/palm*.js) */
.palm-flow{position:fixed;inset:0;z-index:2000;background:var(--bg,#fff);overflow:auto;-webkit-overflow-scrolling:touch}
.palm-flow .pf-box{max-width:520px;margin:0 auto;padding:16px}
.palm-flow .pf-chk{display:flex;gap:10px;align-items:flex-start;margin:12px 0}
.palm-beta{font-style:normal;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:99px;border:1px solid currentColor;opacity:.75;vertical-align:middle;margin-left:6px}
.bt-line{margin:10px 0 4px;font-size:14px}.bt-where{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;width:auto;min-height:0}
.bt-sheet{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.55);display:flex;align-items:flex-end}.bt-sheet-in{background:var(--paper,#fffaf2);color:#22492E;width:100%;max-height:70%;overflow:auto;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0}
.bt-co{margin:10px 0;padding:10px 12px;border:1px solid rgba(242,213,138,.45);border-radius:12px}.bt-co p{margin:4px 0}
.pc-big{margin:6px 0 2px;font:700 22px/1.2 var(--mv-sans);text-align:center}.pc-small{margin:0 0 8px;text-align:center;font-size:14px;opacity:.85}
.pc-stage.pc-mirror .pc-video{transform:scaleX(-1)}
.pc-outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.pc-outline .pc-box{stroke:rgba(255,255,255,.75);stroke-width:.7;stroke-dasharray:3 2}
.pc-outline .pc-hand *{stroke:rgba(255,255,255,.85);stroke-width:1.2;fill:rgba(255,255,255,.04)}.pc-stage.ok .pc-outline .pc-hand *,.pc-stage.ok .pc-outline .pc-box{stroke:#3ddc84}
.pc-stage.ok{box-shadow:0 0 0 3px #3ddc84}
.pc-wrap{position:relative;width:100%;aspect-ratio:3/4;background:#000;border-radius:12px;overflow:hidden}
.pc-video{width:100%;height:100%;object-fit:cover}
.pc-guide{position:absolute;inset:14% 18%;border:3px dashed rgba(255,255,255,.7);border-radius:40% 40% 18% 18%;pointer-events:none}
.pc-say{font-weight:600;margin:10px 0}
.pa-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.pa-tab{border-color:var(--lc)}
.pa-tab.on{background:var(--lc);color:#fff}
.pa-stage{position:relative;width:100%;max-width:520px;touch-action:none}
.pa-canvas{display:block;width:100%;height:auto;border-radius:12px}
.pa-svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.pa-handle{cursor:grab;outline:none}
.pa-handle:focus .pa-dot{stroke:#fff;stroke-width:4}
.pa-dot{stroke:#fff;stroke-width:2}
.pa-tabs .pa-tab{width:auto;flex:1 1 44%;margin:0}
.pa-marks button,.pa-row button,.pc-row button,.pc-up{width:auto;display:inline-block;margin:4px 6px 4px 0}
.pa-marks,.pa-row{margin:10px 0}

/* festival cards (app/festival_cards.js) */
.fest-block .fc-card{border:1px solid var(--line,#ddd);border-radius:12px;padding:10px 12px;margin:8px 0}
.fest-block .fc-when{margin:0;font-size:14px;opacity:.8}
.fest-block h3{margin:2px 0 4px}
.fest-block .fc-time{font-weight:600;margin:4px 0}
.fest-block .fc-opts{font-size:14px}

/* the opening blessing line (app/blessing.js): gold with a gentle foil shimmer on screen; none under reduced motion; plain gold in print */
.invocation{text-align:center;font-size:18px;line-height:1.4;margin:10px 0;font-family:"Noto Serif Devanagari","Noto Sans Devanagari",serif;font-weight:600;
  background:linear-gradient(100deg,#CAAB5E 0%,#CAAB5E 38%,#f6e2a3 50%,#CAAB5E 62%,#CAAB5E 100%);background-size:250% 100%;background-position:100% 50%;
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:foil 8s ease-in-out infinite}
@keyframes foil{0%,100%{background-position:100% 50%}50%{background-position:0% 50%}}
@media (prefers-reduced-motion:reduce){.invocation{animation:none;background:none;-webkit-text-fill-color:#CAAB5E;color:#CAAB5E}}
@media print{.invocation{animation:none;background:none;-webkit-text-fill-color:#CAAB5E;color:#CAAB5E;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.palm-invite{border:1px dashed var(--line,#ccc);border-radius:12px;padding:10px 14px;margin:10px 0}
.bless-sw{min-width:92px}

/* the reading's affirmative feedback box and its hearts (app/reading_hearts.js); the page count line on the pay sheet (app/review_pay.js) */
.hearts-box{border:1px solid var(--line,#ddd);border-radius:12px;padding:10px 14px;margin:14px 0}
.hearts-box h3{margin:0 0 4px}
.heart-btn{border:0;background:none;color:#9a9a9a;font-size:18px;line-height:1;min-width:44px;min-height:44px;cursor:pointer}
.heart-btn.on{color:#c2185b}
.rp-pages{display:block;font-size:14px;opacity:.8;margin-top:2px}

/* the small "AI" chip on AI-made pictures: about 3% of the width, bottom-left, 60% opacity on a soft pill, never over a face or a caption (CLAUDE__NO-VISIBLE-LOGO, addendum 1) */
.ai-disclosure{font-size:0.88rem;line-height:1.45;color:#6E6452;margin:0.75rem 0 0;max-width:36em}
.ai-chip{position:absolute;left:2%;bottom:2%;z-index:3;width:3%;min-width:30px;height:auto;pointer-events:none;border:0}
img.ai-chip{position:absolute!important;left:2%!important;bottom:2%!important;top:auto!important;right:auto!important;width:3%!important;min-width:30px!important;max-width:none!important;height:auto!important;margin:0!important}
img.ai-chip.ai-chip-over{position:absolute!important;left:auto!important;bottom:auto!important;right:10px!important;top:10px!important;width:34px!important;min-width:0!important;height:auto!important;max-width:none!important;z-index:3}
/* picture wrappers and live captions (app/pictures.js); <i> elements on purpose */
.pic-wrap{position:relative;display:block;width:100%;line-height:0;font-style:normal;container-type:inline-size}
.pic-wrap>img{display:block;width:100%;height:auto}
.pic-cap{position:absolute;font:600 clamp(15px,5.4cqw,30px)/1.22 -apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",sans-serif;font-style:normal;color:#F6EFDD;text-shadow:0 1px 2px rgba(0,0,0,.35);pointer-events:none;overflow-wrap:anywhere}
.pic-cap-v1c{left:3.4%;top:23%;width:32%}
.pic-cap-v1a{left:7%;top:66%;width:86%}
.tagline{font:400 16px/1.35 var(--mv-sans);opacity:.85;margin:4px 0 12px}
.offer-card{display:grid;grid-template-columns:36px 1fr;gap:6px 10px;align-items:center;margin:12px 0;padding:10px 12px;border:1px solid rgba(242,213,138,.3);border-radius:var(--radius,12px);background:rgba(255,255,255,.04)}
.offer-card .offer-ic{width:36px;height:36px}.offer-tx{display:flex;flex-direction:column;gap:2px}.offer-tx b{font-weight:600}.offer-tx span{font-size:14px;opacity:.85}
.offer-card .offer-go,.offer-card .offer-me,.offer-card .offer-two{grid-column:1 / -1;min-height:44px}
.offer-card .offer-no{grid-column:1 / -1;background:none;border:0;color:inherit;opacity:.7;font-size:12px;text-decoration:underline;padding:4px;min-height:32px;justify-self:start;cursor:pointer}
.offer-unsure{grid-template-columns:1fr}.offer-thanks{grid-column:1 / -1;font-size:14px;opacity:.85}
html[data-sheet="1"] .quota-home{display:none}
/* While a topic sheet is open the Home copy stays out of view. The sheet,
   the ask box and the bottom nav stay. */
html[data-sheet="1"] #h1root > *:not(#h1sheet):not(#h1scrim):not(#h1ask):not(.cc-bar):not(.l365-nav){visibility:hidden}
.rv-season-art{display:block;width:100%;height:auto;border-radius:12px;margin:8px 0 10px}
.rv-banner{display:block;width:100%;height:auto;aspect-ratio:8 / 1;border-radius:10px;margin:0 0 10px;background:#efe7d4}
.rv-sec .ai-wrap,.rv-cover .ai-wrap{display:block;width:100%}
.rv-chakra{position:relative;isolation:isolate}
.rv-chakra-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.16;z-index:-1;pointer-events:none}
.ai-wrap{position:relative;display:inline-block;max-width:100%;line-height:0}
.brand-home .brand-text{font:600 18px/1 var(--mv-sans)}

/* the on-screen reading (app/reading_view.js) */
.rv-page{max-width:640px;margin:0 auto;padding:0 16px 40px}
.rv-cover h1{margin:6px 0 2px}.rv-sub{opacity:.8;margin:0 0 10px}
.rv-sec{margin:22px 0}.rv-sec h2{margin:0 0 6px}
.rv-item{border-top:1px solid var(--line,#e2dccb);padding:8px 0}
.rv-line{display:flex;gap:6px;align-items:flex-start;justify-content:space-between;margin:4px 0}
.rv-line .rv-t{flex:1 1 auto}.rv-a .rv-t,.rv-five .rv-t{font-weight:600}
.rv-lab{font-size:12px;letter-spacing:.04em;text-transform:uppercase;opacity:.65}
.rv-years{width:100%;border-collapse:collapse;font-size:16px}.rv-years td,.rv-years th{padding:6px 4px;text-align:left;vertical-align:top;border-top:1px solid var(--line,#e2dccb)}
.rv-years tr.best{background:rgba(201,162,39,.12)}
.rv-starts{list-style:none;padding:0}.rv-starts li{padding:6px 0;border-top:1px solid var(--line,#e2dccb)}
.rv-fig{margin:12px 0}.rv-fig svg{width:100%;height:auto}.rv-fig figcaption{font-size:14px;opacity:.8}
.rv-legal{margin-top:20px}

/* the on-screen reading, from the real payload (app/reading_view.js) */
.rv-sub-h{margin:10px 0 2px;font-size:16px}
.rv-line.rv-A .rv-t,.rv-line.rv-line .rv-t{font-weight:600}
.rv-line.rv-W .rv-t,.rv-line.rv-note .rv-t{opacity:.85}
.rv-line.rv-best{background:rgba(201,162,39,.14);border-radius:8px;padding:4px 8px}
.rv-chart{width:100%;max-width:520px;display:block;margin:6px auto}
.rv-leg{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;font-size:12px;opacity:.8;margin:2px 0 8px}
.rv-cap{font-size:14px;background:rgba(242,166,90,.15);border-radius:12px;padding:10px 14px}
.rv-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:8px 0}
.rv-tiles>div{background:#22492E;color:#fff;border-radius:12px;padding:10px 12px}.rv-tiles span{display:block;font-size:12px;opacity:.75}.rv-tiles b{font-size:16px}
.rv-cards{display:grid;gap:8px}.rv-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line,#e2dccb);border-radius:12px;padding:8px 10px}
.rv-chip{flex:0 0 auto;min-width:34px;height:34px;border-radius:50%;color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}
.rv-card .pn{font-weight:700}.rv-card .ar{font-size:14px;opacity:.75}.rv-arch{opacity:.7}
.rv-seasons{width:100%;height:auto}.rv-callout{background:#22492E;color:#fff;border-radius:12px;padding:10px 14px;margin-top:8px}.rv-callout p{margin:4px 0 0;color:#fff}
.rv-gifts{display:grid;gap:8px}.rv-gbox{border:1px solid var(--line,#e2dccb);border-radius:12px;padding:8px 12px}.rv-gh{font-weight:700}.rv-gh span{margin-right:6px}
.rv-sky-sig{font-style:italic;text-align:center;margin:12px 0 4px;font-size:16px;line-height:1.35;overflow-wrap:break-word}
.rv-need{display:inline;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:inherit}
.rv-sky-sub{text-align:center;font-size:12px;opacity:.8;margin:0 0 12px}
.rv-scard{border:1px solid var(--line,#e2dccb);border-radius:12px;padding:8px 12px;margin:8px 0}.rv-sdates{font-size:14px;opacity:.7;margin:0}
.rp-cancel .primary{width:100%}
.rp-cancel .rp-go{display:block;margin-top:12px;text-align:center}
.rp-cancel-done .lead{font-weight:600}

/* L4 purchase moments: the value line, and the calm progress while the reading is being prepared */
.rp-value { margin: 4px 0 10px; }
.rp-prog { height: 6px; border-radius: 3px; background: rgba(127,127,127,.25); overflow: hidden; margin: 10px 0 14px; }
.rp-prog > i { display: block; height: 100%; width: 40%; border-radius: 3px; background: currentColor; opacity: .55; animation: rpProg 1.4s ease-in-out infinite; }
@keyframes rpProg { 0% { transform: translateX(-100%); } 100% { transform: translateX(260%); } }
@media (prefers-reduced-motion: reduce) { .rp-prog > i { animation: none; width: 100%; } }
.rp-close { margin: 6px 0 12px; }

/* L1 a11y floor (6 Oct, 390 px pass): text >= 14 px and tap targets >= 44 px on the screens that fell short. Appended last on purpose; remove a line to see the old size. */
.l365-nav button{font-size:12px}
.l365-nav .l365-nav-label{font-size:12px;line-height:1.15}
@media (max-width:360px){
  .l365-nav button{font-size:12px}
  .l365-nav .l365-nav-label{font-size:12px}
}
.beta-strip{font-size:14px}
.beta-tag{font-size:14px}
.h1-today .cite{font-size:14px}
.h1-pills span{font-size:14px;padding:6px 12px}
.h1-pills span[data-more]{min-height:44px;display:inline-flex;align-items:center}
.h1-h4 small{font-size:14px}
.h1-tile .t small{font-size:14px}
input[type=text],input[type=number],input[type=date],input[type=time],input[type=search],input[type=tel],input[type=email],input[type=password],select,textarea{min-height:44px}
.legal-nav button,.privacy-nav button,.skip-link button{min-height:44px;font-size:14px;padding:0 8px}
.machine-note,.a11-wait,.h1-today .d{font-size:14px}.legal-nav button{display:inline-flex;align-items:center;min-width:44px;justify-content:center}
/* L1 a11y floor, second pass: later sheets set these sizes, so the floor wins with !important. */
.machine-note,.a11-wait,.h1-today .d,small,.legal-nav button,.privacy-nav button,.skip-link button{font-size:14px!important}
.legal-nav button,.privacy-nav button,.skip-link button{min-height:44px!important}
.legal-nav button{display:inline-flex;align-items:center}
/* Marks on your body (body_marks.js): quiet card, 14px text, 44px taps */
.body-marks{padding:14px 16px;border-radius:14px}
.body-marks .bm-warm,.body-marks .bm-looking,.body-marks .bm-line,.body-marks .bm-ask,.body-marks .bm-close,.body-marks .bm-note{font-size:16px;line-height:1.5;margin:6px 0}
.body-marks .bm-looking{opacity:.75}
.body-marks .bm-note{font-size:14px;opacity:.75}
.body-marks .bm-row,.body-marks .bm-react{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.body-marks .bm-row button{min-height:44px;font-size:16px;padding:0 18px}
.body-marks .bm-r{min-width:44px;min-height:44px;font-size:18px;border-radius:22px}
.h1-fdc{margin:12px 16px 0;padding:14px;border-radius:14px;background:#fff;border:1px solid var(--line)}
.fdc h3{margin:0 0 6px;font-size:var(--t-h2)}
.fdc-sub,.fdc-tag{margin:0 0 10px;font-size:var(--t-small);color:var(--mu)}
.fdc-tag{font-weight:600;color:var(--ink)}
.fdc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.fdc-tile{text-align:left;padding:10px 12px;border-radius:10px;background:var(--paper);border:1px solid var(--line);min-height:44px;font-size:14px}
.fdc-tile.on{border-color:var(--g);background:var(--sage)}
.fdc-count{font-size:var(--t-small);color:var(--mu)}
.fdc-go{width:100%;margin-top:8px;min-height:44px}
.fdc-card{margin:10px 0;padding:10px 12px;border-radius:10px;background:var(--paper);border:1px solid var(--line)}
.fdc-card h4{margin:0 0 6px;font-size:16px}
.fdc-why{margin:6px 0 0;color:var(--mu)}
.fdc-change{width:100%;margin-top:8px;min-height:44px}
.me-top{display:flex;justify-content:flex-end;margin:0 0 10px}
.me-chip{min-height:44px;font-size:16px;padding:8px 14px;border-radius:999px;border:1px solid var(--line,#ddd)}
.me-birth{margin:12px 0;padding:12px 14px;border-radius:12px;border:1px solid var(--line,#ddd);background:#FAF6EE;color:#1F1A14}.me-bd-top{display:flex;justify-content:space-between;align-items:center}.me-birth h2{margin:0;font-size:16px;color:#1F1A14}.me-bd-row{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:14px}.me-bd-row span{color:#5C4308}
.me-sheet{margin:8px 0 16px;padding:12px 14px;border-radius:12px;border:1px solid var(--line,#ddd)}
.me-questions{margin:12px 0}
.me-questions ul{padding-left:18px}
.me-price{font-weight:600;margin:6px 0}

/* B3 (mock 1): the invite page is the navy star sky of the welcome
   screen, not a cream card. The page behind it goes navy too (:has), so
   there is no cream frame around the sky; without :has the card alone is
   navy and still reads. Every text colour here is AA on #22492E. */
html:has(.entry-one) body{background:#22492E}
html:has(.entry-one) .wrap{padding:0;max-width:none}
html:has(.entry-one) .entry-one{max-width:none;padding-inline:max(20px,calc(50% - 195px))}
.entry-one{
  position:relative;isolation:isolate;overflow:hidden;box-sizing:border-box;
  min-height:100dvh;max-width:430px;margin:0 auto;padding:40px 20px 40px;
  background:radial-gradient(120% 70% at 50% 0%,#22492E 0,#22492E 45%,#22492E 100%);
  color:#E3D6B6
}
.entry-one::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(1.5px 1.5px at 12% 8%,#FDFAF2 50%,transparent 51%),
    radial-gradient(1px 1px at 28% 18%,rgba(247,243,234,.8) 50%,transparent 51%),
    radial-gradient(2px 2px at 46% 6%,#F2D58A 50%,transparent 51%),
    radial-gradient(1px 1px at 63% 14%,rgba(247,243,234,.7) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 82% 9%,#FDFAF2 50%,transparent 51%),
    radial-gradient(1px 1px at 92% 24%,rgba(247,243,234,.6) 50%,transparent 51%),
    radial-gradient(1px 1px at 7% 32%,rgba(247,243,234,.6) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 74% 36%,rgba(242,213,138,.8) 50%,transparent 51%),
    radial-gradient(1px 1px at 18% 58%,rgba(247,243,234,.45) 50%,transparent 51%),
    radial-gradient(1px 1px at 88% 62%,rgba(247,243,234,.45) 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 36% 78%,rgba(247,243,234,.4) 50%,transparent 51%),
    radial-gradient(1px 1px at 66% 86%,rgba(242,213,138,.5) 50%,transparent 51%),
    radial-gradient(1px 1px at 10% 92%,rgba(247,243,234,.35) 50%,transparent 51%);
  opacity:.9
}
.entry-one .gate-logo{margin:0 0 22px}
.entry-one .gate-emb-img{filter:drop-shadow(0 0 14px rgba(230,190,90,.35))}
.entry-one .gate-logo .brand-text{color:#FDFAF2}
.entry-one h1{margin:14px 0 8px;font:600 28px/1.15 var(--mv-sans);color:#FDFAF2}
.entry-k{margin:22px 0 10px;font:600 12px/1 var(--mv-sans);letter-spacing:.12em;text-transform:uppercase;color:#D9C59A}
.entry-row{display:flex;flex-wrap:wrap;gap:8px}
.entry-pick{border:1px solid rgba(247,243,234,.32);background:rgba(255,255,255,.07);color:#FDFAF2;border-radius:999px;padding:10px 14px;min-height:44px;font:600 16px var(--mv-sans);cursor:pointer}
.entry-pick:hover{background:rgba(255,255,255,.13)}
.entry-pick.sel{background:#E6C46B;color:#22492E;border-color:#E6C46B}
.entry-one .primary{margin-top:26px;min-height:48px;background:#FDFAF2;border-color:#FDFAF2;color:#22492E}
.entry-one .primary:hover{background:#fff}
.entry-pick:focus-visible,.entry-one .primary:focus-visible{outline:3px solid #F2D58A;outline-offset:2px}
.entry-ai,.entry-one .ai-disclosure{margin-top:16px;font-size:14px;line-height:1.5;color:#D8CFBC}
.entry-one .need{color:#FFC2B0}
.h1-dayline{margin:6px 16px 0;font:600 18px/1.35 var(--mv-sans);color:#22492E}
.h1-times{margin:8px 16px 0;color:#4D463B;font-size:16px}
.h1-times p{margin:2px 0}
.h1-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 16px 0}
.h1-chips button{border:1px solid #D9D3C4;background:#fff;color:#22492E;border-radius:999px;padding:8px 12px;min-height:44px;font:600 14px var(--mv-sans)}
.h1-tiles-j4{display:flex;flex-wrap:nowrap;gap:12px;margin:12px 0 0;padding:0 16px 8px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.h1-root .h1-pager[data-mode="pages"]{gap:0;padding:0 0 4px;scrollbar-width:none;overscroll-behavior-x:contain}
.h1-pager[data-mode="pages"]::-webkit-scrollbar{display:none}
.h1-page{flex:0 0 100%;box-sizing:border-box;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:0 16px;align-content:start}
.h1-page .h1-tile-j4{flex:none;min-width:0;width:auto;min-height:0}
.h1-page .h1-tile-j4-hero,.h1-page .h1-tile-j4-hero img{height:72px}
.h1-page--rest .h1-tile-j4-hero{display:none}
.h1-page--rest .h1-tile-j4{padding-top:12px;min-height:84px}
.h1-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin:4px 16px 0}
.h1-yearstrip{display:flex;flex-direction:column;gap:10px;margin:4px 16px 0}
.h1-yearstrip-row{display:flex;align-items:center;gap:10px}
.h1-yearstrip-label{flex:0 0 108px;font:400 14px/1.3 system-ui,sans-serif;color:#22492E;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h1-yearstrip-segs{flex:1;display:flex;gap:3px;min-width:0}
.h1-yearstrip-seg{flex:1;height:14px;min-width:10px;border:0;border-radius:4px;padding:0;cursor:pointer}
.h1-yearstrip-good{background:#3E8E5A}
.h1-yearstrip-steady{background:#CFC6B0}
.h1-yearstrip-careful{background:#C98A2C}
.h1-yearstrip-seg:focus-visible{outline:2px solid #22492E;outline-offset:2px}
.h1-calexport{display:block;margin:12px 16px 0}
.h1-3sys-badge{display:flex;flex-direction:column;gap:2px;margin:0 0 12px;padding:10px 12px;border-radius:12px;font:400 14px/1.4 system-ui,sans-serif}
.h1-3sys-badge b{font:600 14px var(--mv-sans)}
.h1-3sys-agree{background:#E8F3EC;color:#1F5133}
.h1-3sys-disagree{background:#FBF0E2;color:#6B4A14}
.h1-root .h1-dot{position:relative;width:8px;height:8px;padding:0;border-radius:4px;background:#CFC6B0;transition:width .2s,background .2s}
.h1-root .h1-dot::after{content:"";position:absolute;inset:-18px -6px}
.h1-root .h1-dot.on{width:22px;background:#22492E}
@media (prefers-reduced-motion:reduce){.h1-root .h1-dot{transition:none}}
.h1-tile-j4{flex:0 0 40%;min-width:148px;scroll-snap-align:start;text-align:left;background:#fff;border:1px solid #D9D3C4;border-radius:18px;padding:0 0 12px;min-height:128px;overflow:hidden;box-shadow:0 2px 10px rgba(15,74,44,.06);position:relative}
.h1-today-times{margin:4px 0 0;font-size:16px;line-height:1.35;color:#FDFAF2}
.h1-today .h1-do,.h1-today .h1-avoid,.h1-today .h1-luck{margin:4px 0 0;font:600 16px/1.4 var(--mv-sans);color:#FDFAF2}
.h1-today .h1-avoid{color:#F2D58A}
.h1-today .h1-luck{font-weight:400;color:#E6C46B}
.h1-do,.h1-avoid,.h1-luck{margin:4px 16px 0;font:600 16px/1.4 var(--mv-sans);color:#22492E}
.h1-today .d{font-weight:700}
.h1-tile-j4::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#CAAB5E,#E6C46B);opacity:.85}
.h1-tile-j4-hero{display:block;height:96px;margin:0 0 8px;background:#FDFAF2 center/cover no-repeat;border-bottom:1px solid #E2D9C4;overflow:hidden}
.h1-tile-j4-hero img{display:block;width:100%;height:96px;object-fit:cover;object-position:center 28%}
.h1-tile-j4 b{display:block;font:600 16px/1.2 var(--mv-sans);color:#22492E;padding:0 12px}
.h1-tile-j4 small{display:block;margin-top:4px;font-size:12px;line-height:1.35;color:#4D463B;padding:0 12px}
.h1-tile-j4-lbl{display:block;margin-top:5px;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#5F584F}
.h1-tile-j4-lbl:first-child{margin-top:4px}
.h1-tile-j4-line{display:block;margin-top:1px;font-size:12px;line-height:1.35;color:#4D463B}
.h1-brief-invite{margin:10px 0 0;font-size:14px;color:#4D463B;font-weight:400}
.h1-tile-j4-more{grid-column:1/-1;padding:14px 12px;min-height:72px}
.h1-tile-j4-more::after{opacity:.5}
.h1-tile-j4-more .h1-tile-j4-hero{display:none}
.h1-root:not(.h1-welcome){background:#FDFAF2}
.h1-bar{border-bottom:1px solid #E2D9C4;background:#FDFAF2}
.h1-j4-more{position:fixed;inset:0;z-index:12;background:rgba(15,74,44,.45);padding:24px 16px;display:flex;align-items:flex-end}
.h1-j4-more[hidden]{display:none!important}
.h1-j4-more-in{width:100%;max-width:430px;margin:0 auto;background:#FDFAF2;border-radius:16px 16px 0 0;padding:16px;max-height:70vh;overflow:auto}
.h1-j4-more-list{display:flex;flex-direction:column;gap:8px;margin:12px 0 16px}
.h1-j4-more-row{text-align:left;border:1px solid #D9D3C4;border-radius:12px;padding:12px 14px;background:#fff;font:600 16px var(--mv-sans);min-height:44px}
.h1-root .h1-brief{margin:0 0 12px;padding:12px;border-radius:12px;background:#fff;border:1px solid #E2D9C4}
.h1-root .h1-brief-h{margin:0 0 8px;font:600 16px/1.25 var(--mv-sans)}
.h1-root .h1-brief p{margin:0 0 8px;font-size:14px;line-height:1.45;color:#1A1A1A}
.h1-root .h1-brief-win{font-weight:600;color:#22492E}
.h1-root .h1-bnn{margin:0 0 10px}
.h1-root .h1-bnn p{margin:0 0 6px}
.h1-root .h1-bnn .h1-tile-j4-lbl{display:inline-block;min-width:52px;margin-right:6px;font-weight:700}
.h1-root .h1-brief-step{color:#4D463B}
.h1-marriage-ask{position:static;margin:0 16px 12px;padding:14px;border-radius:14px;background:#22492E;color:#FDFAF2}
.h1-marriage-ask p{color:#FDFAF2}
.h1-marriage-opts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.h1-marriage-opts button{border:1px solid #E6C46B;background:#fff;color:#22492E;border-radius:999px;padding:8px 12px;font:inherit;font-weight:600;min-height:44px}
.h1-marriage-skip{border-color:#D9D3C4!important;background:transparent!important;font-weight:400!important}
.cr-host{position:relative}
.cr-more{position:absolute;top:6px;right:6px;z-index:2;min-width:36px;min-height:36px;padding:0 8px;border:0;border-radius:8px;background:rgba(247,243,234,.92);color:#4D463B;font-size:18px;line-height:1;cursor:pointer}
.cr-pop{position:absolute;top:40px;right:6px;z-index:3;min-width:160px;padding:6px;border-radius:10px;background:#fff;border:1px solid #D9D3C4;box-shadow:0 6px 24px rgba(0,0,0,.12)}
.cr-act{display:block;width:100%;text-align:left;padding:10px 12px;border:0;background:transparent;font:inherit;font-size:14px;cursor:pointer;border-radius:8px}
.cr-act:hover,.cr-act:focus{background:#FDFAF2}
.cr-sheet{margin-top:8px;padding:12px;border-radius:12px;background:#fff;border:1px solid #D9D3C4}
.cr-sheet-h{margin:0 0 10px;font:600 16px var(--mv-sans);color:#22492E}
.cr-reasons{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.cr-reason{text-align:left;padding:10px 12px;border:1px solid #D9D3C4;border-radius:10px;background:#FDFAF2;font:inherit;font-size:14px;cursor:pointer}
.cr-reason.on{border-color:#22492E;background:#fff;font-weight:600}
.cr-note-l{display:block;font-size:14px;color:#4D463B}
.cr-note{width:100%;margin-top:6px;font:inherit;font-size:14px;border:1px solid #D9D3C4;border-radius:8px;padding:8px}
.cr-sheet-actions{display:flex;gap:8px;margin-top:10px;justify-content:flex-end}
.cr-cancel{padding:8px 12px;border:1px solid #D9D3C4;border-radius:999px;background:#fff;font:inherit;cursor:pointer}
.mc-turn--mavella.cr-host,.mc-turn--mavella .cr-host{padding-top:28px}
.h1-film{display:block;margin:16px 16px 0;padding:16px;border-radius:16px;background:#22492E;color:#FDFAF2;text-decoration:none}
.h1-film b{display:block;font:600 18px/1.2 var(--mv-sans)}
.h1-film small{display:block;margin-top:4px;color:#E6C46B}
.h1-own{display:flex;flex-direction:column;gap:8px;margin:12px 16px 0}
.h1-own button{text-align:left;background:#fff;border:1px solid #D9D3C4;border-radius:14px;padding:12px 14px;min-height:44px}
.h1-own b{display:block;color:#22492E}
.h1-own small{display:block;color:#4D463B;font-size:14px;margin-top:2px}
.h1-help-line{margin:18px 16px 88px;padding:0 2px;font-size:14px;line-height:1.4;max-width:calc(100% - 32px)}
.h1-help-line a{color:#22492E;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.h1-root{--paper:#FDFAF2;--gold:#E6C46B}

/* My chats (Me tab, 390px, English) */
.mc-page{width:100%;min-width:0;max-width:100%;align-self:stretch;box-sizing:border-box;margin:0 auto;padding:12px 16px 96px;color:#22492E}
.mc-conv-link,.mc-person{width:100%;box-sizing:border-box}
.mc-back{margin:0 0 8px}
.mc-people{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.mc-filters{display:flex;gap:8px;margin:12px 0 8px}
.mc-filter{border:1px solid #D9D3C4;border-radius:999px;padding:8px 14px;background:#fff;font:inherit;font-size:14px;cursor:pointer}
.mc-filter.on{background:#22492E;color:#FDFAF2;border-color:#22492E}
.mc-group{margin:16px 0 0}
.mc-group-h{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:#4D463B;margin:0 0 8px}
.mc-convs{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;width:100%;box-sizing:border-box}
.mc-conv{display:flex;align-items:center;gap:6px;width:100%;min-width:0}
.mc-conv-link{flex:1 1 auto;min-width:0;display:block;padding:12px 14px;border:1px solid #D9D3C4;border-radius:14px;background:#fff;text-decoration:none;color:inherit}
.mc-conv-title{display:block;font-weight:600;overflow-wrap:anywhere}
.mc-conv-meta{display:block;margin-top:4px;font-size:14px;color:#4D463B}
.mc-conv-rename{min-width:44px;min-height:44px;font-size:18px}
.mc-steps-only{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.mc-step-row{display:block;padding:12px 14px;border:1px solid #D9D3C4;border-radius:14px;background:#fff;text-decoration:none;color:inherit}
.mc-step-topic{display:block;font-size:12px;font-weight:600;color:#4D463B;text-transform:uppercase;letter-spacing:.03em}
.mc-step-text{display:block;margin-top:4px;font-size:14px;line-height:1.35}
.mc-thread-head{display:flex;align-items:flex-start;gap:8px}
.mc-thread-head h1{flex:1;margin:0}
.mc-rename{min-width:44px;min-height:44px;font-size:18px}
.mc-turn{display:flex;flex-direction:column;gap:6px;align-self:flex-start;max-width:92%}
.mc-step{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:#22492E;background:#FDFAF2;border-radius:10px;padding:8px 10px;margin:0 0 4px 4px}
.mc-step input{margin-top:3px;min-width:18px;min-height:18px}
.mc-person{display:block;padding:12px 14px;border:1px solid #D9D3C4;border-radius:14px;background:#fff;text-decoration:none;color:inherit}
.mc-person-name{display:block;font-weight:600}
.mc-person-snippet{display:block;margin-top:4px;font-size:14px;color:#4D463B;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.me-chats-entry{margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #D9D3C4}
.me-chats-link{font-weight:600}
.mc-thread{display:flex;flex-direction:column;gap:8px;margin:16px 0;max-height:55vh;overflow-y:auto;padding:4px 0}
.mc-day{align-self:center;font-size:12px;color:#4D463B;background:#FDFAF2;border-radius:999px;padding:4px 10px}
.mc-bubble{max-width:80%;padding:10px 12px;border-radius:16px;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.mc-bubble--you{align-self:flex-end;background:#22492E;color:#FDFAF2;border-bottom-right-radius:4px}
.mc-bubble--mavella{align-self:flex-start;background:#fff;border:1px solid #D9D3C4;border-bottom-left-radius:4px}
.mc-bubble--mavella[role="button"]{cursor:pointer}
.mc-reply{display:flex;gap:8px;align-items:center;margin-top:8px}
.mc-reply input{flex:1;min-width:0;min-height:48px;border:1px solid #D9D3C4;border-radius:12px;padding:10px 12px;font:inherit;font-size:16px}
.mc-reply button{min-height:48px;min-width:72px}
.mc-full{border:0;border-radius:16px;padding:16px;max-width:92vw}
.mc-full-body{margin:12px 0;max-height:60vh;overflow-y:auto;white-space:pre-wrap}
html[data-screen="my_chats"] body,html[data-screen="my_chat"] body{background:#FBF8F1}
.h1-share-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 16px 0}
.h1-tarot-slot{margin:12px 16px 0}
.h1-tarot-card{padding:14px;border-radius:16px;background:#fff;border:1px solid var(--line)}
.h1-homereports{margin:0 16px 16px}
.fv-build{position:fixed;inset:0;z-index:9500;background:#F6F1E7;color:#22492E;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px}
.fv-build .fv-close,.fv-skip-always{position:fixed;top:12px;right:12px;z-index:9600;min-height:44px;border-radius:999px;border:1px solid #22492E;background:#fff;color:#22492E;padding:8px 14px}
.fv-build-hi{margin:0;font:600 22px/1.3 var(--mv-sans);text-align:center}
.fv-build-line{display:flex;align-items:center;gap:12px;margin:0;font:400 18px/1.35 var(--mv-sans)}
.fv-build-acts{display:flex;gap:8px}
.fv-build-acts button{min-height:44px}
.reel-end-row>.reel-share-small{flex:0 0 auto;width:auto;display:inline-flex;min-height:36px;padding:4px 16px;font-size:14px}
.reel-share-btns{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.reel-share-btns button{width:auto;min-height:40px;font-size:14px}
#reelEnd .fb-row{justify-content:center;gap:6px;margin:4px 0 0}
#reelEnd .fb-btn.fb-emoji{flex:0 0 auto;min-width:36px;min-height:36px;width:auto;padding:2px 6px;font-size:28px;line-height:1;background:none;border:0}
.reel-share-pop{position:fixed;inset:0;z-index:9100;background:rgba(15,74,44,.48);display:flex;align-items:flex-end;justify-content:center;padding:16px;animation:reelShareFade .28s ease-out}
.reel-share-pop-in{background:#FDFAF2;color:#22492E;border-radius:20px 20px 0 0;padding:18px 16px 24px;width:100%;max-width:390px;position:relative;border:1px solid #E2D9C4;animation:reelShareUp .32s cubic-bezier(.22,1,.36,1)}
@keyframes reelShareFade{from{opacity:0}to{opacity:1}}
@keyframes reelShareUp{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}
.reel-share-pop-btns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.reel-share-pop-btns button{min-height:44px}
.reel-share-pop-x{position:absolute;top:8px;right:10px;min-width:44px;min-height:44px}
.h1-help-overlay{position:fixed;inset:0;z-index:80;background:#22492E;display:flex;align-items:flex-start;justify-content:center;padding:24px 16px;overflow:auto}
.h1-help-overlay.soft{background:none;pointer-events:none;padding-top:8px;overflow:visible}
.h1-help-overlay.soft .h1-help-full{pointer-events:auto;margin-top:0}
.h1-help-full{background:#FDFAF2;color:#22492E;border-radius:18px;max-width:420px;width:100%;padding:16px 16px 20px;margin-top:6vh;box-shadow:0 12px 40px rgba(15,74,44,.18)}
.h1-help-full a.help-link,.help-card a.help-link{display:block;box-sizing:border-box;text-decoration:none;text-align:center;color:#22492E;background:#fff;border:1px solid #D9D3C4;border-radius:10px;min-height:44px;padding:12px 14px;margin-top:8px;font-weight:600}
.help-all a.help-primary,.help-all a.help-secondary{display:block;box-sizing:border-box;width:100%;text-align:center;text-decoration:none;border-radius:12px;min-height:52px;padding:15px 14px;font-weight:700;font-size:16px;margin-top:10px}
.help-all a.help-primary{background:#0F5C47;color:#fff;margin-top:0}
.help-all a.help-primary .help-pname{display:block;font-size:14px;font-weight:400;opacity:.9;margin-top:2px}
.help-medical .help-lead{margin:0 0 12px;font-size:16px}
.help-all a.help-secondary{background:#fff;color:#14213D;border:1px solid #D9D3C4}
/* U5: 112/911 is a text line; "Message someone close" is a brand (green + gold) button */
.help-all .help-line{margin:12px 0 0;font-size:16px;line-height:1.4;text-align:center;color:inherit}
.help-all .help-line a{color:inherit;font-weight:700;text-decoration:underline}
.help-all a.help-secondary.help-close{background:#0F5C47;color:#fff;border:1.5px solid #D6B45A}
.help-all a.help-primary:focus-visible,.help-all a.help-secondary:focus-visible{outline:3px solid #C9A227;outline-offset:2px}
.h1-help-full .ac-question{font-weight:600;margin:0 0 12px}
.h1-story{margin:12px 16px;padding:14px 16px;background:#fff;border:1px solid #E2D9C4;border-radius:16px}
.h1-pace{display:inline-block;width:28px;height:28px;border-radius:50%;border:3px solid #E2D9C4;border-top-color:#CAAB5E;animation:h1pace 1s linear infinite}
@media (prefers-reduced-motion: reduce){.h1-pace{animation:none}}
@keyframes h1pace{to{transform:rotate(360deg)}}
.h1-story h2{margin:0 0 8px;font:600 18px/1.2 var(--mv-sans);color:#22492E}
.h1-story-wait{display:flex;align-items:center;gap:12px;margin:0;font:400 16px/1.35 var(--mv-sans);color:#22492E}
.h1-lifestory{display:flex;align-items:center;gap:12px;box-sizing:border-box;width:calc(100% - 32px);min-height:72px;margin:12px 16px;padding:10px 14px 10px 10px;background:#22492E;color:#fff;border:0;border-radius:16px;text-align:left;font-family:inherit;cursor:pointer}
.h1-lifestory-poster{flex:0 0 80px;height:52px;border-radius:10px;background:#CAAB5E url(media/og_film.png) center/cover no-repeat}
.h1-lifestory-text{flex:1;display:flex;flex-direction:column;gap:2px;font:400 14px/1.3 var(--mv-sans)}
.h1-lifestory-text b{font:600 18px/1.2 var(--mv-sans)}
.h1-lifestory-play{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border-radius:999px;background:#fff;color:#22492E;font-weight:600}
.h1-play{display:inline-block;margin-left:8px;font-weight:600}
.h1-story-acts{display:flex;gap:8px;margin-top:12px}
.h1-story-acts button{min-height:44px;border-radius:999px;border:1px solid #22492E;background:#22492E;color:#fff;padding:8px 16px;font-family:inherit}
.h1-story-acts button[data-story="no"]{background:transparent;color:#22492E}
/* R11-FIX: the new "Your story so far" card adds height to Home; on a short (<=815px)
   window that pushed the inline ask card's bottom ~8px behind the fixed nav. Tighten the
   story card's own spacing there so the ask card clears the nav. 390x844 is untouched. */
@media (max-height: 815px){
  .h1-story{margin:6px 16px;padding:10px 16px}
  .h1-story h2{margin:0 0 4px}
}
.h1-root .primary,button.primary{background:#22492E;color:#fff;border-color:#22492E}
.h1-marriage-skip,.skip-link button,button.link{font-family:inherit;border:1px solid #22492E;border-radius:999px;background:transparent;color:#22492E;padding:8px 14px;min-height:44px}
.h1-tile img[src=""],.h1-sheet .hd img[hidden]{display:none}
.me-settings-card,.me-plan-card{margin:12px 0;padding:12px 14px;border-radius:12px;border:1px solid var(--line,#ddd);background:#fff}
.me-set-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;min-height:44px}
.me-set-bless{border:0;margin:8px 0;padding:0}
.me-set-bless legend{font-weight:600;margin-bottom:6px}
.me-plan-soft{margin:6px 0 0;font-size:14px;color:#4D463B}

.h1-dailies-stack{margin:8px 16px 0;display:flex;flex-direction:column;gap:10px}
.h1-dailies-h{font:600 14px/1.2 var(--mv-sans);color:var(--navy,#22492E);letter-spacing:.06em;text-transform:uppercase;margin:0}
.h1-daily-card{padding:12px 14px;border-radius:16px;background:#fff;border:1px solid var(--line,#e8e4dc);box-shadow:0 1px 0 rgba(15,74,44,.04)}
.h1-daily-card h3{margin:0 0 6px;font:600 14px/1.25 var(--mv-sans);color:var(--navy,#22492E)}
.h1-daily-body{margin:0;font:400 14px/1.45 system-ui;color:var(--ink,#1a1c21)}
.h1-daily-note{margin:6px 0 0;font-size:12px;color:var(--mu,#6a6d75)}
.h1-dailies-wait{margin:0;font-size:14px;color:var(--mu)}
.yd-overlay{position:fixed;inset:0;z-index:9000;background:rgba(15,74,44,.55);display:flex;align-items:flex-end;justify-content:center;padding:16px}
.yd-overlay[hidden]{display:none!important}
.yd-pick{width:100%;max-width:390px;max-height:90vh;overflow:auto;background:#fff;border-radius:20px 20px 0 0;padding:18px 16px 24px;box-shadow:0 -8px 32px rgba(0,0,0,.12)}
.yd-pick h2{margin:0 0 8px;font:600 18px var(--mv-sans);color:var(--navy,#22492E)}
.yd-pick ul{list-style:none;margin:12px 0;padding:0}
.yd-pick li{margin:8px 0;font-size:14px;line-height:1.35}
.yd-pick label{display:flex;gap:8px;align-items:flex-start}
.yd-settings-row{margin:10px 0 0}
.sol-check{margin:12px 0 0;padding:12px;border-radius:12px;border:1px solid var(--line,#D9D3C4);background:#fff}
.sol-check p{margin:0 0 10px;font-size:14px;color:#22492E}
.sol-check button{margin:0 8px 0 0;min-height:44px;padding:10px 14px;border-radius:10px;font-size:14px}
.sol-check .sol-yes{background:#22492E;color:#fff;border:1px solid #22492E;font-weight:600}
.sol-check .sol-no{background:#fff;color:#22492E;border:1px solid #D9D3C4}
.sol-scrim{position:fixed;inset:0;background:rgba(15,74,44,.45);opacity:0;pointer-events:none;transition:opacity .25s;z-index:40}
.sol-scrim.on{opacity:1;pointer-events:auto}
.sol-sheet{position:fixed;left:0;right:0;bottom:0;max-height:78vh;background:#FDFAF2;border-radius:18px 18px 0 0;box-shadow:0 -8px 32px rgba(15,74,44,.18);transform:translateY(110%);transition:transform .28s ease;z-index:41;padding:8px 16px 24px;overflow-y:auto}
.sol-sheet.on{transform:none}
.sol-sheet .grab{width:44px;height:5px;border-radius:5px;background:#D8CFBB;margin:6px auto 12px}
.sol-sheet h2{margin:0 0 12px;font:600 18px/1.25 var(--mv-sans);color:#22492E}
.sol-sheet .sol-act{display:block;width:100%;margin:0 0 10px;min-height:48px;border-radius:12px;font-size:16px}
.sol-report{margin:14px 0;padding:12px;border-radius:12px;border:1px solid #D9D3C4;background:#fff}
.sol-report h3{margin:0 0 6px;font-size:16px;color:#22492E}
.sol-reviewer{margin:0 0 8px;font-size:14px;color:#4D463B}
.sol-close{width:100%;margin-top:4px}
.sol-status{margin:8px 0 0;font-size:14px;color:#4D463B}
.svc2-includes{margin:2px 0 0;font-size:var(--t-micro,12px);line-height:1.4;color:#4D463B}
.svc2-free-tag{margin:6px 0 0;padding:3px 9px;align-self:flex-start;font-size:var(--t-micro,12px);font-weight:600;color:#22492E;background:#F3E8C4;border-radius:999px}
.svc2-get{display:inline-block;margin-top:10px;padding:10px 18px;min-height:44px;box-sizing:border-box;border-radius:999px;background:#22492E;color:#fff;font-size:var(--t-small,14px);font-weight:600;cursor:pointer}
.svc2-free-link{margin-top:8px;font-size:var(--t-small,13px);font-weight:600;color:#22492E}
.chat-close{margin:14px 0 0;padding:14px 14px 8px;border-radius:16px;background:#FDFAF2;border:1px solid #E2D9C4;border-top:3px solid var(--gold,#CAAB5E);color:#22492E;font-family:var(--mv-sans)}
.chat-close h3{margin:0 0 4px;font:600 18px/1.3 var(--mv-sans);color:#22492E}
.chat-close p{margin:0 0 8px;font-size:16px;line-height:1.4}
.cc-glad{font-weight:600}
.cc-eye-acts,.cc-react{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
.chat-close button{min-height:44px;border-radius:999px;padding:8px 14px;font:600 16px/1 var(--mv-sans)}
.cc-daily,.cc-report-go,.cc-share,.cc-yes{background:#22492E;color:#fff;border:1px solid #22492E}
.cc-weekly,.cc-notnow,.cc-no,.cc-react-btn{background:#fff;color:#22492E;border:1px solid #D9D3C4}
.cc-react-btn.on{border-color:#22492E}
.cc-check{margin:12px 0 0;padding:12px;border-radius:12px;border:1px solid #E2D9C4;background:#fff}
.cc-check p{margin:0 0 10px}
.cc-reviewer,.cc-rs0,.cc-free{color:#4D463B;font-size:14px}
.cc-follow{margin-top:12px}
.cc-follow-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin:6px 0}
.fv-walk{position:fixed;inset:0;z-index:80;background:#22492E;color:#FDFAF2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 22px}
.fv-walk h1{margin:0 0 12px;font:600 22px/1.2 var(--mv-sans);color:#FDFAF2}
.fv-walk .fv-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:0 0 14px}.fv-walk .fv-chip{font:inherit;font-size:16px;color:#FAF6EE;background:rgba(250,246,238,.12);border:1px solid #3B6E52;border-radius:999px;padding:9px 16px;min-height:44px;cursor:pointer}.fv-walk .fv-chip.sel{border-color:#C89B2C;color:#C89B2C}.fv-walk .fv-skip-pref{font:inherit;font-size:14px;color:#E6DEC8;background:none;border:0;text-decoration:underline;text-underline-offset:4px;padding:12px;min-height:44px;cursor:pointer}
.fv-k{margin:10px 0 0;font:400 12px/1.3 var(--mv-sans);letter-spacing:.04em;color:#E6C46B}
.fv-val{margin:2px 0 0;font:400 18px/1.35 var(--mv-sans);color:#FDFAF2}
.fv-next,.fv-play{margin-top:22px;min-height:48px;padding:12px 22px;border:0;border-radius:999px;background:#E6C46B;color:#22492E;font:700 16px/1 var(--mv-sans)}
.fv-ring{width:72px;height:72px;border-radius:50%;border:2px solid rgba(230,190,90,.35);border-top-color:#E6C46B;animation:fvSpin 1.4s linear infinite}
.fv-line{margin:18px 0 0;max-width:28ch;min-height:3em;font:400 18px/1.4 var(--mv-sans);color:#F6EFDD}
.fv-walk.is-ready .fv-ring{animation:none;border-color:#E6C46B}
@keyframes fvSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.fv-ring{animation:none}}
.hp-walk{position:fixed;inset:0;z-index:82;background:#FDFAF2;color:#22492E;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 18px}
.hp-walk h1{margin:8px 0 16px;max-width:22ch;font:600 22px/1.25 var(--mv-sans)}
.hp-prog{margin:0;font:600 14px/1 var(--mv-sans);color:#8A5A1E}
.hp-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:360px}
.hp-chip,.hp-skip,.hp-share{min-height:48px;border-radius:999px;padding:10px 16px;font:600 16px/1 var(--mv-sans)}
.hp-chip{border:1px solid #E6C46B;background:#fff;color:#22492E}
.hp-skip{margin-top:18px;border:0;background:transparent;color:#22492E}
.hp-share,.hp-walk .primary{margin-top:16px;border:0;background:#E6C46B;color:#22492E}
.hp-sum,.hp-note{max-width:34ch;font:400 16px/1.4 var(--mv-sans)}
/* YOUR PLAN (light): bottom sheet from the close card; shares the solved-sheet shell */
.cc-plan{margin:0 0 10px;padding:12px;border-radius:12px;border:1px solid #E2D9C4;background:#fff}
.cc-plan h3{margin:0 0 2px}
.cc-plan-go{background:#22492E;color:#fff;border:1px solid #22492E}
.yp-sheet{max-height:92vh;padding-bottom:28px}
.yp-sheet .yp-ed{margin:0 0 4px;text-align:center;font-size:14px;color:#8A6A1F;letter-spacing:.02em}
.yp-sheet .yp-ed-sa{font-size:16px}
.yp-sheet h2{margin-bottom:2px}
.yp-sheet .yp-free{display:inline-block;margin:0 0 12px;padding:3px 9px;font-size:12px;font-weight:600;color:#22492E;background:#F3E8C4;border-radius:999px}
.yp-block{margin:0 0 12px;padding:12px 14px;border-radius:12px;border:1px solid #D9D3C4;background:#fff}
.yp-block h3{margin:0 0 4px;font:600 14px/1.3 var(--mv-sans);letter-spacing:.04em;text-transform:uppercase;color:#6B5A2E}
.yp-block p{margin:0;font-size:16px;line-height:1.45;color:#22492E}
.yp-klw dl{margin:0}
.yp-klw-row{display:flex;gap:12px;padding:8px 0;border-top:1px solid #EEE6D3}
.yp-klw-row:first-child{border-top:0;padding-top:0}
.yp-klw-row:last-child{padding-bottom:0}
.yp-klw dt{flex:0 0 52px;font:700 14px/1.45 var(--mv-sans);color:#8A6A1F}
.yp-klw dd{margin:0;font-size:16px;line-height:1.45;color:#22492E}
.yp-locked{margin:14px 0 10px;padding:14px;border-radius:14px;border:1px solid #D9D3C4;background:#FBF8F1}
.yp-locked ul{list-style:none;margin:8px 0 12px;padding:0}
.yp-lock-row{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid #EEE6D3;color:#4D463B}
.yp-lock-row:first-child{border-top:0}
.yp-lock{flex:0 0 auto;margin-top:2px;color:#8A6A1F}
.yp-lock-t strong{display:block;font-size:16px;color:#22492E}
.yp-lock-t small{display:block;font-size:14px;line-height:1.4;filter:blur(.4px);opacity:.85}
.yp-price{margin:0 0 10px;font-size:22px;font-weight:700;color:#22492E}
.yp-reviewer{margin:0 0 10px;font-size:14px;color:#4D463B}
.yp-go,.yp-close{display:block;width:100%;min-height:48px;border-radius:12px;font-size:16px}
.yp-close{margin-top:6px}
@media (prefers-reduced-motion:reduce){.yp-sheet,.yp-scrim{transition:none}}
.ay-star-card{position:relative}
.ay-star-play{position:absolute;right:8px;bottom:8px;min-height:44px;min-width:44px;padding:0 14px;border-radius:22px;border:1px solid #E6DDC8;background:rgba(255,255,255,.92);color:inherit;font:inherit;cursor:pointer}
.ay-star-play[hidden]{display:none!important}
.calm-more{margin:12px 0}
.calm-more>summary{display:flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line,#e2dccb);border-radius:12px;cursor:pointer;list-style:none;font:inherit}
.calm-more>summary::-webkit-details-marker{display:none}
.calm-more>summary::after{content:"\25BE";margin-left:auto}
.calm-more[open]>summary::after{content:"\25B4"}
.calm-more-body{padding-top:8px}

/* CR-3 first run: no floating Skip on the entry screens; one agree block; app-styled birth-time picker */
html[data-screen="h1lang"] .fv-skip-always,html[data-screen="age"] .fv-skip-always,html[data-screen="consent"] .fv-skip-always,
html[data-screen="birth"] .fv-skip-always,html[data-screen="rectify"] .fv-skip-always{display:none!important}
.fr-agree{margin:14px 0 8px;text-align:left}
.fr-agree .fr-tick{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:8px 0;font-size:16px;line-height:1.35}
.fr-agree .fr-tick{min-height:48px}
.fr-agree .fr-tick input{flex:0 0 44px;width:44px;height:44px;margin:0}
.fr-agree .fr-more{margin:4px 0 0;font-size:14px}
.fr-agree .fr-more summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.fr-need{color:var(--accent,#b3261e);font-size:14px;margin:6px 0 0}
.tob-app .tob-cell,.tob-app .seg-b{min-height:48px;min-width:44px;font-size:16px;border:1px solid var(--line,#c9c2b4);background:var(--card,#fff);color:var(--ink,#1c1a17);border-radius:10px}
.tob-app .tob-cell.on,.tob-app .seg-b.on{background:var(--deep,#22492E);color:var(--paper,#fff);border-color:var(--deep,#22492E);font-weight:700;box-shadow:inset 0 -3px 0 var(--brass,#b08a3e)}
.tob-app .tob-ampm{display:flex;gap:8px;margin-top:12px}
.tob-app .tob-ampm .seg-b{flex:1}
.tob-app .tob-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.tob-app .tob-readout{font-size:22px;margin:0 0 10px}
.tob-app .tob-unknown{width:100%;min-height:48px;margin-top:12px}
.fr-agree .note,.fr-agree .calm-more-body{color:inherit;opacity:.85}
.fr-agree .calm-more{margin-top:6px}

/* R1R2 CR-7: the ask card is solid so nothing behind it shows through, with room below the last card. */
form.h1-home-ask{background-color:#fff;background-image:none;opacity:1;isolation:isolate;box-shadow:0 0 0 8px #fff,0 8px 24px rgba(15,74,44,.12)}
html[data-screen="h1home"] .h1-root{padding-bottom:132px}
@media (min-width:720px){
  form.h1-home-ask{box-shadow:0 8px 24px rgba(15,74,44,.08)}
  html[data-screen="h1home"] .h1-root{padding-bottom:88px}
}

/* M2-SHEET (founder 12 Oct 16:30): the topic picture shows faces (92px strip, anchored near the top, not the middle);
   an empty chip row or thread leaves no empty bar; on a wide screen the ask box rides above the nav while the sheet is open. */
.h1-sheet .h1-qc:empty,.h1-sheet .h1-thread:empty{display:none}
.h1-sheet.on .h1-qc:empty{border:0;margin:0;padding:0}
@media (min-width:720px){
  html[data-sheet="1"] form.h1-home-ask{
    position:fixed;left:50%;right:auto;transform:translateX(-50%);
    width:min(448px, calc(100vw - 32px));margin:0;z-index:45;
    bottom:calc(var(--l365-nav-h) + var(--l365-install-h, 0px) + 8px)
  }
}
.h1-sheet{box-sizing:border-box}
/* HOME TYPE SCALE (founder screenshots 12 Oct 16:30). One scale and one edge
   for every Home block at 390x844 and 1280x800:
   title 20 / tile title 17 / tile line 14 / body 15; 16px side padding.
   Cards share the 16px outer margin set above. */
.h1-root{--h1-t-title:20px;--h1-t-tile:17px;--h1-t-line:14px;--h1-t-body:15px;--h1-pad:16px}
.h1-root .h1-h4,.h1-root .h1-dailies-h{font:600 var(--h1-t-title)/1.25 -apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",system-ui,sans-serif;letter-spacing:0;text-transform:none;color:#22492E}
.h1-root .h1-dailies-h{margin:0}
.h1-root .h1-h4{margin:24px var(--h1-pad) 10px}
.h1-root .h1-tile-j4 b,.h1-root .h1-daily-card h3{font:600 var(--h1-t-tile)/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",system-ui,sans-serif;color:#22492E}
.h1-root .h1-tile-j4 b,.h1-root .h1-tile-j4 small,.h1-root .h1-tile-j4-lbl,.h1-root .h1-tile-j4-line{padding-left:var(--h1-pad);padding-right:var(--h1-pad)}
.h1-root .h1-tile-j4-lbl,.h1-root .h1-tile-j4-line,.h1-root .h1-tile-j4 small,.h1-root .h1-daily-note,.h1-root .h1-dailies-wait,.h1-today .d,.h1-today .cite{font-size:var(--h1-t-line);line-height:1.35;letter-spacing:0}
.h1-root .h1-tile-j4-lbl{text-transform:none;font-weight:600}
.h1-root .h1-daily-body,.h1-today-times,.h1-today .h1-do,.h1-today .h1-avoid,.h1-today .h1-luck,.h1-ask .ph,form.h1-home-ask input{font-size:var(--h1-t-body);line-height:1.4}
.h1-today .d{text-transform:none}
.h1-today .in{padding:var(--h1-pad)}
.h1-ask,form.h1-home-ask{padding-left:var(--h1-pad);padding-right:var(--h1-pad)}
.h1-root .h1-daily-card{padding:14px var(--h1-pad)}
.h1-root .h1-dailies-stack,.h1-root .h1-today{margin-left:var(--h1-pad);margin-right:var(--h1-pad)}
/* `.h1-root p{margin:0}` out-ranked the single-class margins, so the day line,
   times, help line and name note sat on x=0..2 while cards sat on 16. Same
   edge for all of them, and the calm "More" fold follows it. */
.h1-root .h1-dayline{margin:6px var(--h1-pad) 0;font-size:var(--h1-t-title);line-height:1.3}
.h1-root .h1-times{margin:8px var(--h1-pad) 0;font-size:var(--h1-t-body)}
.h1-root .h1-help-line{margin:18px var(--h1-pad) 88px;padding:0;max-width:calc(100% - 2*var(--h1-pad));font-size:var(--h1-t-line)}
.h1-root .h1-name-note,.h1-root .h1-share-row{margin:8px var(--h1-pad) 0;padding:0;font-size:var(--h1-t-line)}
.h1-root .h1-hello{padding:4px var(--h1-pad) 0;font-size:var(--h1-t-line)}
.h1-root>.calm-more{margin:12px var(--h1-pad)}
.h1-root>.calm-more>summary{padding:0 var(--h1-pad);font-size:var(--h1-t-body)}
form.h1-home-ask .h1-name-note{margin:8px 0 0}
/* CR-3 founder 16:30: no floating Skip on any welcome screen; English only hides every language row; Continue is a filled button */
html[data-screen="h1country"] .fv-skip-always{display:none!important}
html[data-english-only="1"] #h1langchip,html[data-english-only="1"] .ls-pick{display:none!important}
.h1-root .h1-go,.h1-root button.primary,.fr-go{min-height:48px}
.h1-root .h1-go{background:#F2D58A;color:#22492E;border:0;font-weight:700;font-size:16px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
button.primary{min-height:48px}

/* FOUNDER 12 Oct 17:02: no floating Skip on any first-run screen; English-only keeps one English chip and a small line instead of the language rows; chosen birth-time cells are filled brand colour with white text */
.fv-skip-always{display:none!important}
html[data-english-only="1"] .h1-wlang .h1-lg{display:none!important}
.h1-eng-only{display:none}
html[data-english-only="1"] .h1-eng-only{display:block;text-align:center}
.h1-eng-only .h1-ct{display:inline-block;min-height:48px;padding:0 24px}
.h1-eng-only p{margin:8px 0 0;font-size:14px;opacity:.8}
.tob-app .tob-type-l{display:block;font-weight:600}
.tob-app .tob-type{display:block;width:100%;min-height:48px;margin-top:6px;font-size:16px;box-sizing:border-box}
.tob-app .tob-cell.on,.tob-app .seg-b.on{background:#22492E!important;color:#fff!important;border-color:#22492E!important;font-weight:700}
.h1-wlang-en{display:none}
html[data-english-only="1"] .h1-wlang-en{display:block}
html[data-english-only="1"] .h1-wlang:not(.h1-wlang-en){display:none!important}
/* founder 17:02: no language button in the top bar while English only */
html[data-english-only="1"] .lang-chip,html[data-english-only="1"] #langChip{display:none!important}

.on-page #obName{display:block;width:100%;box-sizing:border-box;margin-top:6px}
.on-page .ob-name-hint{margin:-6px 0 12px}
/* founder 17:51: one short birth screen, select pickers; "Read details" is a small link, not a "More" box */
.boot-birth h1{margin:6px 0 8px;font-size:22px}
.boot-birth .ob-l{display:block;margin:0}
.boot-birth .ob-l input{display:block;width:100%;box-sizing:border-box;margin-top:4px;min-height:44px}
.boot-birth .field-h{margin:10px 0 4px;font-size:14px}
/* R11-FIX: tighten the one-screen birth form's vertical rhythm so it also clears the
   shorter 800px (1280x800) viewport, not just 844px (founder S32: one screen). */
.boot-birth .ob-lang-note{margin:0 0 6px;font-size:14px}
.boot-birth .ob-name-hint{margin:2px 0 6px}
.boot-birth .field-h{margin:6px 0 3px}
/* R11-FIX: place suggestions overlay the fields below instead of pushing them down,
   so the one-screen birth form never scrolls when the list is open (founder S32). */
.boot-birth .ob-place-wrap{position:relative}
.boot-birth .ob-place-wrap .place-hits{position:absolute;left:0;right:0;top:100%;z-index:6;margin:4px 0 0;background:#0B2A1C;color:#F5EFE0;border:1px solid #A8862F;border-radius:10px;max-height:240px;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.boot-birth .ob-place-wrap .place-hits li,.boot-birth .ob-place-wrap .place-hits button{color:#F5EFE0;background:transparent}
.ob-row{display:grid;grid-template-columns:1fr 1.5fr 1.1fr;gap:8px}
.ob-row.ob-time{grid-template-columns:1fr 1fr 1.3fr}
.ob-row select{width:100%;min-height:48px;box-sizing:border-box;font-size:16px;padding:0 6px;border-radius:10px}
.ob-row.unk select,.ob-row.unk .ob-ampm{opacity:.45}
.ob-ampm{display:flex;gap:6px}
.ob-ampm .seg-b{flex:1;min-height:48px;border-radius:10px}
.ob-ampm .seg-b.on{background:#22492E;color:#fff;font-weight:600}
.ob-unk-row{margin:4px 0 0}
.ob-unk-row .link[aria-pressed="true"]{font-weight:600;text-decoration:none}
.boot-birth .link,.fr-details>summary{min-height:44px;display:inline-flex;align-items:center}
.boot-birth [data-on="birth-go"]{min-height:48px;width:100%;margin-top:10px}
.boot-birth [data-on="birth-go"][disabled]{opacity:.45}
.boot-birth .skip-link{margin:2px 0 0;text-align:center}
.boot-birth .skip-link .link{background:none;border:0;text-decoration:underline;font-size:14px;padding:0 8px}
.boot-birth .ob-name-hint{margin:4px 0 0}
.fr-details{border:0;background:none;margin:4px 0}
.fr-details>summary{list-style:none;cursor:pointer;font-size:14px;text-decoration:underline}
.fr-details>summary::-webkit-details-marker{display:none}
.calm-gone{display:none!important}
.calm-flat{margin:8px 0}
/* ---- Plan cards (app/plan_ladder.js): Free, Plus, Unlimited, extras. Tap opens "What you get". ---- */
.pl-ladder{display:grid;gap:12px;margin:12px 0 calc(var(--l365-nav-h) + 24px)}
.pl-card{border:1px solid rgba(214,180,90,.16);border-radius:16px;background:#0B2A1C;color:#F5EFE0;padding:20px}
.pl-card[hidden]{display:none}
.pl-card.pl-rec{border-color:#A8862F}
.pl-card.is-yours{border-color:#A8862F}
.pl-top{display:flex;align-items:flex-start;gap:10px}
.pl-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.pl-name{margin:0;font-family:var(--mv-serif);font-size:22px;font-weight:600;color:#F5EFE0}
.pl-sub{margin:0;font-size:14px;color:#C9C2AE}
.pl-price{margin:0;font-size:18px;font-weight:600;white-space:nowrap;color:#F5EFE0;text-align:right}
.pl-per{font-size:14px;font-weight:400;color:#C9C2AE}
.pl-tag,.pl-yours{align-self:flex-start;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#D6B45A}
.pl-yours{padding:2px 9px;border:1px solid #A8862F;border-radius:999px}
.pl-list{margin:12px 0 0;padding-left:18px;font-size:16px;line-height:1.45;color:#F5EFE0}
.pl-list li{margin:4px 0}
.pl-pay{display:grid;gap:8px;margin-top:16px}
.pl-pay>span{display:grid}
.pl-pay>span[hidden]{display:none}
.pl-go{width:100%;min-height:52px;padding:12px;border:1px solid #D6B45A;border-radius:12px;background:transparent;color:#D6B45A;font:600 16px/1.2 inherit;cursor:pointer}
.pl-go.pl-go-solid{background:#D6B45A;color:#0B2A1C}
.pl-soon{align-self:flex-start;display:inline-block;padding:4px 12px;border-radius:999px;border:1px solid rgba(214,180,90,.3);font-size:12px;color:#C9C2AE}
.pl-toggle{display:flex;gap:8px}
.pl-span{flex:1;min-height:44px;padding:8px 10px;border:1px solid rgba(214,180,90,.3);border-radius:12px;background:transparent;color:#C9C2AE;font-size:14px;cursor:pointer}
.pl-span .pl-chk{visibility:hidden}
.pl-span.is-on{border-color:#D6B45A;color:#F5EFE0;background:#123524}
.pl-span.is-on .pl-chk{visibility:visible;color:#D6B45A}
.pl-note{margin:4px 0 0;font-size:14px;color:#C9C2AE}
.pl-choice{display:grid;gap:8px;margin:14px 0;padding:20px;border:1px solid rgba(214,180,90,.16);border-radius:16px;background:#0B2A1C;color:#F5EFE0}
.pl-choice h2,.pl-choice p{margin:0}
@media (min-width:900px){.pl-ladder{max-width:560px}}
/* M2-FULLSCREEN (founder 12 Oct 18:38): a topic opens FULL SCREEN with a clear Home button top-left; the bottom bar stays visible above it. */
.h1-sheet.on{top:0;left:0;right:0;width:100%;height:100%;max-height:100%;border-radius:0}
@media (min-width:840px){.h1-sheet.on{width:100%;left:0;right:0}}
html[data-sheet="1"] .l365-nav{z-index:12}
.h1-sheet .grab{display:none}
.h1-sheet .h1-sh-home{display:block;margin:10px 12px 8px;padding:0 16px;min-height:44px;border:1px solid var(--line,#E2D9C4);border-radius:22px;background:#fff;color:#22492E;font:600 16px/1 var(--mv-sans);cursor:pointer;align-self:flex-start}
.l365-page-home{display:block;margin:10px 12px 4px;padding:0 16px;min-height:44px;border:1px solid var(--line,#E2D9C4);border-radius:22px;background:#fff;color:#22492E;font:600 16px/1 var(--mv-sans);cursor:pointer}

/* R1.1 (founder walk 12 Oct, #5 + #13): the ask card sits in the page above the tiles, titled "Hi <name>, what's on your mind?",
   so it can never cover the "Your story so far" card. It floats above the nav only while a topic sheet is open. */
form.h1-home-ask{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:calc(100% - 32px);margin:12px 16px 0;z-index:2;box-shadow:0 8px 24px rgba(15,74,44,.08)}
html[data-screen="h1home"] .h1-root{padding-bottom:88px}
.h1-ask-h{margin:0 0 8px;font:600 var(--h1-t-title,20px)/1.25 -apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",system-ui,sans-serif;color:#22492E}
html[data-sheet="1"] form.h1-home-ask{
  position:fixed;left:50%;right:auto;transform:translateX(-50%);
  width:min(448px, calc(100vw - 32px));margin:0;z-index:45;
  bottom:calc(var(--l365-nav-h) + var(--l365-install-h, 0px) + 8px)
}
html[data-sheet="1"] .h1-ask-h{display:none}

/* R3-1 trust + legal: calm, same ivory/navy/Figtree as the rest of the app */
.trust-page{max-width:560px;margin:0 auto;padding:16px;box-sizing:border-box;color:#22492E;font-family:var(--mv-sans)}
.trust-page h1{font-family:var(--mv-sans);font-size:22px;line-height:1.25;margin:12px 0 14px}
.trust-page .svc-terms{font-size:16px;line-height:1.55;margin:0 0 12px}
.trust-page .svc-h{font-family:var(--mv-sans);font-size:18px;margin:22px 0 6px}
.trust-back{min-height:44px;margin:0}
.trust-list{margin:0 0 12px;padding-left:22px;font-size:16px;line-height:1.55}
.trust-list li{margin:0 0 6px}
.trust-crisis{padding:12px 14px;background:#FDFAF2;border:1px solid #E2D9C4;border-left:3px solid var(--gold,#CAAB5E);border-radius:12px}
.trust-dl{margin:0 0 8px;font-size:16px;line-height:1.5}
.trust-dl dt{font-size:14px;color:#7A6A54;margin-top:10px}
.trust-dl dd{margin:2px 0 0;overflow-wrap:anywhere}
.trust-pending{color:#7A6A54;font-style:italic}
.trust-foot{margin:12px 0 4px;font-family:var(--mv-sans)}
.trust-line{font-size:14px;line-height:1.45;color:#22492E;margin:0 0 6px}
.trust-links{margin:0;font-size:14px;line-height:1.6;color:#7A6A54}
.trust-link{color:#22492E;text-decoration:underline;text-underline-offset:3px;display:inline-block;min-height:24px;padding:4px 2px}
.trust-me-links{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.trust-me-links .trust-link,.me-legal-row .trust-link{text-decoration:none;border:1px solid #22492E;border-radius:999px;padding:10px 14px;min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center}
.trust-noguarantee{margin:10px 0;font-size:16px;color:#22492E}
.g-guardian{display:flex;gap:8px;align-items:flex-start;margin:10px 0;line-height:1.4}
.g-guardian input{margin-top:3px}
/* R3-2 birth-time finder ("Not sure of your time?") */
/* the two time links share one line when they fit (the birth form must stay on one screen at 1280x800) */
.ob-unk-row,.ob-tf-row{display:inline-block;vertical-align:top;margin-right:18px}
.ob-tf-row{margin-top:4px}
.ob-tf-row .link,.ob-tf-note .link{min-height:44px;display:inline-flex;align-items:center}
.ob-tf-note{margin:2px 0 8px}
.tf-in{max-width:520px;margin:0 auto;max-height:88vh}
.tf-sheet .bt-sheet-in{max-height:88%}
.tf-in h2{margin:0 0 8px;font-size:18px}
.tf-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:56px;box-sizing:border-box;margin:0 0 8px;padding:10px 14px;text-align:left;border:1px solid var(--line,#c9c2b4);background:var(--card,#fff);color:#22492E;border-radius:12px;font:inherit;cursor:pointer}
.tf-card-h{font-size:16px;font-weight:600}
.tf-card-s{font-size:14px;opacity:.75}
.tf-q{border:0;margin:0 0 10px;padding:0;display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}
.tf-q legend{grid-column:1/-1;padding:0;font-size:16px;margin-bottom:4px}
.tf-yn{display:flex;gap:6px}
.tf-yn .seg-b{min-width:64px;min-height:48px;border-radius:10px;border:1px solid var(--line,#c9c2b4);background:var(--card,#fff);color:#22492E;font-size:16px}
.tf-yn .seg-b.on{background:#22492E;color:#fff;border-color:#22492E;font-weight:600}
.tf-year{width:96px;min-height:48px;box-sizing:border-box;font-size:16px;padding:0 8px;border-radius:10px;border:1px solid var(--line,#c9c2b4)}
.tf-result{font-size:22px;font-weight:700;margin:6px 0 4px}
.tf-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.tf-actions button{min-height:48px}
.tf-sheet .primary{min-height:48px;width:100%}
.tf-actions .primary{width:auto;flex:1 1 auto}
/* R3-3 free value pack: Your week (Mondays), Helped line, Sample report */
.h1-root .h1-week{margin:12px var(--h1-pad,16px) 0;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink)}
.h1-week h2{margin:0 0 6px;font-size:16px;line-height:1.3;color:var(--g)}
.h1-week p{margin:6px 0 0;font-size:16px;line-height:1.45;color:var(--ink)}
.h1-week p b{display:block;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-ink);font-weight:600}
.ac-helped{margin:6px 0 0;font-size:14px;color:var(--mu)}
.svc-sample-row{margin:8px 0 0}
.sample-report-page .sr-page{position:relative;margin:16px 0;padding:18px 16px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink)}
.sample-report-page .sr-label{margin:0 0 6px;display:inline-block;padding:3px 8px;border-radius:6px;background:var(--amber);color:var(--gold-ink);font-size:12px;font-weight:700;letter-spacing:.05em}
.sample-report-page .sr-who{margin:4px 0 8px;font-size:14px;color:var(--mu)}
.sample-report-page .sr-page h2{margin:4px 0 10px;font-size:22px;line-height:1.25;color:var(--g)}
.sample-report-page .sr-h{margin:14px 0 4px;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-ink)}
.sample-report-page .sr-page p{margin:0 0 6px;font-size:16px;line-height:1.5}
.sample-report-page .sr-rows{list-style:none;margin:6px 0 0;padding:0}
.sample-report-page .sr-rows li{padding:8px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.45}
.sample-report-page .sr-rows li span{color:var(--mu)}
.sample-report-page .sr-rows li em{display:block;font-style:normal}
.sample-report-page .sr-page p.sr-foot{margin:14px 0 0;font-size:12px;letter-spacing:.05em;color:var(--mu)}
.h1-root .h1-share-row #h1share{min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--g);font-size:14px;font-weight:600}
.h1-root .h1-share-row .h1-share-note:empty{display:none}


/* ==== R2-CHAT: the calm chat on Home ===========================================================================================   One scroller (the page). The film card is pinned at the top and shrinks to a slim strip once the page scrolls. The thread sits under
   the one intro line. The ask box is the fixed bar above the nav (safe-area aware; it rides on top of the phone keyboard, see calm_chat.js).
   Thinking is one Mavella bubble. A finished answer is: short answer, two folds, ONE reaction row, a tiny footer, (rarely) one card. */
:root{--cc-pin:52px;--cc-kb:0px}
.h1-root .h1-lifestory,.h1-root .h1-film-ready{position:sticky;top:0;z-index:30;overflow-anchor:none;background-color:#FDFAF2}
.h1-root .h1-lifestory.is-slim,.h1-root .h1-film-ready.is-slim{
  width:100%;height:var(--cc-pin);min-height:var(--cc-pin);margin:0;padding:6px 16px;border-radius:0;box-sizing:border-box;gap:10px;
  background-color:#FDFAF2;box-shadow:0 2px 10px rgba(15,74,44,.18)
}
.h1-lifestory.is-slim .h1-lifestory-poster{display:none}
.h1-lifestory.is-slim .h1-lifestory-text{flex-direction:row;align-items:center;gap:8px;min-width:0}
.h1-lifestory.is-slim .h1-lifestory-text b{font:600 16px/1.2 var(--mv-sans)}
.h1-lifestory.is-slim .h1-lifestory-text span{display:none}
.h1-lifestory.is-slim .h1-lifestory-play{min-height:36px;padding:0 14px;margin-left:auto;font-size:14px}
.h1-film-ready.is-slim{flex-direction:row;align-items:center}

.h1-root .cc-intro{margin:10px var(--h1-pad,16px) 0;font:400 16px/1.45 var(--mv-sans);color:#4D463B}
.h1-root .cc-intro:empty{display:none}
.h1-root .cc-thread{display:flex;flex-direction:column;gap:10px;margin:14px var(--h1-pad,16px) 0;overflow-anchor:auto}
.h1-root .cc-thread:empty{display:none;margin:0}
.h1-root .cc-end{height:1px;margin:0;overflow-anchor:none}
.cc-thread .h1-turn.chat-turn{gap:8px;scroll-margin-top:calc(var(--cc-pin) + 10px)}
.cc-thread .chat-bubble{max-width:88%}
.cc-thread .chat-bubble--mav{background:#fff}

/* thinking: ONE Mavella bubble, typing dots and the working-phase line, no orbit card */
.chat-bubble.cc-think{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:150px;padding:11px 14px;white-space:normal}
.cc-think .chat-typing{width:auto;height:14px;padding:0;border:0;background:none}
.cc-think .th-slot{min-height:0!important;width:100%}
.cc-think .th-card{min-height:0!important;background:transparent!important;color:#5C5649!important;padding:0!important;display:block!important;text-align:left!important;border-radius:0!important}
.cc-think .th-orbit{display:none!important}
.cc-think .th-line{margin:0!important;min-height:0!important;max-width:none!important;font:400 14px/1.4 var(--mv-sans)!important;color:#5C5649!important}
.cc-think .th-retry,.cc-think .ac-instruction{margin-top:8px;min-height:44px;font-size:14px}

/* the short answer is revealed word by word; layout is fixed from the first word (no re-wrapping, no jump) */
.cc-revealing .cc-w{visibility:hidden}
.cc-revealing .cc-w.on{visibility:visible}
.cc-turn .chat-bubble--mav{cursor:default}

/* folded rows, legal lines, ONE reaction row, tiny footer, at most one card */
.cc-turn .cc-after{display:flex;flex-direction:column;gap:8px;margin-top:2px}
.cc-turn .cc-after[hidden],.cc-opts[hidden],.cc-turn .chat-row[hidden]{display:none}
.cc-fold{border:1px solid #E2D9C4;border-radius:12px;background:#fff;overflow:hidden}
.cc-fold>summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;
  font:600 14px/1.3 var(--mv-sans);color:#22492E}
.cc-fold>summary::-webkit-details-marker{display:none}
.cc-fold>summary::after{content:"+";font-size:18px;font-weight:400;color:#6B6455;line-height:1}
.cc-fold[open]>summary::after{content:"\2212"}
.cc-fold-body{padding:0 14px 12px;font-size:14px;line-height:1.5;color:#1A1A1A}
.cc-fold-body .chat-row{display:block;width:100%}
.cc-fold-body .chat-bubble{max-width:100%;background:none;border:0;padding:0 0 8px;font-size:14px;border-radius:0}
.cc-fold-body .ac-full{margin:0}
.cc-fold-body .ac-full p{margin:0 0 8px}
.cc-fold-body .rem-line,.cc-fold-body .ls-card,.cc-fold-body .pt-wrap,.cc-fold-body .deep-go{margin:8px 0 0}
.cc-legal{margin:2px 0 0}
.cc-legal .trust-line{margin:0 0 4px;font-size:12px;line-height:1.4;color:#5C5649}
.cc-react{position:relative;display:flex;justify-content:flex-end;align-items:center;min-height:44px}
.cc-react .fb-react-wrap{display:flex;align-items:center;justify-content:flex-end;gap:0;margin:0;width:auto}
.cc-react .fb-react-wrap .fb-row{display:flex;flex:none;margin:0;gap:0}
.cc-react .fb-row .fb-emoji{flex:none;min-width:44px;min-height:44px;font-size:18px;padding:0;background:none;border:0;border-radius:50%;opacity:.8}
.cc-react .fb-row .fb-emoji.on,.cc-react .fb-row .fb-emoji[aria-pressed="true"]{opacity:1;background:#E6F1EA}
.cc-react .cr-more{position:static;min-width:36px;min-height:44px;font-size:18px;opacity:.55}
.cc-react .fb-q,.cc-react .fb-say{display:none!important}
.cc-react .ac-helped{display:none}
.cc-foot{margin:0;font-size:12px;line-height:1.4;color:#7A7364;text-align:right}
.cc-foot a{color:inherit;text-decoration:underline}
.cc-card:empty{display:none}

/* Mavella asks back: one short question, up to 3 options, Skip. Did-you-mean: one line. */
.cc-opts{display:flex;flex-wrap:wrap;gap:8px;max-width:92%}
.h1-root .cc-opt,.h1-root .cc-skip{min-height:44px;padding:0 16px;border-radius:999px;font:600 14px/1 var(--mv-sans);cursor:pointer}
.h1-root .cc-opt{background:#fff;border:1px solid #22492E;color:#22492E}
.h1-root .cc-skip{background:none;border:0;color:#5C5649;text-decoration:underline;padding:0 8px}
.h1-root .cc-dym-ask{background:none;border:0;padding:0;font:inherit;font-weight:600;color:#22492E;text-decoration:underline;cursor:pointer;text-align:left}

/* the ask box: fixed bar above the nav, never over it; on the phone keyboard it rides on top (--cc-kb from visualViewport) */
#h1root .cc-bar{position:fixed;left:0;right:0;z-index:45;bottom:calc(var(--l365-nav-h) + var(--l365-install-h,0px));padding:0;pointer-events:none;box-sizing:border-box}
#h1root .cc-bar-in{position:relative;max-width:430px;margin:0 auto;padding:10px 16px 6px;box-sizing:border-box;pointer-events:auto;
  background:linear-gradient(180deg,rgba(247,243,234,0),#FDFAF2 14px)}
html[data-kb="1"] .l365-nav{display:none}
html[data-kb="1"] #h1root .cc-bar{bottom:var(--cc-kb);padding-bottom:6px}
#h1root .cc-bar form.h1-home-ask{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:100%;max-width:none;margin:0;z-index:auto;
  padding:6px 8px 6px 16px;border-radius:24px;box-sizing:border-box;background:#fff;box-shadow:0 4px 18px rgba(15,74,44,.14)}
#h1root .cc-bar .cc-bar-note{display:flex;align-items:center;gap:10px;margin:2px 4px 0;font-size:12px;line-height:1.3;color:#6B6455}
#h1root .cc-bar .cc-bar-note .h1-name-note{margin:0;padding:0;max-width:none;font-size:12px;color:#6B6455}
#h1root .cc-help{flex:none;min-height:36px;padding:0 4px;margin-left:-4px;background:none;border:0;font:600 14px/1 var(--mv-sans);color:#22492E;text-decoration:underline;cursor:pointer}
#h1root .cc-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
#h1root .cc-chips[hidden]{display:none}
#h1root .cc-chip{min-height:44px;padding:8px 14px;border-radius:18px;background:#fff;border:1px solid #E2D9C4;color:#22492E;font:400 14px/1.3 var(--mv-sans);text-align:left;
  box-shadow:0 2px 8px rgba(15,74,44,.08)}
#h1root .cc-newreply{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);min-height:40px;padding:0 16px;border-radius:999px;border:0;
  background:#22492E;color:#fff;font:600 14px/1 var(--mv-sans);box-shadow:0 4px 14px rgba(15,74,44,.3);cursor:pointer;white-space:nowrap}
#h1root .cc-newreply[hidden]{display:none}
html[data-screen="h1home"] #h1root.h1-root{padding-bottom:calc(var(--l365-nav-h) + 150px)}
@media (prefers-reduced-motion:reduce){.cc-turn *{scroll-behavior:auto!important}}
html[data-screen="h1home"] .h1-root,html[data-screen="h1home"] .wrap{overflow-x:clip;overflow-y:visible}      /* a pinned (sticky) film card needs no scroll container above it */

/* the ask-back bubble: the question is the main line; any lead-in the server sent stays, smaller and quieter, in the same bubble */
.cc-askback .chat-bubble .cc-lead{display:block;margin:0 0 6px;font-size:14px;line-height:1.45;color:#6B6455}
.cc-askback .chat-bubble .cc-q{display:block;font-weight:600;color:#22492E}
.cc-askback .chat-bubble .cc-tail{display:block;margin:6px 0 0;font-size:14px;color:#6B6455}

/* R2-CHAT home calm: Today is one line (tap to open); the grid and share row sit behind one small link; a thread hides both. */
.h1-root .cc-today-fold{margin:12px var(--h1-pad,16px) 0}
.h1-root .cc-today-fold>.h1-today{margin:0}
.cc-today-fold{margin:12px 16px 0}
.h1-root .cc-browse{margin:8px var(--h1-pad,16px) 0}
.h1-root .cc-browse>.h1-pager,.h1-root .cc-browse>.h1-share-row,.h1-root .cc-browse>.h1-h4{margin-left:0;margin-right:0}
html[data-chat="1"] .h1-root .cc-today-fold,html[data-chat="1"] .h1-root .cc-browse{display:none}

/* free questions used up: one calm card in the thread, ask bar stays */
.h1-quota-card { margin: 8px 0 4px; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.06); }
.h1-quota-card-line { margin: 0 0 8px; }
.h1-quota-card-go { font: inherit; padding: 8px 14px; border-radius: 999px; border: 1px solid currentColor; background: transparent; color: inherit; cursor: pointer; }

.reel-portrait{text-align:center;margin:0 0 10px}
.reel-portrait-star{position:relative;margin:0 auto 12px;width:60%;max-width:300px;aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:rgba(127,127,127,.12)}
.reel-portrait>p,.reel-portrait>figure{position:static;clear:both}
.reel-portrait-star img{width:100%;height:100%;object-fit:cover;display:block}
.reel-portrait-eyebrow{margin:0 0 6px}
.reel-star-eyebrow{margin:0;font:600 12px/1.3 system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8a6a1f}
.reel-star-name{margin:0 0 12px;font:400 16px/1.3 var(--mv-sans);color:#22492E}
.reel-portrait-line{font:400 16px/1.4 var(--mv-sans);margin:0 0 4px}
.reel-portrait-punch{font:600 clamp(24px,7vw,34px)/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",sans-serif;margin:10px 0 8px}

/* the finished film: Home's film card IS the end card (no overlay, no veil) */
.reel-entry-end{padding:18px 14px 12px;background:#fff;color:#22492E;text-align:center}
.reel-entry-end>*{margin-left:0;margin-right:0}
.reel-entry-end .reel-end{margin:0;padding:0}
.reel-entry-end .reel-portrait-star{width:100%;max-width:220px}
.reel-entry-end .reel-small,.reel-entry-end .reel-end-small{color:#7A6A54;opacity:1}
.reel-entry-end .reel-end-row{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;margin:8px 0 0}
.reel-entry-end .reel-end-row>.reel-share-small{flex:0 0 auto;width:auto;min-height:36px;padding:4px 16px;font-size:14px;color:#22492E;background:#fff;border:1px solid #22492E}
.reel-react{display:inline-flex}
.reel-react .fb-q{display:none}
.reel-react .fb-row{display:flex;gap:2px;margin:0}
.reel-react .fb-btn.fb-emoji{flex:0 0 auto;min-width:36px;min-height:36px;height:36px;width:auto;padding:0 4px;font-size:28px;line-height:1;background:none;border:0}
.reel-again{margin:6px 0 0}
.reel-again-link{background:none;border:0;color:#22492E;text-decoration:underline;font:inherit;font-size:14px;min-height:36px;cursor:pointer}
.reel-react .cr-more{display:none}
.reel-entry-end .reel-portrait-line,.reel-entry-end .reel-portrait-punch{color:#22492E;opacity:1}
.mc-status{display:inline-block;margin-top:6px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#EFEADB;color:#4D463B}
.mc-status--plan{background:#EEF2E9;color:#22492E}
.mc-status--done{background:#E3F0E3;color:#2D5A2D}
.mc-time{font-size:12px;color:#6B6455;margin:2px 6px 8px}
.mc-time--you{align-self:flex-end}
.mc-time--mid{align-self:center;text-align:center}
.mc-agreed{margin:10px 0 14px;padding:12px 14px;border:1px solid #D9D3C4;border-radius:14px;background:#FBF8EF}
.mc-agreed-h{margin:0 0 6px;font-size:16px}
.mc-agreed-row{margin:4px 0;font-size:14px}
.mc-agreed-steps{margin:4px 0 0;padding-left:0;list-style:none;font-size:14px}
.mc-agreed-steps li{margin:6px 0}
.me-chats-count{font-weight:600}
.h1-allchats{display:inline-block;margin:8px 0 0;font-size:14px}
.mc-conv-rename,.mc-rename{flex:0 0 44px;width:44px;min-width:44px;padding:0;box-sizing:border-box}
.mc-conv-link{min-width:0}
.mc-thread-head h1{min-width:0;font-size:22px;line-height:1.25}
.mc-page .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mc-reply input{width:auto}
.mc-agreed-steps label{display:flex;gap:8px;align-items:flex-start}
.mc-reply input{flex:1 1 auto;min-width:0}
.mc-reply button{flex:0 0 auto;width:auto;padding:0 18px}
.mc-thread{max-height:none;overflow:visible}
.reminders-screen{padding:16px}
.reminders-screen h3{margin:18px 0 6px}
.rs-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:6px 0}
.rs-list{list-style:none;margin:0;padding:0}.rs-list li{border-bottom:1px solid #D9D3C4}
.rs-grey{opacity:.55;padding:8px 0}
.rs-paused{background:#F3EEE0;border-radius:10px;padding:10px 12px}
.rs-times{display:flex;flex-direction:column;gap:4px}.rs-time{min-height:44px;display:flex;align-items:center;gap:8px}
html[data-screen="reminders"] body{background:#FBF8F1}
.me-rem-link{display:inline-block;margin-top:8px}
.rs-paused .rs-see-plans{display:inline-block;margin-top:8px;padding:8px 14px}
/* F1/F5/F7 (M9): thread page uses the app look; continue box full width; clear the bottom nav */
.mc-page,.mc-page input,.mc-page button{font-family:inherit}
.mc-page .mc-back a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid #D9D3C4;border-radius:12px;background:#fff;color:#22492E;text-decoration:none;font-size:14px}
.mc-page input[type="checkbox"]{accent-color:#22492E;width:20px;height:20px;flex:0 0 20px;margin:0}
.mc-thread-page h1,.mc-page h1{font-family:inherit;color:#22492E}
.mc-reply{display:flex;flex-wrap:nowrap;width:100%;box-sizing:border-box}
.mc-reply input{flex:1 1 0;width:100%;min-width:0}
.mc-reply button{flex:0 0 auto}
.mc-page{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
.reminders-screen{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
.reminders-screen,.reminders-screen input,.reminders-screen button{font-family:inherit}
/* F7 (M9): Reminders screen clears the bottom nav; app look for its back link */
.reminders-screen{padding:12px 16px calc(120px + env(safe-area-inset-bottom,0px));box-sizing:border-box}
.reminders-screen .mc-back a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid #D9D3C4;border-radius:12px;background:#fff;color:#22492E;text-decoration:none;font-size:14px}
/* BUY-FOCUS: the optional "deepest answer" question on the pay sheet */
.rp-focus { margin: 14px 0 6px; }
.rp-focus h3 { font-size: 16px; margin: 0 0 4px; }
.rp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.rp-chip { min-height: 44px; padding: 8px 14px; border-radius: 22px; border: 1px solid #CAAB5E; background: #fff; color: #3A1C12; font: inherit; font-size: 14px; cursor: pointer; }
.rp-chip.on { background: #22492E; border-color: #22492E; color: #fff; }
.rp-focus-l { display: block; font-size: 14px; margin: 8px 0 4px; }
.rp-focus-q { width: 100%; box-sizing: border-box; min-height: 44px; padding: 8px 12px; border: 1px solid #CAAB5E; border-radius: 10px; font: inherit; font-size: 16px; }

/* CHAT-FEEL cards (app/chat_feel.js) */
.cf-cards{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.cf-card{background:var(--card,#fff);border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:12px 14px;animation:cf-in .35s ease both}
@keyframes cf-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cf-card{animation:none}}
.cf-text{margin:0 0 6px;line-height:1.5}
.cf-h{margin:0 0 4px;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;opacity:.7}
.cf-chips,.cf-nextq{display:flex;flex-wrap:wrap;gap:8px}
.cf-chip,.cf-nextq-chip,.cf-add,.cf-share,.cf-win-btn{min-height:44px;padding:8px 14px;border-radius:22px;border:1px solid rgba(0,0,0,.18);background:transparent;font:inherit;cursor:pointer}
.cf-chip.on,.cf-add.on{background:rgba(0,0,0,.06)}
.cf-strip{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cf-win.running .cf-win-btn{font-weight:600}
.cf-win-more{margin:4px 4px 0;font-size:.9rem}
.cf-sum{cursor:pointer;min-height:44px;display:flex;align-items:center}
.cf-thanks{margin:6px 0 0;font-size:.9rem}

/* FE-FIXES G11 (M9): one styled switch for Reminders and Settings (no native checkbox/radio look) */
.rs-row input[type="checkbox"],.me-set-row input[type="checkbox"]{-webkit-appearance:none;appearance:none;flex:0 0 auto;position:relative;width:48px;height:28px;margin:0;border-radius:14px;background:#2B3A31;border:0;cursor:pointer;transition:background .15s}
.rs-row input[type="checkbox"]::after,.me-set-row input[type="checkbox"]::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.rs-row input[type="checkbox"]:checked,.me-set-row input[type="checkbox"]:checked{background:#E6BE5A;box-shadow:inset 0 0 0 1px #B8923A}
.rs-row input[type="checkbox"]:checked::after,.me-set-row input[type="checkbox"]:checked::after{transform:translateX(20px);background:#22492E}
.rs-row input[type="checkbox"]:focus-visible,.me-set-row input[type="checkbox"]:focus-visible,.rs-time input:focus-visible,.me-set-bless input:focus-visible{outline:2px solid #CAAB5E;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.rs-row input[type="checkbox"],.rs-row input[type="checkbox"]::after,.me-set-row input[type="checkbox"],.me-set-row input[type="checkbox"]::after{transition:none}}
.rs-times{flex-direction:row;flex-wrap:wrap;gap:8px}
.rs-time{position:relative;padding:0 16px;border:1px solid #CAAB5E;border-radius:22px;background:#fff;cursor:pointer}
.rs-time input,.me-set-bless input[type="radio"]{-webkit-appearance:none;appearance:none;position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.rs-time:has(input:checked){background:#22492E;border-color:#22492E;color:#fff}
.me-set-bless label{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;margin:0 6px 6px 0;border:1px solid #CAAB5E;border-radius:22px;background:#fff;cursor:pointer}
.me-set-bless label:has(input:checked){background:#22492E;border-color:#22492E;color:#fff}
/* FE-FIXES G12 (M9): Me rows read as one grouped card list */
.me-row{min-height:52px}
.me-row-danger{color:#8A2A1E;border-color:rgba(138,42,30,.25)}
/* SIGNOUT (l2): Sign out on the Account tab, a full 44px row */
.acct-signout{display:block;width:100%;min-height:44px;margin-top:16px}
/* FE-FIXES G17 (M9): small links and page dots get a 44px-high tap area */
.h1-help-line a,.trust-link,#h1root .cc-help{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box}
.trust-link{padding:4px 8px}
.h1-dots{gap:14px}
.h1-root .h1-dot::after{inset:-18px -8px}
/* FE-FIXES G19 (M9): Today and Ask tabs */
.l365-nav button[data-nav="today"]::before{background-image:url(./media/icons/icon_golden_hours.svg)}
.l365-nav button[data-nav="ask"]::before{background-image:url(./media/icons/icon_ask.svg)}
/* FE-FIXES G18 (M9): offline banner sits above the bottom nav */
.l365-offline{position:fixed;left:12px;right:12px;bottom:calc(var(--l365-nav-h,64px) + 8px);z-index:12;padding:10px 14px;border-radius:12px;background:#F3EEE0;border:1px solid #CAAB5E;color:#3A1C12;font:400 14px/1.4 system-ui,sans-serif;text-align:center}
/* FE-FIXES G15 (M9): first-run progress bar */
.fv-bar{width:min(320px,80%);height:8px;margin:10px auto 0;border-radius:4px;background:#E2D9C4;overflow:hidden}
.fv-bar>span{display:block;height:100%;width:20%;border-radius:4px;background:#22492E;transition:width .6s ease}
@media (prefers-reduced-motion:reduce){.fv-bar>span{transition:none}}
/* FE-FIXES G19 (M9): My plan page uses the same switch and checkbox look */
.my-plan-screen .plan-master{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px}
.my-plan-screen .plan-master input,.my-plan-screen .plan-remind input{-webkit-appearance:none;appearance:none;flex:0 0 auto;position:relative;width:48px;height:28px;margin:0;border-radius:14px;background:#2B3A31;cursor:pointer}
.my-plan-screen .plan-master input::after,.my-plan-screen .plan-remind input::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.my-plan-screen .plan-master input:checked,.my-plan-screen .plan-remind input:checked{background:#E6BE5A;box-shadow:inset 0 0 0 1px #B8923A}
.my-plan-screen .plan-master input:checked::after,.my-plan-screen .plan-remind input:checked::after{transform:translateX(20px);background:#22492E}
.my-plan-screen .plan-remind{display:inline-flex;align-items:center;gap:10px;min-height:44px}
.my-plan-screen .plan-item{list-style:none;padding:8px 0;border-bottom:1px solid #D9D3C4}
.my-plan-screen ul{margin:0;padding:0}
.my-plan-screen input[data-act="done"]{accent-color:#22492E;width:20px;height:20px}
.my-plan-screen button[data-act="habit"]{min-height:44px}

/* FE-FIXES-2 (M9): F03 F10 F11 F12 F13 F14 */
/* F10: inline SVG nav icons (own colour, distinct per tab), labels >= 12px */
.l365-nav button::before{background:currentColor;-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat;opacity:.9}
.l365-nav button[aria-current="page"]::before{opacity:1}
.l365-nav .l365-nav-label{font-size:12px}
.l365-nav button[data-nav="home"]::before{background-image:none;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 11.5 12 4l9 7.5%22/%3E%3Cpath d=%22M5.5 10v10h13V10%22/%3E%3Cpath d=%22M10 20v-6h4v6%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 11.5 12 4l9 7.5%22/%3E%3Cpath d=%22M5.5 10v10h13V10%22/%3E%3Cpath d=%22M10 20v-6h4v6%22/%3E%3C/svg%3E")}
.l365-nav button[data-nav="today"]::before{background-image:none;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%224%22/%3E%3Cpath d=%22M12 2.5v2.5M12 19v2.5M2.5 12H5M19 12h2.5M5.3 5.3l1.8 1.8M16.9 16.9l1.8 1.8M5.3 18.7l1.8-1.8M16.9 7.1l1.8-1.8%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%224%22/%3E%3Cpath d=%22M12 2.5v2.5M12 19v2.5M2.5 12H5M19 12h2.5M5.3 5.3l1.8 1.8M16.9 16.9l1.8 1.8M5.3 18.7l1.8-1.8M16.9 7.1l1.8-1.8%22/%3E%3C/svg%3E")}
.l365-nav button[data-nav="ask"]::before{background-image:none;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 5h16v11H11l-5 4v-4H4z%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 5h16v11H11l-5 4v-4H4z%22/%3E%3C/svg%3E")}
.l365-nav button[data-nav="services"]::before{background-image:none;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%224%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%2213%22 y=%224%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%224%22 y=%2213%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%2213%22 y=%2213%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%224%22 y=%224%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%2213%22 y=%224%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%224%22 y=%2213%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3Crect x=%2213%22 y=%2213%22 width=%227%22 height=%227%22 rx=%221.5%22/%3E%3C/svg%3E")}
.l365-nav button[data-nav="me"]::before{background-image:none;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%224%22/%3E%3Cpath d=%22M4.5 20.5c.8-4 4-6 7.5-6s6.700 2 7.500 6%22/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.8%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%224%22/%3E%3Cpath d=%22M4.5 20.5c.8-4 4-6 7.5-6s6.700 2 7.500 6%22/%3E%3C/svg%3E")}
/* F11: nothing hides under the fixed nav (height + safe-area inset are inside --l365-nav-h) */
.l365-page,.my-plan-screen,.me-screen,.rs-screen,.services-page,.sample-report{padding-bottom:calc(var(--l365-nav-h) + 24px)}
body{padding-bottom:calc(var(--l365-nav-h) + env(safe-area-inset-bottom,0px))}
/* F12: AA contrast */
.h1-today .d{color:#F6E7B8}
.h1-name-note,#h1root .cc-bar .cc-bar-note{color:#4F493C}
/* F13: no awkward one-word lines */
.h1-hello,.h1-intro,.h1-today h2,.h1-today p,.h1-dayline,.h1-root p{max-width:65ch;text-wrap:pretty}
/* F14: the landing background is plain green, no specks */
.entry-one::before{display:none}
/* F03: landing consent boxes use the same switch as Settings */
.fr-agree .fr-tick input[type="checkbox"]{-webkit-appearance:none;appearance:none;flex:0 0 48px;position:relative;width:48px;height:28px;margin:8px 0 0;border-radius:14px;background:#5E7A66;border:1px solid rgba(253,250,242,.45);cursor:pointer;transition:background .15s}
.fr-agree .fr-tick input[type="checkbox"]::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.fr-agree .fr-tick input[type="checkbox"]:checked{background:#E6C46B;border-color:#E6C46B}
.fr-agree .fr-tick input[type="checkbox"]:checked::after{transform:translateX(20px);background:#22492E}
.fr-agree .fr-tick input[type="checkbox"]:focus-visible{outline:2px solid #FDFAF2;outline-offset:2px}
.fr-agree .fr-tick{align-items:center}
@media (prefers-reduced-motion:reduce){.fr-agree .fr-tick input[type="checkbox"],.fr-agree .fr-tick input[type="checkbox"]::after{transition:none}}
/* F02 (M9): birth-star lines are never clipped; they wrap whole */
.reel-portrait-line,.reel-portrait-punch{max-height:none;overflow:visible;-webkit-line-clamp:unset;text-wrap:pretty}

/* DEEP CONSULT (app/deep_consult.js): sections and the understand rounds take any count. */
.dc-card,.dc-answer,.dc-next{display:flex;flex-direction:column;gap:12px;margin:12px 0}
.dc-q{margin:0;font-size:1.05em;line-height:1.5}
.dc-opts,.dc-chips{display:flex;flex-wrap:wrap;gap:8px}
.dc-opt,.dc-chip,.dc-skip,.dc-more,.dc-send{min-height:44px;padding:8px 14px;border-radius:22px;border:1px solid rgba(0,0,0,.18);background:transparent;font:inherit;cursor:pointer}
.dc-opt:disabled,.dc-skip:disabled,.dc-send:disabled{opacity:.5;cursor:default}
.dc-free{display:flex;gap:8px}
.dc-input{flex:1;min-width:0;min-height:44px;padding:8px 12px;border-radius:12px;border:1px solid rgba(0,0,0,.18);font:inherit}
.dc-skip{align-self:flex-start;min-height:32px;padding:4px 6px;border:0;background:none;font-size:.85em;opacity:.7;text-decoration:underline}
.dc-sec{margin:0}
.dc-sec-h{margin:0 0 4px;font-size:1em}
.dc-sec-p{margin:0 0 8px;line-height:1.55}
.dc-more{align-self:flex-start}
.dc-more-out{display:flex;flex-direction:column}
.dc-next-h{margin:0;font-weight:600}
.dc-reading{padding:24px 0;text-align:center;opacity:.8}
.dc-reading-line{margin:0 0 6px}
.dc-reading-factors{list-style:none;margin:8px 0;padding:0}
.dc-reading-factor{margin:4px 0;font-size:.95em;animation:dc-in .5s ease both}
@keyframes dc-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.dc-reading-factor{animation:none}}
.dc-dots{animation:dc-pulse 1.4s ease-in-out infinite}
@keyframes dc-pulse{0%,100%{opacity:.25}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.dc-dots{animation:none}}
.dc-note{margin:12px 0}

/* CHAT CONTROLLER v8 (app/chat_pace.js): the one status line while the reply is held */
.cp-status{margin:12px 0;opacity:.7}

/* CHAT CONTROLLER v8 (app/chat_pace.js): probe options as chips, and the Why? expander */
.cp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.cp-chip{min-height:44px;padding:8px 14px;border-radius:22px;border:1px solid rgba(0,0,0,.18);background:transparent;font:inherit;cursor:pointer}
.cp-chip:disabled{opacity:.5;cursor:default}
.cp-why{margin:8px 0}.cp-why summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.cp-why p{margin:4px 0 8px;line-height:1.5}

/* R37 hero card (Birth Star + who you are): one card, tap to flip; reduced motion = fade */
.reel-hero{position:relative;margin:0 auto 10px;width:100%;max-width:360px}
.reel-hero-flip{display:block;position:relative;width:100%;aspect-ratio:4/5;padding:0;border:2px solid #C89B2C;border-radius:16px;background:#072617;color:#FAF6EE;cursor:pointer;perspective:900px;font:inherit;text-align:center;box-shadow:0 0 0 1px rgba(200,155,44,.35),0 10px 26px rgba(0,0,0,.28)}
.reel-hero-face{position:absolute;inset:0;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .6s ease,opacity .6s ease}
.reel-hero-back{justify-content:center;align-items:center;gap:8px;padding:18px 16px;background:linear-gradient(#0F4A2C,#051A10);transform:rotateY(180deg)}
.reel-hero.flipped .reel-hero-front{transform:rotateY(-180deg)}
.reel-hero.flipped .reel-hero-back{transform:rotateY(0)}
.reel-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.reel-hero-front::after{content:"";position:absolute;left:0;right:0;bottom:0;height:60%;background:linear-gradient(to top,rgba(0,0,0,.88) 0%,rgba(0,0,0,.8) 45%,rgba(0,0,0,0) 100%);pointer-events:none}
.reel-hero-lower{position:relative;z-index:1;display:block;padding:56px 14px 16px;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.reel-hero-front.oldart .reel-hero-img{height:140%;object-position:50% 0}
.reel-hero-front.oldart .reel-hero-eyebrow,.reel-hero-front.oldart .reel-hero-name{display:none}
.reel-hero-front.oldart .reel-hero-lower{background:linear-gradient(to top,#000 35%,rgba(0,0,0,.7) 70%,rgba(0,0,0,0))}
.reel-hero-front.nopic{background:radial-gradient(ellipse at 50% 30%,#1B6B43,#0F4A2C 55%,#051A10)}
.reel-hero-eyebrow{display:block;font:600 12px/1.3 Georgia,serif;letter-spacing:.2em;text-transform:uppercase;color:#F0CD73}
.reel-hero-name{display:block;margin:2px 0 6px;font:italic 400 22px/1.2 Georgia,'Times New Roman',serif;color:#F0CD73}
.reel-hero-line{display:block;font:400 16px/1.35 Georgia,'Times New Roman',serif;color:#F7F1E3;text-wrap:pretty}
.reel-hero-punch{display:block;margin-top:6px;font:italic 400 18px/1.3 Georgia,serif;color:#FAF6EE}
/* R4.11 FLIP: tap the Birth Star card -> 3D flip (450 ms; crossfade under reduced motion) to cream paper with dark ink (>= 7:1), the star name small on top, 3 lines for THIS star, "Tap to flip back" */
.reel-hero-face{transition:transform .45s ease,opacity .45s ease}
.reel-hero-back{background:#FAF6EE!important;background-image:none!important;justify-content:center;align-items:flex-start;text-align:left;padding:20px 20px 16px;gap:10px;color:#1F1A14}
.reel-hero-back .reel-hero-eyebrow{color:#5C4308!important;font-size:12px;letter-spacing:.14em}
.reel-hero-back .reel-hero-line{color:#1F1A14!important;font-size:16px;line-height:1.4}
.reel-hero-back .reel-hero-hint{display:block;margin-top:auto;align-self:center;font:italic 400 14px/1.3 Georgia,serif;color:#5C4308!important}
.reel-hero.noflip .reel-hero-flip{cursor:default}
.reel-hero-flip:focus-visible,.reel-hero-share:focus-visible{outline:3px solid #C89B2C;outline-offset:3px}
.reel-hero-share{margin:10px auto 0;min-height:44px;padding:6px 18px}
.reel-entry-end .reel-hero-flip{color:#FAF6EE}
/* WALK 2 (founder 18 Oct): the art is capped near 45% of the screen so the title + one line always sit above the ask box at 390x844 */
.reel-hero-flip{aspect-ratio:auto;height:min(340px,42vh);min-height:230px}
.reel-hero-img{object-position:50% 30%}
@media (prefers-reduced-motion:reduce){.reel-hero-face{transition:opacity .3s ease;transform:none!important}.reel-hero-back{opacity:0}.reel-hero.flipped .reel-hero-back{opacity:1}.reel-hero.flipped .reel-hero-front{opacity:0}}
/* CHAT CONTROLLER v8: the one report card after a business answer */
.cp-card{margin:12px 0;padding:14px 16px;border:1px solid rgba(0,0,0,.14);border-radius:14px}
.cp-card p{margin:0 0 6px}.cp-card-t{font-weight:600}.cp-card-p{font-size:1.1em}
.cp-card-go{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:22px;border:1px solid rgba(0,0,0,.18);text-decoration:none}

/* R41 live film fix: the old "Does your copy say otherwise? Tell us." line is not shown on Home (one feedback ask, at the film end) */
.ac-useful-check{display:none!important}
.h1-help-inline{position:relative;margin:8px 0}.h1-help-x{position:absolute;top:4px;right:6px;width:44px;height:44px;border:0;background:transparent;color:#22492E;font-size:22px;line-height:1;cursor:pointer;z-index:1}

/* ANSWER CARD (switch answer_card_v2) */
.cp-acard{margin:12px 0;padding:14px 16px;border:1px solid rgba(0,0,0,.14);border-radius:16px;background:rgba(255,255,255,.55)}
.cp-achips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.cp-achip{display:inline-flex;align-items:center;min-height:30px;padding:2px 12px;border-radius:15px;font-size:.85em;font-weight:600;border:1px solid rgba(0,0,0,.18)}
.cp-acard[data-verdict="go"] .cp-achip-v{background:#E3EFE6;border-color:#8DB59A;color:#1F4A2C}
.cp-acard[data-verdict="prep"] .cp-achip-v{background:#F6EBCB;border-color:#C89B2C;color:#5C4510}
.cp-acard[data-verdict="wait"] .cp-achip-v{background:#EEE8DC;border-color:#B8AD96;color:#4A4332}
.cp-achip-w{font-variant-numeric:tabular-nums}
.cp-acaution{display:inline-block;margin:0 0 10px;padding:4px 12px;border-radius:15px;background:#F6EBCB;color:#5C4510;font-size:.9em}
.cp-astep{display:flex;align-items:center;gap:10px;min-height:44px;margin:0 0 6px;cursor:pointer}
.cp-astep-cb{width:22px;height:22px;accent-color:#C89B2C}
.cp-awhy summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
.cp-awhy p{margin:0 0 8px}
.cp-apointer{margin:8px 0 0;font-size:.8em;color:rgba(0,0,0,.5)}
/* bottom nav: a clear active state (rides on polish_v1) */
html.pv1 .l365-nav button[aria-current="page"]{box-shadow:inset 0 3px 0 var(--brand-gold,#E6C46B);background:color-mix(in srgb,var(--brand-gold,#E6C46B) 22%,var(--brand-navy,#22492E))}
html.pv1 .l365-nav button:not([aria-current="page"]){opacity:.78}
.cp-asend{min-height:44px;padding:8px 16px;border-radius:22px;border:1px solid rgba(0,0,0,.18);background:transparent;font:inherit;cursor:pointer}

/* the film's ending (founder 16 Oct): door light, the birth-star painting with a slow push-in, a gold frame that draws itself, name + plain title on a dark scrim, then a hold */
.reel-finale{background:#0d1626;transition:opacity .9s ease}
.reel-finale .rf-door{opacity:1;transition:opacity 1s ease}
.reel-finale.on:not(.rf-nostar) .rf-door{opacity:0;transition-delay:.9s}
.reel-finale.rf-nostar .rf-door{filter:none}
.rf-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,rgba(255,236,190,.55),rgba(255,236,190,0) 65%);opacity:0}
.reel-finale.on .rf-light{animation:rfLight 1.5s ease-out forwards}
.rf-art{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1)}
.reel-finale.rf-old .rf-art{background-size:auto 140%;background-position:50% 0}
.reel-finale.on .rf-art{animation:rfArt 1.2s .3s ease-out forwards,rfPush 9s .3s linear forwards}
.rf-frame{position:absolute;inset:10px;border:1.5px solid #D9B45B;border-radius:3px;pointer-events:none;clip-path:inset(0 100% 0 0)}
.reel-finale.on .rf-frame{animation:rfFrame 1.5s .3s ease-in-out forwards}
.rf-scrim{position:absolute;left:0;right:0;bottom:0;height:80%;background:linear-gradient(to top,rgba(0,0,0,.92),rgba(0,0,0,.76) 55%,rgba(0,0,0,0));pointer-events:none;opacity:0}
.reel-finale.on .rf-scrim{animation:rfFade .8s 1.4s ease forwards}
.reel-finale.rf-old .rf-scrim{height:100%;background:linear-gradient(to top,#000 0,#000 16%,rgba(0,0,0,.88) 40%,rgba(0,0,0,.5) 70%,rgba(0,0,0,0))}
.rf-thread{position:absolute;left:50%;bottom:0;width:2px;height:0;background:linear-gradient(to top,rgba(217,180,91,0),#D9B45B);opacity:.9}
.reel-finale.on .rf-thread{animation:rfThread 1s .3s ease-out forwards}
.rf-stack{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;justify-content:flex-end;max-height:100%;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}
.rf-stack::-webkit-scrollbar{display:none}
@media (max-height:700px){.rf-text{padding-bottom:8px}.rf-text .rf-name{font-size:28px}.rf-text .rf-line{font-size:14px;line-height:1.3}.rf-hold{gap:6px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.rf-hold button.ghost{min-height:36px}}
.rf-text{padding:0 28px 14px;text-align:center;opacity:0}
.reel-finale.on .rf-text{animation:rfFade .8s 1.8s ease forwards}
.rf-text p{margin:0}
.rf-text .rf-name{font:600 clamp(30px,9vw,42px)/1.1 Fraunces,Georgia,serif;color:#F7F1E3;text-shadow:0 2px 12px rgba(0,0,0,.65)}
.rf-text .rf-eyebrow{margin-top:10px;font:600 12px/1.3 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#E4C77A;text-shadow:0 1px 6px rgba(0,0,0,.7)}
.rf-text .rf-title{font:400 18px/1.3 Fraunces,Georgia,serif;color:#E4C77A;text-shadow:0 1px 8px rgba(0,0,0,.7);margin-bottom:8px}
.rf-text .rf-line{font:400 16px/1.4 Fraunces,Georgia,serif;color:#F7F1E3;text-shadow:0 1px 6px rgba(0,0,0,.7);margin-top:4px}
.rf-hold{padding:0 24px calc(18px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;opacity:0}
.reel-finale.on .rf-hold{animation:rfFade .6s 2.8s ease forwards}
.rf-hold p{margin:0;color:#F7F1E3}
.rf-hold .rf-q{font:400 14px/1.3 system-ui,sans-serif}
.rf-qrow,.rf-react-row{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}
.rf-hold button.ghost{width:auto;flex:0 0 auto;min-height:40px;padding:4px 16px;border-radius:999px;border:1px solid rgba(247,241,227,.7);background:rgba(0,0,0,.35);color:#F7F1E3;font:inherit;font-size:14px}
.rf-hold .rf-react .fb-btn,.rf-hold .rf-react button{color:#F7F1E3}
.rf-hold .rf-step{width:100%;max-width:340px;min-height:48px;border-radius:999px;border:0;background:#D9B45B;color:#1a1306;font:600 16px system-ui,sans-serif}
.rf-hold .rf-years{background:none;border:0;color:rgba(247,241,227,.85);text-decoration:underline;min-height:36px;font-size:14px}
.rf-hold .rf-qrow[data-picked] button{opacity:.55}
.rf-hold .rf-qrow[data-picked="true"] [data-rf="true"],.rf-hold .rf-qrow[data-picked="notq"] [data-rf="notq"]{opacity:1;border-color:#D9B45B}
.reel-stage.rf-leaving{opacity:0;transition:opacity .6s ease}
@keyframes rfLight{from{opacity:0}to{opacity:1}}
@keyframes rfArt{from{opacity:0}to{opacity:1}}
@keyframes rfPush{from{transform:scale(1)}to{transform:scale(1.04)}}
@keyframes rfFrame{to{clip-path:inset(0 0 0 0)}}
@keyframes rfThread{to{height:46%}}
@keyframes rfFade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.reel-finale.on .rf-light,.reel-finale.on .rf-art,.reel-finale.on .rf-frame,.reel-finale.on .rf-scrim,.reel-finale.on .rf-thread,.reel-finale.on .rf-text,.reel-finale.on .rf-hold{animation-duration:.01s;animation-delay:0s}.reel-finale.on .rf-art{animation-name:rfArt}}

/* R4 (M2 audit): ask pill has no inner square border; Today hero is symmetric; help line is a full sentence on its own line, clear of the ask bar */
form.h1-home-ask input,form.h1-home-ask input:hover,form.h1-home-ask input:focus,form.h1-home-ask input:focus-visible{border:0!important;outline:none!important;box-shadow:none!important;background:transparent!important;border-radius:0}
form.h1-home-ask:focus-within{box-shadow:0 0 0 3px rgba(34,73,46,.22),0 8px 24px rgba(15,74,44,.08)}
.h1-root .h1-today,.h1-root .cc-today-fold>.h1-today{width:auto;max-width:none;box-sizing:border-box}
.h1-root .h1-help-line{display:block;margin-bottom:calc(var(--l365-nav-h,72px) + 118px);white-space:normal;overflow:visible;text-overflow:clip}
.h1-root .h1-help-line a{display:block;height:auto}
.me-brand{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.sa-art .rv-banner,.sa-art .ai-wrap{height:104px;object-fit:cover;border-radius:14px}

/* R4 (re-applied on R4.2): Services shows the same arch header as the tabs; nothing sits under the bottom nav */
.h1-bar-tab{padding:4px 0 10px;border-bottom:0;background:none}
.services-page,.account-page{padding-bottom:120px}
/* R4.1 gemini A4/A5/B3 + A1: tabs carry no back pill, Me sub-screens one "<- Me" (their in-page "Back to Me" link is hidden), one H1 colour, chevrons on Me rows, no banner strips on Me / Services, content clear of the bottom nav and the Ask bar */
.l365-page-me{margin-bottom:8px}
html[data-screen="my_plan"] .mc-back,html[data-screen="my_chats"] .mc-back,html[data-screen="reminders"] .mc-back,html[data-screen="my_problems"] .mc-back,html[data-screen="myreports"] .mc-back{display:none}
.mc-page h1,.myrep-page h1,.my-plan-screen .my-plan>h2,.reminders-screen h1,.account-page h1,.services-page h1{font:600 28px/1.15 var(--mv-sans);color:#22492E;margin:8px 0 10px}
.me-row:not(.me-row-danger)::after{content:"\203A";margin-left:auto;font-size:22px;line-height:1;color:#22492E;opacity:.55}
.sa-art{display:none!important}
.services-page,.account-page,.myrep-page,.mc-page,.my-plan-screen,.reminders-screen,.sample-report{padding-bottom:calc(var(--l365-nav-h,64px) + env(safe-area-inset-bottom,0px) + 120px)}
html[data-screen="h1home"] #h1root.h1-root{padding-bottom:calc(var(--l365-nav-h,64px) + 190px)}

/* R4.1 A2: when "Today, in a glance" is drawn it owns the times; the green card keeps headline, Do, Avoid, Colour */
#h1root:has(#tp37 .tp37-times) :is(#h1good,#h1skip,#h1pills){display:none!important}
/* R4.1 A2: the glance card has the same 15px side margins and width as the green card above it */
#h1root .tp37{margin-left:15px;margin-right:15px;width:calc(100% - 30px);max-width:none;box-sizing:border-box}
.entry-sub{margin:0 0 6px;font:400 16px/1.4 var(--mv-sans);color:#E6DEC8}
.entry-row[hidden]{display:none}
/* M1 clip fix: when the ask bar (#h1bar) is present, the page ends clear of bar + nav (360x740 bar is ~120px); Today tick not under the bar */
#h1root:has(.cc-bar){padding-bottom:calc(var(--l365-nav-h) + var(--l365-install-h,0px) + 200px)}
html[data-screen="h1home"] #h1root.h1-root:has(.cc-bar){padding-bottom:calc(var(--l365-nav-h) + var(--l365-install-h,0px) + 200px)}
#h1root:has(.cc-bar) .tp37-tick{scroll-margin-bottom:200px}
#h1root{padding-bottom:var(--cc-bar-h,0px)}

/* R4.11 polish (M1 duo rerun): the Check-our-timing card clears the ask bar + nav wherever it sits; contrast >= 4.5 */
.bd41{margin-bottom:calc(var(--l365-nav-h,64px) + var(--cc-bar-h,0px) + 24px);scroll-margin-bottom:calc(var(--l365-nav-h,64px) + var(--cc-bar-h,0px) + 24px)}
#bd41land .bd41{margin-bottom:12px}
.l365-nav button[aria-current="page"],html.pv1 .l365-nav button[aria-current="page"]{color:#FFFFFF}
.svc-calm-card .svc2-free-tag{color:#1C3A24}
.tp37-step small{opacity:1;font-weight:600;color:#5E5A52}
/* R4.15: today_plus.js injects .tp37-step small{opacity:.7} later in the page; beat it so the step label is >= 4.5:1 */
#h1root .tp37 .tp37-step small,.tp37 .tp37-step small{opacity:1!important;color:#5E5A52!important}
/* R4.12b film end card: never an inner scrollbar; short phones get a compact card instead of a squeezed one */
.reel-finale,.reel-finale *{scrollbar-width:none}
.reel-finale ::-webkit-scrollbar{display:none}
.rf-stack{overflow:hidden}
@media (max-height:760px){.rf-text{padding:0 22px 8px}.rf-text .rf-name{font-size:clamp(26px,8vw,34px)}.rf-text .rf-title{font-size:18px;margin-bottom:4px}.rf-text .rf-line{font-size:14px;line-height:1.3}.rf-text .rf-line~.rf-line~.rf-line{display:none}.rf-hold{gap:6px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.rf-hold .rf-step{min-height:44px}}
@media (max-height:640px){.rf-text .rf-line~.rf-line{display:none}.rf-hold .rf-q{display:none}}
/* R4.14 page 1 free: one cream page inside the app (sample_report.js renderOwn); contrast >= 4.5 on #FDFAF2 */
html body #root .sample-report-page.sr-cream{background:#FDFAF2;color:#1F2A24;min-height:0;padding:12px 18px 96px;box-sizing:border-box}
html body #root .sr-cream .sr-free-good,html body #root .sr-cream .sr-free-step,html body #root .sr-cream .sr-free-remedy,html body #root .sr-cream .sr-free-care{text-align:left}
html body #root .sr-cream .sr-free-good{padding-left:20px;margin:0 0 12px}
html body #root .sr-cream .sr-pic{max-width:320px;margin:4px auto 14px;border-radius:16px;overflow:hidden}
html body #root .sr-cream .sr-name{margin:0 0 2px;font-size:14px;color:#4A5A50;text-align:center}
html body #root .sr-cream h1{margin:0 0 8px;font-size:22px;line-height:1.2;color:#0F4A2C;text-align:center}
html body #root .sr-cream .lead{margin:0 0 16px;font-size:16px;line-height:1.5;color:#1F2A24;text-align:center}
html body #root .sr-cream h2{margin:18px 0 6px;font-size:14px;letter-spacing:.05em;text-transform:uppercase;color:#6B4E00}
html body #root .sr-cream .sr-own-lines{list-style:none;margin:0;padding:0}
html body #root .sr-cream .sr-own-lines li{padding:9px 0;border-top:1px solid #E6DEC9;font-size:16px;line-height:1.45}
html body #root .sr-cream #srStepBody p{margin:0 0 4px;font-size:16px;line-height:1.5}
html body #root .sr-cream .rem-disc{display:block;font-size:12px;color:#4A5A50}
html body #root .sr-cream .sr-care{margin:20px 0 0;font-size:14px;line-height:1.5;color:#4A5A50;text-align:center}
html body #root .sr-cream .sr-buy{margin:26px 0 0;text-align:center}
html body #root .sr-cream .sr-free-good{-webkit-mask-image:linear-gradient(to bottom,#000 55%,rgba(0,0,0,.45));mask-image:linear-gradient(to bottom,#000 55%,rgba(0,0,0,.45))}
html body #root .sr-cream .sr-fade{display:none}
html body #root .sr-cream section,html body #root .sr-cream .sr-inside .rp-inside{background:transparent;color:#1F2A24;border:0;box-shadow:none;padding-left:0;padding-right:0}
html body #root .sr-cream .sr-top .ghost{color:#6B4E00;border-color:#C9A24A}
html body #root .sr-cream .sr-inside{margin:6px 0 0;text-align:left}
html body #root .sr-cream .rp-inside h3{margin:12px 0 4px;font-size:14px;letter-spacing:.05em;text-transform:uppercase;color:#6B4E00}
html body #root .sr-cream .rp-inside ol{margin:6px 0 0;padding-left:20px;font-size:16px;line-height:1.5;color:#1F2A24}
html body #root .sr-cream .rp-inside .note,html body #root .sr-cream .rp-inside-p{font-size:14px;color:#4A5A50}
html body #root .sr-cream .sr-buy a{font-size:16px;font-weight:600;color:#1F2A24;background:#C9A24A;text-decoration:none;padding:14px 26px;border-radius:999px;display:inline-block;min-height:44px;box-sizing:border-box}
.p1-offer{margin:12px 0;padding:12px 14px;border-radius:14px;background:#FDFAF2;border:1px solid #E6DEC9;color:#1F2A24;font-size:16px}
.p1-offer a{color:#0F4A2C;font-weight:600;text-decoration:underline}
/* R4.14 P0: remedy line on the dark Today card was grey-on-green; cream/gold, >= 4.5:1 */
.h1-today .h1-onething{margin:6px 0 0}
.h1-today .rem-line,.h1-today .rem-text{color:#FDFAF2}
.h1-today .rem-one{color:#F6E7B8}
.h1-today .rem-disc,.h1-today .rem-a1{color:#F0E8D4}

/* FIX-BIRTHFORM: the birth form is ONE screen. main.wrap is min-height:100vh and body adds nav padding + a 6px margin, which made the
   document 938px at 390x844 although the fields end near 630px. No nav on this screen, so no nav padding and no overflow. */
html:has(.boot-birth) body{margin:0;padding-bottom:0}
html:has(.boot-birth) body #root,html:has(.boot-birth) body main.wrap{display:flow-root;min-height:100vh;min-height:100dvh;padding-bottom:12px}
.boot-birth .ob-place-wrap .place-hits:empty{display:none;border:0}
html body #root .boot-birth .ob-ampm .seg-b{background:transparent;color:#D6B45A;border:1px solid #A8862F;font-size:16px}
html body #root .boot-birth .ob-ampm .seg-b.on{background:#D6B45A;color:#0B2A1C;border-color:#D6B45A;font-weight:600}
/* FIX-CHAT-CONTRAST: the dark shell (tokens.css) sets --ink/--body/--faint to cream globally; Ask answer surfaces are white, so every p/small/li inside them read cream on white (1.1:1). Re-scope the light token set to those surfaces. */
.chat-bubble--mav{--paper:#F6EFE0;--card:#FFFFFF;--sunk:#EFE6D4;--ink:#1A1A1A;--body:#1A1A1A;--faint:#55524C;color:#1A1A1A}
/* GEM-LIVE-10 #2: inside an active thread, or while the page scrolls down, the dock is only the box (notes, help and the Our timing row fold away; they come back when the box has focus) */
#h1root:has(.cc-thread .chat-turn) .cc-bar:not(:focus-within) :is(.cc-bar-note,[data-tg2=row],.cc-chips),
html[data-dock="min"] #h1root .cc-bar:not(:focus-within) :is(.cc-bar-note,[data-tg2=row],.cc-chips){display:none}

/* TRAIN4 GEM-UI-10 (CLAUDE 15:12): contrast and readability, appended last so it wins */
html .bd41{background:#FDFAF2;color:#1F1A14}
html .bd41 .bd41-c,html .bd41 label,html .bd41 p{font-size:16px;line-height:1.45;color:#1F1A14;opacity:1}
html .bd41 small{color:#4A4438;opacity:1;font-size:14px}
html .bd41 input[type=text],html .bd41 input[type=date],html .bd41 input[type=time]{border:1.5px solid #6B6455;color:#1F1A14;background:#fff}
html .bd41 .bd41-c input{min-width:22px;min-height:22px;accent-color:#22492E}
#h1root .cc-bar form.h1-home-ask{border:1.5px solid #5B6B5F}
#h1root .cc-bar input::placeholder,#h1root .cc-bar textarea::placeholder,.h1-ask .ph{color:#5A5446;opacity:1}
.h1-chips button{border:1.5px solid #8C8672;color:#1B3B25;font-size:16px}
.chat-chip{color:#1B3B25;font-size:16px}
html[data-lang="hi"] .chat-bubble{font-size:18px;line-height:1.6}
html[data-lang="hi"] .chat-chip,html[data-lang="hi"] .h1-chips button{font-size:16px}
.chat-bubble--mav[data-whole="1"]{margin-bottom:2px}
.chat-bubble--mav[data-bubble="stepline"]{font-weight:700;background:#F7F2E3;border-color:#C9B98E}
.h1-hello{font-size:14px}
/* TRAIN4b H4: the quiet "Mavella reading" line under a written answer; colour is inherited from the bubble so contrast follows it */
.ak-book-q{margin:10px 0 0;padding:10px 4px 0;border-top:1px solid currentColor;color:inherit}
.ak-book-q .ak-bq{margin:0 0 4px;font:italic 400 16px/1.5 Georgia,'Times New Roman',serif;color:inherit;overflow-wrap:anywhere}
.ak-book-q .ak-bl{display:block;font:600 12px/1.3 system-ui,sans-serif;letter-spacing:.06em;color:inherit}

/* TRAIN 4d D2 (founder 25 Oct): report, pay and My reports screens readable. Body >= 15 px, Hindi >= 16 px, text #3E3B35 or darker (>= 9:1 on white / cream). */
.rp-desc,.rp-review,.rp-fix,.rp-pages,.rp-renew,.rp-what p,.rp-receipt p,.rp-what h3,.rp-receipt h3,.rp-tick,
.myrep-state,.myrep-say,.myrep-row .note,.rf-note,.rf-ghost,.rf-sum,.rf-chip,.rf-err{font-size:16px;line-height:1.5}
.rp-review,.rp-fix,.rp-desc,.rp-pages,.myrep-state,.myrep-say,.rf-note{color:#3E3B35;opacity:1}
html[data-lang="hi"] .rp-desc,html[data-lang="hi"] .rp-review,html[data-lang="hi"] .rp-fix,html[data-lang="hi"] .rp-pages,html[data-lang="hi"] .rp-renew,
html[data-lang="hi"] .rp-what p,html[data-lang="hi"] .rp-receipt p,html[data-lang="hi"] .rp-what h3,html[data-lang="hi"] .rp-receipt h3,html[data-lang="hi"] .rp-tick,
html[data-lang="hi"] .myrep-state,html[data-lang="hi"] .myrep-say,html[data-lang="hi"] .myrep-row .note,html[data-lang="hi"] .myrep-actions button,
html[data-lang="hi"] .rf-note,html[data-lang="hi"] .rf-ghost,html[data-lang="hi"] .rf-sum,html[data-lang="hi"] .rf-chip,html[data-lang="hi"] .rf-err{font-size:16px;line-height:1.6;font-family:"Noto Sans Devanagari","Mukta",system-ui,sans-serif}
.myrep-actions button{min-height:44px;font-size:16px}
/* TRAIN 4d D1: the send button is a 36 px gold circle with an arrow, always visible; no scroll arrows inside the box. */
html body #root form.h1-home-ask #h1threads,html body form.h1-home-ask #h1threads{
  display:grid;place-items:center;visibility:visible;opacity:1;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border:0;border-radius:50%;
  background:var(--mv-gold,#CAAB5E);flex:none}
html body form.h1-home-ask #h1threads svg{width:18px;height:18px;stroke:var(--mv-on-gold,#22492E)}
html body form.h1-home-ask #h1threads:disabled{opacity:1;background:var(--mv-gold,#CAAB5E)}
form.h1-home-ask input#h1threadq{overflow:hidden;-webkit-appearance:none;appearance:none}
form.h1-home-ask input#h1threadq::-webkit-inner-spin-button,form.h1-home-ask input#h1threadq::-webkit-search-cancel-button{display:none}
/* TRAIN 4d D2: Services and My reports small print raised (tags 14 px, text 15 px; Hindi 16 px). */
.svc2-promise,.svc2-get,.pl-soon,.myrep-badge,.svc2-free-tag,.svc-sample-btn{font-size:16px;line-height:1.45}
.svc2-free-tag,.pl-soon,.myrep-badge{font-size:14px}
html[data-lang="hi"] .svc2-promise,html[data-lang="hi"] .svc2-get,html[data-lang="hi"] .svc-sample-btn,html[data-lang="hi"] .myrep-state{font-size:16px;line-height:1.6;font-family:"Noto Sans Devanagari","Mukta",system-ui,sans-serif}
html[data-lang="hi"] .svc2-free-tag,html[data-lang="hi"] .pl-soon,html[data-lang="hi"] .myrep-badge{font-size:16px}
.pl-yours,.pl-go,.pl-chk{font-size:16px}
html[data-lang="hi"] .pl-yours,html[data-lang="hi"] .pl-go,html[data-lang="hi"] .pl-chk,html[data-lang="hi"] .l365-page-home,html[data-lang="hi"] .svc2-free-tag,html[data-lang="hi"] .pl-soon,html[data-lang="hi"] .myrep-badge{font-size:16px}

/* ---- 4h (25 Oct): Plans (India) packs row, the report offer card with its cropped page-1 preview, the gold consent box ---- */
.pl-packs{display:grid;gap:10px;margin:2px 0 0}
.pl-packs-h{margin:0;font:600 18px/1.3 Georgia,"Times New Roman",serif;color:#F5EFE0}
.pl-packrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pl-pack{display:grid;align-content:start;gap:6px;padding:12px 8px;border:1px solid rgba(214,180,90,.16);border-radius:14px;background:#0B2A1C;color:#F5EFE0;text-align:center}
.pl-pack-n{margin:0;font:600 16px/1.25 inherit}
.pl-pack-p{margin:0;font:700 18px/1.2 inherit;color:#F5EFE0}
.pl-pack-v{margin:0;font-size:14px;color:#C9C2AE}
.pl-pack .pl-go{min-height:48px;padding:8px 4px;font-size:16px}
.pl-pack-carry{margin:0;font-size:14px;color:#C9C2AE}
html[data-lang="hi"] .pl-pack-v,html[data-lang="hi"] .pl-pack-carry{font-size:16px}
@media (max-width:360px){.pl-packrow{grid-template-columns:1fr}}
.rp-offer{display:grid;gap:10px;margin:8px 0;padding:16px;border:1px solid #A8862F;border-radius:16px;background:#0B2A1C;color:#F5EFE0}
.rp-offer .rp-preview{margin:0;padding:0;border:0;background:none}
.rp-crop{position:relative;overflow:hidden;border-radius:10px;aspect-ratio:360/210;background:#F5EFE0}
.rp-crop img{display:block;width:100%;height:auto}
.rp-crop::after{content:"";position:absolute;left:0;right:0;bottom:0;height:70%;background:linear-gradient(to bottom,rgba(11,42,28,0),#0B2A1C)}
.rp-offer .primary{width:100%;min-height:52px;font-size:16px}
.rp-sheet #rpPay{width:100%;min-height:52px;font-size:16px;margin-top:8px}
.rp-promise{margin:0;font-size:16px;line-height:1.45;color:#F5EFE0}
.rp-tick{padding:12px;border:1px solid #A8862F;border-radius:12px;color:#F5EFE0;font-size:16px}
.rp-tick input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:0 0 24px;width:24px;min-width:24px;height:24px;margin:1px 0 0;border:2px solid #D6B45A;border-radius:6px;background:transparent;cursor:pointer}
.rp-tick input[type=checkbox]:checked{background:#D6B45A url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M5 11.5l4 4 8-9' fill='none' stroke='%230B2A1C' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}
html[data-lang="hi"] .rp-tick,html[data-lang="hi"] .rp-promise{font-size:16px}
.myrep-row.myrep-new{border-color:#D6B45A;box-shadow:0 0 0 2px rgba(214,180,90,.5)}
.myrep-row.myrep-new .myrep-get{box-shadow:0 0 0 3px rgba(214,180,90,.6)}
/* 4h: plan sections (Launch offer / Basic / Premium) and the name-only report row chevron */
.pl-sec{display:grid;gap:10px;margin:14px 0 0}
.pl-launch-line{margin:0;font-size:16px;line-height:1.4;color:#F5EFE0}
.pl-packrow-1{grid-template-columns:minmax(0,1fr)}
.pl-packrow-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.svc2-chev{display:inline-block;margin-top:6px;font-size:22px;line-height:1;color:#C6A15B}
.myrep-chev{min-width:44px;min-height:44px;font-size:16px;line-height:1.2;color:#C6A15B}
.myrep-row .myrep-share[hidden]{display:none}


/* TRAIN 5 film ending: tap-to-advance beats on the door backdrop (inside .reel-finale). No beats = the plain finale. */
.reel-finale:has(.rf-beats) .rf-stack{display:none}
.rf-beats{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:72px 24px calc(28px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(7,38,23,.35),rgba(7,38,23,.82))}
.rf-beat{position:absolute;inset:72px 24px 56px;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;color:#F7F1E3;font-family:system-ui,sans-serif}
.rf-beat.on{display:flex;animation:rfbIn .6s ease both}
.rfb-cap{margin:0;font:400 16px/1.35 system-ui,sans-serif;letter-spacing:.02em;color:rgba(247,241,227,.85)}
.rfb-card{width:min(62vw,240px);aspect-ratio:1/1;border-radius:20px;background-size:cover;background-position:center;box-shadow:0 12px 40px rgba(0,0,0,.45);transform:translateY(0);animation:rfbUp .8s ease both}
.rfb-title{margin:0;font:600 22px/1.25 system-ui,sans-serif;color:#D9B45B}
.rfb-big{margin:0;font:600 22px/1.3 system-ui,sans-serif;color:#F7F1E3;max-width:340px}
.rfb-big.rfb-gold{color:#D9B45B}
.rfb-go{width:100%;max-width:340px;min-height:48px;margin-top:10px;border-radius:999px;border:0;background:#D9B45B;color:#1a1306;font:600 16px system-ui,sans-serif}
.rfb-share{background:none;border:0;color:rgba(247,241,227,.85);text-decoration:underline;min-height:40px;font:400 16px system-ui,sans-serif}
.rfb-hide{font:400 14px system-ui,sans-serif;color:rgba(247,241,227,.75);display:flex;gap:6px;align-items:center}
.rfb-hint{position:absolute;left:0;right:0;bottom:calc(10px + env(safe-area-inset-bottom,0px));margin:0;text-align:center;font:400 14px system-ui,sans-serif;color:rgba(247,241,227,.6)}
.rfb-go.rfb-alt{background:none;border:1px solid #D9B45B;color:#D9B45B;margin-top:0}
.rfb-orb{position:absolute;right:20px;bottom:calc(46px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:50%;border:0;padding:0;background:radial-gradient(circle at 35% 30%,#F3D98A,#D9B45B 55%,#8a6a1c);box-shadow:0 0 24px rgba(217,180,91,.6)}
.rfb-pill{position:absolute;right:84px;bottom:calc(60px + env(safe-area-inset-bottom,0px));padding:8px 12px;border-radius:999px;background:rgba(7,38,23,.9);border:1px solid #D9B45B;color:#F7F1E3;font:400 14px system-ui,sans-serif}
@keyframes rfbIn{from{opacity:0}to{opacity:1}}
@keyframes rfbUp{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.rf-beat.on,.rfb-card{animation:none}}
.mc-chip{display:inline-block;margin:0 0 6px;padding:2px 10px;border-radius:999px;background:#E8E1CC;color:#4D463B;font-size:12px;font-weight:600}.mc-conv-title{font-weight:400;color:#1F2A22}



/* 5ab (M9 F5): My reports notes + remedy sheet were dark text on dark green */
.myrep-notes-pre,.myrep-sheet-cards,.myrep-sheet-cards *{color:#F5EFE0!important}.myrep-notes-pre{background:#0B2A1C;white-space:pre-wrap}.myrep-sheet-cards>*{background:#0B2A1C!important;border-color:rgba(214,180,90,.3)!important}.myrep-sheet-cards h3,.myrep-sheet-cards b{color:#E6BE5A!important}
.pl-pay.pl-pay-two{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.pl-yearly-line{margin:10px 0 0;font-size:16px;line-height:1.4;color:#C9C2AE}
.pl-plan .pl-go{padding:8px 6px;font-size:16px}
@media (max-width:360px){.pl-pay.pl-pay-two{grid-template-columns:1fr}}

/* 26 Oct (founder walk): Ask tab icon is glossy gold with a soft shine sweep every ~8 s until the person has asked once today; static after */
html body .l365-nav button[data-nav="ask"]::before{opacity:1;background-image:linear-gradient(110deg,#B88A24 0%,#E6C46B 38%,#FFF3C4 50%,#E6C46B 62%,#B88A24 100%);background-size:260% 100%;background-position:100% 0;background-repeat:no-repeat;background-color:transparent;filter:drop-shadow(0 0 2px rgba(230,196,107,.45))}
html:not(.ask-done-today) body .l365-nav button[data-nav="ask"]::before{animation:mvAskShine 8s ease-in-out infinite}
@keyframes mvAskShine{0%,70%{background-position:100% 0}92%,100%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){html:not(.ask-done-today) body .l365-nav button[data-nav="ask"]::before{animation:none}}
.ay-homecard{margin:12px 16px;padding:14px 16px;border:1px solid rgba(214,180,90,.45);border-radius:16px;background:#123524;color:#F5EFE0}
.ay-homecard[hidden]{display:none}
.ay-homecard .ay-card-h{margin:0 0 4px;font:600 16px/1.3 system-ui,sans-serif;color:#E6BE5A;background:none}
.ay-homecard .ay-card-p{margin:0 0 6px;font-size:16px;line-height:1.5;color:#F5EFE0;background:none}
.ay-more{display:inline-flex;align-items:center;min-height:44px;font:600 16px/1.2 system-ui,sans-serif;color:#E6BE5A;text-decoration:underline;text-underline-offset:3px}
/* reports walk 26 Oct: page 1 is sharp for its top ~45%, then fades softly; "What's inside" is the report's real contents */
.rp-inside{text-align:left;margin:16px auto 0;max-width:360px}
.rp-inside h3{margin:0 0 4px;font-size:16px}
.rp-inside ol{margin:6px 0 0;padding-left:20px;font-size:14px;line-height:1.5}
.rp-inside-p{float:right;color:var(--muted,#7a7468);font-size:12px}
/* 5f 26 Oct: My chats = the dark card style of About you (dark card, gold title, light text), not cream cards */
html body #root .mc-page .mc-conv-link,html body #root .mc-page .mc-conv-link:visited{background:#0B2A1C;border:1px solid rgba(214,180,90,.3);color:#F5EFE0}
html body #root .mc-page .mc-conv-link .mc-conv-title{color:#F5EFE0;font-weight:400}
html body #root .mc-page .mc-conv-link .mc-chip{background:rgba(230,190,90,.14);color:#E6BE5A;font-weight:600}
html body #root .mc-page .mc-conv-link .mc-conv-meta{color:#C9C2AE}
.mc-page .mc-conv-link:focus-visible{outline:2px solid #F5EFE0;outline-offset:2px}
/* M1-17: report page 1 on the app dark theme (page #123524, header #0B2A1C, cream text, gold) with the Mavella header */
html body #root .sample-report-page.sr-cream{background:#123524;color:#F5EFE0}
html body #root .sample-report-page.sr-cream .sr-brand{display:block;margin:0 auto;font:600 18px/1 Fraunces,Georgia,serif;letter-spacing:.02em;color:#D6B45A;text-align:center}
html body #root .sample-report-page.sr-cream .sr-top{display:flex;align-items:center;justify-content:space-between;min-height:56px;margin:-12px -18px 12px;padding:0 10px;background:#0B2A1C;border-bottom:1px solid rgba(214,180,90,.16)}
html body #root .sample-report-page.sr-cream .sr-top .ghost{color:#F5EFE0;border-color:#D6B45A;background:transparent}
html body #root .sample-report-page.sr-cream .sr-top .sr-brand{margin:0;flex:1}
html body #root .sample-report-page.sr-cream .sr-top:after{content:"";width:72px}
html body #root .sample-report-page.sr-cream .sr-name,html body #root .sample-report-page.sr-cream .sr-care,html body #root .sample-report-page.sr-cream .rem-disc,html body #root .sample-report-page.sr-cream .rp-inside .note,html body #root .sample-report-page.sr-cream .rp-inside-p{color:#C9C2AE}
html body #root .sample-report-page.sr-cream h1{color:#F5EFE0}
html body #root .sample-report-page.sr-cream .lead,html body #root .sample-report-page.sr-cream #srStepBody p,html body #root .sample-report-page.sr-cream .rp-inside ol,html body #root .sample-report-page.sr-cream .sr-own-lines li,html body #root .sample-report-page.sr-cream section,html body #root .sample-report-page.sr-cream .sr-inside .rp-inside{color:#F5EFE0}
html body #root .sample-report-page.sr-cream h2,html body #root .sample-report-page.sr-cream .rp-inside h3{color:#D6B45A}
html body #root .sample-report-page.sr-cream .sr-own-lines li{border-top-color:rgba(214,180,90,.25)}

html body #root .sr-cream .sr-free-keys{-webkit-mask-image:none;mask-image:none}
/* ITEM E (27 Oct): Home "How people experience you" card under Birth Star - gold serif title, small star art right, full card width (keeps the orb gutter via the stack's own padding) */
#t2 #t2aboutslot.ay-homecard{position:relative;margin:0 0 14px;padding:18px 84px 8px 18px;border-radius:18px;background:linear-gradient(160deg,#123524,#0A2418);border:1px solid rgba(214,180,90,.5);box-shadow:0 0 18px rgba(214,180,90,.12);min-height:112px;overflow:hidden}
#t2 #t2aboutslot .ay-card-h{font:400 18px/1.25 Georgia,'Times New Roman',serif;color:#E3B84F;margin:0 0 6px}
#t2 #t2aboutslot .ay-art{position:absolute;right:12px;top:14px;width:60px;height:60px;border-radius:12px;object-fit:cover;opacity:.95}

.mc-conv-win{display:block;margin-top:4px;font-size:14px;color:#C9C2AE}
.mc-dth{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 10px;font-size:14px;color:#C9C2AE}
.mc-dth-b,.t2-dth-b{min-height:36px;padding:0 14px;border-radius:18px;border:1px solid #6b5a2e;background:transparent;color:#E8D9A8;font:inherit}
.mc-dth-b.on{background:#C9A24B;color:#1b1608}
.t2-dth-b{margin-left:8px}
.plan-sample{margin:12px 0 16px;padding:14px;border:1px solid #6b5a2e;border-radius:14px;font-size:16px;line-height:1.5}
.plan-sample .note{font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px}

/* Q6: first-run 'Is this you?' card */
.boot-birth.bc-card{padding:40px 24px 24px;text-align:center}
.boot-birth.bc-card h1{font-size:28px;line-height:1.2;margin:0 0 6px;text-wrap:balance}
.boot-birth.bc-card .lead{font-size:18px;margin:0 0 24px;opacity:.8}
.boot-birth.bc-card .bc-line{font-size:18px;line-height:1.5;margin:0 0 8px}
.boot-birth.bc-card .primary{width:100%;min-height:52px;margin-top:28px}
.boot-birth.bc-card .note{margin:12px 0 0}
.boot-birth.bc-card .link{min-height:44px;padding:10px 16px;background:none;border:0;color:inherit;text-decoration:underline;font-size:16px}

/* CHAT LIKE WHATSAPP: Your topics + search + per-topic chat (M7, 375px first) */
.mc-topics{margin:0 0 18px}
.mc-search{width:100%;box-sizing:border-box;margin:8px 0 12px;padding:12px 14px;min-height:44px;border:1px solid #D9D3C4;border-radius:12px;background:#fff;color:#1F2A22;font-size:16px}
.mc-topic-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.mc-topic-link{display:flex!important;justify-content:space-between;align-items:center;gap:10px;min-height:44px}
.mc-topic-link .mc-conv-meta{font-size:12px;opacity:.8;white-space:nowrap}
.mc-more-wrap{text-align:center;margin:4px 0}
.mc-sentinel{height:1px}
.mc-latest[hidden]{display:none}
.mc-latest--float{position:fixed;right:14px;bottom:calc(84px + env(safe-area-inset-bottom,0px));margin:0;z-index:30;box-shadow:0 2px 10px rgba(0,0,0,.35)}
#mcLatest:not(.mc-latest--show){display:none}
.mc-latest{position:sticky;bottom:calc(72px + env(safe-area-inset-bottom,0px));display:block;margin:10px auto 0;padding:8px 14px;min-height:44px;border-radius:999px;border:1px solid #D9B45B;background:#0B2A1C;color:#E6BE5A;font-size:14px;font-weight:600}

/* M5 FONTS (31 Oct, ORDERS-31OCT-UNBLOCK-FONTS P1): Hindi/Devanagari text. The Latin serif/sans heading faces have no Devanagari glyphs, so
   headings fell back to a mismatched face with cramped matras and line-height 1.2-1.5. Floor: line-height 1.6 and one Devanagari face for headings. */
html[lang="hi"] body :is(h1,h2,h3,h4,p,li,dt,dd,label,button,a,span,div,small,b,strong,em,input,textarea,select){line-height:1.6!important}
html[lang="hi"] body :is(h1,h2,h3,h4,.h1-hello,.t2-hi,.verdict-h,.pl-packs-h,.mc2-lab){font-family:"Noto Sans Devanagari","IBM Plex Sans",sans-serif!important;letter-spacing:0!important}
/* M7 ASK = WHATSAPP CHAT (founder 31 Oct): the old Q&A belongs to the Ask tab only. Today and Home show no history and no pill; Ask is one continuous thread. */
#h1root:not(.h1-tab-ask) .mc-home-host,html.pi1-card .mc-home-host{display:none!important}
body:not(.mc-ask-on) #mcJumpLatest{display:none!important}
#h1root.h1-tab-ask.mc-chat-on :is(#h1homereports,#h1hello,#h1todayfold,#h1today){display:none!important}
.as-root.as-chat-on :is(.as-h,.as-pr[data-returning]){display:none!important}
/* P0 ASK-SEGMENTS: topic groups stay reachable in the chat state - collapsed behind a Topics button, open on tap (also while an answer is showing). */
.as-root .as-topics-tog{display:none}
.as-root.as-answering .as-topics-tog{display:block;min-height:44px;margin:8px 0;padding:0 16px;border:1px solid #A8862F;border-radius:22px;background:transparent;color:#D6B45A;font:600 16px/1.3 var(--mv-sans,system-ui,sans-serif)}
/* 05:35 fix: the landing (returning user too) shows the groups + 2 questions each open; they fold only while an answer is on screen (Topics button reopens them). */
html body #root .as-root:not(.as-answering) .as-tqs{display:block}
html body #root .as-root:not(.as-answering) .as-topics,html body #root .as-root:not(.as-answering) .as-th,html body #root .as-root:not(.as-answering) .as-tart{display:none}
html body #root .as-root.as-topics-open :is(.as-tqs,.as-topics,.as-th,.as-qs){display:block!important}
html body #root .as-root.as-topics-open .as-topics{display:flex!important}
.as-root .mc-earlier-host{margin:0 0 8px}
.as-root .as-turn{margin:0 0 16px}
.as-root .as-turn :is(.as-fu,.as-pr,.as-keep,.as-another){display:none!important}
html{scrollbar-width:auto}

/* 05:35 FONTS: fonts/fonts.css is lazy-loaded after first paint, so the Ask verdict painted in the Georgia/Times fallback. Declare the Fraunces latin face here (home.css is a head link) so the verdict never shows a Times-like serif. */
@font-face{font-family:"Fraunces";font-style:normal;font-weight:100 900;font-display:swap;src:url("./fonts/Fraunces-var-latin.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}
/* no empty dark panel under a reply: the answer area collapses when it has no content */
.as-root .as-out:empty{display:none}

/* 07:05 SEGMENTS3: (3) Topics open = the groups sheet, not the history: the thread above folds away while the sheet is open; (5) no dark empty panel while Mavella is thinking or above the reply. */
html body #root .as-root.as-topics-open :is(.as-chat,.mc-earlier-host,.as-out,.as-histwrap){display:none!important}
html body #root .as-root :is(.as-chat,.as-turn,.mc-earlier-host,.as-out,.as-read,.as-th,.as-tart):empty{display:none!important}
html body #root .as-root .as-read{background:transparent;border:0;padding:0;margin:0 0 12px}
html body #root .as-root:not(.as-answering) .as-tqs .as-tq{display:block}

/* 0945 A4: Show/Hide topic groups (remembered). Off = the groups fold away on the landing; the Topics button (always visible then) opens them as before. */
.as-root .as-groups-tog{display:block;min-height:44px;margin:0 0 4px;padding:0;border:0;background:transparent;color:#D6B45A;font:600 12px/1.3 var(--mv-sans,system-ui,sans-serif);text-decoration:underline;text-align:left;cursor:pointer}
html body #root .as-root.as-groups-off:not(.as-topics-open) :is(.as-tqs,.as-topics,.as-th,.as-qs,.as-tart){display:none!important}
html body #root .as-root.as-groups-off .as-topics-tog{display:block;min-height:44px;margin:8px 0;padding:0 16px;border:1px solid #A8862F;border-radius:22px;background:transparent;color:#D6B45A;font:600 16px/1.3 var(--mv-sans,system-ui,sans-serif)}
/* 01 Nov NO-GO B2: findahelpline.com is a small text link under the numbers, not a white box */
.help-card a.help-link[href*="findahelpline"],.h1-help-full a.help-link[href*="findahelpline"]{display:inline;background:none;border:0;border-radius:0;min-height:0;padding:0;margin:0;font-size:inherit;font-weight:400;text-decoration:underline;text-align:left}

/* TRAIN3 M7: Ask screen - refine question first, answer after tap/Skip/12 s */
.as-hold>*:not(.as-pr){display:none!important}
