/* ============================================================
   OWN Financial — Homepage (premium editorial layer)
   Loaded after styles.css. One continuous warm-cream field —
   depth comes from white cards + soft elevation, never dark bands.
   Aesop/Aman calm: generous air, type-led hierarchy, restraint.
   ============================================================ */

/* ---- premium reveal: slower, calmer, optional blur ---- */
.reveal{ transition:opacity 1.1s var(--ease), transform 1.1s var(--ease), filter 1.1s var(--ease); transform:translateY(22px); }
.reveal.soft{ filter:blur(6px); }
.reveal.soft.in{ filter:blur(0); }
@media (prefers-reduced-motion:reduce){ .reveal.soft{ filter:none; } }

/* generous section rhythm — everything on the same cream field */
body{ background:var(--ivory); }
.s-xl{ padding:clamp(80px,11vh,140px) 0; }
.s-lg{ padding:clamp(60px,8vh,104px) 0; }
.s-md{ padding:clamp(44px,6vh,72px) 0; }
main > section{ background:var(--ivory); }

/* warm hero base */
#heroA{ background:linear-gradient(180deg,#F6F5F1 0%, #F1F0EA 100%); }

/* hairline section separators — quiet rhythm without colour change */
.rule-sep{ height:1px; background:var(--line); max-width:var(--maxw); margin:0 auto; }

/* ============================================================
   QUIET INTRO statement
   ============================================================ */
.intro-statement{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,3.4vw,46px); line-height:1.32; letter-spacing:-0.01em; color:var(--ink); max-width: none; }
.intro-statement .dim{ color:var(--ink-faint); }

/* ============================================================
   SECTION HEADS (shared)
   ============================================================ */
.overline{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--forest); opacity:0.78; margin:0; }
.show-head{ font-family:var(--serif); font-weight:400; font-size:clamp(30px,4.4vw,56px); line-height:1.04; letter-spacing:-0.025em; color:var(--ink); margin:14px 0 0; }
.show-sub{ font-family:var(--sans); font-size:clamp(15px,1.6vw,17px); line-height:1.6; color:var(--ink-soft); margin:16px 0 0; max-width: none; }
.bignum{ font-family:var(--serif); font-weight:400; font-size:clamp(44px,5vw,68px); line-height:0.95; letter-spacing:-0.02em; color:var(--ink); font-variant-numeric:tabular-nums; }
.pill-stat{ display:inline-flex; align-items:center; gap:8px; border-radius:var(--r-pill); background:rgba(33,81,63,0.1); border:1px solid rgba(33,81,63,0.2); padding:6px 14px; font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:0.04em; color:var(--forest); white-space:nowrap; text-transform:uppercase; }
.pill-stat .d{ width:7px; height:7px; border-radius:50%; background:var(--forest); }

/* product card shell */
.prod-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-card-lg); padding:clamp(28px,3.5vw,48px); }

/* ============================================================
   ATLAS commentary block — signature (light)
   ============================================================ */
.atlas-note{ display:flex; gap:16px; align-items:flex-start; background:rgba(33,81,63,0.045); border:1px solid rgba(33,81,63,0.12); border-radius:var(--r-card-sm); padding:20px 24px; margin-top:24px; }
.atlas-note .an-badge{ display:inline-flex; align-items:center; gap:8px; flex-shrink:0; }
.atlas-note .an-orb{ width:24px; height:24px; border-radius:50%; background:var(--obsidian); display:grid; place-items:center; }
.atlas-note .an-label{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--forest); }
.atlas-note p{ font-family:var(--sans); font-size:14.5px; line-height:1.62; color:var(--ink-soft); margin:0; }
.atlas-note p b{ color:var(--ink); font-weight:600; }

/* ============================================================
   BIG PICTURE — asset bubbles
   ============================================================ */
.bp-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(32px,4vw,64px); align-items:center; }
.bp-legend{ display:flex; flex-direction:column; gap:2px; }
.bp-row{ display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); }
.bp-row:last-child{ border-bottom:none; }
.bp-row .nm{ font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink); }
.bp-row .ds{ font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); margin-top:2px; }
.bp-row .amt{ font-family:var(--serif); font-size:24px; color:var(--ink); font-variant-numeric:tabular-nums; }
.bp-card{ max-width:480px; margin-inline:auto; }
.bubbles{ position:relative; width:100%; aspect-ratio:1/1; max-width:328px; margin:0 auto; }
.bubble{ position:absolute; border-radius:50%; display:grid; place-items:center; text-align:center; color:#fff; transform:translate(-50%,-50%) scale(0.4); opacity:0; transition:transform 1s var(--ease), opacity .7s var(--ease); box-shadow:0 18px 40px -12px rgba(0,0,0,0.3), inset 0 2px 6px rgba(255,255,255,0.14); }
.bubbles.in .bubble{ transform:translate(-50%,-50%) scale(1); opacity:1; }
.bubble .bl{ font-family:var(--sans); font-size:11px; opacity:0.82; }
.bubble .bv{ font-family:var(--serif); font-size:clamp(13px,1.5vw,19px); }
/* big-picture stats header */
.bp-card .bp-stats{ display:flex; align-items:flex-end; gap:clamp(14px,2vw,28px); padding-bottom:22px; margin-bottom:8px; border-bottom:1px solid var(--line); }
.bp-st{ display:flex; flex-direction:column; gap:6px; }
.bp-sv{ font-family:var(--serif); font-size:clamp(30px,3.6vw,46px); line-height:0.9; color:var(--ink); font-variant-numeric:tabular-nums; }
.bp-sl{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); }
.bp-op{ font-family:var(--serif); font-size:clamp(22px,2.4vw,32px); color:var(--ink-faint); line-height:1; padding-bottom:14px; }
.bp-leg-h{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:8px; }
.bp-leg-h.owe{ color:#8A4A42; }
/* divider between What you own / What you owe */
.bp-divider{ height:1px; background:var(--line); margin:clamp(20px,2.4vw,30px) 0; }
/* owe section — single, compact debt bubble */
.bp-owe{ align-items:center; }
.bubbles.owe{ aspect-ratio:1/1; max-width:168px; }
@media (max-width:880px){ .bubbles.owe{ max-width:160px; } }

/* ============================================================
   BENEFITS — FHSA benefit detail card
   ============================================================ */
.ben-card{ max-width:520px; margin-inline:auto; text-align:left; padding:clamp(22px,2.4vw,30px); }
.ben-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--forest); margin:0; }
.ben-title{ font-family:var(--serif); font-weight:400; font-size:clamp(23px,2.5vw,31px); line-height:1.04; letter-spacing:-0.02em; color:var(--ink); margin:9px 0 0; }
.ben-sub{ font-family:var(--sans); font-size:14px; line-height:1.5; color:var(--ink-soft); margin:8px 0 0; }
.ben-value{ display:flex; align-items:center; justify-content:space-between; gap:16px; background:rgba(47,107,84,0.07); border:1px solid rgba(47,107,84,0.18); border-radius:16px; padding:16px 20px; margin:18px 0 14px; }
.ben-val-l{ font-family:var(--sans); font-size:10.5px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-mute); }
.ben-val-sub{ font-family:var(--sans); font-size:12.5px; line-height:1.4; color:var(--ink-soft); margin-top:5px; max-width: none; }
.ben-val-amt{ font-family:var(--serif); font-size:clamp(28px,3.1vw,40px); line-height:1; color:var(--forest); white-space:nowrap; font-variant-numeric:tabular-nums; }
.ben-val-amt span{ font-family:var(--sans); font-size:0.44em; color:var(--ink-mute); }
.ben-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.ben-tile{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:9px; }
.ben-tile .bt-l{ font-family:var(--sans); font-size:9.5px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-mute); }
.ben-tile .bt-v{ font-family:var(--sans); font-size:13px; font-weight:600; line-height:1.3; color:var(--ink); }
.ben-status{ display:flex; align-items:center; gap:10px; background:rgba(47,107,84,0.1); border-radius:999px; padding:11px 18px; margin:16px 0 6px; font-family:var(--sans); font-size:12.5px; line-height:1.35; color:var(--forest); }
.ben-status svg{ flex-shrink:0; }
.ben-need{ margin-top:14px; }
.ben-sec-h{ display:flex; justify-content:space-between; align-items:baseline; font-family:var(--sans); font-size:10.5px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-mute); }
.ben-sec-h span{ font-weight:500; letter-spacing:0.02em; text-transform:none; font-size:11.5px; color:var(--ink-mute); }
.ben-need-row{ display:flex; align-items:center; gap:12px; padding:12px 0; font-family:var(--sans); font-size:13.5px; color:var(--ink); }
.ben-need-row:first-of-type{ margin-top:6px; }
.ben-need-row + .ben-need-row{ border-top:1px solid var(--line); }
.ben-need-row .lock{ width:26px; height:26px; border-radius:7px; border:1.4px dashed rgba(10,10,10,0.26); display:grid; place-items:center; color:var(--ink-mute); flex-shrink:0; }
.ben-need-row .ben-action{ margin-left:auto; font-family:var(--sans); font-size:10px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--brass); white-space:nowrap; }
.ben-need-row .ben-action.mute{ color:var(--ink-mute); }
@media (max-width:520px){ .ben-tiles{ grid-template-columns:1fr; } }

/* ============================================================
   THE PLAN — standing + budget + goals + Atlas insight
   ============================================================ */
.plan-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card-lg); box-shadow:var(--shadow-card-lg); padding:clamp(20px,2.4vw,34px); }
.plan-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--forest); margin:0; }
.plan-h{ font-family:var(--serif); font-weight:400; font-size:clamp(30px,4.4vw,56px); line-height:1.0; letter-spacing:-0.03em; color:var(--ink); margin:14px 0 0; }
.plan-top{ display:grid; grid-template-columns:1fr auto; gap:clamp(20px,3vw,40px); align-items:center; padding:clamp(16px,1.8vw,24px) 0; border-bottom:1px solid var(--line); }
.plan-standing{ display:flex; align-items:center; gap:15px; }
.plan-grade{ width:64px; height:64px; border-radius:50%; background:var(--obsidian); color:#fff; display:grid; place-items:center; font-family:var(--serif); font-size:29px; flex-shrink:0; }
.ps-l{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); margin:0; }
.ps-t{ font-family:var(--serif); font-weight:400; font-size:clamp(19px,2vw,24px); line-height:1.05; color:var(--ink); margin:5px 0 0; }
.ps-s{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); margin:6px 0 0; }
.plan-donuts{ display:flex; gap:clamp(12px,1.6vw,24px); }
.plan-donut{ text-align:center; }
.plan-donut svg{ display:block; margin:0 auto; }
.pd-pct{ font-family:var(--sans); font-size:15px; font-weight:600; fill:var(--ink); }
.plan-donut .pd-l{ font-family:var(--sans); font-size:11.5px; font-weight:600; color:var(--ink); margin-top:9px; }
.plan-donut .pd-s{ font-family:var(--sans); font-size:10.5px; color:var(--ink-mute); margin-top:3px; line-height:1.35; }
.plan-cols{ display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(24px,3.4vw,44px); padding-top:clamp(20px,2.4vw,30px); }
.plan-sec-h{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); margin:0 0 12px; }
.plan-spent{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.plan-spent .v{ font-family:var(--serif); font-size:clamp(26px,2.8vw,34px); line-height:1; color:var(--ink); }
.plan-spent .s{ font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); }
.plan-over-tag{ font-family:var(--sans); font-size:12px; font-weight:600; color:var(--clay); background:rgba(181,80,60,0.1); border-radius:var(--r-pill); padding:3px 10px; }
.plan-budgetbar{ position:relative; height:11px; border-radius:999px; background:rgba(10,10,10,0.06); margin:14px 0 6px; overflow:hidden; }
.plan-budgetbar i{ position:absolute; left:0; top:0; bottom:0; border-radius:999px; background:var(--forest); }
.plan-budgetbar b{ position:absolute; top:0; bottom:0; right:0; width:5%; border-radius:0 999px 999px 0; background:var(--clay); }
.plan-bb-leg{ display:flex; justify-content:space-between; font-family:var(--sans); font-size:11.5px; color:var(--ink-mute); }
.plan-overlist{ margin-top:18px; }
.plan-ov-row{ display:flex; align-items:center; gap:10px; padding:8px 0; border-top:1px solid var(--line); font-family:var(--sans); font-size:13.5px; color:var(--ink); }
.plan-ov-row .dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.plan-ov-row .amt{ margin-left:auto; font-weight:600; color:var(--clay); font-variant-numeric:tabular-nums; }
.plan-goal{ padding:11px 0; border-top:1px solid var(--line); }
.plan-goal:first-child{ border-top:none; padding-top:0; }
.plan-goal-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.plan-goal-nm{ font-family:var(--sans); font-size:14px; font-weight:600; color:var(--ink); }
.plan-status{ font-family:var(--sans); font-size:11px; font-weight:600; border-radius:var(--r-pill); padding:4px 11px; border:1px solid var(--line-strong); color:var(--ink-soft); }
.plan-status.behind{ background:rgba(181,80,60,0.08); border-color:rgba(181,80,60,0.3); color:var(--clay); }
.plan-status.reached{ background:rgba(47,107,84,0.1); border-color:rgba(47,107,84,0.3); color:var(--forest); }
.plan-goal-bar{ height:7px; border-radius:999px; background:rgba(10,10,10,0.06); margin:8px 0; overflow:hidden; }
.plan-goal-bar i{ display:block; height:100%; border-radius:999px; }
.plan-goal-meta{ display:flex; justify-content:space-between; font-family:var(--sans); font-size:12px; }
.plan-goal-meta .l{ color:var(--ink-soft); } .plan-goal-meta .l b{ color:var(--ink); font-weight:600; }
.plan-goal-meta .r{ color:var(--ink-mute); }
.plan-caption{ font-family:var(--sans); font-size:13.5px; font-style:normal; color:var(--ink-mute); line-height:1.6; margin:clamp(28px,3.5vw,44px) 0 0; padding-top:24px; border-top:1px solid var(--line); }
.atlas-insight{ display:flex; gap:12px; align-items:flex-start; background:var(--ivory); border:1px solid var(--line); border-radius:var(--r-card-sm); padding:16px 18px; margin-top:16px; }
.atlas-insight .ai-mark{ width:24px; height:24px; border-radius:50%; background:var(--obsidian); display:grid; place-items:center; flex-shrink:0; margin-top:2px; }
.atlas-insight .ai-body{ font-family:var(--sans); font-size:13.5px; line-height:1.6; color:var(--ink-soft); }
.atlas-insight .ai-label{ font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--forest); margin-right:8px; }
.atlas-insight .ai-body b{ color:var(--ink); font-weight:600; }
@media (max-width:900px){ .plan-top{ grid-template-columns:1fr; } .plan-donuts{ flex-wrap:wrap; justify-content:flex-start; } .plan-cols{ grid-template-columns:1fr; } }
/* inside the narrower side-by-side art column, reflow on container width */
.mono-art{ container-type:inline-size; }
@container (max-width:640px){
  .plan-top{ grid-template-columns:1fr; gap:18px; }
  .plan-donuts{ flex-wrap:wrap; justify-content:flex-start; gap:18px; }
  .plan-cols{ grid-template-columns:1fr; gap:28px; }
  .plan-card{ padding:24px; }
}
@media (max-width:560px){ .plan-donuts{ gap:18px; } .plan-grade{ width:80px; height:80px; font-size:36px; } }

/* ============================================================
   ATLAS — Ask anything (light premium card)
   ============================================================ */
/* ============================================================
   ATLAS ASK — Origin-style: headline-led, response appears after
   ============================================================ */
.aa-hero{ text-align:center; max-width:780px; margin:0 auto clamp(34px,5vw,52px); }
.aa-mega{ font-family:var(--serif); font-weight:400; font-size:clamp(40px,5.6vw,76px); line-height:0.98; letter-spacing:-0.035em; color:var(--ink); margin:0; }
.aa-mega em{ font-style:normal; color:var(--forest); }
.aa-lede{ font-family:var(--sans); font-size:clamp(16px,1.7vw,19px); line-height:1.6; color:var(--ink-soft); max-width:48ch; margin:22px auto 0; text-wrap:balance; }

.atlas-ask{ max-width:660px; margin:0 auto; }

/* The answer region starts collapsed (no reserved blank space) and eases its
   height as Atlas responds, so the page below glides instead of jumping. JS
   sets an explicit pixel height per answer; the transition animates between them. */
.aa-result{ height:0; overflow:hidden; transition:height .55s var(--ease), margin-top .55s var(--ease); }
@media (prefers-reduced-motion: reduce){ .aa-result{ transition:none; } }

