/* ============================================================
   Galvor — Decoded report system
   ============================================================ */
:root{
  --ink:#17131F; --ink-2:#3B3450; --muted:#55516E; --faint:#8B86A0;
  --line:#E5E1F0; --line-2:#EDEAF4;
  --violet:#7C3AED; --deep:#4C1D95; --magenta:#D946EF; --green:#1E9678;
  --wash:#F4F0FE; --ground:#FBFAFE; --card:#FFFFFF;
  --sans:"Archivo","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ground);color:var(--ink);font-family:var(--body);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--sans);font-weight:800;letter-spacing:-.035em;line-height:1.08}
a{color:inherit}
img{max-width:100%;display:block}

.wrap{max-width:1640px;margin:0 auto;padding:0 26px}
.narrow{max-width:900px}

/* ---------- top bar ---------- */
.bar{position:sticky;top:0;z-index:60;background:rgba(251,250,254,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line-2)}
.bar .in{max-width:1640px;margin:0 auto;padding:14px 26px;display:flex;align-items:center;gap:18px}
.gmark{width:20px;height:20px;border-radius:50%;flex:none;
  background:conic-gradient(from 210deg,var(--green),var(--violet),var(--magenta),var(--green))}
.bar b{font-size:18px;letter-spacing:-.03em;font-family:var(--sans)}
.bar nav{display:flex;gap:3px;margin-left:auto;flex-wrap:wrap}
.bar nav a{font-family:var(--mono);font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;
  color:var(--muted);text-decoration:none;padding:7px 10px;border-radius:8px}
.bar nav a:hover,.bar nav a[aria-current="page"]{background:var(--wash);color:var(--violet)}

/* ---------- cover ---------- */
.cover{padding:76px 0 60px;border-bottom:1px solid var(--line)}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--violet);font-weight:700}
.cover h1{font-size:clamp(44px,7.4vw,104px);margin:22px 0 28px}
.cover .lede{font-size:clamp(20px,1.9vw,27px);line-height:1.45;color:var(--ink-2);max-width:52ch}
.cover .lede b{color:var(--ink);font-weight:700}

.brandrow{display:flex;align-items:center;gap:34px;flex-wrap:wrap;
  margin-top:44px;padding-top:26px;border-top:1px solid var(--line)}
.brandrow .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--faint);width:100%}
.logo{display:flex;align-items:center;gap:12px}
.logo img{height:30px;width:auto}
.logo img.sq{height:38px;border-radius:7px}
.logo .n{font-family:var(--mono);font-size:11.5px;color:var(--muted)}

/* ---------- section ---------- */
.sec{padding:74px 0;border-bottom:1px solid var(--line)}
.sec:last-of-type{border-bottom:0}
.num{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--magenta);font-weight:700;margin-bottom:16px}
.sec h2{font-size:clamp(32px,4.2vw,60px);margin-bottom:22px}
.sec .say{font-size:19px;line-height:1.62;color:var(--ink-2);max-width:78ch;margin-bottom:34px}
.sec .say b{color:var(--ink);font-weight:700}
.sec .say + .say{margin-top:-18px}

/* ---------- hero stat ---------- */
.stat{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;margin:6px 0 26px}
.stat .big{font-family:var(--sans);font-size:clamp(72px,13vw,148px);font-weight:900;
  letter-spacing:-.06em;line-height:.85;color:var(--violet)}
.stat .big.mag{color:var(--magenta)} .stat .big.grn{color:var(--green)}
.stat .cap{font-size:19px;font-weight:700;color:var(--ink-2);max-width:24ch;line-height:1.35}

/* ---------- table ---------- */
.tbl{width:100%;overflow-x:auto;background:var(--card);border:1px solid var(--line);
  border-radius:16px;margin:30px 0}
