:root{
  --paper:#F2F3F6; --card:#FFFFFF; --sunk:#E9EBF0;
  --ink:#141824; --body:#3F4553; --faint:#7C8397;
  --line:#D5D9E2; --hair:#E7EAF0;
  --accent:#B03A2B; --accent-soft:#FBECE9;
  --deep:#22335C; --deep-soft:#E7EBF4;
  --brass:#8A7230;
  --ok:#1F6B4D; --ok-soft:#E4F0EA;
  --warn:#8A6410; --warn-soft:#FAF3E0;
  --bad:#93332B;
  --shadow:0 1px 1px rgba(20,24,36,.04), 0 12px 30px rgba(20,24,36,.07);
}
@media (prefers-color-scheme:dark){:root{
  --paper:#0C1017; --card:#141A24; --sunk:#0F141C;
  --ink:#E9EBF1; --body:#AFB6C4; --faint:#767E90;
  --line:#252D3B; --hair:#1C2431;
  --accent:#E08A78; --accent-soft:#2A1815;
  --deep:#8FA6D6; --deep-soft:#161E2E;
  --brass:#C6A85E;
  --ok:#6BBE97; --ok-soft:#122620;
  --warn:#D4AE5C; --warn-soft:#282110;
  --bad:#E08578;
  --shadow:0 1px 1px rgba(0,0,0,.5), 0 14px 34px rgba(0,0,0,.4);
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"IBM Plex Sans","Noto Sans Devanagari","Noto Sans Kannada","Noto Sans Telugu","Noto Sans Tamil","Noto Sans Malayalam","Noto Sans Bengali",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased}
.wrap{max-width:430px;margin:0 auto;padding:22px 18px 96px}
.foot{position:fixed;left:0;right:0;bottom:0;max-width:430px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:0;background:var(--card);
  border-top:1px solid var(--line);z-index:5}
.foot button{border:0;background:transparent;padding:10px 4px;min-height:48px;
  font-size:12px;color:var(--faint)}
.foot button:hover{color:var(--ink)}
.window{border:1px solid var(--line);border-radius:3px;padding:12px;margin:10px 0;
  background:var(--sunk)}
.window h3{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.04em;
  margin:0 0 8px;color:var(--ink);text-transform:none}
.sense{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.06em;
  text-transform:uppercase;margin:8px 0 4px;color:var(--faint)}
.sense.lifted{color:var(--body)}
.koota{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}
.koota th,.koota td{text-align:left;padding:8px 4px;border-bottom:1px solid var(--hair);
  vertical-align:top}
.koota td:last-child{text-align:right;font-family:"IBM Plex Mono",monospace;font-size:12px}
.fcbox{border:1px solid var(--line);padding:16px;margin:8px 0;background:var(--card);
  min-height:48px;text-align:left;font-size:16px;color:var(--ink)}
.eyebrow{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.19em;text-transform:uppercase;color:var(--accent);
  display:flex;align-items:center;gap:9px}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line)}
h1{font-family:Fraunces,"Noto Sans Devanagari","Noto Sans Kannada","Noto Sans Telugu","Noto Sans Tamil","Noto Sans Malayalam","Noto Sans Bengali",Georgia,serif;font-weight:400;
  font-size:clamp(28px,8vw,38px);line-height:1.08;letter-spacing:-.015em;
  margin:12px 0 10px;text-wrap:balance}
h2{font-family:Fraunces,"Noto Sans Devanagari","Noto Sans Kannada","Noto Sans Telugu","Noto Sans Tamil","Noto Sans Malayalam","Noto Sans Bengali",Georgia,serif;font-weight:400;font-size:22px;
  line-height:1.25;margin:0 0 8px}
p{margin:0 0 14px;color:var(--body)}
.lead{font-size:17px;color:var(--body)}
.card{background:var(--card);border:1px solid var(--line);border-radius:5px;
  padding:20px;box-shadow:var(--shadow);margin-bottom:14px;position:relative}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;
  background:linear-gradient(90deg,var(--brass) 0%,transparent 62%);
  border-radius:5px 5px 0 0;opacity:.55}