/* THE QUESTION — its own composer pill */
.aa-composer{ display:flex; align-items:center; gap:14px; background:var(--paper-warm); border:1px solid var(--line-strong); border-radius:var(--r-pill); padding:12px 12px 12px 26px; box-shadow:var(--shadow-card); transition:border-color .2s, box-shadow .2s; }
.aa-composer.focus{ border-color:var(--forest); box-shadow:0 0 0 3px rgba(14,58,62,0.1); }
.aa-input{ flex:1; font-family:var(--serif); font-size:clamp(20px,2.3vw,26px); color:var(--ink); line-height:1.3; min-height:1.3em; white-space:nowrap; overflow:hidden; letter-spacing:-0.01em; }
.aa-input .ph{ color:var(--ink-faint); font-family:var(--sans); font-size:16px; letter-spacing:0; }
.aa-send{ width:48px; height:48px; border-radius:50%; flex-shrink:0; background:var(--bone); color:var(--ink-mute); border:none; display:grid; place-items:center; cursor:pointer; transition:background .3s var(--ease), color .3s, transform .2s; }
.aa-send.lit{ background:var(--forest); color:#fff; transform:scale(1.04); }

/* THE RESULT — grows naturally as the response comes up; collapsed at rest */
.aa-result{ overflow:hidden; }
.aa-result:not(:empty){ margin-top:16px; }

/* the "Thinking…" cue — sits inside an answer bubble that matches the question composer */
.aa-thinking{ display:flex; align-items:center; gap:11px; background:var(--paper-warm); border:1px solid var(--line-strong); border-radius:30px; box-shadow:var(--shadow-card); padding:22px 26px; animation:aaRise .4s var(--ease) both; }
.aa-think-mark{ width:26px; height:26px; border-radius:50%; background:var(--obsidian); display:grid; place-items:center; flex-shrink:0; }
.aa-think-mark svg{ width:60%; height:60%; }
.aa-think-label{ font-family:var(--sans); font-size:16px; color:var(--ink-mute); }
.aa-think-label .dots i{ display:inline-block; opacity:0.3; animation:acBlink 1.2s ease-in-out infinite; }
.aa-think-label .dots i:nth-child(2){ animation-delay:.18s; } .aa-think-label .dots i:nth-child(3){ animation-delay:.36s; }

/* the answer — its own bubble, same design as the question composer */
.aa-answer{ background:var(--paper-warm); border:1px solid var(--line-strong); border-radius:30px; box-shadow:var(--shadow-card); padding:24px 28px; animation:aaRise .42s var(--ease) both; }
.aa-head{ display:flex; align-items:center; gap:11px; margin-bottom:16px; }
.aa-body{ }
.aa-text{ font-family:var(--sans); font-size:clamp(17px,1.8vw,19px); line-height:1.62; color:var(--ink); margin:0; }
.aa-text b{ color:var(--ink); font-weight:600; }
@keyframes aaRise{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:translateY(0);} }

.ac-id{ display:flex; align-items:center; gap:10px; }
.ac-orb{ width:30px; height:30px; border-radius:50%; background:var(--obsidian); display:grid; place-items:center; flex-shrink:0; }
.ac-name{ font-family:var(--sans); font-size:13.5px; font-weight:600; color:var(--ink); line-height:1; }
.ac-status{ display:flex; align-items:center; gap:6px; font-family:var(--sans); font-size:11.5px; color:var(--ink-mute); margin-top:3px; }
.ac-livedot{ width:6px; height:6px; border-radius:50%; background:var(--forest-mid); box-shadow:0 0 0 0 rgba(47,107,84,0.5); animation:acPulse 2.4s ease-out infinite; }
@keyframes acPulse{ 0%{ box-shadow:0 0 0 0 rgba(47,107,84,0.5);} 70%{ box-shadow:0 0 0 7px rgba(47,107,84,0);} 100%{ box-shadow:0 0 0 0 rgba(47,107,84,0);} }

.ac-detail{ margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.ac-detail .ac-h{ display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:13.5px; font-weight:600; color:var(--ink); margin-bottom:12px; }
.ac-detail .ac-h svg{ color:var(--ink-mute); flex-shrink:0; }
.ac-detail .ac-li{ display:flex; justify-content:space-between; align-items:baseline; padding:8px 0; border-top:1px solid var(--line); font-family:var(--sans); font-size:15px; color:var(--ink-soft); }
.ac-detail .ac-li:first-of-type{ border-top:none; }
.ac-detail .ac-li b{ color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums; }
.ac-detail .ac-li i{ font-style:normal; font-size:12.5px; font-weight:600; margin-left:6px; }
.ac-detail .ac-li i.up{ color:var(--clay); }
.ac-think{ display:inline-flex; gap:5px; padding:4px 2px; }
.ac-think i{ width:7px; height:7px; border-radius:50%; background:var(--sage); animation:acBlink 1.2s ease-in-out infinite; }
.ac-think i:nth-child(2){ animation-delay:.18s; } .ac-think i:nth-child(3){ animation-delay:.36s; }
@keyframes acBlink{ 0%,60%,100%{ opacity:0.3; transform:translateY(0);} 30%{ opacity:1; transform:translateY(-3px);} }
.ac-cursor{ display:inline-block; width:2px; height:1em; background:var(--ink-mute); margin-left:1px; vertical-align:text-bottom; animation:blink 1.1s steps(2) infinite; }
@keyframes blink{ 50%{ opacity:0; } }
.ac-viz{ margin-top:16px; }

/* the illustration — a SEPARATE panel beneath the answer bubble */
.aa-illus{ margin-top:14px; background:var(--paper-warm); border:1px solid var(--line-strong); border-radius:24px; box-shadow:var(--shadow-card); padding:22px 24px; animation:aaRise .42s var(--ease) both; }
.aa-illus .ac-detail{ margin-top:0; padding-top:0; border-top:none; }
.aa-illus .ac-viz{ margin-top:0; }
.aa-illus .ac-detail + .ac-viz{ margin-top:16px; }

/* THE FORECAST ("plan") table — full scale, like the other illustrations */
.fc-tbl{ border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.fc-row{ display:grid; grid-template-columns:1.2fr 1fr 1fr; padding:15px 20px; align-items:center; font-family:var(--sans); font-size:16px; }
.fc-row + .fc-row{ border-top:1px solid var(--line); }
.fc-row.head{ background:var(--ivory); padding-top:11px; padding-bottom:11px; }
.fc-row.head span{ font-size:12px; color:var(--ink-mute); font-weight:500; }
.fc-row span:nth-child(2), .fc-row span:nth-child(3){ text-align:right; font-variant-numeric:tabular-nums; }
.fc-m{ color:var(--ink); }
.fc-base{ color:var(--ink-mute); }
.fc-chg{ color:var(--ink); font-weight:700; }

@media (max-width:560px){ .aa-input{ font-size:19px; } }

/* ============================================================
   CASH FLOW waterline
   ============================================================ */
.waterline{ position:relative; width:100%; height:300px; margin-top:8px; }
.wl-bar{ position:absolute; bottom:50%; width:5%; border-radius:4px 4px 0 0; transform-origin:bottom; transform:scaleY(0); transition:transform .9s var(--ease); }
.wl-bar.neg{ top:50%; bottom:auto; border-radius:0 0 4px 4px; transform-origin:top; }
.waterline.in .wl-bar{ transform:scaleY(1); }
.wl-line{ position:absolute; left:0; right:0; top:50%; height:1px; background:var(--ink-faint); }
.wl-labels{ display:flex; justify-content:space-between; margin-top:10px; font-family:var(--sans); font-size:11px; color:var(--ink-mute); }
.metric4{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:28px; }
.metric4 .mc{ border:1px solid var(--line); border-radius:var(--r-card-sm); padding:18px 20px; background:var(--ivory); }
.metric4 .mc .l{ font-family:var(--sans); font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); }
.metric4 .mc .v{ font-family:var(--serif); font-size:30px; margin-top:8px; font-variant-numeric:tabular-nums; color:var(--ink); }
.metric4 .mc .s{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); margin-top:4px; }

/* ============================================================
   PLATFORM BENTO — "everything the platform does"
   ============================================================ */
.bento{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:1fr; gap:20px; }
.bento-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-card); padding:28px; display:flex; flex-direction:column; transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.bento-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card-lg); }
.bento-wide{ grid-column:span 2; }
.bento-tall{ grid-row:span 2; }
.bento-k{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--forest); opacity:0.78; }
.bento-h{ font-family:var(--serif); font-weight:400; font-size:clamp(20px,2vw,25px); line-height:1.12; color:var(--ink); margin:8px 0 0; letter-spacing:-0.01em; }
.bento-p{ font-family:var(--sans); font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin:8px 0 0; }
.bento-body{ margin-top:auto; padding-top:22px; }
/* mini chart bits */
.spark{ width:100%; height:auto; display:block; }
.hold-row{ display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:11px 0; border-bottom:1px solid var(--line); }
.hold-row:last-child{ border-bottom:none; }
.hold-dot{ width:10px; height:10px; border-radius:3px; }
.hold-nm{ font-family:var(--sans); font-size:13.5px; color:var(--ink); font-weight:500; }
.hold-sub{ font-family:var(--sans); font-size:11.5px; color:var(--ink-mute); }
.hold-amt{ font-family:var(--sans); font-size:13.5px; color:var(--ink); font-variant-numeric:tabular-nums; font-weight:600; }
.goal{ margin-bottom:16px; }
.goal:last-child{ margin-bottom:0; }
.goal-top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
.goal-nm{ font-family:var(--sans); font-size:13.5px; color:var(--ink); font-weight:500; }
.goal-pct{ font-family:var(--sans); font-size:12px; color:var(--forest); font-weight:600; font-variant-numeric:tabular-nums; }
.goal-track{ height:7px; border-radius:999px; background:rgba(10,10,10,0.07); overflow:hidden; }
.goal-fill{ height:100%; border-radius:999px; width:0; transition:width 1.3s var(--ease); }
.donut-wrap{ display:flex; align-items:center; gap:20px; }
.donut-legend{ display:flex; flex-direction:column; gap:9px; flex:1; }
.dl-row{ display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); }
.dl-row .sw{ width:9px; height:9px; border-radius:2px; flex-shrink:0; }
.dl-row b{ margin-left:auto; color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums; }

/* ============================================================
   PILLARS — light cards
   ============================================================ */
.pillars{ background:var(--ivory); }
.pillar-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pillar{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card); padding:34px; display:flex; flex-direction:column; gap:16px; box-shadow:var(--shadow-card); transition:transform .55s var(--ease), box-shadow .55s var(--ease); }
.pillar:hover{ transform:translateY(-8px); box-shadow:var(--shadow-card-lg); }
.pillar-num{ font-family:var(--serif); font-size:34px; line-height:1; color:rgba(33,81,63,0.22); }
.pillar-k{ font-family:var(--sans); font-weight:600; font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--forest); }
.pillar h3{ font-family:var(--serif); font-weight:400; font-size:clamp(22px,2.3vw,28px); line-height:1.16; color:var(--ink); letter-spacing:-0.01em; }
.pillar p{ font-family:var(--sans); font-size:15px; line-height:1.66; color:var(--ink-soft); flex:1; }
.pillar-foot{ margin-top:auto; padding-top:20px; border-top:1px solid var(--line); font-family:var(--sans); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); display:flex; justify-content:space-between; }
.pillar-foot b{ color:var(--forest); font-weight:600; }

/* ============================================================
   WHAT OWN DOES — light cards
   ============================================================ */
.own-cards{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.own-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-card); padding:34px 30px; color:var(--ink); }
.own-card h3{ font-family:var(--serif); font-weight:400; font-size:24px; margin-top:10px; color:var(--ink); }
.metricrow{ display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--ivory); }
.metricrow .m{ padding:14px 16px; border-right:1px solid var(--line); }
.metricrow .m:last-child{ border-right:none; }
.metricrow .lbl{ font-size:9px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:7px; }
.metricrow .val{ font-family:var(--serif); font-size:23px; line-height:1; color:var(--ink); }
.bar{ height:6px; border-radius:999px; background:rgba(10,10,10,0.08); overflow:hidden; }
.bar > i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--forest),var(--forest-mid)); width:0; transition:width 1.5s var(--ease); }
.move{ display:grid; grid-template-columns:26px 1fr; gap:11px; align-items:center; padding:10px 0; }
.move-n{ width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font-size:11px; background:rgba(33,81,63,0.1); border:1px solid rgba(33,81,63,0.32); color:var(--forest); }
.move-n.ok{ background:rgba(63,125,95,0.12); border-color:rgba(63,125,95,0.4); color:var(--gain); }
.tag{ font-size:9px; letter-spacing:0.1em; text-transform:uppercase; padding:3px 6px; border-radius:4px; font-weight:600; }

/* ============================================================
   BANK SYNC — connectivity card (copy left / forest panel right)
   ============================================================ */
.sync-card{ display:grid; grid-template-columns:0.84fr 1.16fr; align-items:stretch;
  background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card-lg);
  box-shadow:var(--shadow-card-lg); overflow:hidden; }
.sync-copy{ padding:clamp(34px,4.6vw,72px); display:flex; flex-direction:column; justify-content:center; }
.sync-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.28em; text-transform:uppercase; color:var(--forest); margin:0 0 20px; }
.sync-head{ font-family:var(--serif); font-weight:400; font-size:clamp(33px,3.5vw,52px); line-height:1.03; letter-spacing:-0.025em; color:var(--ink); margin:0; }
.sync-head em{ font-style:normal; color:var(--forest); }
.sync-lead{ font-family:var(--sans); font-size:clamp(15px,1.5vw,17px); line-height:1.66; color:var(--ink-soft); margin:22px 0 0; max-width: none; }
.sync-lead strong{ font-weight:600; color:var(--forest); }
.sync-meta{ list-style:none; margin:34px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.sync-meta li{ display:flex; align-items:center; gap:10px; font-family:var(--sans); font-size:13.5px; font-weight:500; color:var(--ink); }
.sync-meta li svg{ flex-shrink:0; width:19px; height:19px; color:var(--forest); }
@media (max-width:520px){ .sync-meta{ grid-template-columns:1fr; } }

.sync-stage{ position:relative; background:var(--forest); overflow:hidden; min-height:700px; }
.sync-stage::before{ content:""; position:absolute; left:50%; top:50%; width:520px; height:520px;
  transform:translate(-50%,-50%); border-radius:50%;
  background:radial-gradient(circle, rgba(134,199,192,0.16), transparent 66%); pointer-events:none; }

.sync-core{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:158px; height:158px; border-radius:50%;
  background:radial-gradient(120% 120% at 30% 22%, #1B2620 0%, var(--obsidian) 62%);
  box-shadow:0 24px 54px -16px rgba(0,0,0,0.5);
  border:1px solid rgba(244,244,241,0.12);
  display:grid; place-items:center; z-index:50; }
.sync-core svg{ width:100%; height:100%; color:var(--ivory); display:block; overflow:visible; }
.sync-core::after{ content:""; position:absolute; inset:-16px; border-radius:50%;
  background:radial-gradient(circle, rgba(134,199,192,0.22), rgba(134,199,192,0) 70%); z-index:-1; }

.bank-badge{ position:absolute; transform:translate(-50%,-50%); z-index:10; }
.bank-badge .b{ width:60px; height:60px; border-radius:50%; background:#fff; overflow:hidden;
  display:grid; place-items:center;
  box-shadow:0 10px 26px rgba(0,0,0,0.24), 0 2px 6px rgba(0,0,0,0.14);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease); }
.bank-badge:hover{ z-index:30; }
.bank-badge:hover .b{ transform:translateY(-7px);
  box-shadow:0 18px 36px rgba(0,0,0,0.3), 0 5px 12px rgba(0,0,0,0.18); }
.bank-badge img{ width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.07); }
.bank-abbr{ font-family:var(--sans); font-size:12px; font-weight:800; }

@media (max-width:980px){ .sync-card{ grid-template-columns:1fr; } .sync-stage{ min-height:600px; } }
@media (max-width:560px){
  .sync-stage{ min-height:440px; }
  .bank-badge .b{ width:50px; height:50px; }
  .sync-core{ width:96px; height:96px; }
}

/* ============================================================
   DEMO VIDEO (device screen stays dark — it's a screen, not a band)
   ============================================================ */