table{width:100%;border-collapse:collapse;font-size:15.5px}
caption{text-align:left;padding:20px 22px 0;font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
th,td{padding:15px 22px;text-align:left;border-bottom:1px solid var(--line-2);vertical-align:top}
thead th{font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--faint);font-weight:700;border-bottom:2px solid var(--line);white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
td b{font-weight:800}
td.hi{background:var(--wash)}
.t-lead{font-weight:700;color:var(--ink)}
.t-sub{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:4px;line-height:1.45}
.mono{font-family:var(--mono);font-size:13.5px}
.win{color:var(--green);font-weight:800}
.lose{color:var(--magenta);font-weight:800}

/* logo cell inside tables */
.lg{display:flex;align-items:center;gap:9px;white-space:nowrap}
.lg img{height:18px;width:auto} .lg img.sq{height:22px;border-radius:5px}

/* ---------- callout / pull ---------- */
.pull{border-left:4px solid var(--violet);background:var(--card);border:1px solid var(--line);
  border-left-width:4px;border-radius:14px;padding:26px 30px;margin:30px 0;
  font-size:20px;line-height:1.5;font-weight:600;color:var(--ink)}
.pull .src{display:block;font-family:var(--mono);font-size:11.5px;font-weight:400;
  color:var(--faint);margin-top:12px;letter-spacing:.04em}

/* ---------- prediction / fomo cards ---------- */
.preds{display:grid;gap:18px;margin-top:30px}
.pred{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px 28px}
.pred .k{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--magenta);font-weight:700;margin-bottom:10px}
.pred h3{font-size:22px;margin-bottom:10px}
.pred p{color:var(--muted);font-size:16px;line-height:1.6}

/* ---------- numbers strip ---------- */
.nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-top:30px}
.nums .n{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px 24px}
.nums .n .v{font-family:var(--sans);font-size:46px;font-weight:900;letter-spacing:-.05em;
  line-height:1;color:var(--violet)}
.nums .n .t{font-weight:700;margin-top:12px;font-size:16px}
.nums .n .d{color:var(--muted);font-size:14px;margin-top:5px;line-height:1.45}

/* ---------- CTA ---------- */
.cta{background:var(--ink);color:#fff;border-radius:22px;padding:52px 46px;margin:64px 0 0}
.cta h2{font-size:clamp(28px,4vw,44px);margin-bottom:18px;color:#fff}
.cta p{font-size:18px;line-height:1.55;color:rgba(255,255,255,.8);max-width:56ch;margin-bottom:28px}
.cta .btn{display:inline-block;background:var(--violet);color:#fff;text-decoration:none;
  font-weight:700;font-size:17px;padding:15px 30px;border-radius:11px}
.cta .btn:hover{background:#8B5CF6}
.cta .fine{font-family:var(--mono);font-size:11.5px;color:rgba(255,255,255,.5);margin-top:20px}

/* ---------- method ---------- */
.method{border:1px dashed var(--line);border-radius:14px;padding:24px 26px;margin-top:34px;
  font-size:14px;line-height:1.65;color:var(--muted)}
.method b{color:var(--ink-2)}

/* ---------- pager + footer ---------- */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:54px 0 0}
.pager a{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px;
  text-decoration:none;display:block}
.pager a:hover{border-color:var(--violet)}
.pager .k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--violet)}
.pager .t{display:block;font-weight:800;font-size:19px;margin-top:8px;letter-spacing:-.02em}
.pager a.next{text-align:right}
footer{padding:36px 0 60px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:var(--mono);font-size:12px;color:var(--faint)}
footer a{color:var(--violet);text-decoration:none}

@media(max-width:760px){
  .sec{padding:52px 0}
  .cover{padding:52px 0 44px}
  .cta{padding:36px 26px;border-radius:16px}
  .pager{grid-template-columns:1fr}
  .pager a.next{text-align:left}
  th,td{padding:13px 15px;font-size:14.5px}
}


/* ============================================================
   TAGS · CARDS · BANDS   (reference-UI components)
   ============================================================ */