.card.plain::before{display:none}
.card.answer-move{border-color:var(--brass)}
.card.answer-move::before{
  background:linear-gradient(90deg,var(--accent) 0%,var(--brass) 55%,transparent 100%);
  opacity:1;height:3px}
.card.answer-move .lead{color:var(--ink);font-size:18px}
label.check{display:flex;gap:10px;align-items:flex-start;text-transform:none;
  letter-spacing:0;font-family:inherit;font-size:15px;color:var(--body);
  margin-bottom:14px}
label.check input{width:18px;height:18px;flex:none;margin:3px 0 0}
label{display:block;font-family:"IBM Plex Mono",monospace;font-size:10px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--faint);
  margin-bottom:6px}
input,select,textarea{width:100%;font-family:inherit;font-size:16px;
  padding:13px 13px;border:1px solid var(--line);border-radius:3px;
  background:var(--sunk);color:var(--ink);margin-bottom:14px}
input:focus,select:focus,textarea:focus{background:var(--card);
  border-color:var(--deep);outline:none;box-shadow:0 0 0 3px var(--deep-soft)}
textarea{min-height:120px;resize:vertical}
button{font-family:inherit;cursor:pointer;border-radius:3px}
button:active{transform:translateY(1px)}
.primary{width:100%;padding:15px;font-size:16px;font-weight:600;
  background:var(--deep);color:#fff;border:1px solid var(--deep);min-height:48px}
.primary:disabled{opacity:.38;cursor:not-allowed;transform:none}
.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);
  width:100%;padding:14px;font-size:15px;margin-top:8px;min-height:48px;text-align:left}
.ghost:hover{border-color:var(--deep);background:var(--deep-soft)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
.chips button{padding:10px 14px;min-height:44px;border:1px solid var(--line);
  background:var(--card);color:var(--ink);font-size:15px}
.chips button.on{border-color:var(--deep);background:var(--deep-soft)}
.tag{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:10px;
  letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;
  border:1px solid var(--line);border-radius:2px;color:var(--faint);margin-right:6px}
.tag.astro{color:var(--deep);border-color:var(--deep)}
.tag.vastu{color:var(--brass);border-color:var(--brass)}
.tag.numerology{color:var(--accent);border-color:var(--accent)}
.note{font-size:14px;color:var(--faint);border-left:2px solid var(--line);
  padding-left:12px;margin:12px 0 0}
.warn{background:var(--warn-soft);border:1px solid var(--warn);border-radius:3px;
  padding:12px;font-size:14.5px;color:var(--warn);margin:10px 0}
.okbox{background:var(--ok-soft);border:1px solid var(--ok);border-radius:3px;
  padding:12px;font-size:14.5px;color:var(--ok);margin:10px 0}
.err{background:var(--bad);color:#fff;padding:11px 14px;border-radius:3px;
  font-size:15px;margin-bottom:14px}
.src{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint);
  margin-top:10px}
.dots{display:flex;gap:6px;justify-content:center;margin:0 0 18px}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.dots i.on{background:var(--accent)}
.dots i.past{background:var(--deep)}
.bar{display:flex;height:18px;border-radius:3px;overflow:hidden;
  border:1px solid var(--line);margin:10px 0}
.bar span{display:block;height:100%;min-width:2px}
.loshu{display:grid;grid-template-columns:repeat(3,72px);gap:1px;
  background:var(--line);border:1px solid var(--line);width:max-content;
  margin:8px auto 12px}
.loshu div{background:var(--card);min-height:72px;padding:10px 4px;text-align:center;
  font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--faint)}
.loshu b{display:block;font-size:20px;color:var(--accent);margin-top:4px;
  letter-spacing:.04em;font-weight:600}