.video-laptop{ max-width:1080px; margin:0 auto; filter:drop-shadow(0 48px 80px rgba(0,0,0,0.2)); }
.video-laptop .lid{ background:#1C1C1E; border-radius:14px; padding:8px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.12); }
.video-screen{ position:relative; border-radius:6px; overflow:hidden; aspect-ratio:16/10; background:#0c0c0d; display:grid; place-items:center; }
.video-ph{ display:flex; flex-direction:column; align-items:center; gap:18px; color:var(--paper-mute); }
.play-btn{ width:78px; height:78px; border-radius:50%; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18); display:grid; place-items:center; cursor:pointer; transition:all .3s var(--ease); }
.play-btn:hover{ background:rgba(255,255,255,0.14); transform:scale(1.06); }

/* ============================================================
   SECURITY — light
   ============================================================ */
.sec-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:clamp(40px,5vw,80px); align-items:start; }
.sec-pillars{ display:block; min-width:0; }
.vault-card{ position:relative; background:var(--paper-warm); border:1px solid var(--line-strong); border-radius:var(--r-card-lg); box-shadow:var(--shadow-card-lg); padding:clamp(22px,2.3vw,30px); color:var(--ink); }
.vault-head{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.vault-eyebrow{ display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ocean); white-space:nowrap; }
.vault-eyebrow svg{ width:15px; height:15px; }
.vault-chip{ display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); background:rgba(10,10,10,0.03); color:var(--ink-soft); border-radius:var(--r-pill); padding:5px 11px; font-family:var(--sans); font-size:11px; font-weight:500; white-space:nowrap; }
.vc-dot{ width:6px; height:6px; border-radius:50%; background:var(--ocean); box-shadow:0 0 0 0 rgba(14,58,62,0.5); animation:pulse-ring 2.6s ease-out infinite; }
.vault-cipher{ border:1px solid var(--line); background:rgba(10,10,10,0.025); border-radius:var(--r-card-sm); padding:15px 17px; margin-bottom:6px; }
.vc-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.vc-label{ font-family:var(--sans); font-size:9.5px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink-mute); white-space:nowrap; }
.vc-meta{ font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:10.5px; letter-spacing:0.08em; color:var(--ocean); opacity:0.85; }
.vc-stream{ font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:13px; letter-spacing:0.12em; color:rgba(14,58,62,0.45); margin:11px 0 0; white-space:nowrap; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,#000 76%,transparent); mask-image:linear-gradient(90deg,#000 76%,transparent); }
.vc-cap{ font-family:var(--sans); font-size:11.8px; line-height:1.5; color:var(--ink-mute); margin:11px 0 0; }
.vault-list{ margin-top:4px; }
.vault-row{ display:flex; gap:14px; padding:15px 2px; border-top:1px solid var(--line); }
.vault-row:first-child{ border-top:0; padding-top:14px; }
.vault-row:last-child{ padding-bottom:4px; }
.vault-ico{ width:38px; height:38px; flex-shrink:0; border-radius:11px; background:rgba(10,10,10,0.04); border:1px solid var(--line); display:grid; place-items:center; color:var(--ink-soft); }
.vault-ico svg{ width:20px; height:20px; }
.vault-row h4{ font-family:var(--sans); font-size:14px; font-weight:600; color:var(--ink); margin:2px 0 4px; letter-spacing:-0.003em; line-height:1.25; }
.vault-row p{ font-family:var(--sans); font-size:12.5px; line-height:1.5; color:var(--ink-mute); margin:0; }
.trust-chips{ display:flex; flex-wrap:wrap; gap:9px; margin-top:30px; }
.trust-chip{ display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line-strong); background:var(--paper-warm); border-radius:var(--r-pill); padding:8px 15px 8px 13px; font-family:var(--sans); font-size:12.5px; font-weight:500; color:var(--ink-soft); white-space:nowrap; }
.trust-chip svg{ width:15px; height:15px; color:var(--forest); flex-shrink:0; }

/* section copy rhythm + trusted-infrastructure strip */
.sec-copy{ max-width:540px; min-width:0; }
.sec-head{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,3.9vw,52px); line-height:1.06; letter-spacing:-0.025em; color:var(--ink); margin:20px 0 0; text-wrap:balance; }
.sec-head em{ font-style:normal; color:var(--forest); }
.sec-lead{ font-family:var(--sans); font-size:clamp(15px,1.5vw,17px); line-height:1.7; color:var(--ink-soft); margin:24px 0 0; max-width: none; }
.partner-strip{ margin-top:32px; padding-top:28px; border-top:1px solid var(--line); }
.partner-label{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink-mute); margin:0 0 18px; }
.partners{ display:flex; flex-wrap:wrap; gap:16px 40px; }
.partner{ display:flex; align-items:center; gap:12px; }
.partner-mark{ width:36px; height:36px; border-radius:10px; background:var(--ink); color:var(--ivory); display:grid; place-items:center; flex-shrink:0; }
.partner-mark svg{ width:19px; height:19px; }
.partner-txt{ display:flex; flex-direction:column; line-height:1.15; }
.partner-name{ font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink); letter-spacing:-0.01em; white-space:nowrap; }
.partner-role{ font-family:var(--sans); font-size:11.5px; color:var(--ink-mute); margin-top:2px; white-space:nowrap; }

/* ============================================================
   SECURITY v2 — enterprise layout (header + cards + dark panel)
   ============================================================ */
.ent-head{ max-width:660px; margin:0 auto clamp(40px,4.6vw,60px); text-align:center; }
.ent-head .overline{ display:inline-block; margin-bottom:16px; }
.ent-title{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.4vw,54px); line-height:1.05; letter-spacing:-0.025em; color:var(--ink); margin:0; text-wrap:balance; }
.ent-lead{ font-family:var(--sans); font-size:clamp(16px,1.6vw,18px); line-height:1.6; color:var(--ink-soft); margin:18px auto 0; max-width:52ch; }

.ent-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.ent-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-card); padding:clamp(26px,2.4vw,34px); }
.ent-ico{ width:50px; height:50px; border-radius:14px; background:var(--forest); color:var(--ivory); display:grid; place-items:center; margin-bottom:26px; }
.ent-ico svg{ width:23px; height:23px; }
.ent-card h3{ font-family:var(--sans); font-size:17px; font-weight:600; letter-spacing:-0.012em; color:var(--ink); margin:0 0 10px; }
.ent-card p{ font-family:var(--sans); font-size:14.5px; line-height:1.62; color:var(--ink-soft); margin:0; }

/* "secure by design" panel — full-width header, claims grid, infra strip
   recoloured to --mist, the design-system "reserved cool third tone"
   (#E6ECEA) — on-palette cool/calm, replacing the earlier off-system slate */
.sbd{ position:relative; overflow:hidden; margin-top:24px;
  display:flex; flex-direction:column; gap:clamp(30px,3.4vw,46px);
  background:var(--mist); border:1px solid var(--line); border-radius:var(--r-card-lg); box-shadow:var(--shadow-card);
  padding:clamp(34px,3.8vw,60px); color:var(--ink); }
.sbd::before{ display:none; }
/* header runs across the full width */
.sbd-top{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr); gap:clamp(28px,4vw,72px); align-items:start; }
.sbd-eyebrow{ display:inline-flex; align-items:center; gap:9px; font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.24em; text-transform:uppercase; color:var(--ink-mute); margin:0 0 20px; }
.sbd-eyebrow svg{ width:26px; height:26px; padding:5px; border:1px solid var(--line-strong); border-radius:9px; box-sizing:content-box; color:var(--ink-mute); }
.sbd-head{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.8vw,68px); line-height:1.0; letter-spacing:-0.028em; color:var(--ink); margin:0; text-wrap:balance; }
.sbd-head-muted{ color:var(--ink-faint); }
.sbd-head em{ font-style:normal; color:var(--ink); }
.sbd-intro-r{ display:flex; flex-direction:column; align-items:flex-start; gap:22px; }
.sbd-sub{ font-family:var(--sans); font-size:clamp(15px,1.55vw,17px); line-height:1.62; color:var(--ink-soft); margin:0; max-width: none; }
.sbd-cta{ align-self:flex-start; margin:0; }
/* dark-teal CTA — the single accent on the faint surface */
.sbd-cta.btn-sea{ background:var(--ocean); color:#fff; }
.sbd-cta.btn-sea:hover{ background:var(--ocean-deep); }

/* claims — grid that fills the width, hairline-separated cells */
.sbd-claims{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--r-card-sm); overflow:hidden; }
.sbd-claim{ display:flex; flex-direction:column; gap:12px; padding:clamp(20px,2vw,26px); background:var(--paper-warm); }
.sbd-claim-ico{ width:38px; height:38px; flex-shrink:0; border-radius:11px; background:rgba(10,10,10,0.04); border:1px solid var(--line); display:grid; place-items:center; color:var(--ink-soft); }
.sbd-claim-ico svg{ width:19px; height:19px; }
.sbd-claim h4{ font-family:var(--sans); font-size:14.5px; font-weight:600; color:var(--ink); margin:0; letter-spacing:-0.005em; line-height:1.25; }
.sbd-claim p{ font-family:var(--sans); font-size:12.8px; line-height:1.5; color:var(--ink-mute); margin:0; }

/* trusted-infrastructure strip across the bottom */
.sbd-partners{ position:relative; z-index:1; display:flex; align-items:center; gap:clamp(18px,2.4vw,30px) clamp(26px,4vw,48px); flex-wrap:wrap; padding-top:clamp(24px,2.6vw,32px); border-top:1px solid var(--line); }
.sbd-partner-label{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink-faint); margin:0; }
.sbd-partner-row{ display:flex; align-items:center; gap:clamp(22px,3.4vw,44px); flex-wrap:wrap; }
.sbd-logo{ font-family:var(--sans); font-size:21px; font-weight:700; color:var(--ink-soft); line-height:1; letter-spacing:-0.01em; }
.sbd-logo-stripe{ letter-spacing:-0.03em; }
.sbd-logo-aws{ letter-spacing:0.01em; }
.sbd-partner-note{ font-family:var(--sans); font-size:12px; line-height:1.45; color:var(--ink-faint); max-width: none; }

@media (max-width:980px){
  .ent-grid{ grid-template-columns:1fr; }
  .sbd-top{ grid-template-columns:1fr; gap:24px; }
  .sbd-claims{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .sbd-claims{ grid-template-columns:1fr; }
}

/* ============================================================
   CTA — single forest impact card + manifesto
   ============================================================ */
.cta-card{ background:linear-gradient(155deg,#155055 0%, var(--ocean) 52%, var(--ocean-deep) 100%); border:none; border-radius:var(--r-card-lg); padding:clamp(48px,7vw,96px); text-align:center; position:relative; overflow:hidden; color:#fff; }
.cta-card .eyebrow{ color:var(--sea) !important; }
.cta-card h2{ color:#fff; }
.cta-card .lead{ color:rgba(255,255,255,0.78); font-size:clamp(15px,1.4vw,17px); line-height:1.62; }
.cta-glow-soft{ position:absolute; border-radius:50%; filter:blur(90px); pointer-events:none; background:rgba(134,199,192,0.32); width:420px; height:420px; top:-160px; right:-100px; }
.manifesto{ text-align:center; background:var(--ivory); }
.manifesto h2{ font-family:var(--serif); font-weight:400; font-size:clamp(48px,9vw,108px); line-height:1.05; letter-spacing:-0.03em; color:var(--ink); }

/* ============================================================
   HERO SWITCH (kept; light pill)
   ============================================================ */
.hero-switch{ position:fixed; left:22px; bottom:22px; z-index:1200; display:flex; gap:4px; background:rgba(255,255,255,0.9); backdrop-filter:blur(14px); border:1px solid var(--line-strong); border-radius:var(--r-pill); padding:5px; box-shadow:0 12px 30px rgba(0,0,0,0.12); }
.hero-switch button{ font-family:var(--sans); font-size:12px; font-weight:500; color:var(--ink-mute); background:none; border:none; padding:8px 14px; border-radius:var(--r-pill); cursor:pointer; transition:all .2s; }
.hero-switch button:hover{ color:var(--ink); }
.hero-switch button.on{ background:var(--forest); color:#fff; }
.hero-switch .hs-label{ font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-faint); align-self:center; padding-left:9px; padding-right:3px; }

/* ============================================================
   responsive
   ============================================================ */
@media (max-width:980px){
  .pillar-grid{ grid-template-columns:1fr; }
  .own-cards{ grid-template-columns:1fr; }
  .sec-grid{ grid-template-columns:1fr; }
  .bento{ grid-template-columns:1fr 1fr; }
  .bento-wide{ grid-column:span 2; }
  .bento-tall{ grid-row:span 1; }
}
@media (max-width:880px){ .bp-grid{ grid-template-columns:1fr; } .metric4{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){
  .bento{ grid-template-columns:1fr; }
  .bento-wide{ grid-column:span 1; }
}
@media (max-width:560px){ .hero-switch .hs-label{ display:none; } }

/* ============================================================
   STRONGER "SHOW-OFF" REVEAL
   ============================================================ */
.reveal{ transform:translateY(40px); transition:opacity 1s var(--ease), transform 1s var(--ease), filter 1s var(--ease); }
.reveal.pop{ transform:translateY(56px) scale(0.97); }
.reveal.pop.in{ transform:none; }

/* ============================================================
   FEATURE SECTIONS — platform deep dive
   ============================================================ */
.feat{ position:relative; overflow:hidden; }
.feat-watermark{ position:absolute; top:clamp(24px,5vw,60px); right:clamp(10px,4vw,40px); font-family:var(--serif); font-weight:400; font-size:clamp(120px,20vw,300px); line-height:0.8; color:rgba(10,10,10,0.035); pointer-events:none; z-index:0; letter-spacing:-0.04em; }
.feat-inner{ position:relative; z-index:1; }
.feat-head{ max-width:780px; margin-bottom:clamp(36px,5vw,60px); }
.feat-kicker{ display:inline-flex; align-items:center; gap:10px; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; margin-bottom:18px; }
.feat-kicker .ln{ width:30px; height:2px; border-radius:2px; }
.feat-title{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,5vw,64px); line-height:1.02; letter-spacing:-0.03em; color:var(--ink); }
.feat-title .hl{ font-style:normal; }
.feat-sub{ font-family:var(--sans); font-size:clamp(16px,1.7vw,19px); line-height:1.6; color:var(--ink-soft); margin-top:20px; max-width: none; }
.feat-row{ display:grid; grid-template-columns:0.82fr 1.18fr; gap:clamp(32px,4.5vw,72px); align-items:center; }
.feat-row + .feat-row{ margin-top:clamp(40px,5vw,72px); }
.feat-row.flip .feat-rt{ order:-1; }
.feat-pts{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:13px; }
.feat-pts li{ display:flex; gap:12px; align-items:flex-start; font-family:var(--sans); font-size:15.5px; line-height:1.5; color:var(--ink-soft); }
.feat-pts svg{ flex-shrink:0; margin-top:3px; }
.feat-rt-h{ font-family:var(--serif); font-weight:400; font-size:clamp(24px,3vw,34px); line-height:1.1; letter-spacing:-0.02em; color:var(--ink); }
.feat-rt-p{ font-family:var(--sans); font-size:15.5px; line-height:1.6; color:var(--ink-soft); margin-top:14px; max-width: none; }
.chart-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-card-lg); padding:clamp(22px,2.6vw,32px); }
.chart-card .cc-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-mute); margin:0 0 4px; }
.chart-card .cc-title{ font-family:var(--sans); font-size:16px; font-weight:600; color:var(--ink); margin:0 0 4px; }
.chart-card .cc-sub{ font-family:var(--sans); font-size:13px; color:var(--ink-mute); margin:0 0 20px; }
.chart-tags{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.chart-tag{ font-family:var(--sans); font-size:11px; font-weight:600; border-radius:999px; padding:4px 11px; }

/* ---- chart primitives ---- */
.chart-svg svg{ display:block; overflow:visible; }
.chart-svg .ln{ stroke-dasharray:1; stroke-dashoffset:0; }
.reveal:not(.in) .chart-svg .ln{ stroke-dashoffset:1; }
.reveal.in .chart-svg .ln{ animation:cdraw 1.5s var(--ease) both; }
@keyframes cdraw{ from{ stroke-dashoffset:1; } to{ stroke-dashoffset:0; } }
.chart-svg .ar{ opacity:1; }
.reveal:not(.in) .chart-svg .ar{ opacity:0; }
.reveal.in .chart-svg .ar{ animation:cfade 1.1s .35s both; }
@keyframes cfade{ from{ opacity:0; } to{ opacity:1; } }
.chart-legend{ display:flex; gap:18px; flex-wrap:wrap; margin-top:16px; }
.chart-legend.wrap-legend{ gap:9px 18px; }
.lg-item{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); }
.lg-item b{ color:var(--ink); font-weight:600; }
.lg-dot{ width:10px; height:10px; border-radius:3px; flex-shrink:0; }

.vbars{ display:flex; gap:12px; height:260px; }
.vb-axis{ display:flex; flex-direction:column; justify-content:space-between; padding-bottom:24px; }
.vb-grid{ flex:1; display:flex; align-items:flex-start; }
.vb-y{ font-family:var(--sans); font-size:11px; color:var(--ink-mute); }
.vb-plot{ flex:1; display:flex; align-items:flex-end; justify-content:space-around; gap:8px; border-left:1px solid var(--line); padding-left:12px; }
.vb-col{ flex:1; display:flex; flex-direction:column; align-items:center; height:100%; justify-content:flex-end; }
.vb-stack,.vb-group{ width:100%; height:calc(100% - 24px); display:flex; }
.vb-stack{ flex-direction:column; justify-content:flex-end; max-width:42px; margin:0 auto; }
.vb-group{ align-items:flex-end; justify-content:center; gap:5px; }
.vb-seg,.vb-bar{ width:100%; transform:scaleY(0); transform-origin:bottom; transition:transform .9s var(--ease); }
.vb-bar{ border-radius:5px 5px 0 0; max-width:20px; }
.reveal.in .vb-seg,.reveal.in .vb-bar{ transform:scaleY(1); }
.vb-x{ margin-top:8px; font-family:var(--sans); font-size:10.5px; color:var(--ink-mute); text-align:center; height:16px; white-space:nowrap; }