/* ---------- section tag pill ---------- */
.tagpill{display:inline-flex;align-items:center;gap:9px;background:var(--ink);color:#fff;
  border-radius:11px;padding:9px 17px;font-family:var(--sans);font-weight:800;
  font-size:13.5px;letter-spacing:.02em;transform:rotate(-1.1deg);
  box-shadow:0 8px 18px -10px rgba(23,19,31,.5);margin-bottom:20px}
.tagpill .d{width:8px;height:8px;border-radius:2px;background:var(--magenta)}
.tagpill.violet{background:var(--violet)} .tagpill.violet .d{background:#fff}
.tagpill.mag{background:var(--magenta)} .tagpill.mag .d{background:#fff}
.tagpill.grn{background:var(--green)} .tagpill.grn .d{background:#fff}
.tagpill.lime{background:#C9F24D;color:var(--ink)} .tagpill.lime .d{background:var(--ink)}
.tagpill.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:var(--sh)}

/* section head with mono kicker beside a plain sub */
.subhead{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:-8px 0 30px}
.subhead .mk{font-family:var(--mono);font-size:13px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--faint)}
.subhead .pl{font-size:20px;font-weight:700;color:var(--muted)}

/* ---------- big stat with floating tags ---------- */
.hero-stat{position:relative;padding:54px 30px 46px;margin:34px 0;text-align:center;
  background:linear-gradient(135deg,#F6F3FE 0%,#FBFAFE 45%,#F2FBF7 100%);
  border:1px solid var(--line);border-radius:24px;overflow:hidden}
.hero-stat .kick{font-family:var(--mono);font-size:13px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--magenta);font-weight:700;margin-bottom:14px}
.hero-stat .huge{font-family:var(--sans);font-weight:900;letter-spacing:-.055em;line-height:.9;
  font-size:clamp(64px,12vw,168px);color:var(--ink)}
.hero-stat .huge .u{color:var(--violet)}
.hero-stat .foot{font-family:var(--mono);font-size:13px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--faint);margin-top:16px}
.hero-stat .cap2{font-size:22px;font-weight:800;margin-top:14px;letter-spacing:-.025em}
.hero-stat .sub2{font-size:16px;color:var(--muted);margin-top:7px;max-width:60ch;
  margin-left:auto;margin-right:auto}
.ftag{position:absolute;background:#fff;border-radius:9px;padding:9px 15px;
  font-size:14px;font-weight:700;box-shadow:0 10px 22px -12px rgba(23,19,31,.45);
  border:1px solid var(--line-2);white-space:nowrap}
.ftag.solid{background:var(--violet);color:#fff;border-color:var(--violet)}
.ftag.t1{top:34px;left:6%;transform:rotate(-4deg)}
.ftag.t2{top:26px;right:6%;transform:rotate(3.4deg)}
.ftag.t3{bottom:40px;left:9%;transform:rotate(2.6deg)}
.ftag.t4{bottom:34px;right:8%;transform:rotate(-3deg)}
@media(max-width:820px){.ftag{position:static;display:inline-block;transform:none;margin:5px 4px}
  .hero-stat{padding:30px 20px}}

/* ---------- numbered stat cards ---------- */
.cards4{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin:30px 0}
.card4{position:relative;background:linear-gradient(160deg,#FFFFFF 0%,#F8F6FE 100%);
  border:1px solid var(--line);border-radius:20px;padding:30px 30px 28px;
  box-shadow:0 14px 30px -22px rgba(23,19,31,.35)}
.card4 .ix{position:absolute;top:22px;right:24px;font-family:var(--mono);font-size:12px;
  color:var(--faint);font-weight:700}
.card4 .v{font-family:var(--sans);font-weight:900;letter-spacing:-.055em;line-height:.92;
  font-size:clamp(44px,5.4vw,62px);color:var(--violet);display:flex;align-items:baseline;gap:7px}
.card4 .v .u{font-size:.42em;font-weight:800;letter-spacing:-.02em;color:var(--ink-2)}
.card4 .t{font-weight:800;font-size:19px;margin-top:16px;letter-spacing:-.02em}
.card4 .d{color:var(--muted);font-size:15px;margin-top:6px;line-height:1.5}
.card4.mag .v{color:var(--magenta)} .card4.grn .v{color:var(--green)}
.card4.solid{background:var(--violet);border-color:var(--violet);
  box-shadow:0 20px 40px -20px rgba(124,58,237,.6);transform:rotate(-.5deg)}
.card4.solid .v,.card4.solid .t{color:#fff} .card4.solid .v .u{color:rgba(255,255,255,.85)}
.card4.solid .d{color:rgba(255,255,255,.86)} .card4.solid .ix{color:rgba(255,255,255,.6)}

/* ---------- driver cards with chained chips ---------- */
.drivers{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px;margin:30px 0}
.driver{background:linear-gradient(160deg,#FFFFFF 0%,#F9F7FE 100%);border:1px solid var(--line);
  border-radius:20px;padding:26px 28px 24px}
.driver .dh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.driver .dot{width:9px;height:9px;border-radius:50%;background:var(--violet);flex:none;
  align-self:center}
.driver .dn{font-size:19px;font-weight:800;letter-spacing:-.025em}
.driver .dm{font-family:var(--mono);font-size:13px;color:var(--faint)}
.driver p{color:var(--muted);font-size:15.5px;line-height:1.6;margin-top:12px}
.driver.v .dot{background:var(--violet)} .driver.m .dot{background:var(--magenta)}
.driver.g .dot{background:var(--green)} .driver.a .dot{background:#E0A800}
.flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.flow .c{background:var(--wash);border:1px solid #E0D8FA;border-radius:9px;padding:8px 13px;
  font-size:14px;font-weight:600;color:var(--ink-2)}
.flow .ar{color:var(--faint);font-size:14px}
.driver.m .flow .c{background:#FDF2FD;border-color:#F3D6F7}
.driver.g .flow .c{background:#EDF9F4;border-color:#CDEBE0}
.driver.a .flow .c{background:#FDF7E6;border-color:#F0E0B4}
.driver .note2{font-family:var(--mono);font-size:12.5px;color:var(--faint);margin-top:16px}

/* ---------- chip cluster ---------- */
.cluster{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}
.cchip{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 18px;
  box-shadow:0 8px 18px -14px rgba(23,19,31,.4)}
.cchip .n{font-family:var(--sans);font-size:20px;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.cchip .s{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);margin-top:5px}
.cchip.dark{background:var(--ink);border-color:var(--ink)}
.cchip.dark .n{color:#fff} .cchip.dark .s{color:rgba(255,255,255,.6)}
.cchip.vio{background:var(--violet);border-color:var(--violet)}
.cchip.vio .n{color:#fff} .cchip.vio .s{color:rgba(255,255,255,.7)}
.cchip.tilt{transform:rotate(-1.4deg)} .cchip.tilt2{transform:rotate(1.2deg)}

/* ---------- score bars ---------- */
.scores{display:grid;gap:14px;margin:30px 0}
.score{display:grid;grid-template-columns:minmax(190px,240px) 1fr 78px 108px;gap:18px;
  align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 22px}
.score .sn{font-size:17px;font-weight:800;letter-spacing:-.02em}
.score .sn small{display:block;font-family:var(--mono);font-size:11.5px;font-weight:400;
  color:var(--faint);margin-top:4px;text-transform:none;letter-spacing:.04em}
.score .track{height:11px;background:#EFECF6;border-radius:99px;overflow:hidden}
.score .fill{height:100%;border-radius:99px;background:var(--violet)}
.score .sv{font-family:var(--sans);font-size:26px;font-weight:900;letter-spacing:-.04em;text-align:right}
.score .badge{justify-self:end;background:var(--violet);color:#fff;border-radius:10px;
  padding:8px 13px;font-size:12.5px;font-weight:800;white-space:nowrap;text-align:center;min-width:96px}
.score.g .fill,.score.g .badge{background:var(--green)}
.score.m .fill,.score.m .badge{background:var(--magenta)}
.score.a .fill,.score.a .badge{background:#E0A800}
.score.warn{border-color:rgba(217,70,239,.4);background:#FEF7FE}
@media(max-width:800px){.score{grid-template-columns:1fr;gap:10px}
  .score .sv{text-align:left}.score .badge{justify-self:start}}

/* ---------- layered bands ---------- */
.bands{display:grid;gap:16px;margin:30px 0}
.band{display:grid;grid-template-columns:250px 1fr;border-radius:18px;overflow:hidden;
  border:1px solid var(--line)}
.band .bl{padding:26px 24px;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:6px}
.band .bl .n{font-family:var(--sans);font-size:27px;font-weight:900;letter-spacing:-.035em;line-height:1.05}
.band .bl .s{font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;opacity:.9}
.band .br{padding:22px 26px;display:grid;gap:16px}
.band .grp .gt{font-size:16px;font-weight:800;margin-bottom:10px;letter-spacing:-.02em}
.band .grp .gt em{font-family:var(--mono);font-size:12.5px;font-style:normal;font-weight:400;color:var(--muted);margin-left:8px}
.band .pills{display:flex;flex-wrap:wrap;gap:9px}
.band .pills span{background:#fff;border:1px solid var(--line-2);border-radius:99px;
  padding:8px 15px;font-size:14.5px;font-weight:600}
.band.v .bl{background:var(--magenta)} .band.v .br{background:#FDF6FE}
.band.d .bl{background:var(--violet)} .band.d .br{background:#F7F3FE}
.band.c .bl{background:var(--green)} .band.c .br{background:#EFF9F4}
@media(max-width:760px){.band{grid-template-columns:1fr}}


/* ============================================================
   TABLE VARIANTS — each table gets its own reading pattern
   ============================================================ */
.tbl{position:relative}
.tbl thead th:first-child{width:32%}
table tbody tr:hover{background:#FCFBFF}

/* big numerals for the value columns */
.nlg{font-family:var(--sans);font-size:23px;font-weight:900;letter-spacing:-.035em;line-height:1}
.nlg.sm{font-size:19px}
.nsub{display:block;font-family:var(--mono);font-size:11px;color:var(--faint);margin-top:5px;
  letter-spacing:.05em}

/* verdict pill in a cell */
.vpill{display:inline-block;border-radius:99px;padding:6px 14px;font-size:12.5px;font-weight:800;
  background:var(--wash);color:var(--violet);white-space:nowrap}
.vpill.g{background:#E8F6F0;color:var(--green)}
.vpill.m{background:#FCEEFE;color:#B026C9}
.vpill.d{background:var(--ink);color:#fff}
.vpill.n{background:#F1EFF6;color:var(--muted)}

/* ---- A. scorecard: fat rows, zebra, brand columns centred ---- */
.tbl--score table{font-size:16px}
.tbl--score tbody td:nth-child(n+2){text-align:center}
.tbl--score thead th:nth-child(n+2){text-align:center}
.tbl--score thead th:last-child,.tbl--score tbody td:last-child{text-align:left}
.tbl--score tbody tr:nth-child(even){background:#FBFAFE}
.tbl--score td{padding:19px 22px}
.tbl--score tbody td:nth-child(2),
.tbl--score tbody td:nth-child(3),
.tbl--score tbody td:nth-child(4){border-left:1px solid var(--line-2)}

/* ---- B. ledger: inline magnitude bars behind counts ---- */
.tbl--ledger thead th:first-child{width:24%}
.tbl--ledger tbody td:nth-child(n+2):nth-child(-n+4){min-width:190px;width:20%}
.barcell{display:flex;align-items:center;gap:12px}
.barcell .bwrap{display:block;flex:1;height:10px;background:#EFECF7;border-radius:99px;
  overflow:hidden;min-width:60px}
.barcell .bfill{display:block;height:10px;border-radius:99px;background:var(--violet);min-width:0}
.barcell .bnum{font-family:var(--sans);font-weight:900;font-size:17px;letter-spacing:-.03em;
  min-width:26px;text-align:right}
.barcell.zero .bnum{color:var(--faint)}
.barcell.zero .bfill{background:transparent}
.barcell .bnum{font-variant-numeric:tabular-nums}
.barcell.x .bfill{background:var(--magenta)}
.barcell.b .bfill{background:#E0A800}

/* ---- C. rank: numbered index column ---- */
.tbl--rank thead th:first-child{width:auto}
.rk{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:9px;background:var(--ink);color:#fff;font-family:var(--mono);font-size:12.5px;
  font-weight:700;flex:none}
.rk.q{background:var(--wash);color:var(--violet)}
.tbl--rank tbody td:first-child{width:64px}

/* ---- D. split: two facing columns, ticks and crosses ---- */
.tbl--split thead th{width:50%;text-align:left}
.tbl--split thead th:first-child{width:50%}
.tbl--split td{font-size:16.5px;font-weight:600}
.tbl--split tbody td:first-child{border-right:1px solid var(--line-2)}
.tbl--split .yes::before{content:"✓";color:var(--green);font-weight:900;margin-right:11px}
.tbl--split .no::before{content:"✕";color:var(--magenta);font-weight:900;margin-right:11px}

/* ---- E. compact reference table ---- */
.tbl--ref table{font-size:15px}
.tbl--ref td,.tbl--ref th{padding:13px 20px}
.tbl--ref tbody tr:nth-child(even){background:#FBFAFE}

/* ---- F. wide: let a table use the whole column ---- */
.tbl--wide thead th:first-child{width:26%}

@media(max-width:900px){
  .tbl--score tbody td:nth-child(n+2){text-align:left}
  .nlg{font-size:19px}
}

/* ============================================================
   IMAGERY
   ============================================================ */
/* hero thumbnail strip on the cover */
.heroshelf{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:38px}
.hs{position:relative;display:block;border-radius:14px;overflow:hidden;border:1px solid var(--line);
  background:#EFEDF5;text-decoration:none;aspect-ratio:4/5;
  box-shadow:0 16px 30px -22px rgba(23,19,31,.5)}
.hs img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.hs:hover img{transform:scale(1.05)}
.hs .ov{position:absolute;inset:auto 0 0 0;padding:26px 11px 10px;color:#fff;
  background:linear-gradient(180deg,rgba(23,19,31,0),rgba(23,19,31,.9))}
.hs .ov .e{font-family:var(--sans);font-weight:900;font-size:17px;letter-spacing:-.03em;line-height:1}
.hs .ov .w{font-family:var(--mono);font-size:9.5px;opacity:.8;margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hs .ig{position:absolute;top:9px;right:9px;width:20px;height:20px;border-radius:6px;
  background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;
  font-size:11px;line-height:1}
.hs.star{outline:3px solid var(--magenta);outline-offset:-3px}

/* product card */
.prods{display:grid;grid-template-columns:repeat(auto-fit,minmax(370px,1fr));gap:18px;margin:30px 0;
  align-items:stretch}
.prod{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;
  display:grid;grid-template-columns:146px 1fr;align-items:stretch}
.prod .im{background:#F2F0F7;overflow:hidden;display:flex;align-items:center;justify-content:center;
  padding:12px;border-right:1px solid var(--line-2)}
.prod .im img{width:100%;height:100%;object-fit:contain;object-position:center}
.prod .bd{padding:20px 22px;display:flex;flex-direction:column;justify-content:center}
.prod .bd .lgw{height:20px;margin-bottom:12px}
.prod .bd .lgw img{height:20px;width:auto}
.prod .bd .lgw img.sq{height:24px;border-radius:5px}
.prod .bd .nm{font-weight:800;font-size:18px;letter-spacing:-.02em}
.prod .bd .ds{color:var(--muted);font-size:14.5px;margin-top:6px;line-height:1.48}
.prod .bd .tagline{margin-top:14px;font-family:var(--mono);font-size:11.5px;color:var(--violet)}

/* thumbnail inside a table cell */
.tw{display:flex;align-items:center;gap:12px;text-decoration:none}
.tw img{width:52px;height:66px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:none}
.tw .tt{min-width:0}
.tw .tt b{display:block;font-size:15px;letter-spacing:-.01em}
.tw .tt span{display:block;font-family:var(--mono);font-size:11.5px;color:var(--faint);margin-top:3px}
.tw:hover .tt b{color:var(--violet)}

/* gallery grid */
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:11px;margin:30px 0}
.gal a{position:relative;display:block;aspect-ratio:4/5;border-radius:11px;overflow:hidden;
  border:1px solid var(--line);background:#EFEDF5}
.gal img{width:100%;height:100%;object-fit:cover}
.gal .lab{position:absolute;inset:auto 0 0 0;padding:18px 8px 7px;color:#fff;
  background:linear-gradient(180deg,rgba(23,19,31,0),rgba(23,19,31,.88));
  font-family:var(--mono);font-size:10px}
.gal .lab b{display:block;font-family:var(--sans);font-size:13px;font-weight:900;letter-spacing:-.02em}
.gal a.star{outline:3px solid var(--magenta);outline-offset:-3px}

/* ---------- play cards (replaces the five-move table) ---------- */
.plays{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px;margin:30px 0}
.play{position:relative;background:linear-gradient(160deg,#FFFFFF 0%,#F8F6FE 100%);
  border:1px solid var(--line);border-radius:20px;padding:28px 28px 24px;display:flex;
  flex-direction:column;gap:14px}
.play .pn{font-family:var(--sans);font-size:44px;font-weight:900;letter-spacing:-.06em;
  line-height:.85;color:#E2DCF4}
.play h3{font-size:21px;letter-spacing:-.028em;margin-top:-6px}
.play p{color:var(--muted);font-size:15.5px;line-height:1.58;flex:1}
.play .ev{display:flex;align-items:center;gap:9px;padding-top:14px;border-top:1px solid var(--line-2)}
.play .ev .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint)}
.play .ev .v{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--violet)}
.play .cost{position:absolute;top:24px;right:26px;display:flex;gap:4px}
.play .cost i{width:7px;height:7px;border-radius:50%;background:#DFD9F0;display:block}
.play .cost i.on{background:var(--magenta)}

/* ---------- reading cards with a pulled-out figure ---------- */
.reads{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin:30px 0}
.read{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;
  display:flex;flex-direction:column}
.read .top{padding:26px 26px 20px;background:linear-gradient(150deg,#F5F1FE,#FBFAFE)}
.read .top .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--magenta);font-weight:700}
.read .top .fig{font-family:var(--sans);font-size:52px;font-weight:900;letter-spacing:-.055em;
  line-height:.95;margin-top:10px;color:var(--violet)}
.read .top .fl{font-size:14.5px;color:var(--muted);margin-top:5px;font-weight:600}
.read .bd{padding:22px 26px 26px}
.read .bd h3{font-size:20px;letter-spacing:-.025em;margin-bottom:10px}
.read .bd p{color:var(--muted);font-size:15.5px;line-height:1.58}

@media(max-width:520px){.prod{grid-template-columns:1fr}.prod .im{aspect-ratio:16/10}}

/* ============================================================
   BRAND CASE BLOCK  ·  taxonomy axis card  ·  learn card
   ============================================================ */
.cases{display:grid;gap:22px;margin:32px 0}
.case{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;
  display:grid;grid-template-columns:310px 1fr;align-items:stretch}
.case .ch{padding:30px 28px;background:linear-gradient(165deg,#F6F3FE 0%,#FBFAFE 100%);
  border-right:1px solid var(--line-2);display:flex;flex-direction:column;gap:16px}
.case .ch .lgw img{height:26px;width:auto}
.case .ch .lgw img.sq{height:32px;border-radius:7px}
.case .ch .role{font-family:var(--sans);font-size:23px;font-weight:900;letter-spacing:-.035em;line-height:1.12}
.case .ch dl{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;margin-top:2px}
.case .ch dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--faint);padding-top:3px}
.case .ch dd{font-size:14.5px;font-weight:700;color:var(--ink-2)}
.case .cb{padding:30px 34px 28px}
.case .cb h3{font-size:23px;letter-spacing:-.03em;margin-bottom:12px}
.case .cb p{color:var(--muted);font-size:16px;line-height:1.62;margin-bottom:14px}
.case .cb p:last-child{margin-bottom:0}
.case .cb p b{color:var(--ink);font-weight:700}
.case .cb .ev{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-2);
  display:flex;gap:10px;flex-wrap:wrap}
.case .cb .ev span{background:var(--wash);border:1px solid #E0D8FA;border-radius:99px;
  padding:7px 14px;font-family:var(--mono);font-size:11.5px;color:var(--ink-2);font-weight:700}
.case.m .ch{background:linear-gradient(165deg,#FDF2FD 0%,#FBFAFE 100%)}
.case.m .cb .ev span{background:#FDF2FD;border-color:#F3D6F7}
.case.g .ch{background:linear-gradient(165deg,#EDF9F4 0%,#FBFAFE 100%)}
.case.g .cb .ev span{background:#EDF9F4;border-color:#CDEBE0}
@media(max-width:820px){.case{grid-template-columns:1fr}
  .case .ch{border-right:0;border-bottom:1px solid var(--line-2)}}

/* taxonomy axis */
.axes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin:30px 0}
.axis{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 26px 22px}
.axis .ak{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.axis .ak i{width:26px;height:26px;border-radius:8px;background:var(--ink);color:#fff;
  font-family:var(--mono);font-size:12px;font-weight:700;display:flex;align-items:center;
  justify-content:center;font-style:normal;flex:none}
.axis .ak b{font-size:18px;letter-spacing:-.025em;font-family:var(--sans);font-weight:800}
.axis p{color:var(--muted);font-size:14.5px;line-height:1.55;margin-bottom:14px}
.axis .vals{display:flex;flex-wrap:wrap;gap:7px}
.axis .vals span{background:var(--ground);border:1px solid var(--line-2);border-radius:8px;
  padding:6px 11px;font-size:13px;font-weight:600;color:var(--ink-2)}
.axis:nth-child(2) .ak i{background:var(--violet)}
.axis:nth-child(3) .ak i{background:var(--magenta)}
.axis:nth-child(4) .ak i{background:var(--green)}
.axis:nth-child(5) .ak i{background:#E0A800}

/* small three-up gallery block with a brand header */
.galgrp{margin:26px 0}
.galgrp .gh{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.galgrp .gh img{height:20px;width:auto} .galgrp .gh img.sq{height:24px;border-radius:5px}
.galgrp .gh b{font-size:17px;letter-spacing:-.02em}
.galgrp .gh span{font-family:var(--mono);font-size:11.5px;color:var(--faint);margin-left:auto}

/* chip cluster: chips are spans, so they need explicit box behaviour */
.cchip{display:inline-block}
.cchip .n,.cchip .s{display:block}
.lg b{font-size:13px}
.lg.mark-only b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hs .ov .e,.hs .ov .w{display:block}