.hits{border:1px solid var(--line);border-radius:3px;margin:-8px 0 14px;
  background:var(--card);max-height:220px;overflow-y:auto}
.hits button{display:block;width:100%;text-align:left;padding:12px 13px;
  border:0;border-bottom:1px solid var(--hair);background:transparent;
  color:var(--ink);min-height:44px}
.hits button:last-child{border-bottom:0}
.hits small{display:block;font-family:"IBM Plex Mono",monospace;font-size:10px;
  color:var(--faint)}
.hits .tag.approx{color:var(--warn);border-color:var(--warn);margin-bottom:4px}
.layer{border:1px solid var(--line);border-radius:3px;padding:14px;margin:14px 0;
  background:var(--card)}
.layer.locked{background:var(--sunk)}
.layer .eyebrow{margin-bottom:6px}
.cite-line{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--faint);margin:12px 0 4px}
button[disabled]{opacity:.45}
.cite-hero .open-cite{font-size:13px;color:var(--ink);margin:8px 0 4px;line-height:1.45}
.uncited{border:1px solid var(--warn);background:var(--warn-soft);padding:12px;margin:12px 0;
  color:var(--ink);font-size:15px}
/* Charts. Every colour comes from a variable, so dark mode is automatic and
   there is no #fff or #000 anywhere in an SVG. Presentation attributes cannot
   read var(), so the SVG is styled from here by class -- which is also what
   keeps one palette across the chart, the grid and the timeline. */
.chart-card{margin:0 0 18px;padding:0}
.chart-card .eyebrow{margin:0 0 8px}
.chart-switch{margin:0 0 10px}
.chart-switch button{font-size:14px;padding:8px 14px;min-height:44px}
.chart-hold{background:var(--card);border:1px solid var(--line);border-radius:4px;
  padding:8px}
.kundli{display:block;width:100%;height:auto;max-width:360px;margin:0 auto;
  font-family:"IBM Plex Mono",ui-monospace,monospace}
/* one background, then the wash, then stroke-only cells on top of it -- a fill
   per cell would hide the watermark everywhere except the open centre */
.kundli .k-bg{fill:var(--card)}
.kundli .k-cell{fill:none;stroke:var(--line);stroke-width:1}
.kundli .k-line{fill:none;stroke:var(--line);stroke-width:1}
.kundli .k-lagna{fill:var(--deep-soft)}
.kundli .k-lagna-mark{stroke:var(--deep);stroke-width:2}
.kundli .k-sign{font-size:9px;letter-spacing:.06em;fill:var(--faint)}
.kundli .k-house{font-size:9px;letter-spacing:.06em;fill:var(--faint)}
.kundli .k-asc{font-size:9px;letter-spacing:.06em;fill:var(--deep);font-weight:600}
.kundli .k-body{font-size:11px;fill:var(--ink);font-weight:500}
.kundli .k-retro{fill:var(--accent)}
.kundli .k-more{font-size:9px;fill:var(--faint)}
/* the mark: drawn, faint, behind the data, and never competing with it */
.kundli .k-wash{font-family:Fraunces,Georgia,serif;font-size:36px;
  letter-spacing:.04em;fill:var(--ink);opacity:.055}
.kundli .k-mark{font-size:7px;letter-spacing:.1em;fill:var(--faint);opacity:.6}
/* the ashtakavarga grid: the count carries the value, the shade only repeats it.
   --deep-soft and --sunk read as "more" and "less", not as good and bad, and
   both are defined in light and dark, so there is no hard-coded colour here. */
.kundli .k-lagna-edge{stroke:var(--deep);stroke-width:2}
.avgrid .av-cell{fill:none}
.avgrid .av-hi{fill:var(--deep-soft)}
.avgrid .av-lo{fill:var(--sunk)}
.avgrid .av-n{font-size:22px;font-weight:600;fill:var(--ink)}
.avgrid .av-total{font-family:"IBM Plex Mono",monospace;font-size:12px;
  letter-spacing:.06em;fill:var(--body)}