.hbars{ display:flex; flex-direction:column; gap:15px; }
.hb-row{ display:grid; grid-template-columns:138px 1fr 44px; gap:14px; align-items:center; }
.hb-label{ font-family:var(--sans); font-size:13px; color:var(--ink); font-weight:500; text-align:right; }
.hb-track{ height:15px; border-radius:999px; background:rgba(10,10,10,0.06); overflow:hidden; }
.hb-fill{ height:100%; border-radius:999px; transform:scaleX(0); transform-origin:left; transition:transform 1s var(--ease); }
.reveal.in .hb-fill{ transform:scaleX(1); }
.hb-val{ font-family:var(--sans); font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; }

.s100{ display:flex; height:44px; border-radius:11px; overflow:hidden; gap:2px; }
.s100-seg{ transform:scaleX(0); transform-origin:left; transition:transform .8s var(--ease); }
.reveal.in .s100-seg{ transform:scaleX(1); }

.donut-wrap{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.donut-svg .dn-seg{ opacity:0; transition:opacity .6s var(--ease); }
.reveal.in .donut-svg .dn-seg{ opacity:1; }
.donut-legend{ flex:1; display:flex; flex-direction:column; gap:11px; min-width:150px; }
.dl-row{ display:flex; align-items:center; gap:10px; font-family:var(--sans); font-size:13.5px; color:var(--ink-soft); }
.dl-row .sw{ width:11px; height:11px; border-radius:3px; flex-shrink:0; }
.dl-row b{ margin-left:auto; color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums; }

.goal-list{ display:flex; flex-direction:column; gap:18px; }
.goal-list .goal{ margin:0; }
.goal-list .goal-top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:9px; }
.goal-list .goal-nm{ font-family:var(--sans); font-size:14px; color:var(--ink); font-weight:500; }
.goal-list .goal-amt{ font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); font-variant-numeric:tabular-nums; }
.goal-list .goal-track{ height:9px; border-radius:999px; background:rgba(10,10,10,0.07); overflow:hidden; }
.goal-list .goal-fill{ height:100%; border-radius:999px; transform:scaleX(0); transform-origin:left; transition:transform 1s var(--ease); }
.reveal.in .goal-list .goal-fill{ transform:scaleX(1); }

@media (max-width:880px){
  .feat-row{ grid-template-columns:1fr; gap:30px; }
  .feat-row.flip .feat-rt{ order:0; }
  .vbars{ height:220px; }
  .hb-row{ grid-template-columns:108px 1fr 40px; }
}

/* ============================================================
   FOUND MONEY — live scan demo
   ============================================================ */
.found-sec{ background:var(--ivory); }
.found-card{ padding:clamp(26px,3.4vw,44px); }
.found-grid{ display:grid; grid-template-columns:0.86fr 1.14fr; gap:clamp(28px,4vw,56px); align-items:stretch; }

.found-left{ display:flex; flex-direction:column; }
.fm-status{ display:inline-flex; align-items:center; gap:10px; font-family:var(--sans); font-size:13px; font-weight:500; color:var(--ink-soft); margin-bottom:20px; }
.fm-status .fm-spin{ width:15px; height:15px; border-radius:50%; border:2px solid var(--ocean-faint); border-top-color:var(--ocean); animation:fmspin .8s linear infinite; flex-shrink:0; }
.fm-status.done .fm-spin{ border:none; background:var(--ocean); position:relative; animation:none; }
.fm-status.done .fm-spin::after{ content:""; position:absolute; inset:0; background:no-repeat center/9px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M2.5 7.5l3 3 6-7' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
@keyframes fmspin{ to{ transform:rotate(360deg); } }

.fm-accounts{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:22px; }
.fm-acct{ display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); border:1px solid var(--line); border-radius:var(--r-pill); padding:8px 14px; background:var(--ivory); transition:border-color .35s var(--ease), color .35s, background .35s, box-shadow .35s; }
.fm-acct .ad{ width:7px; height:7px; border-radius:50%; background:var(--ink-faint); transition:background .35s, box-shadow .35s; }
.fm-acct.scan{ border-color:var(--ocean); color:var(--ocean); background:var(--ocean-mute); box-shadow:0 4px 14px -6px rgba(14,58,62,0.4); }
.fm-acct.scan .ad{ background:var(--ocean); box-shadow:0 0 0 3px var(--ocean-faint); }
.fm-acct.done{ border-color:var(--line-strong); color:var(--ink-soft); }
.fm-acct.done .ad{ background:var(--ocean); }

.fm-scanbar{ height:5px; border-radius:999px; background:rgba(10,10,10,0.06); overflow:hidden; margin-top:auto; }
.fm-scanbar > i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--ocean),var(--c-teal)); width:0; transition:width .3s linear; }
.fm-scancap{ font-family:var(--sans); font-size:11px; color:var(--ink-mute); margin-top:10px; letter-spacing:0.02em; }

.found-right{ border-left:1px solid var(--line); padding-left:clamp(0px,3vw,40px); }
.found-right.noborder{ border-left:none; padding-left:0; }
.fm-totalwrap{ padding-bottom:20px; border-bottom:1px solid var(--line); margin-bottom:8px; }
.fm-total-l{ font-family:var(--sans); font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--c-clay); font-weight:600; }
.fm-total{ font-family:var(--serif); font-weight:400; font-size:clamp(48px,6vw,76px); line-height:1; letter-spacing:-0.02em; color:var(--ink); font-variant-numeric:tabular-nums; margin-top:8px; }
.fm-total-s{ font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); margin-top:8px; }

.fm-items{ display:flex; flex-direction:column; }
.fm-item{ display:grid; grid-template-columns:34px 1fr auto; gap:14px; align-items:center; padding:14px 0; border-bottom:1px solid var(--line); opacity:0; transform:translateY(10px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
.fm-item:last-child{ border-bottom:none; }
.fm-item.in{ opacity:1; transform:none; }
.fm-ico{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; flex-shrink:0; }
.fm-cat{ font-family:var(--sans); font-size:14.5px; font-weight:600; color:var(--ink); }
.fm-note{ font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); margin-top:2px; line-height:1.45; }
.fm-amt{ font-family:var(--sans); font-size:15px; font-weight:700; color:var(--ocean); font-variant-numeric:tabular-nums; white-space:nowrap; }
.fm-disclaimer{ font-family:var(--sans); font-size:11.5px; color:var(--ink-faint); margin-top:24px; text-align:center; letter-spacing:0.02em; }

@media (max-width:820px){
  .found-grid{ grid-template-columns:1fr; gap:28px; }
  .found-right{ border-left:none; padding-left:0; border-top:1px solid var(--line); padding-top:28px; }
}

/* ============================================================
   v3 — platform-faithful components (forest / cream / terracotta)
   ============================================================ */
.s-tight{ padding:clamp(46px,7vh,86px) 0; }

/* atlas section — faintest lift so the key selling point reads as special.
   The wash lives in a pseudo-element that fades fully to transparent on every
   edge, so the top of the section stays pure ivory and reads as one continuous
   background with the section above (no seam). */
.atlas-sec{ position:relative; background:var(--ivory); }
.atlas-sec::before{
  content:""; position:absolute; left:50%; top:0; transform:translateX(-50%);
  width:min(1180px,96%); height:640px; pointer-events:none; z-index:0;
  background:radial-gradient(50% 50% at 50% 46%, rgba(14,58,62,0.06), transparent 72%);
}
.atlas-sec > .wrap{ position:relative; z-index:1; }

/* ---- shared panel chrome (mirrors in-app cards) ---- */
.panel-head{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:4px; }
.panel-head-r{ display:flex; align-items:center; gap:16px; }
.clarity-pill,.opt-pill{ display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--forest); background:rgba(14,58,62,0.07); border-radius:var(--r-pill); padding:6px 14px; }
.cp-dot{ width:6px; height:6px; border-radius:50%; background:var(--forest); }
.panel-title{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,3.6vw,46px); line-height:1.04; letter-spacing:-0.025em; color:var(--ink); margin:18px 0 0; }
.panel-sub{ font-family:var(--sans); font-size:clamp(15px,1.5vw,16.5px); line-height:1.6; color:var(--ink-soft); margin:14px 0 0; }
.view-pill{ display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line-strong); border-radius:var(--r-pill); padding:6px 12px 6px 14px; font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); }
.view-pill .vp-l{ font-size:10px; letter-spacing:0.16em; color:var(--ink-mute); }
.view-pill .vp-b{ display:inline-flex; align-items:center; gap:6px; font-weight:600; color:var(--ink); }
.view-pill .vp-b svg{ color:var(--forest); }
.view-pill .vp-c{ color:var(--ink-mute); }
.how-read{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); background:none; border:none; cursor:pointer; transition:color .18s; white-space:nowrap; }
.how-read:hover{ color:var(--forest); }

/* ---- group headers (Monarch-style section intros) ---- */
.group-head{ background:var(--ivory); }
.gh-row{ display:flex; align-items:flex-start; gap:22px; }
.gh-num{ font-family:var(--serif); font-size:clamp(34px,4vw,56px); line-height:0.9; color:rgba(14,58,62,0.26); flex-shrink:0; }
.gh-k{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--forest); margin:6px 0 0; }
.gh-title{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,3.6vw,48px); line-height:1.04; letter-spacing:-0.025em; color:var(--ink); margin:8px 0 0; }
.gh-sub{ font-family:var(--sans); font-size:clamp(15px,1.6vw,17px); line-height:1.6; color:var(--ink-soft); margin:18px 0 0; max-width: none; padding-left:clamp(0px,3.6vw,78px); }

/* ---- waterline SVG ---- */
.wl-frame{ margin-top:8px; border:1px solid var(--line); border-radius:var(--r-card-sm); padding:18px 14px 6px; background:var(--paper-warm); }
.wlb{ transition:height .9s var(--ease), y .9s var(--ease); }
.wl-area-fill{ transition:opacity 1s ease .4s; }
.wl-legend{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-top:18px; }
.wl-leg-l{ display:flex; gap:22px; flex-wrap:wrap; }
.lg-sq{ width:12px; height:12px; border-radius:3px; flex-shrink:0; }
.wl-eq{ font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); }

/* ---- Found Money: headline panel + money map + summary ---- */
.fm-hero{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card-lg); box-shadow:var(--shadow-card); padding:clamp(30px,4vw,48px); margin-bottom:18px; }
.fm-over{ display:inline-flex; align-items:center; gap:12px; font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-mute); margin:0; }
.fm-rule{ width:30px; height:1.5px; background:var(--ink-mute); border-radius:2px; }
.fm-h{ font-family:var(--serif); font-weight:400; font-size:clamp(40px,5.6vw,72px); line-height:1; letter-spacing:-0.03em; color:var(--ink); margin:18px 0 0; }
.fm-lead{ font-family:var(--sans); font-size:clamp(15px,1.55vw,16.5px); line-height:1.62; color:var(--ink-soft); margin:20px 0 0; max-width: none; }

.money-map{ display:grid; grid-template-columns:1.15fr 2fr; gap:1px; background:var(--line-dark); border-radius:var(--r-card); overflow:hidden; box-shadow:var(--shadow-dark); }
.mm-hero{ background:var(--obsidian); color:var(--ivory); padding:clamp(26px,3vw,36px); }
.mm-eyebrow{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--sage); margin:0; }
.mm-big{ font-family:var(--serif); font-weight:400; font-size:clamp(48px,6vw,76px); line-height:0.92; letter-spacing:-0.03em; color:var(--ivory); margin:14px 0 0; font-variant-numeric:tabular-nums; }
.mm-big span{ font-family:var(--sans); font-size:18px; color:var(--paper-mute); letter-spacing:0; }
.mm-desc{ font-family:var(--sans); font-size:14px; line-height:1.55; color:var(--paper-soft); margin:16px 0 0; max-width: none; }
.mm-desc b{ color:var(--ivory); font-weight:600; }
.mm-bar{ display:flex; height:9px; border-radius:999px; overflow:hidden; gap:2px; margin:22px 0 12px; background:rgba(244,244,241,0.08); }
.mm-bar i{ display:block; height:100%; border-radius:3px; transform:scaleX(0); transform-origin:left; transition:transform 1.1s var(--ease); }
.mm-bar-in{ width:43%; background:var(--forest-mid); }
.mm-bar-ready{ width:57%; background:var(--brass); }
.reveal.in .mm-bar i{ transform:scaleX(1); }
.mm-legend{ display:flex; gap:20px; flex-wrap:wrap; font-family:var(--sans); font-size:12px; color:var(--paper-soft); }
.mm-legend span{ display:inline-flex; align-items:center; gap:8px; }
.mm-sq{ width:10px; height:10px; border-radius:3px; }
.mm-sq.in{ background:var(--forest-mid); } .mm-sq.ready{ background:var(--brass); }
.mm-grid{ display:grid; grid-template-columns:1fr 1fr; grid-auto-rows:1fr; background:var(--obsidian); }
.mm-cell{ padding:clamp(22px,2.6vw,30px); display:flex; flex-direction:column; gap:8px; border-left:1px solid var(--line-dark); border-top:1px solid var(--line-dark); }
.mm-cell-l{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--paper-mute); }
.mm-cell-v{ font-family:var(--serif); font-size:clamp(28px,3.2vw,40px); line-height:1; color:var(--ivory); font-variant-numeric:tabular-nums; }
.mm-cell-v span{ font-family:var(--sans); font-size:14px; color:var(--paper-mute); }
.mm-cell-s{ font-family:var(--sans); font-size:12.5px; color:var(--paper-soft); }

.persona-line{ font-family:var(--sans); font-size:13.5px; color:var(--ink-mute); margin:20px 2px 0; }
.persona-line b{ color:var(--ink); font-weight:600; }

.fsum{ display:grid; grid-template-columns:repeat(5,1fr); border:1px solid var(--line); border-radius:var(--r-card-sm); overflow:hidden; background:var(--paper-warm); box-shadow:var(--shadow-card); margin:28px 0 0; }
.fsum-cell{ padding:22px 24px; display:flex; flex-direction:column; gap:9px; border-left:1px solid var(--line); }
.fsum-cell:first-child{ border-left:none; }
.fsum-l{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); }
.fsum-v{ font-family:var(--serif); font-size:clamp(34px,4vw,52px); line-height:0.9; color:var(--ink); }
.fsum-v.rec{ color:var(--clay); } .fsum-v.watch{ color:var(--brass); }
.fsum-s{ font-family:var(--sans); font-size:12px; line-height:1.4; color:var(--ink-mute); }

.ov-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin:clamp(48px,6vw,72px) 0 28px; }
.ov-head h3{ font-family:var(--serif); font-weight:400; font-size:clamp(26px,3vw,38px); letter-spacing:-0.02em; color:var(--ink); margin:0; }
.ov-head p{ font-family:var(--sans); font-size:14px; line-height:1.55; color:var(--ink-soft); margin:12px 0 0; max-width: none; }
.ov-count{ font-family:var(--sans); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); white-space:nowrap; flex-shrink:0; padding-top:8px; }

/* ---- Found Money: matched cards ---- */
.found-intro{ margin-bottom:30px; }
.found-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.bcard{ text-align:left; background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card-sm); box-shadow:var(--shadow-card); padding:24px 24px 20px; cursor:pointer; display:flex; flex-direction:column; transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s; font:inherit; }
.bcard:hover{ transform:translateY(-5px); box-shadow:var(--shadow-card-lg); border-color:var(--line-strong); }
.bcard-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.bcard-juris{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); }
.bcard-status{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; border-radius:var(--r-pill); padding:5px 12px; background:rgba(10,10,10,0.04); border:1px solid var(--line); color:var(--ink-soft); }
.bcard-status .bs-dot{ width:6px; height:6px; border-radius:50%; background:var(--ink-mute); }
.bcard-status.in .bs-dot{ background:var(--gain); }
.bcard-status.rec .bs-dot{ background:var(--clay); }
.bcard-status.watch .bs-dot{ background:var(--brass); }
.bcard-name{ font-family:var(--serif); font-weight:400; font-size:21px; line-height:1.12; color:var(--ink); letter-spacing:-0.01em; }
.bcard-desc{ font-family:var(--sans); font-size:13px; line-height:1.5; color:var(--ink-soft); margin-top:10px; }
.bcard-value{ display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--bone); border-radius:12px; padding:14px 16px; margin:18px 0 10px; }
.bv-l{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-mute); }
.bv-v{ font-family:var(--serif); font-size:24px; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1; }
.bv-v span{ font-family:var(--sans); font-size:13px; color:var(--ink-mute); }
.bcard-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 18px; }
.btile{ background:var(--bone); border-radius:12px; padding:11px 12px; display:flex; flex-direction:column; gap:6px; }
.btile-l{ font-family:var(--sans); font-size:9px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-mute); }
.btile-v{ font-family:var(--sans); font-size:13px; font-weight:600; color:var(--ink); line-height:1.25; }
.bcard-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:16px; border-top:1px solid var(--line); }
.bcard-docs{ display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-size:11.5px; color:var(--ink-mute); }
.bcard-docs .bd-dot{ width:6px; height:6px; border-radius:50%; background:var(--brass); }
.bcard-review{ font-family:var(--sans); font-size:12.5px; font-weight:600; color:var(--forest); }

/* ---- Found Money: full catalogue ---- */
.found-cat{ margin-top:46px; border-top:1px solid var(--line); padding-top:46px; }
.fc-head{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.fc-head h4{ font-family:var(--serif); font-weight:400; font-size:clamp(26px,3vw,38px); letter-spacing:-0.02em; color:var(--ink); margin:0; }
.fc-count{ font-family:var(--sans); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); }
.fc-filters{ display:flex; gap:14px; flex-wrap:wrap; margin:24px 0; background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card-sm); padding:20px 22px; box-shadow:var(--shadow-card); }
.fc-field{ display:flex; flex-direction:column; gap:8px; min-width:180px; }
.fc-field label{ font-family:var(--sans); font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); }
.fc-select{ display:inline-flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid var(--line-strong); border-radius:var(--r-input); padding:12px 14px; font-family:var(--sans); font-size:14px; color:var(--ink); background:var(--ivory); }
.fc-select svg{ color:var(--ink-mute); }
.fc-search{ width:100%; border:1px solid var(--line-strong); border-radius:var(--r-input); padding:12px 14px; font-family:var(--sans); font-size:14px; color:var(--ink); background:var(--ivory); }
.fc-search:focus{ outline:none; border-color:var(--forest); box-shadow:0 0 0 3px rgba(14,58,62,0.1); }
.fc-table{ border:1px solid var(--line); border-radius:var(--r-card-sm); overflow:hidden; background:var(--paper-warm); }
.fc-trow{ display:grid; grid-template-columns:2.6fr 1fr 1fr 1fr; gap:16px; align-items:center; padding:16px 22px; width:100%; text-align:left; background:none; border:none; border-top:1px solid var(--line); font:inherit; cursor:pointer; transition:background .18s; }
.fc-trow:hover{ background:var(--ivory); }
.fc-thead{ border-top:none; background:var(--bone); cursor:default; }
.fc-thead span{ font-family:var(--sans); font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-mute); }
.fc-prog{ display:flex; flex-direction:column; gap:3px; }
.fc-prog b{ font-family:var(--sans); font-size:14.5px; font-weight:600; color:var(--ink); }
.fc-prog i{ font-family:var(--sans); font-size:12px; font-style:normal; color:var(--ink-mute); line-height:1.4; }
.fc-jur,.fc-cat{ font-family:var(--sans); font-size:13.5px; color:var(--ink-soft); }
.fc-r{ text-align:right; }
.fc-stat{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:13px; color:var(--ink); }
.fc-stat .bs-dot{ width:7px; height:7px; border-radius:50%; }
.fc-stat.in .bs-dot{ background:var(--forest); }
.fc-stat.later{ color:var(--ink-mute); }
.fc-stat.later .bs-dot{ background:var(--ink-faint); }

/* ---- Found Money: detail modal ---- */
.found-modal{ position:fixed; inset:0; z-index:3000; display:grid; place-items:center; padding:clamp(14px,4vw,48px); }
.found-modal[hidden]{ display:none; }
.fm-scrim{ position:absolute; inset:0; background:rgba(12,16,14,0.5); opacity:0; transition:opacity .28s var(--ease); }
.found-modal.show .fm-scrim{ opacity:1; }
.fm-sheet{ position:relative; width:100%; max-width:720px; max-height:90vh; overflow-y:auto; background:var(--ivory); border-radius:var(--r-card); box-shadow:var(--shadow-hero); padding:clamp(28px,4vw,48px); transform:translateY(16px) scale(0.98); opacity:0; transition:transform .32s var(--ease), opacity .32s var(--ease); }
.found-modal.show .fm-sheet{ transform:none; opacity:1; }
.fm-x{ position:absolute; top:22px; right:22px; z-index:2; width:38px; height:38px; border-radius:50%; border:1px solid var(--line-strong); background:var(--paper-warm); display:grid; place-items:center; cursor:pointer; color:var(--ink-soft); transition:background .18s, color .18s; }
.fm-x:hover{ background:var(--bone); color:var(--ink); }
.fm-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--forest); }
.fm-title{ font-family:var(--serif); font-weight:400; font-size:clamp(30px,4vw,44px); line-height:1.04; letter-spacing:-0.02em; color:var(--ink); margin:10px 0 0; max-width: none; }
.fm-desc{ font-family:var(--sans); font-size:15.5px; line-height:1.55; color:var(--ink-soft); margin:14px 0 0; }
.fm-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:26px 0; }
.fm-tile{ background:var(--paper-warm); border:1px solid var(--line); border-radius:14px; padding:16px 18px; display:flex; flex-direction:column; gap:8px; }
.fm-tile .t-l{ font-family:var(--sans); font-size:9.5px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-mute); }
.fm-tile .t-v{ font-family:var(--sans); font-size:14px; font-weight:600; color:var(--ink); line-height:1.3; }
.fm-statusbar{ display:flex; align-items:center; gap:10px; border-radius:var(--r-pill); padding:13px 18px; font-family:var(--sans); font-size:14px; font-weight:500; margin-bottom:8px; }
.fm-statusbar.in{ background:rgba(14,58,62,0.1); color:var(--forest); }
.fm-statusbar.rec{ background:rgba(181,80,60,0.1); color:var(--clay); }
.fm-statusbar.watch{ background:rgba(164,135,88,0.14); color:#7d6536; }
.fm-statusbar.later{ background:rgba(164,135,88,0.12); color:#7d6536; }
.fm-section{ padding:22px 0; border-bottom:1px solid var(--line); }
.fm-section:last-of-type{ border-bottom:none; }
.fm-sl{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:14px; }
.fm-sl-row{ display:flex; justify-content:space-between; }
.fm-sl-row span{ color:var(--ink-faint); }
.fm-why{ font-family:var(--sans); font-size:15px; line-height:1.5; color:var(--ink-soft); margin:0; }
.fm-need{ display:flex; justify-content:space-between; align-items:center; gap:14px; padding:11px 0; border-top:1px solid var(--line); }
.fm-need:first-of-type{ border-top:none; }
.fm-need-l{ display:flex; align-items:center; gap:12px; font-family:var(--sans); font-size:14.5px; color:var(--ink); }
.fm-lock{ width:30px; height:30px; border-radius:8px; border:1px dashed var(--line-strong); display:grid; place-items:center; color:var(--ink-faint); flex-shrink:0; }
.fm-lock.on{ border-style:solid; border-color:rgba(14,58,62,0.3); color:var(--forest); background:rgba(14,58,62,0.06); }
.fm-need-s{ font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--brass); white-space:nowrap; }
.fm-need-s.on{ color:var(--forest); }
.fm-step{ display:flex; gap:14px; align-items:flex-start; padding:9px 0; font-family:var(--sans); font-size:14.5px; line-height:1.5; color:var(--ink-soft); }
.fm-num{ width:26px; height:26px; border-radius:50%; background:rgba(14,58,62,0.08); color:var(--forest); display:grid; place-items:center; font-size:12px; font-weight:600; flex-shrink:0; }
.fm-actions{ display:flex; gap:10px; flex-wrap:wrap; margin:22px 0 18px; }
.fm-actions .btn-primary svg{ color:#fff; }
.fm-fine{ font-family:var(--sans); font-size:11.5px; line-height:1.5; color:var(--ink-faint); margin:0; }

/* ---- Allocation engine ---- */
.ae-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.ae-stat{ border:1px solid var(--line); border-radius:var(--r-card-sm); padding:20px 22px; background:var(--paper-warm); box-shadow:var(--shadow-card); }
.ae-stat.hl{ background:var(--bone); border-color:rgba(164,135,88,0.4); }
.ae-stat-top{ display:flex; justify-content:space-between; align-items:center; }
.ae-stat-l{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-mute); }
.ae-stat-pct{ font-family:var(--sans); font-size:12px; font-weight:600; color:var(--ink-mute); }
.ae-stat-v{ font-family:var(--serif); font-size:clamp(28px,3vw,38px); color:var(--ink); margin-top:10px; line-height:1; font-variant-numeric:tabular-nums; }
.ae-stat-v span{ font-family:var(--sans); font-size:14px; color:var(--ink-mute); }
.ae-stat-s{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); margin-top:8px; }
.ae-controls{ display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; margin:24px 0; }
.ae-tabs{ display:inline-flex; background:var(--bone); border-radius:var(--r-pill); padding:4px; gap:2px; }
.ae-tab{ font-family:var(--sans); font-size:13px; font-weight:500; color:var(--ink-mute); padding:8px 18px; border-radius:var(--r-pill); cursor:pointer; transition:all .2s; }
.ae-tab.on{ background:var(--paper-warm); color:var(--forest); font-weight:600; box-shadow:var(--shadow-card); }
.ae-slider{ display:flex; align-items:center; gap:14px; flex:1; min-width:240px; }
.ae-sl-l{ font-family:var(--sans); font-size:13px; color:var(--ink-mute); }
.ae-track{ flex:1; height:4px; border-radius:999px; background:var(--line-strong); position:relative; }
.ae-knob{ position:absolute; top:50%; left:72%; width:18px; height:18px; border-radius:50%; background:var(--forest); transform:translate(-50%,-50%); box-shadow:0 2px 8px rgba(0,0,0,0.2); }
.ae-sl-v{ font-family:var(--sans); font-size:14px; font-weight:600; color:var(--forest); font-variant-numeric:tabular-nums; }
.ae-rows{ display:flex; flex-direction:column; }
.ae-row{ display:grid; grid-template-columns:30px 1.5fr 2.2fr auto; gap:18px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); }
.ae-row:last-child{ border-bottom:none; }
.ae-radio{ width:22px; height:22px; border-radius:50%; border:1.5px solid var(--line-strong); display:grid; place-items:center; }
.ae-radio.check{ background:rgba(14,58,62,0.08); border-color:rgba(14,58,62,0.4); color:var(--forest); }
.ae-name b{ display:block; font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink); }
.ae-name i{ font-family:var(--sans); font-size:12.5px; font-style:normal; color:var(--ink-mute); margin-top:2px; display:block; }
.ae-bar{ height:34px; border-radius:8px; background:var(--bone); overflow:hidden; position:relative; display:flex; align-items:center; }
.ae-bar i{ display:block; height:100%; border-radius:8px; transition:width 1.1s var(--ease); }
.ae-bar.handled{ background:rgba(10,10,10,0.04); justify-content:flex-end; }
.ae-handled{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); padding-right:14px; align-self:center; }
.ae-amt{ display:flex; align-items:baseline; gap:3px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ae-amt b{ font-family:var(--sans); font-size:16px; font-weight:700; color:var(--ink); }
.ae-amt span{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); }
.ae-amt i{ font-family:var(--sans); font-style:normal; font-size:12px; color:var(--ink-mute); margin-left:8px; }
.ae-amt-min{ font-family:var(--sans); color:var(--ink-faint); text-align:right; }

/* ---- Embedded gains ---- */
.eg-rows{ display:flex; flex-direction:column; gap:13px; margin-top:24px; }
.eg-row{ display:grid; grid-template-columns:170px 1fr 62px; gap:16px; align-items:center; }
.eg-tic b{ font-family:var(--sans); font-size:14.5px; font-weight:700; color:var(--ink); }
.eg-tic i{ font-family:var(--sans); font-size:12.5px; font-style:normal; color:var(--ink-mute); margin-left:7px; }
.eg-tic i.nr{ color:var(--brass); }
.eg-track{ position:relative; height:16px; background:rgba(10,10,10,0.05); border-radius:4px; }
.eg-track::before{ content:""; position:absolute; left:50%; top:-3px; bottom:-3px; width:1.5px; background:var(--line-strong); }
.eg-fill{ position:absolute; left:50%; top:0; bottom:0; background:var(--forest-deep); border-radius:0 4px 4px 0; transition:width 1s var(--ease); }
.eg-val{ font-family:var(--sans); font-size:13.5px; font-weight:600; color:var(--forest); text-align:right; font-variant-numeric:tabular-nums; }

/* ---- Estate routing ---- */
.est-flow{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:clamp(12px,2vw,30px); margin-top:28px; align-items:start; }
.est-ch{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass); margin-bottom:14px; }
.est-src{ background:var(--paper-warm); border:1px solid var(--line); border-left:3px solid; border-radius:10px; padding:12px 14px; margin-bottom:9px; display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.est-src .es-nm{ font-family:var(--sans); font-size:13px; font-weight:500; color:var(--ink); }
.est-src .es-v{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); font-variant-numeric:tabular-nums; }
.est-node{ background:var(--paper-warm); border:1px solid var(--line); border-radius:10px; padding:11px 14px; margin-bottom:9px; font-family:var(--sans); font-size:12.5px; color:var(--ink-soft); text-align:center; }
.est-node.soft-green{ background:rgba(47,107,84,0.1); border-color:rgba(47,107,84,0.25); color:var(--forest); }
.est-node.soft-brass{ background:rgba(164,135,88,0.12); border-color:rgba(164,135,88,0.3); color:#7d6536; }
.est-node.soft-clay{ background:rgba(181,80,60,0.1); border-color:rgba(181,80,60,0.28); color:var(--clay); }
.est-node.soft-dark{ background:rgba(10,42,45,0.08); border-color:rgba(10,42,45,0.2); color:var(--forest-deep); }
.est-bcard{ background:var(--forest); color:#fff; border-radius:14px; padding:18px 20px; margin-bottom:12px; }
.est-bcard.dark2{ background:var(--obsidian); }
.est-bcard .eb-nm{ font-family:var(--sans); font-size:15px; font-weight:600; }
.est-bcard .eb-v{ font-family:var(--serif); font-size:24px; margin-top:6px; font-variant-numeric:tabular-nums; }
.est-bcard .eb-v span{ font-family:var(--sans); font-size:12px; color:rgba(255,255,255,0.6); }
.est-bcard .eb-pct{ font-family:var(--sans); font-size:12px; color:rgba(255,255,255,0.7); margin-top:4px; }
.est-summary{ display:flex; align-items:stretch; gap:14px; flex-wrap:wrap; margin-top:30px; }
.est-sum-card{ flex:1; min-width:180px; border:1px solid var(--line); border-radius:var(--r-card-sm); padding:20px 24px; background:var(--paper-warm); }
.est-sum-card.friction{ background:rgba(181,80,60,0.05); border-color:rgba(181,80,60,0.2); }
.est-sum-card.reaches{ background:rgba(47,107,84,0.06); border-color:rgba(47,107,84,0.25); }
.esc-l{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-mute); }
.esc-v{ font-family:var(--serif); font-size:clamp(30px,3.4vw,44px); color:var(--ink); display:block; margin-top:10px; font-variant-numeric:tabular-nums; }
.est-op{ font-family:var(--serif); font-size:30px; color:var(--ink-faint); align-self:center; }
.est-legend{ display:flex; gap:22px; flex-wrap:wrap; margin-top:24px; }

/* ---- Debt ---- */
.debt-list{ display:flex; flex-direction:column; margin-top:22px; }
.debt-row{ display:grid; grid-template-columns:30px 1.4fr 2.4fr auto; gap:18px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); }
.debt-row:last-child{ border-bottom:none; }
.debt-rank{ width:26px; height:26px; border-radius:50%; background:rgba(10,10,10,0.05); display:grid; place-items:center; font-family:var(--sans); font-size:12px; font-weight:600; color:var(--ink-soft); }
.debt-nm b{ display:block; font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink); }
.debt-nm i{ font-family:var(--sans); font-size:12.5px; font-style:normal; color:var(--ink-mute); }
.debt-track{ height:14px; border-radius:999px; background:rgba(10,10,10,0.06); overflow:hidden; }
.debt-fill{ height:100%; border-radius:999px; width:0; transition:width 1s var(--ease); }
.debt-bal{ font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; }

/* ---- How to read this ---- */
.htr-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.htr-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-card); padding:24px; }
.htr-mini{ background:var(--ivory); border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:18px; }
.htr-tag{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--forest); }
.htr-title{ font-family:var(--serif); font-weight:400; font-size:20px; line-height:1.15; color:var(--ink); margin-top:8px; letter-spacing:-0.01em; }
.htr-body{ font-family:var(--sans); font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin-top:10px; }

/* ============================================================
   ORIGIN-STYLE TRIPTYCH — tonal cards w/ floating glass widgets
   ============================================================ */