.avgrid .av-avg{fill:var(--faint);font-size:10px}
.avgrid .av-med{stroke:var(--ink);stroke-width:.7;stroke-dasharray:3 2;
  opacity:.45}
.avgrid .av-spark{stroke:none}
.avgrid .av-spark.av-hi{fill:var(--ok)}
.avgrid .av-spark.av-lo{fill:var(--bad)}
.avgrid .av-spark.av-mid{fill:var(--line)}
.avgrid .av-spark-n{font-size:8px;fill:var(--faint)}
.avgrid .av-spark-cap{font-size:8px;fill:var(--faint)}
.avgrid g{cursor:help}
.chart-card .warn{font-size:12px;margin:6px 0 0}
/* the closing panel: the mark, one line of thanks, then the citation. Colour
   comes from currentColor on the svg, so dark mode needs no second asset. */
.closing{text-align:center;border-top:1px solid var(--hair);margin-top:22px;
  padding-top:20px}
.closing-mark{color:var(--deep);margin:0 auto 14px}
.closing .ganesha{width:76px;height:auto;display:block;margin:0 auto}
.closing-p{max-width:62ch;margin:0 auto 12px;color:var(--body)}
.closing .src{max-width:62ch;margin:0 auto 6px}
.closing .closing-honest{color:var(--faint)}
.verdict{margin:10px 0 4px;padding:10px 0 0;border-top:1px solid var(--hair)}
.verdict-h{font-family:"IBM Plex Mono",monospace;font-size:11px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 6px}
.verdict .verdict-note{margin:8px 0 0;min-height:0;padding:10px 12px}
.verdict .chips button.on{border-color:var(--ok);background:var(--ok-soft)}
.challenge{margin-top:12px}
.challenge textarea{min-height:90px}
.ch-msg{margin-top:8px}
.answers{display:grid;gap:8px;margin-top:8px}
.answers button{padding:14px 16px;font-size:16px;text-align:left;min-height:48px;
  background:var(--card);border:1.5px solid var(--line);color:var(--ink)}
.progress{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--faint);
  margin-bottom:10px}
.back{background:none;border:0;color:var(--faint);padding:8px 0 16px;
  min-height:44px;font-size:15px}
.langs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.langs button{min-height:48px;border:1px solid var(--line);background:var(--card);
  color:var(--ink)}