.tri-head{ max-width: none; margin-bottom:clamp(36px,5vw,56px); }
.triptych{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.tcard{ position:relative; border-radius:var(--r-card-lg); overflow:hidden; min-height:560px; padding:30px; display:flex; flex-direction:column; box-shadow:var(--shadow-card-lg); border:1px solid var(--line); }
/* forest tonal */
.tcard.t-forest{ border-color:rgba(10,42,45,0.5); background:radial-gradient(130% 90% at 30% 6%, #357355 0%, #0E3A3E 40%, #102A20 100%); }
/* warm bone tonal */
.tcard.t-sand{ border-color:rgba(164,135,88,0.4); background:radial-gradient(130% 90% at 70% 4%, #F0E8D8 0%, #E5D8C0 44%, #D3C09C 100%); }
/* obsidian tonal */
.tcard.t-ink{ border-color:rgba(10,42,45,0.6); background:radial-gradient(130% 90% at 60% 4%, #20302C 0%, #16221E 46%, #0A100E 100%); }

.tcard-foot{ margin-top:auto; padding-top:28px; }
.tcard-foot h4{ font-family:var(--sans); font-size:19px; font-weight:600; letter-spacing:-0.01em; margin:0; }
.tcard-foot p{ font-family:var(--sans); font-size:14px; line-height:1.5; margin:7px 0 0; max-width: none; }
.t-forest .tcard-foot h4, .t-ink .tcard-foot h4{ color:#F4F4F1; }
.t-forest .tcard-foot p, .t-ink .tcard-foot p{ color:rgba(244,244,241,0.66); }
.t-sand .tcard-foot h4{ color:var(--ink); }
.t-sand .tcard-foot p{ color:var(--ink-soft); }

/* floating glass widget */
.gw{ border-radius:18px; padding:18px 18px 20px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:0 18px 44px -16px rgba(0,0,0,0.5); transform:translateZ(0); transition:transform .6s var(--ease); }
.tcard:hover .gw{ transform:translateY(-6px); }
.gw-dark{ background:rgba(18,26,22,0.6); border:1px solid rgba(244,244,241,0.14); }
.gw-light{ background:rgba(255,255,255,0.62); border:1px solid rgba(10,10,10,0.1); }
.gw-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.gw-eyebrow{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; }
.gw-dark .gw-eyebrow{ color:rgba(244,244,241,0.6); }
.gw-light .gw-eyebrow{ color:var(--ink-mute); }
.gw-tools{ display:flex; gap:6px; }
.gw-tool{ width:28px; height:28px; border-radius:8px; display:grid; place-items:center; }
.gw-dark .gw-tool{ background:rgba(244,244,241,0.08); color:rgba(244,244,241,0.7); }
.gw-light .gw-tool{ background:rgba(10,10,10,0.06); color:var(--ink-soft); }
.gw-big{ font-family:var(--serif); font-size:34px; line-height:1; letter-spacing:-0.02em; font-variant-numeric:tabular-nums; }
.gw-dark .gw-big{ color:#F4F4F1; } .gw-light .gw-big{ color:var(--ink); }

/* mini month calendar */
.cal{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin-top:14px; }
.cal-cell{ border-radius:8px; aspect-ratio:1/1.08; padding:6px 0 0 6px; font-family:var(--sans); font-size:10px; }
.gw-dark .cal-cell{ background:rgba(244,244,241,0.05); color:rgba(244,244,241,0.4); }
.gw-light .cal-cell{ background:rgba(10,10,10,0.04); color:var(--ink-mute); }
.cal-cell.spent{ }
.gw-dark .cal-cell.spent{ background:rgba(157,188,173,0.16); color:#F4F4F1; }
.gw-light .cal-cell.spent{ background:#fff; color:var(--ink); box-shadow:0 2px 6px rgba(0,0,0,0.06); }
.cal-amt{ display:block; font-weight:600; font-size:10.5px; margin-top:2px; }

/* budget rows */
.bud-row{ margin-bottom:16px; }
.bud-row:last-child{ margin-bottom:0; }
.bud-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.bud-l{ display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:13.5px; font-weight:500; }
.gw-light .bud-l{ color:var(--ink); }
.bud-ico{ width:24px; height:24px; border-radius:7px; display:grid; place-items:center; background:rgba(10,10,10,0.06); color:var(--ink-soft); flex-shrink:0; }
.bud-pct{ font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); font-variant-numeric:tabular-nums; }
.bud-amt{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.bud-amt b{ color:var(--ink); font-weight:600; }
.bud-track{ height:7px; border-radius:999px; background:rgba(10,10,10,0.09); overflow:hidden; }
.bud-fill{ height:100%; border-radius:999px; width:0; transition:width 1.1s var(--ease); }
.bud-divide{ height:1px; background:rgba(10,10,10,0.1); margin:16px 0; }

/* upcoming week calendar */
.up-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.up-dow{ font-family:var(--sans); font-size:9.5px; letter-spacing:0.08em; text-transform:uppercase; color:rgba(244,244,241,0.45); text-align:center; padding-bottom:8px; }
.up-cell{ border-radius:9px; min-height:64px; padding:7px 6px; background:rgba(244,244,241,0.04); display:flex; flex-direction:column; align-items:center; gap:5px; }
.up-cell.muted{ opacity:0.4; }
.up-cell.today{ background:rgba(157,188,173,0.16); }
.up-day{ font-family:var(--sans); font-size:11px; color:rgba(244,244,241,0.55); }
.up-dot{ width:18px; height:18px; border-radius:6px; display:grid; place-items:center; font-size:9px; color:#fff; font-weight:700; }
.up-amt{ font-family:var(--sans); font-size:9.5px; color:rgba(244,244,241,0.8); font-variant-numeric:tabular-nums; }

/* ============================================================
   INSIGHT / RECAP — gradient glow cards, centered serif italic
   ============================================================ */
.glow-pair{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.glow-card{ position:relative; border-radius:var(--r-card-lg); overflow:hidden; padding:clamp(34px,4vw,52px) clamp(28px,3vw,44px) clamp(40px,5vw,64px); text-align:center; min-height:560px; display:flex; flex-direction:column; align-items:center; border:1px solid rgba(10,42,45,0.5); box-shadow:var(--shadow-hero); background:radial-gradient(85% 65% at 50% 96%, #3E7C76 0%, #21513F 26%, #15382B 54%, #0C1310 100%); }
.glow-card.alt{ background:radial-gradient(85% 65% at 50% 96%, #2F6B54 0%, #1A3F30 30%, #102820 58%, #080C0A 100%); }
.glow-title{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,3vw,40px); line-height:1.05; letter-spacing:-0.02em; color:#F4F4F1; }
.glow-title em{ font-style:normal; color:#B8D9D4; }
.glow-sub{ font-family:var(--sans); font-size:15px; line-height:1.55; color:rgba(244,244,241,0.66); margin:14px auto 0; max-width:42ch; }
.glow-stage{ margin-top:auto; padding-top:34px; width:100%; display:flex; justify-content:center; }

/* insight bubble */
.insight{ width:100%; max-width:420px; text-align:left; background:rgba(20,40,32,0.5); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid rgba(244,244,241,0.16); border-radius:20px; padding:24px; box-shadow:0 24px 60px -20px rgba(0,0,0,0.6); }
.insight-mark{ width:26px; height:26px; border-radius:50%; background:#0b0d0c; display:grid; place-items:center; margin-bottom:18px; }
.insight h5{ font-family:var(--sans); font-size:17px; font-weight:600; color:#F4F4F1; margin:0 0 10px; line-height:1.25; }
.insight p{ font-family:var(--sans); font-size:13.5px; line-height:1.6; color:rgba(244,244,241,0.66); margin:0; }
.insight .ins-tick{ display:inline-flex; gap:6px; margin-top:16px; }
.ins-pill{ font-family:var(--sans); font-size:11px; color:rgba(244,244,241,0.7); border:1px solid rgba(244,244,241,0.16); border-radius:999px; padding:5px 11px; }

/* recap card */
.recap{ width:100%; max-width:400px; text-align:left; background:rgba(12,16,14,0.62); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid rgba(244,244,241,0.14); border-radius:20px; padding:26px; box-shadow:0 24px 60px -20px rgba(0,0,0,0.6); }
.recap-dots{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.recap-prog{ display:flex; gap:5px; }
.recap-prog i{ width:18px; height:3px; border-radius:2px; background:rgba(244,244,241,0.2); }
.recap-prog i.on{ background:#B8D9D4; width:26px; }
.recap-x{ color:rgba(244,244,241,0.5); }
.recap h5{ font-family:var(--serif); font-weight:400; font-size:24px; line-height:1.1; color:#F4F4F1; margin:0 0 12px; letter-spacing:-0.01em; }
.recap p{ font-family:var(--sans); font-size:13px; line-height:1.6; color:rgba(244,244,241,0.62); margin:0; }
.recap-spent{ margin:18px 0 12px; padding-top:16px; border-top:1px solid rgba(244,244,241,0.12); }
.recap-spent .rl{ font-family:var(--sans); font-size:9.5px; letter-spacing:0.16em; text-transform:uppercase; color:rgba(244,244,241,0.45); }
.recap-spent .rv{ font-family:var(--serif); font-size:30px; color:#F4F4F1; margin-top:6px; font-variant-numeric:tabular-nums; }
.recap-week{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-top:12px; }
.recap-week .rc{ border-radius:6px; background:rgba(244,244,241,0.06); padding:6px 4px; text-align:center; }
.recap-week .rc-d{ font-family:var(--sans); font-size:9px; color:rgba(244,244,241,0.5); }
.recap-week .rc-a{ font-family:var(--sans); font-size:9px; color:rgba(244,244,241,0.85); margin-top:3px; font-variant-numeric:tabular-nums; }

/* ============================================================
   BENTO — condensed at-a-glance grid
   ============================================================ */
.bento-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; grid-auto-rows:minmax(168px,auto); }
.bento-cell{ position:relative; display:flex; flex-direction:column; background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card-sm); box-shadow:var(--shadow-card); padding:20px 20px 18px; overflow:hidden; transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s; }
.bento-cell:hover{ transform:translateY(-4px); box-shadow:var(--shadow-card-lg); border-color:var(--line-strong); }
.bento-cell.b-wide{ grid-column:span 2; }
.bento-cell.b-tall{ grid-row:span 2; }
.bento-cell.b-dark{ background:radial-gradient(130% 110% at 80% 0%, #20302C 0%, #16221E 50%, #0B0B0C 100%); border-color:rgba(10,42,45,0.55); }
.bento-cell.b-forest{ background:radial-gradient(130% 120% at 20% 0%, #214432 0%, #163024 44%, #0B130F 100%); border-color:rgba(10,42,45,0.55); }
.bento-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.bento-label{ font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-mute); }
.b-dark .bento-label, .b-forest .bento-label{ color:var(--paper-mute); }
.bento-chip{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.04em; color:var(--forest); background:rgba(14,58,62,0.08); border-radius:var(--r-pill); padding:3px 9px; white-space:nowrap; }
.b-dark .bento-chip, .b-forest .bento-chip{ color:var(--sage); background:rgba(134,199,192,0.14); }
.bento-body{ display:flex; flex-direction:column; gap:8px; flex:1; justify-content:center; }
.b-wide .bento-body, .b-tall .bento-body{ justify-content:flex-start; }
.bento-big{ font-family:var(--serif); font-size:clamp(30px,3.4vw,42px); line-height:1; letter-spacing:-0.02em; color:var(--ink); font-variant-numeric:tabular-nums; margin-bottom:6px; }
.bento-big.light{ color:var(--ivory); }
.bento-num{ font-family:var(--serif); font-size:30px; line-height:1; color:var(--ink); font-variant-numeric:tabular-nums; }
.bento-num span{ font-family:var(--sans); font-size:14px; color:var(--ink-mute); }
.bento-sub{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); }
.bento-cap{ font-family:var(--sans); font-size:11.5px; color:var(--ink-mute); margin-top:2px; }
.b-dark .bento-cap, .b-forest .bento-cap{ color:var(--paper-mute); }
.bento-spark .ln{ stroke-dasharray:1; stroke-dashoffset:0; }
.reveal:not(.in) .bento-spark .ln{ stroke-dashoffset:1; }
.reveal.in .bento-spark .ln{ animation:cdraw 1.4s var(--ease) both; }
.bento-spark .ar{ opacity:1; }
.reveal:not(.in) .bento-spark .ar{ opacity:0; }
.reveal.in .bento-spark .ar{ animation:cfade 1s .3s both; }
.bento-gauge, .bento-ring{ transition:stroke-dashoffset 1.1s var(--ease); }
.bento-bars{ display:flex; align-items:flex-end; gap:5px; height:54px; }
.bento-bars .bb{ flex:1; border-radius:3px 3px 0 0; transform:scaleY(0); transform-origin:bottom; transition:transform .8s var(--ease); align-self:flex-end; }
.bento-bars .bb.neg{ border-radius:0 0 3px 3px; align-self:flex-start; transform-origin:top; }
.reveal.in .bento-bars .bb{ transform:scaleY(1); }
.bento-stack{ display:flex; height:12px; border-radius:999px; overflow:hidden; gap:2px; margin-top:4px; }
.bento-stack span{ transform:scaleX(0); transform-origin:left; transition:transform .8s var(--ease); }
.reveal.in .bento-stack span{ transform:scaleX(1); }
.bento-legend{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:12px; }
.bento-legend span{ display:inline-flex; align-items:center; gap:6px; font-family:var(--sans); font-size:11px; color:var(--ink-soft); }
.bento-legend i{ width:8px; height:8px; border-radius:2px; }
.bento-goals{ display:flex; flex-direction:column; gap:13px; }
.bgoal-top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.bgoal-top span{ font-family:var(--sans); font-size:12.5px; color:var(--ink); }
.bgoal-top b{ font-family:var(--sans); font-size:12px; font-weight:600; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.bgoal-track{ height:6px; border-radius:999px; background:rgba(10,10,10,0.08); overflow:hidden; }
.bgoal-track i{ display:block; height:100%; border-radius:999px; transition:width 1s var(--ease); }

/* ============================================================
   MONARCH-STYLE FEATURE ROWS — text + floating layered cards
   ============================================================ */
.mono-row{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,96px); align-items:center; }
.mono-row + .mono-row{ margin-top:clamp(80px,12vh,150px); }
.mono-row.flip .mono-copy{ order:2; }
.mono-eyebrow{ font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--forest); margin:0; }
.mono-h{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.4vw,58px); line-height:1.02; letter-spacing:-0.028em; color:var(--ink); margin:18px 0 0; }
.mono-p{ font-family:var(--sans); font-size:clamp(15.5px,1.55vw,17.5px); line-height:1.62; color:var(--ink-soft); margin:20px 0 0; max-width: none; }
.mono-art{ position:relative; min-height:440px; display:flex; align-items:center; justify-content:center; }

.mcard{ background:#fff; border:1px solid var(--line); border-radius:22px; box-shadow:0 28px 64px -20px rgba(20,40,30,0.28), 0 6px 18px rgba(0,0,0,0.05); padding:22px 24px; }
.mcard-h{ margin-bottom:6px; }
.mcard-title{ display:flex; align-items:center; justify-content:space-between; font-family:var(--sans); font-size:17px; font-weight:700; color:var(--ink); }
.mcard-title .dots{ color:var(--ink-faint); letter-spacing:0.1em; }
.mcard-due{ display:flex; align-items:center; gap:6px; font-family:var(--sans); font-size:13.5px; color:var(--ink-mute); margin-top:3px; }
.mcard-due .arr{ color:var(--ink-faint); }
.mrowi{ display:grid; grid-template-columns:auto 1fr auto; gap:13px; align-items:center; padding:12px 0; border-top:1px solid var(--line); }
.mrowi.tx{ grid-template-columns:auto auto 1fr auto; }
.mrowi:first-of-type{ margin-top:10px; }
.mlogo{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; overflow:hidden; flex-shrink:0; font-family:var(--sans); font-size:14px; font-weight:700; color:#fff; }
.mlogo img{ width:100%; height:100%; object-fit:cover; }
.mname{ display:block; font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink); line-height:1.2; }
.msub{ display:block; font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); margin-top:2px; }
.mright{ text-align:right; }
.mamt{ font-family:var(--sans); font-size:15px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.mwhen{ font-family:var(--sans); font-size:12px; color:var(--ink-mute); margin-top:2px; }
.mcheck{ width:22px; height:22px; border-radius:50%; border:1.5px solid var(--forest); display:grid; place-items:center; color:var(--forest); flex-shrink:0; }

.mono-art .f-back{ position:relative; z-index:1; width:80%; max-width:392px; }
.mono-art .f-front{ position:absolute; z-index:3; width:74%; max-width:360px; right:0; bottom:-4%; }
.mono-art .f-badge{ position:absolute; z-index:4; top:-2%; right:2%; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 20px 44px -16px rgba(20,40,30,0.26); padding:16px 18px; }
.mono-art .f-mid{ position:absolute; z-index:2; width:62%; max-width:300px; left:-2%; bottom:-8%; }

.mavatars{ display:flex; gap:16px; }
.mavatar{ text-align:center; }
.mavatar .ring{ width:54px; height:54px; border-radius:50%; padding:3px; border:2px solid var(--brass); margin:0 auto; }
.mavatar .ring img{ width:100%; height:100%; border-radius:50%; object-fit:cover; display:block; }
.mavatar .nm{ font-family:var(--sans); font-size:12px; font-weight:600; color:var(--forest); margin-top:7px; }
.mnet-l{ font-family:var(--sans); font-size:13px; color:var(--ink-mute); }
.mnet-v{ font-family:var(--serif); font-size:30px; color:var(--ink); margin-top:2px; font-variant-numeric:tabular-nums; }
.mpill{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:13px; color:var(--ink); border:1px solid var(--line-strong); border-radius:var(--r-pill); padding:7px 13px; }
.mpill .cz{ color:var(--ink-mute); }
.mdrop{ background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 40px -14px rgba(20,40,30,0.24); padding:6px; margin-top:8px; width:184px; }
.mdrop-item{ font-family:var(--sans); font-size:14px; color:var(--ink-soft); padding:9px 12px; border-radius:9px; display:flex; align-items:center; justify-content:space-between; }
.mdrop-item.on{ background:rgba(14,58,62,0.08); color:var(--forest); font-weight:600; }

/* compact Monarch card internals */
.mcard.f-solo{ position:relative; width:100%; }
.ms-split{ display:flex; height:10px; border-radius:999px; overflow:hidden; gap:2px; margin:14px 0 9px; }
.ms-split i{ display:block; height:100%; transition:width 1s var(--ease); }
.ms-splitleg{ display:flex; gap:16px; font-family:var(--sans); font-size:12px; color:var(--ink-soft); margin-bottom:6px; }
.ms-splitleg span{ display:inline-flex; align-items:center; gap:7px; }
.ms-splitleg i{ width:9px; height:9px; border-radius:2px; }
.ms-tag{ display:flex; flex-direction:column; gap:2px; padding:2px; }
.ms-tag-l{ font-family:var(--sans); font-size:9px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink-mute); }
.ms-tag-v{ font-family:var(--serif); font-size:22px; color:var(--ink); line-height:1; }
.ms-tag-s{ font-family:var(--sans); font-size:11px; color:var(--ink-mute); }
.ms-wave{ margin:12px 0; }
.ms-stats{ display:flex; gap:8px; margin-top:12px; }
.ms-stat{ flex:1; background:var(--bone); border-radius:12px; padding:11px 12px; display:flex; flex-direction:column; gap:5px; }
.ms-l{ font-family:var(--sans); font-size:9.5px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-mute); }
.ms-v{ font-family:var(--serif); font-size:20px; color:var(--ink); line-height:1; font-variant-numeric:tabular-nums; }
.ms-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); font-family:var(--sans); font-size:13px; color:var(--ink-soft); }
.ms-foot b{ font-family:var(--serif); font-size:19px; font-weight:400; }
.mbars{ display:flex; flex-direction:column; margin-top:10px; }
.mbar{ display:grid; grid-template-columns:22px 1.25fr 1.5fr auto; gap:11px; align-items:center; padding:11px 0; border-top:1px solid var(--line); }
.mbar:first-child{ border-top:none; }
.mbar-rank{ width:22px; height:22px; border-radius:50%; background:rgba(10,10,10,0.05); display:grid; place-items:center; font-family:var(--sans); font-size:11px; font-weight:600; color:var(--ink-soft); }
.mbar-chk{ width:22px; height:22px; border-radius:50%; background:rgba(14,58,62,0.08); display:grid; place-items:center; font-size:11px; color:var(--forest); }
.mbar-nm b{ display:block; font-family:var(--sans); font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.2; }
.mbar-nm i{ display:block; font-family:var(--sans); font-size:11.5px; font-style:normal; color:var(--ink-mute); margin-top:1px; }
.mbar-track{ height:12px; border-radius:999px; background:rgba(10,10,10,0.07); overflow:hidden; }
.mbar-track i{ display:block; height:100%; border-radius:999px; transition:width 1s var(--ease); }
.mbar-amt{ font-family:var(--sans); font-size:13.5px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; }
.mbar-handled{ font-family:var(--sans); font-size:9px; font-weight:600; letter-spacing:0.1em; color:var(--ink-faint); text-align:right; }
.eg-mini{ display:flex; flex-direction:column; gap:9px; margin-top:14px; }
.egm-row{ display:grid; grid-template-columns:118px 1fr 50px; gap:10px; align-items:center; }
.egm-tic b{ font-family:var(--sans); font-size:13px; font-weight:700; color:var(--ink); }
.egm-tic i{ font-family:var(--sans); font-size:11px; font-style:normal; color:var(--ink-mute); }
.egm-tic i.nr{ color:var(--brass); }
.egm-track{ height:13px; border-radius:4px; background:rgba(10,10,10,0.05); overflow:hidden; }
.egm-track i{ display:block; height:100%; border-radius:4px; transition:width 1s var(--ease); }
.egm-val{ font-family:var(--sans); font-size:12.5px; font-weight:600; color:var(--forest); text-align:right; font-variant-numeric:tabular-nums; }
.mgoals{ display:flex; flex-direction:column; gap:14px; margin-top:14px; }
.mgoal-top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:7px; }
.mgoal-top span{ font-family:var(--sans); font-size:13.5px; color:var(--ink); }
.mgoal-top b{ font-family:var(--sans); font-size:12.5px; font-weight:600; color:var(--ink-soft); }
.mgoal-track{ height:7px; border-radius:999px; background:rgba(10,10,10,0.08); overflow:hidden; }
.mgoal-track i{ display:block; height:100%; border-radius:999px; transition:width 1s var(--ease); }
.est-mini{ display:flex; flex-direction:column; gap:10px; margin-top:14px; }
.estm{ display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; border-radius:14px; padding:15px 18px; }
.estm.dark{ background:var(--forest); color:#fff; }
.estm.ink{ background:var(--obsidian); color:#fff; }
.estm-nm{ font-family:var(--sans); font-size:14px; font-weight:600; }
.estm-v{ font-family:var(--serif); font-size:22px; font-variant-numeric:tabular-nums; }
.estm-pct{ font-family:var(--sans); font-size:12px; opacity:0.7; }
.ms-route{ display:flex; align-items:center; gap:8px; font-family:var(--sans); font-size:12px; color:var(--ink-soft); padding:3px 0; }
.ms-route-dot{ width:9px; height:9px; border-radius:50%; }

/* ---- art-wide rows (data-dense cards get more room) ---- */
.mono-row.art-wide{ grid-template-columns:0.82fr 1.18fr; }
.mono-row.art-wide.flip{ grid-template-columns:1.18fr 0.82fr; }
.mono-row.stack{ grid-template-columns:1fr; gap:24px; }
.mono-row.stack .mono-copy{ max-width:780px; }
.er-full{ width:100%; max-width:none !important; }
.er-full > svg{ width:100%; height:auto; display:block; }
@media (max-width:880px){ .mono-row.art-wide{ grid-template-columns:1fr; } }

/* ---- Atlas mini strip ---- */
.ms-atlas{ margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.ms-atlas-h{ display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-size:10px; font-weight:700; letter-spacing:0.16em; color:var(--ink-mute); }
.ms-atlas-orb{ width:20px; height:20px; border-radius:50%; background:var(--obsidian); display:grid; place-items:center; }
.ms-atlas p{ font-family:var(--sans); font-size:12.5px; line-height:1.55; color:var(--ink-soft); margin:8px 0 0; }
.ms-atlas p b{ color:var(--ink); font-weight:600; }

/* ---- Year of cash ---- */
.yc-head{ display:flex; gap:40px; flex-wrap:wrap; }
.yc-big{ font-family:var(--serif); font-size:34px; line-height:1; color:var(--ink); margin-top:4px; font-variant-numeric:tabular-nums; }
.yc-big.sea{ color:var(--forest-mid); }
.yc-big span{ font-family:var(--sans); font-size:13px; color:var(--ink-mute); }
.yc-legend{ display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:12px; }
.yc-legend span{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:11.5px; color:var(--ink-soft); }
.yc-legend i{ width:11px; height:11px; border-radius:3px; }
.yc-legend i.dash{ height:0; border-radius:0; border-top:2px dashed var(--clay); background:none !important; width:13px; }

/* ---- Reports / Sankey ---- */
.rep-tabs{ display:flex; gap:18px; font-family:var(--sans); font-size:14px; margin-bottom:16px; }
.rep-tabs span{ color:var(--ink-mute); white-space:nowrap; }
.rep-tabs span.on{ color:var(--clay); font-weight:600; }
.rep-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.rep-stat{ background:var(--bone); border-radius:12px; padding:12px 10px; text-align:center; display:flex; flex-direction:column; gap:5px; }
.rep-v{ font-family:var(--sans); font-size:16px; font-weight:700; font-variant-numeric:tabular-nums; }
.rep-l{ font-family:var(--sans); font-size:8.5px; font-weight:600; letter-spacing:0.1em; color:var(--ink-mute); }
.rep-cap{ font-family:var(--sans); font-size:11px; letter-spacing:0.04em; color:var(--ink-mute); margin:16px 0 2px; }

/* ---- What to do next ---- */
.wtd-list{ display:flex; flex-direction:column; }
.wtd-row{ display:grid; grid-template-columns:34px 1fr auto; gap:16px; align-items:start; padding:18px 0; border-top:1px solid var(--line); }
.wtd-row:first-child{ border-top:none; }
.wtd-rank{ width:30px; height:30px; border-radius:50%; background:var(--slate); color:#fff; display:grid; place-items:center; font-family:var(--sans); font-size:13px; font-weight:600; }
.wtd-rank.hot{ background:var(--forest-deep); }
.wtd-top{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.wtd-top b{ font-family:var(--sans); font-size:15px; font-weight:600; color:var(--ink); }
.wtd-eff{ font-family:var(--sans); font-size:11px; color:var(--forest); border:1px solid rgba(14,58,62,0.3); border-radius:var(--r-pill); padding:3px 11px; white-space:nowrap; }
.wtd-eff{ white-space:nowrap; }
.wtd-tag{ font-family:var(--sans); font-size:9.5px; font-weight:600; letter-spacing:0.1em; color:var(--ink-mute); background:rgba(10,10,10,0.06); border-radius:var(--r-pill); padding:3px 9px; }
.wtd-eff{ font-family:var(--sans); font-size:11px; color:var(--forest); border:1px solid rgba(14,58,62,0.3); border-radius:var(--r-pill); padding:3px 11px; }
.wtd-main p{ font-family:var(--sans); font-size:13px; line-height:1.5; color:var(--ink-soft); margin:8px 0 12px; }
.wtd-bar{ height:6px; border-radius:999px; background:rgba(10,10,10,0.08); overflow:hidden; }
.wtd-bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--slate),var(--forest)); transition:width 1s var(--ease); }
.wtd-imp{ text-align:right; display:flex; flex-direction:column; align-items:flex-end; }
.wtd-imp b{ font-family:var(--serif); font-size:30px; line-height:0.9; color:var(--ink); font-variant-numeric:tabular-nums; }
.wtd-imp span{ font-family:var(--sans); font-size:9px; letter-spacing:0.14em; color:var(--ink-mute); margin-top:4px; }

/* ---- Estate routing ---- */
.er-grid{ display:grid; grid-template-columns:1.5fr 56px 1.1fr; gap:12px; align-items:start; }
.er-ch{ font-family:var(--sans); font-size:9.5px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--brass); margin-bottom:12px; }
.er-src{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; background:var(--paper-warm); border:1px solid var(--line); border-left:3px solid; border-radius:9px; padding:9px 12px; margin-bottom:7px; }
.er-src span{ font-family:var(--sans); font-size:12.5px; color:var(--ink); }
.er-src b{ font-family:var(--sans); font-size:12px; font-weight:600; color:var(--ink-mute); font-variant-numeric:tabular-nums; }
.er-flow{ align-self:center; padding-top:24px; }
.er-bcard{ display:grid; grid-template-columns:1fr auto; gap:2px 8px; border-radius:14px; padding:14px 16px; margin-bottom:10px; color:#fff; }
.er-bcard.dark{ background:var(--forest); } .er-bcard.ink{ background:var(--obsidian); }
.er-bcard .ebn{ font-family:var(--sans); font-size:13px; font-weight:600; }
.er-bcard .ebv{ font-family:var(--serif); font-size:22px; grid-row:2; font-variant-numeric:tabular-nums; }
.er-bcard .ebp{ grid-row:2; align-self:center; font-family:var(--sans); font-size:12px; opacity:0.7; }
.er-summary{ display:flex; align-items:stretch; gap:10px; margin-top:18px; }
.er-sum{ flex:1; border:1px solid var(--line); border-radius:14px; padding:14px 16px; background:var(--paper-warm); display:flex; flex-direction:column; gap:7px; }
.er-sum.fr{ background:rgba(181,80,60,0.05); border-color:rgba(181,80,60,0.2); }
.er-sum.re{ background:rgba(47,107,84,0.06); border-color:rgba(47,107,84,0.25); }
.er-sum span{ font-family:var(--sans); font-size:8.5px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-mute); }
.er-sum b{ font-family:var(--serif); font-size:26px; color:var(--ink); font-variant-numeric:tabular-nums; }
.er-op{ font-family:var(--serif); font-size:22px; color:var(--ink-faint); align-self:center; }
.er-legend{ display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:16px; }
.er-legend span{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:11px; color:var(--ink-soft); }
.er-legend i{ width:9px; height:9px; border-radius:2px; }

/* ---- Transaction table ---- */
.txn-table{ display:flex; flex-direction:column; }
.txn-row{ display:grid; grid-template-columns:1.5fr 1fr 1.1fr 1.2fr auto; gap:12px; align-items:center; padding:13px 0; border-top:1px solid var(--line); }
.txn-row.txn-head{ border-top:none; padding-bottom:11px; }
.txn-head span{ font-family:var(--sans); font-size:9px; font-weight:600; letter-spacing:0.14em; color:var(--ink-mute); }
.txn-r{ text-align:right; }
.txn-m{ display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:14px; font-weight:600; color:var(--ink); }
.txn-arr{ font-size:13px; line-height:1; }
.txn-arr.out{ color:var(--clay); } .txn-arr.in{ color:var(--forest-mid); }
.txn-type{ font-family:var(--sans); font-size:11px; font-weight:600; border-radius:var(--r-pill); padding:4px 11px; }
.txn-type.disc{ background:rgba(181,80,60,0.1); color:var(--clay); }
.txn-type.ess{ background:rgba(47,107,84,0.12); color:var(--forest); }
.txn-type.inc{ background:rgba(10,10,10,0.07); color:var(--ink-soft); }
.txn-cat{ display:inline-flex; align-items:center; gap:8px; font-family:var(--sans); font-size:13px; color:var(--ink); background:rgba(10,10,10,0.04); border-radius:var(--r-pill); padding:6px 12px; }
.txn-cat.muted{ color:var(--ink-mute); }
.txn-cat em{ font-style:normal; color:var(--ink-faint); font-size:10px; }
.txn-acct{ font-family:var(--sans); font-size:13px; color:var(--ink-soft); display:flex; flex-direction:column; }
.txn-acct i{ font-style:normal; font-size:11px; color:var(--ink-mute); margin-top:2px; }
.txn-amt{ font-family:var(--sans); font-size:14px; font-weight:600; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.txn-amt.out{ color:var(--clay); } .txn-amt.in{ color:var(--forest-mid); }
@media (max-width:640px){
  .txn-row{ grid-template-columns:1.4fr auto auto; }
  .txn-row .txn-cat, .txn-row .txn-acct, .txn-head span:nth-child(3), .txn-head span:nth-child(4){ display:none; }
  .er-grid{ grid-template-columns:1fr; } .er-flow{ display:none; }
  .rep-stats{ grid-template-columns:1fr 1fr; }
  .wtd-row{ grid-template-columns:28px 1fr; } .wtd-imp{ grid-column:2; flex-direction:row; gap:8px; align-items:baseline; justify-content:flex-start; }
}

@media (max-width:880px){
  .mono-art .f-solo, .mono-art .f-back{ max-width:440px !important; width:100%; }
}

@media (max-width:880px){
  .mono-row{ grid-template-columns:1fr; gap:30px; }
  .mono-row.flip .mono-copy{ order:0; }
  .mono-art{ min-height:0; flex-direction:column; gap:18px; padding-top:8px; }
  .mono-art .f-back, .mono-art .f-front, .mono-art .f-mid{ position:relative; width:100%; max-width:420px; right:auto; bottom:auto; left:auto; }
  .mono-art .f-badge{ position:relative; top:auto; right:auto; left:auto; bottom:auto; align-self:center; margin-top:-6px; }
}

@media (max-width:880px){
  .bento-grid{ grid-template-columns:repeat(2,1fr); }
  .bento-cell.b-wide{ grid-column:span 2; }
  .bento-cell.b-tall{ grid-row:span 1; }
}
@media (max-width:520px){
  .bento-grid{ grid-template-columns:1fr; }
  .bento-cell.b-wide{ grid-column:span 1; }
}

@media (max-width:980px){
  .triptych{ grid-template-columns:1fr; max-width:460px; margin:0 auto; }
  .glow-pair{ grid-template-columns:1fr; }
  .money-map{ grid-template-columns:1fr; }
  .fsum{ grid-template-columns:1fr 1fr 1fr; }
  .fsum-cell:nth-child(4){ border-left:none; }
  .found-cards{ grid-template-columns:1fr 1fr; }
  .htr-grid{ grid-template-columns:1fr 1fr; }
  .est-flow{ grid-template-columns:1fr 1fr; }
  .ae-stats{ grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .found-cards{ grid-template-columns:1fr; }
  .fsum{ grid-template-columns:1fr 1fr; }
  .fsum-cell{ border-left:none; border-top:1px solid var(--line); }
  .fsum-cell:nth-child(-n+2){ border-top:none; }
  .mm-grid{ grid-template-columns:1fr 1fr; }
  .htr-grid{ grid-template-columns:1fr; }
  .est-flow{ grid-template-columns:1fr; }
  .ae-stats{ grid-template-columns:1fr 1fr; }
  .ae-row{ grid-template-columns:24px 1fr; grid-template-areas:"r n" "b b" "a a"; gap:10px 12px; }
  .ae-radio{ grid-area:r; } .ae-name{ grid-area:n; } .ae-bar{ grid-area:b; } .ae-amt,.ae-amt-min{ grid-area:a; }
  .eg-row{ grid-template-columns:120px 1fr 50px; gap:10px; }
  .fc-trow{ grid-template-columns:2fr 1fr; }
  .fc-trow .fc-jur,.fc-trow .fc-cat{ display:none; }
  .gh-sub{ padding-left:0; }
}

/* ============================================================
   "Everything you need" — Monarch-style quadrant grid
   ============================================================ */
.allin{ background:var(--paper); border-radius:var(--r-card-lg); padding:clamp(44px,6vw,96px) clamp(24px,5vw,72px); }
.allin-head{ text-align:center; max-width:720px; margin:0 auto clamp(44px,6vw,84px); }
.allin-h{ font-family:var(--serif); font-weight:400; font-size:clamp(36px,5vw,68px); line-height:1.0; letter-spacing:-0.03em; color:var(--ink); margin:0; }
.allin-sub{ font-family:var(--sans); font-size:clamp(16px,1.6vw,18px); line-height:1.6; color:var(--ink-soft); margin:20px auto 0; max-width:56ch; }
.allin-grid{ position:relative; display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(48px,30vw,460px); row-gap:clamp(44px,6vw,96px); }
.allin-q{ max-width:36ch; }
.allin-q.q-tr{ grid-column:1; grid-row:1; }
.allin-q.q-co{ grid-column:2; grid-row:1; }
.allin-q.q-bu{ grid-column:1; grid-row:2; }
.allin-q.q-pl{ grid-column:2; grid-row:2; }
.allin-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--forest); margin:0 0 14px; }
.allin-qh{ font-family:var(--sans); font-size:clamp(19px,1.9vw,23px); font-weight:600; letter-spacing:-0.01em; color:var(--ink); margin:0; }
.allin-qp{ font-family:var(--sans); font-size:15px; line-height:1.6; color:var(--ink-soft); margin:12px 0 20px; }
.allin-btn{ display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:13.5px; font-weight:600; border-radius:var(--r-pill); padding:11px 22px; background:rgba(14,58,62,0.1); color:var(--forest); transition:background .18s, color .18s, transform .2s var(--ease); }
.allin-btn:hover{ background:rgba(14,58,62,0.16); transform:translateY(-1px); }
.allin-btn.solid{ background:var(--forest); color:#fff; }
.allin-btn.solid:hover{ background:var(--forest-deep); }
.allin-q.budget{ background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-card); box-shadow:var(--shadow-card-lg); padding:clamp(26px,2.6vw,34px); max-width:none; align-self:center; }
/* interactive tabs */
.allin-q{ text-align:left; background:none; border:none; font:inherit; cursor:pointer; border-radius:var(--r-card); padding:18px 20px; transition:background .2s var(--ease), box-shadow .3s var(--ease), transform .2s var(--ease); position:relative; }
.allin-q::after{ content:""; position:absolute; left:20px; bottom:8px; height:2px; width:0; background:var(--forest); transition:width .3s var(--ease); }
.allin-q:hover{ background:rgba(10,10,10,0.025); }
.allin-q.on{ background:var(--paper-warm); box-shadow:var(--shadow-card-lg); }
.allin-q.on .allin-btn{ background:var(--forest); color:#fff; }
.allin-q .allin-btn{ cursor:pointer; }
/* center floating card cluster */
.allin-center{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:min(360px,42%); z-index:3; pointer-events:none; }
.allin-card{ background:var(--paper-warm); border:1px solid var(--line); border-radius:18px; box-shadow:0 26px 60px -20px rgba(20,40,30,0.28), 0 8px 22px rgba(0,0,0,0.06); padding:20px 22px; }
.allin-card + .allin-card{ margin-top:-14px; margin-left:34px; width:calc(100% - 12px); position:relative; }
.allin-card-h{ display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:14.5px; font-weight:600; color:var(--ink); margin-bottom:14px; }
.allin-card-ico{ width:22px; height:22px; border-radius:6px; display:grid; place-items:center; color:var(--forest); }
.allin-track{ height:7px; border-radius:999px; background:rgba(10,10,10,0.08); overflow:hidden; margin-bottom:11px; }
.allin-track > i{ display:block; height:100%; border-radius:999px; }
.allin-fig{ display:flex; justify-content:space-between; font-family:var(--sans); font-size:13.5px; font-variant-numeric:tabular-nums; }
.allin-fig .spent{ color:var(--ink); font-weight:600; }
.allin-fig .cap{ color:var(--ink-mute); }

/* demo video placeholder */
.demo-vid{ position:relative; max-width:1040px; margin:0 auto; aspect-ratio:16/9; border-radius:var(--r-card-lg); background:radial-gradient(120% 120% at 50% 0%, #1a3a30 0%, #102a21 45%, var(--obsidian) 100%); border:1px solid var(--line); box-shadow:var(--shadow-hero); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; overflow:hidden; }
.demo-play{ width:84px; height:84px; border-radius:50%; border:1px solid rgba(244,244,241,0.28); background:rgba(244,244,241,0.08); color:var(--ivory); display:grid; place-items:center; cursor:pointer; transition:background .2s var(--ease), transform .2s var(--ease); }
.demo-play svg{ margin-left:4px; }
.demo-play:hover{ background:rgba(244,244,241,0.16); transform:scale(1.05); }
.demo-tag{ font-family:var(--sans); font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--paper-mute); }
/* interactive panel elements */
.allin-center.swap{ animation:allinSwap .4s var(--ease); }
@keyframes allinSwap{ from{ opacity:0; transform:translateY(8px) scale(0.98); } to{ opacity:1; transform:none; } }
.allin-big{ font-family:var(--serif); font-size:30px; line-height:1; color:var(--ink); font-variant-numeric:tabular-nums; }
.allin-delta{ font-family:var(--sans); font-size:12.5px; margin:6px 0 12px; }
.allin-delta.up{ color:var(--forest); }
.allin-split{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.allin-split .al-l{ display:block; font-family:var(--sans); font-size:9px; font-weight:600; letter-spacing:0.12em; color:var(--ink-mute); }
.allin-split .al-v{ font-family:var(--serif); font-size:18px; font-variant-numeric:tabular-nums; }
.al-member{ display:flex; align-items:center; gap:11px; padding:9px 0; }
.al-member + .al-member{ border-top:1px solid var(--line); }
.al-av{ width:30px; height:30px; border-radius:50%; display:grid; place-items:center; color:#fff; font-family:var(--sans); font-size:13px; font-weight:600; flex-shrink:0; }
.al-member b{ font-family:var(--sans); font-size:14px; color:var(--ink); display:block; }
.al-member i{ font-family:var(--sans); font-size:11.5px; font-style:normal; color:var(--ink-mute); }
@media (max-width:980px){
  .allin-grid{ column-gap:clamp(40px,8vw,120px); }
  .allin-center{ width:300px; }
}
@media (max-width:780px){
  .allin-grid{ grid-template-columns:1fr; row-gap:36px; }
  .allin-q.q-tr,.allin-q.q-co,.allin-q.q-bu,.allin-q.q-pl{ grid-column:1; }
  .allin-q.q-tr{ grid-row:1; } .allin-q.q-bu{ grid-row:2; } .allin-center{ position:static; transform:none; width:100%; margin:8px 0; pointer-events:auto; }
  .allin-q.q-co{ grid-row:4; } .allin-q.q-pl{ grid-row:5; }
}

/* ============================================================
   PLATFORM OVERVIEW — radial circle of the five sections
   ============================================================ */
.povr-head{ max-width:820px; margin:0 auto clamp(40px,5vw,64px); text-align:center; }
.povr-eyebrow{ font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--forest); margin:0 0 16px; }
.povr-h{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.6vw,60px); line-height:1.0; letter-spacing:-0.03em; color:var(--ink); margin:0; }
.povr-sub{ font-family:var(--sans); font-size:clamp(16px,1.6vw,18px); line-height:1.55; color:var(--ink-soft); margin:20px auto 0; max-width:74ch; }

/* ============================================================
   PLATFORM FLOW — everything flows into Atlas (Tapistro-style)
   ============================================================ */
.flw-sec .povr-head{ margin-bottom:clamp(30px,4vw,52px); }
.flw-stage{ position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:clamp(36px,6.5vw,128px); min-height:660px; }
.flw-wires{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1; overflow:visible; }

.flw-col{ position:relative; z-index:2; display:flex; flex-direction:column; }
.flw-left{ align-items:flex-start; gap:clamp(9px,1.2vw,16px); }
.flw-right{ align-items:flex-end; gap:clamp(9px,1.2vw,16px); }
.flw-right .flw-pill:hover{ transform:translateX(-7px); }

/* left — labelled pills */
.flw-pill{ display:inline-flex; align-items:center; gap:12px; background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-pill); padding:9px 22px 9px 9px; box-shadow:0 6px 18px rgba(20,40,30,0.06); text-decoration:none; color:var(--ink); white-space:nowrap; transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .35s; }
.flw-pill:hover{ transform:translateX(7px); box-shadow:0 14px 30px rgba(20,40,30,0.13); border-color:rgba(14,58,62,0.32); }
.flw-lbl{ font-family:var(--sans); font-size:17px; font-weight:500; letter-spacing:-0.01em; }

/* right — title + subtitle cards */
.flw-card{ display:flex; align-items:center; gap:14px; background:var(--paper-warm); border:1px solid var(--line); border-radius:18px; padding:13px 18px; box-shadow:0 6px 18px rgba(20,40,30,0.06); text-decoration:none; color:var(--ink); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .35s; }
.flw-card:hover{ transform:translateX(-7px); box-shadow:0 14px 30px rgba(20,40,30,0.13); border-color:rgba(14,58,62,0.32); }
.flw-card .flw-tt{ min-width:0; display:flex; flex-direction:column; }
.flw-ct{ display:block; font-family:var(--sans); font-size:15px; font-weight:600; letter-spacing:-0.01em; color:var(--ink); line-height:1.22; }
.flw-cs{ display:block; font-family:var(--sans); font-size:12.5px; color:var(--ink-mute); margin-top:2px; line-height:1.3; }

/* icon chips (both sides) */
.flw-ic{ width:40px; height:40px; border-radius:12px; display:grid; place-items:center; flex-shrink:0; }
.flw-ic svg{ width:21px; height:21px; }

/* hub */
.flw-hub{ position:relative; z-index:3; justify-self:center; display:flex; flex-direction:column; align-items:center; }
.flw-hubcard{ position:relative; width:clamp(150px,15vw,184px); aspect-ratio:1/1; border-radius:50%; background:radial-gradient(120% 120% at 30% 22%, #1B2620 0%, var(--obsidian) 62%); display:flex; align-items:center; justify-content:center; box-shadow:0 34px 70px -20px rgba(12,40,28,0.55); }
.flw-hubcard::after{ content:""; position:absolute; inset:-26px; border-radius:50%; background:radial-gradient(circle, rgba(134,199,192,0.30), rgba(134,199,192,0) 70%); z-index:-1; }
.flw-glyph{ width:100%; height:100%; color:var(--ivory); transform:scale(1.09); }
.flw-word{ margin-top:18px; font-family:var(--serif); font-size:34px; line-height:1; letter-spacing:-0.01em; color:var(--ink); }
.flw-tag{ margin-top:18px; white-space:nowrap; display:inline-flex; align-items:center; gap:9px; background:var(--paper-warm); border:1px solid var(--line); border-radius:var(--r-pill); padding:8px 17px; font-family:var(--sans); font-size:13px; font-weight:600; color:var(--forest); box-shadow:0 8px 20px rgba(20,40,30,0.09); }
.flw-tag .dot{ width:8px; height:8px; border-radius:50%; background:var(--gain); }
@media (prefers-reduced-motion:no-preference){ .flw-tag .dot{ animation:flwPulse 2.4s ease-in-out infinite; } }
@keyframes flwPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(47,107,84,0.35); } 50%{ box-shadow:0 0 0 6px rgba(47,107,84,0); } }

/* animated wire flow */
.flw-base{ fill:none; stroke:rgba(14,58,62,0.12); stroke-width:1.3; }
.flw-flow{ fill:none; stroke:rgba(63,125,95,0.26); stroke-width:1.4; stroke-linecap:round; stroke-dasharray:3 19; }
@media (prefers-reduced-motion:no-preference){ .flw-flow{ animation:flwDash 4.2s linear infinite; } }
@keyframes flwDash{ to{ stroke-dashoffset:-44; } }

/* mobile stacked fallback */
.flw-stack{ display:none; }
@media (max-width:860px){
  .flw-stage{ display:none; }
  .flw-stack{ display:flex; flex-direction:column; gap:10px; }
  .flw-stack .flw-mhub{ display:flex; align-items:center; gap:14px; justify-content:center; padding:18px 0 4px; }
  .flw-stack .flw-mhub .flw-glyph{ width:40px; height:40px; color:var(--forest); }
  .flw-stack .flw-mhub .w{ font-family:var(--serif); font-size:24px; color:var(--ink); }
  .flw-stack .flw-mlabel{ font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-mute); margin:18px 0 2px; }
  .flw-stack .flw-pill,.flw-stack .flw-card{ width:100%; }
  .flw-stack .flw-pill{ justify-content:flex-start; }
}

.povr-circle{ position:relative; width:min(820px,94vw); aspect-ratio:1/1; margin:0 auto; }
.povr-ring{ position:absolute; inset:28%; border:1px dashed var(--line-strong); border-radius:50%; }
.povr-hub{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:25%; aspect-ratio:1/1; border-radius:50%; background:var(--obsidian); color:var(--ivory); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:5%; box-shadow:var(--shadow-hero); z-index:2; }
.povr-hub .glyph{ width:40px; height:40px; margin-bottom:9px; }
.povr-hub .ht{ font-family:var(--serif); font-size:clamp(22px,2.6vw,32px); line-height:1; letter-spacing:-0.01em; }
.povr-hub .hk{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--sage); margin-top:8px; }
.povr-node{ position:absolute; width:min(248px,32%); transform:translate(-50%,-50%); text-align:center; z-index:3; text-decoration:none; color:inherit; cursor:pointer; }
@media (prefers-reduced-motion:no-preference){
  .povr-node{ animation:povrFloat 6s ease-in-out infinite; will-change:transform; }
  .povr-node:nth-child(2){ animation-delay:0s; }
  .povr-node:nth-child(3){ animation-delay:1.1s; }
  .povr-node:nth-child(4){ animation-delay:2.2s; }
  .povr-node:nth-child(5){ animation-delay:3.3s; }
  .povr-node:nth-child(6){ animation-delay:4.4s; }
}
@keyframes povrFloat{ 0%,100%{ transform:translate(-50%,-50%); } 50%{ transform:translate(-50%,calc(-50% - 9px)); } }
.povr-node .nd-dot{ width:48px; height:48px; border-radius:50%; background:var(--paper-warm); border:1px solid var(--line); display:grid; place-items:center; color:var(--forest); margin:0 auto 14px; box-shadow:var(--shadow-card); transition:background .2s var(--ease), color .2s, transform .2s var(--ease); }
.povr-node .nd-dot svg{ width:24px; height:24px; }
.povr-node:hover .nd-dot{ background:var(--forest); color:#fff; transform:translateY(-3px); }
.povr-node .nd-name{ font-family:var(--serif); font-size:clamp(20px,2.1vw,27px); line-height:1.05; letter-spacing:-0.015em; color:var(--ink); margin:0; }
.povr-node .nd-desc{ font-family:var(--sans); font-size:13.5px; line-height:1.5; color:var(--ink-soft); margin:8px 0 0; }
/* stacked fallback */
.povr-stack{ display:none; }
@media (max-width:760px){
  .povr-circle{ display:none; }
  .povr-stack{ display:flex; flex-direction:column; border-top:1px solid var(--line); }
  .povr-srow{ display:flex; gap:14px; align-items:flex-start; padding:22px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; }
  .povr-srow .nd-dot{ width:38px; height:38px; border-radius:50%; background:var(--paper-warm); border:1px solid var(--line); display:grid; place-items:center; color:var(--forest); flex-shrink:0; }
  .povr-srow .nd-name{ font-family:var(--serif); font-size:22px; color:var(--ink); margin:0; }
  .povr-srow .nd-desc{ font-family:var(--sans); font-size:14px; line-height:1.55; color:var(--ink-soft); margin:6px 0 0; }
}