.langs button.soon{opacity:.55;cursor:default}
.lang-soon{font-size:12px;margin-left:6px;color:var(--faint)}
.lang-coming-h{margin:18px 0 8px;font-size:15px;color:var(--mute,#666);line-height:1.4}
@media (prefers-reduced-motion:reduce){
  button{transition:none}
  button:active{transform:none}
}


/* ---- THE CHAT THREAD -----------------------------------------------------
   The reader's question stays at the top of the session and every reply lands
   under it. Theirs sits right and tight, ours sits left and open, so the two
   voices are told apart at a glance rather than by reading them. */
.thread-ask {
  border-left: 3px solid var(--gold, #b08d3f);
  padding: .35rem 0 .35rem .75rem;
  margin: 0 0 1.25rem;
}
.thread-ask p:last-child { margin: 0; font-size: 1.05rem; }
.thread { display: flex; flex-direction: column; gap: .85rem; }
.t-us {
  max-width: 46rem;
  padding: .9rem 1.1rem;
  border-radius: .9rem .9rem .9rem .2rem;
  background: var(--card, #fff);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .07);
}
.t-us p { margin: 0; }
/* Everything already said stays readable, just not competing with the turn the
   reader is on. */
.t-us:not(.t-live) { opacity: .72; }
.t-live { box-shadow: 0 2px 10px rgba(0, 0, 0, .10); }
.t-you {
  align-self: flex-end;
  max-width: 26rem;
  padding: .55rem .95rem;
  border-radius: .9rem .9rem .2rem .9rem;
  background: var(--accent-soft, #eef1f7);
  font-size: .95rem;
}
.t-you p { margin: 0; }
.next-choice{position:fixed;inset:0;z-index:40;background:color-mix(in srgb, var(--ink) 42%, transparent);
  display:flex;align-items:flex-end;justify-content:center;padding:18px}
.next-choice[hidden]{display:none}
.next-choice-card{width:100%;max-width:430px;background:var(--card);border:1px solid var(--line);
  border-radius:8px;padding:18px 16px 16px;box-shadow:var(--shadow)}
.next-choice-card h2{margin:4px 0 8px;font-family:Fraunces,Georgia,serif;font-size:26px;
  line-height:1.15}
.next-choice-card p{margin:0 0 14px;color:var(--body)}
.next-choice-card .eyebrow{margin:0 0 4px}
.chat-box{margin:18px 0 10px;border:1px solid var(--line);border-radius:10px;
  background:var(--card);box-shadow:var(--shadow);overflow:hidden}
.chat-bots{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;
  border-bottom:1px solid var(--hair);background:var(--sunk)}
.chat-bot{min-width:0;padding:9px 6px;border:1px solid var(--line);border-radius:6px;
  background:var(--card);color:var(--ink);text-align:left}
.chat-bot strong,.chat-bot span{display:block;overflow:hidden;text-overflow:ellipsis}
.chat-bot strong{font-size:13px;white-space:nowrap}
.chat-bot span{margin-top:3px;color:var(--faint);font-size:10px;line-height:1.25}
.chat-bot.on{border-color:var(--deep);background:var(--deep-soft)}
.chat-header{padding:14px 16px 10px;border-bottom:1px solid var(--hair)}
.chat-header h1{margin:0}
.chat-header p{margin:6px 0 0}
.chat-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;
  padding-top:10px;border-top:1px solid var(--hair)}
.chat-profile-grid div{min-width:0}
.chat-profile-grid span{display:block;font-family:"IBM Plex Mono",monospace;
  font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.chat-profile-grid strong{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-size:13px;font-weight:500;color:var(--ink)}
.chat-profile-form{padding:12px 14px 4px;background:var(--card);border-bottom:1px solid var(--hair)}
.chat-profile-form .note{margin:0 0 10px}
.chat-profile-text{min-height:92px;font-size:14px;padding:10px;margin:0 0 5px;resize:vertical}
.chat-profile-hint{font-size:12px;color:var(--faint);margin:0 0 10px}
.chat-profile-form .err{font-size:13px;padding:8px 10px;margin:2px 0 10px}
.chat-profile-form .primary{margin:2px 0 10px}
.chat-thread{max-height:360px;overflow-y:auto;padding:14px 14px 8px;display:flex;
  flex-direction:column;gap:12px;background:var(--sunk)}
.chat-msg{max-width:84%;padding:10px 12px;border-radius:12px;line-height:1.45;
  font-size:15px;white-space:pre-wrap}
.chat-answer{margin:0 0 10px;padding:10px 11px;border-left:4px solid var(--line);
  border-radius:4px;background:var(--sunk);white-space:normal}
.chat-answer:last-child{margin-bottom:0}
.chat-answer h3{margin:0 0 5px;font-family:"IBM Plex Mono",monospace;font-size:10px;
  letter-spacing:.08em;color:var(--ink)}
.chat-answer p{margin:0;font-size:14px;line-height:1.5;color:var(--body)}
.chat-answer-likely{border-color:var(--deep);background:var(--deep-soft)}
.chat-answer-do{border-color:var(--ok);background:var(--ok-soft)}
.chat-answer-avoid{border-color:var(--accent);background:var(--accent-soft)}
.chat-answer-good{border-color:var(--brass);background:var(--warn-soft)}
.chat-status{transition:color .2s ease}
.chat-answer-intro{margin:0 0 10px;white-space:normal}
.chat-msg.user{align-self:flex-end;background:var(--deep);color:#fff;
  border-bottom-right-radius:4px}
.chat-msg.bot{align-self:flex-start;background:var(--card);color:var(--ink);
  border:1px solid var(--line);border-bottom-left-radius:4px}
.chat-msg.error{align-self:stretch;background:var(--bad);color:#fff;border:0}
.chat-compose{display:flex;gap:8px;padding:12px 14px 16px;background:var(--card)}
.chat-compose input{margin:0;flex:1}
.chat-compose button{width:auto;min-width:110px;padding:13px 16px}
.chat-send{min-width:58px!important;width:58px!important;padding:10px!important;
  font-size:24px!important;line-height:1;font-weight:700;background:var(--accent);
  border-color:var(--accent);color:#fff;box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 35%,transparent)}
.chat-status{padding:0 14px 12px;background:var(--card);color:var(--faint);font-size:12px}
.home-chat-entry{margin-top:10px;text-align:center}
.gs{margin:12px 0 16px}
.gs-when{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}
.gs-grid{display:grid;grid-template-columns:1fr minmax(84px,.7fr) 1fr;gap:8px;
  align-items:start}
.gs-h{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--body);margin:0 0 6px}
.gs-mid{min-height:72px;padding:10px 8px;border:1px solid var(--line);
  border-radius:3px;background:var(--sunk);color:var(--ink);font-size:13.5px;
  line-height:1.35}
.gs-row{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;
  gap:2px 6px;width:100%;margin:0 0 6px;padding:6px 4px;border:1px solid var(--line);
  border-radius:3px;background:var(--card);color:var(--ink);text-align:left}
.gs-name{font-size:13px;font-weight:600}
.gs-word{grid-column:1 / -1;font-size:11px;font-weight:600}
.gs-bar{grid-column:2;align-self:center;height:8px;background:var(--sunk);
  border:1px solid var(--line);border-radius:3px;overflow:hidden}
.gs-bar i{display:block;height:100%;width:0;background:var(--deep)}
.gs-very_good{border-color:var(--ok);
  background:color-mix(in srgb, var(--ok) 14%, var(--card))}
.gs-very_good .gs-bar i{background:var(--ok)}
.gs-very_good .gs-word{color:var(--ok)}
.gs-good,.gs-common{border-color:color-mix(in srgb, var(--ok) 45%, var(--line))}
.gs-good .gs-bar i,.gs-common .gs-bar i{
  background:color-mix(in srgb, var(--ok) 70%, var(--brass))}
.gs-good .gs-word,.gs-common .gs-word{color:var(--ok)}
.gs-bad{border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}
.gs-bad .gs-bar i{background:var(--accent)}
.gs-bad .gs-word{color:var(--accent)}
.gs-very_bad{border-color:var(--bad);
  background:color-mix(in srgb, var(--bad) 14%, var(--card))}
.gs-very_bad .gs-bar i{background:var(--bad)}
.gs-very_bad .gs-word{color:var(--bad)}
.gs-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:430px){
  .gs-grid{grid-template-columns:1fr 1fr}
  .gs-mid{grid-column:1 / -1;order:-1;min-height:56px}
}
.quiet-run { margin: .4rem 0 1rem; opacity: .7; font-style: italic; }
.progress { margin-top: 1.5rem; opacity: .6; font-size: .85rem; }
html[data-screen="milan"] .wrap,
html[data-screen="gems"] .wrap{max-width:720px}
.milan-grid{display:grid;grid-template-columns:1fr;gap:18px;margin:12px 0 18px}
@media (min-width:680px){
  .milan-grid{grid-template-columns:1fr 1fr;gap:22px}
}
.milan-col{border:1px solid var(--line);border-radius:3px;padding:12px;
  background:var(--card)}
.move-star{
  margin:4px 0 28px;padding:18px 14px 20px;
  border-radius:12px;
  background:color-mix(in srgb,var(--deep) 10%, var(--sunk));
}
.move-star .eyebrow{
  margin:0 0 8px;color:var(--brass);letter-spacing:.14em;
  font-size:11px;text-transform:uppercase;
}
.move-from{
  margin:0;font-family:Fraunces,Georgia,serif;
  font-size:clamp(28px,8vw,42px);font-weight:560;line-height:.95;
  letter-spacing:-.03em;color:var(--accent);
}
.move-arrow{
  margin:6px 0 4px;font-size:28px;line-height:1;color:var(--brass);
}
.move-to{
  margin:0 0 10px;font-family:Fraunces,Georgia,serif;
  font-size:clamp(32px,9vw,52px);font-weight:640;line-height:.92;
  letter-spacing:-.04em;color:var(--ok);
}
.move-why{margin:0 0 8px;color:var(--body);font-size:15px;line-height:1.35}
.move-more{margin:12px 0 0;padding:0 0 0 1.1em;color:var(--faint);font-size:14px}
.move-fold{margin:8px 0 20px;color:var(--faint)}
.move-fold summary{
  cursor:pointer;font-size:13px;letter-spacing:.06em;text-transform:uppercase;
}
.rpt-fold{margin:16px 0 24px;color:var(--faint)}
.rpt-fold > summary{
  cursor:pointer;font-size:14px;letter-spacing:.04em;
  padding:12px 0;color:var(--deep);
}
.move-card{
  border:none;border-bottom:1px solid color-mix(in srgb,var(--brass) 42%,transparent);
  padding:4px 0 16px;background:transparent;box-shadow:none}
.move-card h2{
  margin:6px 0 8px;font-family:Fraunces,Georgia,serif;
  font-size:clamp(22px,5vw,28px);font-weight:560;letter-spacing:-.02em}
.move-card strong{
  font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:700;color:var(--accent)}
.gem-split{margin:16px 0 10px}
.gem-split small{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;color:var(--faint)}
.yr-frac{margin:8px 0 14px}
.yr-frac b{font-size:clamp(44px,12vw,58px);color:var(--deep)}
.gem-vacant{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0}
@media (min-width:680px){
  .gem-vacant{grid-template-columns:1fr 1fr}
}
.digest-how{margin-bottom:16px}
.digest-how h2{margin:0 0 6px}
.sh-talk{margin:12px 0 8px}
.sh-say{min-height:3.2em;margin:8px 0 12px;padding:10px 12px;background:var(--sunk);border-radius:8px}
.sh-list{margin:0 0 8px;padding:0 0 0 1.15em}
.sh-pt.on{border-color:var(--deep);background:var(--deep-soft)}
.plan-card{margin-top:20px}
.sub-card{padding:18px 16px 20px;border-color:var(--deep);box-shadow:var(--shadow)}
.sub-mark{
  display:inline-block;margin:0 0 8px;padding:4px 10px;border-radius:999px;
  background:var(--deep);color:#fff;font-size:12px;letter-spacing:.04em;
  text-transform:uppercase}
.sub-hero{margin:8px 0 18px;padding:22px 16px 20px;border-radius:14px;
  background:linear-gradient(165deg,var(--deep) 0%,#1a2744 70%);color:#F4F1EA}
.sub-hero .sub-mark{background:var(--brass);color:#1a1608}
.sub-hero h1{margin:8px 0 10px;font-family:Fraunces,Georgia,serif;
  font-size:clamp(28px,8vw,36px);line-height:1.15;color:#fff}
.sub-hero .lead{color:#E4DCC8}
.sub-got li{margin:6px 0}
.sub-now{margin:14px 0 16px;padding:10px 12px;border-radius:8px;
  background:var(--ok-soft);color:var(--ok);font-size:14px}
.sub-card label[for="planEmail"]{display:block;margin:12px 0 6px}
.sub-card #planEmail{width:100%;box-sizing:border-box}
.sub-nudge{margin:12px 0 8px;padding:10px 12px;border-radius:8px;
  background:var(--deep-soft);color:var(--ink);font-size:14px}
.sub-nudge .ghost{margin:8px 0 0;display:inline-block}
.next-ask{margin:16px 0 8px;padding:14px 14px 16px;border-radius:10px;
  border:1px solid var(--line);background:var(--card)}
.next-ask .lead{margin:0 0 6px}
.next-ask textarea{width:100%;box-sizing:border-box;min-height:88px;margin:8px 0}
.plan-list{margin:8px 0 12px;padding:0 0 0 1.15em}
.plan-step{display:flex;align-items:center;justify-content:center;gap:16px;margin:14px 0 8px}
.plan-pm{width:44px;height:44px;border:1px solid var(--line);border-radius:10px;
  background:var(--sunk);font-size:22px;line-height:1;cursor:pointer;color:inherit}
.plan-n{margin:0;text-align:center}
.plan-n b{display:block;font-family:Fraunces,Georgia,serif;font-size:36px;line-height:1}
.plan-pay{margin:0 0 6px;text-align:center}
.plan-pay b{font-family:Fraunces,Georgia,serif;font-size:28px}
.plan-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0}
.plan-tile{
  text-align:left;padding:12px 14px;border:1px solid var(--line);
  background:var(--card);border-radius:10px;cursor:pointer;
  color:inherit;font:inherit}
.plan-tile b{display:block;font-family:Fraunces,Georgia,serif;font-size:22px}
.plan-tile span{display:block;margin:2px 0}
.plan-tile small{display:block;color:var(--faint);font-size:13px}
.plan-tile.on{border-color:var(--deep);background:var(--deep-soft)}
.gem-table td:last-child{text-align:left;font-family:inherit;font-size:14px}
.place-groups{margin:10px 0 4px}
.place-group{margin:0 0 16px}
.place-group h3{margin:0 0 8px;font-size:14px;color:var(--deep);font-weight:600}
.place-card{margin:0 0 8px;padding:12px 14px;border:1px solid var(--line);
  border-radius:10px;background:var(--sunk)}
.place-card p{margin:0 0 8px}
.place-card p:last-child{margin:0}
.place-card details.fold{margin-top:6px}
.look-card{border-color:var(--deep);background:var(--deep-soft)}
.look-card .eyebrow{margin:0 0 6px;color:var(--deep);font-size:12px;
  letter-spacing:.04em;text-transform:uppercase}
.expert-call{margin-top:28px}
.expert-call .call-kind{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.expert-call label[for="callEmail"]{display:block;margin:12px 0 6px}
.expert-call #callEmail{width:100%;box-sizing:border-box}
.expert-call .plan-pay span{display:block;margin-top:4px;font-size:14px;
  font-weight:400;color:var(--faint)}
.daily-pack{margin:16px 0 20px;padding:16px 14px 18px;border-color:var(--deep)}
.daily-pack .keep-legs.on-reading{display:grid;grid-template-columns:1fr;
  gap:8px;margin:12px 0}
.daily-pack .keep-leg{padding:10px 12px;border:1px solid var(--line);
  border-radius:10px;background:var(--sunk)}
.daily-pack .keep-leg .eyebrow{margin:0 0 6px}
.daily-pack .ghost{margin-left:8px}
.name-field{margin:12px 0 8px;padding:12px 14px;border:1px solid var(--line);
  border-radius:10px;background:var(--sunk)}
.name-field .eyebrow{margin:0 0 6px;color:var(--deep);font-size:12px;
  letter-spacing:.04em;text-transform:uppercase}
.field-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:8px;margin:10px 0}
.field-fig{padding:10px 12px;border-radius:8px;background:var(--card);
  border:1px solid var(--line)}
.field-fig b{display:block;font-family:Fraunces,Georgia,serif;font-size:18px}
.field-fig span{display:block;margin-top:4px;color:var(--faint);font-size:13px}
.field-sample{margin:0 0 8px;line-height:1.45}
