:root{
  --cream:#F6F1E4;--cream-deep:#EDE5D2;--navy:#12233B;--navy-soft:#3A4C66;
  --gold:#B08430;--gold-light:#E3CE9A;--rule:rgba(18,35,59,.16);--flag:#9A3B2E;--green:#2F6B4F;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--cream);color:var(--navy);
  font-family:"Newsreader",Georgia,serif;font-size:19px;line-height:1.66;font-optical-sizing:auto;}
.wrap{max-width:980px;margin:0 auto;padding:0 22px;}
.narrow{max-width:760px;}
a{color:inherit;}

/* ---------- shell ---------- */
header.site{border-bottom:1px solid var(--rule);background:var(--cream);
  position:sticky;top:0;z-index:30;}
header.site .bar{display:flex;align-items:center;justify-content:space-between;
  gap:18px;flex-wrap:wrap;padding:16px 0;}
.logo{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:17px;
  letter-spacing:-.02em;text-decoration:none;white-space:nowrap;}
.logo span{color:var(--gold);}
nav.main{display:flex;gap:20px;flex-wrap:wrap;
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;}
nav.main a{text-decoration:none;color:var(--navy-soft);border-bottom:1px solid transparent;
  padding-bottom:2px;}
nav.main a:hover{color:var(--navy);border-bottom-color:var(--gold);}
nav.main a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--gold);}

footer.site{border-top:1px solid var(--rule);margin-top:72px;padding:34px 0 60px;}
footer.site .cols{display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap;
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy-soft);}
footer.site a{text-decoration:none;border-bottom:1px solid var(--gold);color:var(--navy);}
footer.site .disc{margin-top:24px;font-family:"JetBrains Mono",monospace;font-size:10px;
  line-height:1.9;color:var(--navy-soft);text-transform:none;letter-spacing:0;max-width:60em;}

/* ---------- type ---------- */
.eyebrow{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold);margin:0 0 18px;}
h1.page{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:clamp(32px,6.4vw,52px);line-height:1.03;letter-spacing:-.032em;
  margin:0 0 22px;text-wrap:balance;}
h2.sec{font-family:"JetBrains Mono",monospace;font-weight:600;font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--navy-soft);
  margin:0 0 20px;padding-bottom:10px;border-bottom:1px solid var(--navy);
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;}
h2.sec em{font-style:normal;color:var(--gold);}
h2{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;scroll-margin-top:80px;
  font-size:clamp(22px,3.8vw,30px);line-height:1.14;letter-spacing:-.024em;
  margin:60px 0 16px;padding-top:22px;border-top:2px solid var(--navy);}
h3{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;
  font-size:20px;letter-spacing:-.014em;margin:36px 0 8px;}
p{margin:0 0 20px;}
strong{font-weight:500;background:linear-gradient(transparent 62%,var(--gold-light) 62%);}
em{font-style:italic;}
hr{border:0;border-top:1px solid var(--rule);margin:44px 0;}
ul,ol{margin:0 0 22px;padding-left:26px;} li{margin-bottom:10px;}
.lead{font-size:21px;color:var(--navy-soft);max-width:36em;}

/* ---------- tables ---------- */
table{border-collapse:collapse;width:100%;margin:0 0 26px;
  font-family:"JetBrains Mono",monospace;font-size:13.5px;}
th,td{padding:10px 12px 10px 0;text-align:right;border-bottom:1px solid var(--rule);vertical-align:top;}
th:first-child,td:first-child{text-align:left;font-family:"Newsreader",serif;font-size:16.5px;}
thead th{font-weight:600;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--navy-soft);border-bottom:2px solid var(--navy);}
tbody tr:last-child td{border-bottom:2px solid var(--navy);}
table strong{background:none;font-weight:600;}
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* ---------- dashboard ---------- */
.hero{padding:54px 0 40px;border-bottom:1px solid var(--rule);}
.hero h1{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:clamp(32px,7vw,56px);line-height:1.02;letter-spacing:-.034em;margin:0 0 20px;text-wrap:balance;}
.hero h1 .accent{color:var(--gold);}

.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin:38px 0 50px;}
.tile{background:var(--cream);padding:20px 18px;}
.tile b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  /* 4-up tiles sit in a 760px column = 142px each; "Rs918.27cr" needs 148px at 32px */
  font-size:30px;letter-spacing:-.03em;line-height:1;}
.tile b.g{color:var(--gold);} .tile b.r{color:var(--flag);}
.tile i{display:block;font-family:"JetBrains Mono",monospace;font-size:9.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--navy-soft);
  font-style:normal;margin-top:9px;line-height:1.5;}

.key{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin:0 0 50px;}
.key div{background:var(--cream);padding:18px 16px;}
.key b{display:block;font-family:"JetBrains Mono",monospace;font-size:10.5px;
  letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px;}
.key .v b{color:var(--gold);} .key .c b{color:var(--flag);} .key .n b{color:var(--navy-soft);}
.key span{font-size:16px;line-height:1.45;color:var(--navy-soft);}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 28px;}
.filters button{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;padding:8px 14px;border:1px solid var(--rule);
  background:transparent;color:var(--navy-soft);cursor:pointer;}
.filters button:hover{border-color:var(--gold);color:var(--navy);}
.filters button[aria-pressed="true"]{background:var(--navy);color:var(--cream);border-color:var(--navy);}

.feat{display:block;text-decoration:none;margin-bottom:16px;}
.feat img{width:100%;height:auto;display:block;border:1px solid var(--rule);margin-bottom:20px;}
.feat .meta{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);margin-bottom:10px;}
.feat h3{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:clamp(23px,4vw,34px);line-height:1.1;letter-spacing:-.026em;margin:0 0 12px;text-wrap:balance;}
.feat p{margin:0 0 18px;color:var(--navy-soft);}
.feat:hover h3{color:var(--gold);}
.statstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin:0 0 18px;}
.statstrip div{background:var(--cream);padding:14px 16px;}
.statstrip b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:26px;letter-spacing:-.02em;line-height:1;}
.statstrip b.g{color:var(--gold);} .statstrip b.r{color:var(--flag);}
.statstrip i{display:block;font-family:"JetBrains Mono",monospace;font-size:9.5px;
  letter-spacing:.11em;text-transform:uppercase;color:var(--navy-soft);font-style:normal;margin-top:7px;}
.more{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:2px;}

.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin-bottom:56px;}
.card{background:var(--cream);padding:24px 22px;text-decoration:none;display:flex;
  flex-direction:column;gap:10px;transition:background .15s;}
.card:hover{background:var(--cream-deep);}
.card .tag{font-family:"JetBrains Mono",monospace;font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);}
.card h4{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:20px;
  line-height:1.18;letter-spacing:-.018em;margin:0;text-wrap:balance;}
.card p{margin:0;font-size:16.5px;color:var(--navy-soft);line-height:1.5;}
.card .date{margin-top:auto;padding-top:8px;font-family:"JetBrains Mono",monospace;
  font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy-soft);}
.card.soon{cursor:default;opacity:.62;}
.card.soon:hover{background:var(--cream);}
.card.soon .tag{color:var(--navy-soft);}
.empty{padding:40px 22px;text-align:center;color:var(--navy-soft);
  font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;grid-column:1/-1;background:var(--cream);}

.about{background:var(--cream-deep);border:1px solid var(--rule);padding:26px;margin-bottom:56px;}
.about p{margin:0 0 14px;font-size:17.5px;} .about p:last-child{margin:0;}

/* ---------- article ---------- */
.coverlogo{text-align:center;padding:44px 0 32px;border-bottom:3px solid var(--navy);margin-bottom:32px;}
.coverlogo img{width:100%;max-width:420px;height:auto;}
.hero-img{width:100%;height:auto;display:block;border:1px solid var(--rule);margin:0 0 34px;}
h1.title{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:clamp(30px,5.6vw,46px);line-height:1.05;letter-spacing:-.03em;margin:0 0 26px;text-wrap:balance;}
.toc{border-top:1px solid var(--navy);border-bottom:1px solid var(--navy);padding:22px 0;margin:0 0 44px;}
.toc h4{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--navy-soft);margin:0 0 14px;font-weight:600;}
.toc ol{list-style:none;padding:0;margin:0;counter-reset:t;}
.toc li{counter-increment:t;margin-bottom:9px;display:flex;gap:14px;align-items:baseline;}
.toc li::before{content:counter(t,decimal-leading-zero);
  font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--gold);flex:none;}
.toc a{color:var(--navy);text-decoration:none;border-bottom:1px solid transparent;font-size:17px;}
.toc a:hover{border-bottom-color:var(--gold);}
p em:only-child{display:block;font-family:"JetBrains Mono",monospace;font-size:11.5px;
  line-height:1.85;color:var(--navy-soft);font-style:normal;}

/* ---------- contact ---------- */
.contactgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin:0 0 40px;}
.contactgrid div{background:var(--cream);padding:24px 22px;}
.contactgrid b{display:block;font-family:"JetBrains Mono",monospace;font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;}
.contactgrid a{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:19px;
  text-decoration:none;border-bottom:1px solid var(--gold);}
.contactgrid span{font-size:16.5px;color:var(--navy-soft);}

@media (max-width:820px){.tiles{grid-template-columns:repeat(2,1fr);}}
@media (max-width:700px){
  .key,.grid,.statstrip,.contactgrid{grid-template-columns:1fr;}
  body{font-size:18px;}
  header.site .bar{padding:14px 0;}
  nav.main{gap:14px;}
}

/* ---------- routing ---------- */
.js .view{display:none;} .js .view.active{display:block;}
.view + .view{border-top:1px solid var(--rule);margin-top:56px;padding-top:44px;}
.js .view + .view{border-top:0;margin-top:0;padding-top:0;}
main.wrap.narrow{max-width:760px;}
.backlink{display:inline-block;margin:0 0 26px;font-family:"JetBrains Mono",monospace;
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--navy-soft);
  text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:2px;}
.backlink:hover{color:var(--navy);border-bottom-color:var(--gold);}

/* ---------- entrance (progressive enhancement) ----------
   Content is VISIBLE by default. The hidden start state is applied
   only when JS has confirmed it is running (html.js). If JS fails,
   is blocked, or is slow, the page still renders in full. */
/* Text is NEVER hidden waiting on JS: hiding it behind IntersectionObserver +
   a CSS transition produced blank pages and a fade-in on every reload. */
.js .rise{opacity:1;transform:none;}
.js .rise.in{opacity:1;transform:none;}
.js .rise.d1{transition-delay:.07s;} .js .rise.d2{transition-delay:.14s;}
.js .rise.d3{transition-delay:.21s;} .js .rise.d4{transition-delay:.28s;}

/* ---------- no horizontal scroll anywhere ----------
   overflow-x on <body> would make the body a scroll container and silently
   break position:sticky on the header (it scrolls away instead of sticking).
   Declare it on <html> only — that value propagates to the viewport. */
html{max-width:100%;overflow-x:hidden;}
body{max-width:100%;}
main.wrap,header.site .bar,footer.site .cols{max-width:100%;}
img,svg,table{max-width:100%;}
/* anchor targets must clear the sticky header; kept in sync with its height */
:target,h1[id],h2[id],h3[id],section[id]{scroll-margin-top:var(--stick,96px);}

/* ---------- IPO at-a-glance ---------- */
.ipobox{border-left:3px solid var(--gold);margin-bottom:34px;}
.ipobox h5{color:var(--gold);}
.ipobox .arow b{font-size:21px;}
.ipobox p{font-size:16.5px;}
@media (max-width:560px){.ipobox .arow b{font-size:19px;}}

/* ---------- analytics consent ---------- */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--cream);
  border-top:2px solid var(--navy);box-shadow:0 -8px 24px rgba(18,35,59,.10);
  transform:translateY(101%);transition:transform .3s cubic-bezier(.2,.7,.3,1);}
.consent.show{transform:none;}
.consent-in{max-width:980px;margin:0 auto;padding:16px 22px;display:flex;
  align-items:center;gap:18px 24px;flex-wrap:wrap;justify-content:space-between;}
.consent p{margin:0;font-size:16.5px;color:var(--navy-soft);max-width:52em;line-height:1.5;}
.consent p b{color:var(--navy);font-weight:500;background:none;}
.consent a{color:var(--navy);}
.consent-btns{display:flex;gap:10px;flex:none;}
.consent button,.cbtn{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;padding:11px 18px;border:1px solid var(--navy);cursor:pointer;
  background:transparent;color:var(--navy);line-height:1;}
.consent button.yes,.cbtn.yes{background:var(--navy);color:var(--cream);}
.consent button:hover,.cbtn:hover{border-color:var(--gold);color:var(--gold);}
.consent button.yes:hover,.cbtn.yes:hover{background:var(--gold);border-color:var(--gold);color:#12233B;}
.consent button:focus-visible,.cbtn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
@media (max-width:700px){
  .consent-in{padding:14px 16px;gap:12px;}
  .consent p{font-size:15.5px;}
  .consent-btns{width:100%;} .consent-btns button{flex:1 1 0;}
}
@media (prefers-reduced-motion:reduce){.consent{transition:none;}}
.cpanel{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;}
.cstate{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--navy-soft);}
.cstate b{color:var(--gold);font-weight:600;background:none;}

/* ---------- ticker ---------- */
.ticker{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  overflow:hidden;background:var(--cream-deep);margin:0 0 4px;
  width:100%;max-width:100%;position:relative;}
.ticker-inner{display:flex;gap:0;width:max-content;animation:slide 46s linear infinite;}
.ticker:hover .ticker-inner{animation-play-state:paused;}
/* a ~7800px-wide layer on an infinite animation: pause unless visible */
.ticker.paused .ticker-inner{animation-play-state:paused;}
@keyframes slide{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.tick{display:flex;align-items:baseline;gap:9px;padding:11px 26px;white-space:nowrap;
  border-right:1px solid var(--rule);font-family:"JetBrains Mono",monospace;font-size:11.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--navy-soft);}
.tick b{font-size:14px;color:var(--navy);font-weight:600;letter-spacing:0;}
.tick b.g{color:var(--gold);} .tick b.r{color:var(--flag);}

/* ---------- hero ---------- */
.hero h1 .accent{color:var(--gold);}
.hero{padding:44px 0 42px!important;text-align:center!important;}
.hero h1{text-align:center!important;margin:0 auto 20px!important;max-width:14em;}
.hero .lead{text-align:center!important;margin:0 auto!important;max-width:36em;}

@keyframes blink{0%,49%{opacity:1;}50%,100%{opacity:0;}}

/* ---------- tiles ---------- */
.tile{position:relative;overflow:hidden;}
.js .tile::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;
  background:var(--gold);transition:width .9s cubic-bezier(.2,.7,.3,1);}
.js .tile.in::after{width:100%;}
.js .tile.r::after{background:var(--flag);}
.tile b{font-variant-numeric:tabular-nums;}

/* ---------- charts ---------- */
.charts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin:0 0 50px;}
.chart{background:var(--cream);padding:24px 22px 20px;}
.chart h5{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--navy-soft);margin:0 0 4px;font-weight:600;}
.chart .cap{font-size:15.5px;color:var(--navy-soft);margin:0 0 16px;line-height:1.45;}
.chart svg{width:100%;height:auto;display:block;overflow:visible;}
.chart .src{font-family:"JetBrains Mono",monospace;font-size:9px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--navy-soft);margin-top:14px;opacity:.75;}
.axis{font-family:"JetBrains Mono",monospace;font-size:9px;fill:#5C6E86;letter-spacing:.5px;}
.val{font-family:"JetBrains Mono",monospace;font-size:10.5px;font-weight:600;}
/* scoped to .chart: the header bar is also .bar and must never be scaled */
.js .chart .bar{transition:transform 1.1s cubic-bezier(.2,.7,.3,1);transform-origin:bottom;transform:scaleY(0);}
.js .chart.in .bar{transform:scaleY(1);}
.js .hbar{transition:transform 1.1s cubic-bezier(.2,.7,.3,1);transform-origin:left;transform:scaleX(0);}
.js .in .hbar{transform:scaleX(1);}
.js .line{stroke-dasharray:600;stroke-dashoffset:600;transition:stroke-dashoffset 1.5s ease-out .2s;}
.js .in .line{stroke-dashoffset:0;}
.js .dot{opacity:0;transition:opacity .4s ease-out .9s;} .js .in .dot{opacity:1;}
.js .fadein{opacity:0;transition:opacity .7s ease-out .55s;} .js .in .fadein{opacity:1;}
.js .seg{transition:transform 1s cubic-bezier(.2,.7,.3,1);transform-origin:center;transform:scale(.55);opacity:0;}
.js .in .seg{transform:scale(1);opacity:1;}

@media (prefers-reduced-motion:reduce){
  .rise,.bar,.hbar,.line,.dot,.fadein,.seg,.tile::after{transition:none!important;}
  .rise{opacity:1;transform:none;} .bar,.hbar,.seg{transform:none;opacity:1;}
  .line{stroke-dashoffset:0;} .dot,.fadein{opacity:1;}
  .ticker-inner{animation:none;} .cursor{animation:none;}
}

.ledger{position:relative;margin:0 0 20px;padding:16px 18px;background:rgba(255,255,255,.5);
  border:1px solid var(--rule);border-left:3px solid var(--gold);}
.ledger.flagged{border-left-color:var(--flag);}
.ledger .tag{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--gold);display:block;margin-bottom:7px;}
.ledger.flagged .tag{color:var(--flag);}
.ledger p{margin:0;font-size:17px;}


/* ---------- pros & cons ---------- */
.pc{display:flex;flex-wrap:wrap;gap:20px;margin:0 0 30px;}
.pc > div{flex:1 1 300px;border:1px solid var(--rule);padding:20px 20px 16px;background:var(--cream);}
.pc .pros{border-top:3px solid var(--gold);}
.pc .cons{border-top:3px solid var(--flag);}
.pc h5{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;margin:0 0 14px;font-weight:600;}
.pc .pros h5{color:var(--gold);} .pc .cons h5{color:var(--flag);}
.pc ul{list-style:none;padding:0;margin:0;}
.pc li{position:relative;padding-left:22px;margin-bottom:11px;font-size:16.5px;line-height:1.5;}
.pc li:last-child{margin-bottom:0;}
.pc .pros li::before{content:"+";position:absolute;left:0;top:0;color:var(--gold);font-weight:700;
  font-family:"JetBrains Mono",monospace;}
.pc .cons li::before{content:"–";position:absolute;left:0;top:0;color:var(--flag);font-weight:700;
  font-family:"JetBrains Mono",monospace;}

/* ---------- anchor report ---------- */
.anchor{border:1px solid var(--rule);background:var(--cream-deep);padding:22px;margin:0 0 30px;}
.anchor h5{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--navy-soft);margin:0 0 4px;font-weight:600;}
.anchor .asrc{font-family:"JetBrains Mono",monospace;font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--navy-soft);margin:0 0 16px;opacity:.8;}
.arow{display:flex;flex-wrap:wrap;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-bottom:18px;}
.arow div{flex:1 1 150px;background:var(--cream);padding:14px 15px;}
.arow b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:23px;letter-spacing:-.02em;line-height:1;}
.arow i{display:block;font-family:"JetBrains Mono",monospace;font-size:9px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--navy-soft);font-style:normal;margin-top:8px;}
.anchor p{margin:0 0 12px;font-size:16.5px;}
.anchor p:last-child{margin:0;}

/* ---------- brand block ---------- */
.brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;
  padding:40px 0 34px;border-bottom:1px solid var(--rule);}
.markicon{width:86px;height:auto;display:block;}
.logomark{width:26px;height:auto;display:inline-block;vertical-align:-7px;margin-right:10px;}
.bname{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:clamp(24px,4.4vw,36px);letter-spacing:-.03em;line-height:1.05;}
.bname span{color:var(--gold);}
.burl{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--navy-soft);margin-top:10px;}
@media (max-width:560px){.markicon{width:68px;}}

/* ---------- blog cards ---------- */
.grid{display:flex!important;flex-wrap:wrap;gap:24px;
  background:transparent!important;border:0!important;margin-bottom:56px;}
.card{display:block!important;text-decoration:none;overflow:hidden;padding:0!important;
  flex:1 1 calc(50% - 12px);min-width:300px;
  border:1px solid var(--rule)!important;background:var(--cream)!important;
  transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s;}
.card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(18,35,59,.16);
  background:var(--cream)!important;}
.cimg{display:block;width:100%;height:250px;overflow:hidden;background:var(--cream);
  border-bottom:1px solid var(--rule);position:relative;}
.cimg img{width:100%;height:250px;object-fit:cover;object-position:center center;display:block;}
.cgen{background:linear-gradient(135deg,#12233B 0%,#1E3550 50%,#2C4A6B 100%);}
.cnum{position:absolute;left:18px;top:14px;font-family:"Bricolage Grotesque",sans-serif;
  font-weight:800;font-size:60px;color:rgba(246,241,228,.17);letter-spacing:-.04em;line-height:1;}
.cbody{display:block;padding:16px 17px 18px;}
.chip{display:inline-block;background:var(--gold);color:#12233B;
  font-family:"JetBrains Mono",monospace;font-size:9px;letter-spacing:.13em;
  text-transform:uppercase;padding:4px 9px;margin-bottom:11px;font-weight:600;}
.card.soon .chip{background:var(--cream-deep);color:var(--navy-soft);}
.ctitle{display:block;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;
  font-size:18px;line-height:1.22;letter-spacing:-.018em;color:var(--navy);margin-bottom:10px;}
.card:hover .ctitle{color:var(--gold);}
.cdate{display:block;font-family:"JetBrains Mono",monospace;font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--navy-soft);}
.card.soon{opacity:.72;cursor:default;}
.card.soon:hover{transform:none;box-shadow:none;}

/* min-width:300px above overflows a 320px viewport (22px gutters leave 276px),
   so the card is clipped. Release it below the two-up breakpoint. */
@media (max-width:640px){.card{flex:1 1 100%;min-width:0;}.cimg,.cimg img{height:210px;}}
@media (max-width:820px){.charts{grid-template-columns:1fr;}}

/* ---------- narrow-screen tightening ---------- */
@media (max-width:560px){
  .wrap{padding:0 16px;}
  .tiles{grid-template-columns:repeat(2,1fr);}
  .tile b{font-size:26px;} .tile{padding:16px 14px;}
  .arow div{flex:1 1 100%;}
  .pc{gap:14px;} .pc > div{flex:1 1 100%;padding:16px 16px 14px;}
  .anchor{padding:16px;} .ledger{padding:14px 15px;}
  .about{padding:20px 18px;}
  .contactgrid div{padding:18px 16px;}
  .chart{padding:18px 16px 16px;}
  .toc li{gap:10px;} .toc a{font-size:16px;}
  h2{margin:44px 0 14px;padding-top:18px;}
  blockquote,pre{max-width:100%;}
  /* tables stay legible by scrolling rather than crushing to 3-4 chars a cell */
  .tblwrap table{min-width:420px;}
  .tblwrap{border-right:1px solid var(--rule);}
}
/* long unbroken tokens (URLs, emails) must not force horizontal scroll */
p,li,td,th,summary,.lead,.card p{overflow-wrap:break-word;}
/* the contact email is a single 33-character token in 19px bold and overflows
   a 320px screen on its own; anywhere lets it break mid-token if it must */
.contactgrid a,.contactgrid span,.anchor a,.ledger a,footer.site a{overflow-wrap:anywhere;}
@media (max-width:400px){
  .contactgrid a{font-size:16px;}
  .brandurl{font-size:8.5px;letter-spacing:.12em;}
}

/* ---------- FAQ accordion ---------- */
details{border-bottom:1px solid var(--rule);padding:18px 0;}
details:first-of-type{border-top:1px solid var(--navy);}
summary{cursor:pointer;list-style:none;font-family:"Bricolage Grotesque",sans-serif;
  font-weight:600;font-size:19px;letter-spacing:-.012em;color:var(--navy);
  position:relative;padding-right:34px;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+";position:absolute;right:6px;top:-2px;color:var(--gold);
  font-family:"JetBrains Mono",monospace;font-size:20px;font-weight:400;}
details[open] summary::after{content:"–";}
summary:hover{color:var(--gold);}
details p{margin:14px 0 0;font-size:17.5px;color:var(--navy-soft);}
details ul{margin:14px 0 0;}
details li{font-size:17px;color:var(--navy-soft);}
/* ===== HEADER (authoritative) ===== */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--navy);color:var(--cream);
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;padding:12px 18px;text-decoration:none;}
.skip:focus{left:12px;top:12px;}
.chart .bar{transform-origin:bottom;}

header.site{position:relative;z-index:60;background:#F6F1E4;
  border-bottom:2px solid #12233B;}
header.site .bar{display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:16px;padding:32px 0 22px;width:100%;max-width:100%;
  transition:padding .28s cubic-bezier(.2,.7,.3,1),gap .28s cubic-bezier(.2,.7,.3,1);}
.brandwrap{display:flex;flex-direction:column;align-items:center;gap:10px;}
.logo{display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:12px;text-decoration:none;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:34px;
  letter-spacing:-.028em;color:#12233B;text-align:center;line-height:1.1;
  transition:font-size .28s cubic-bezier(.2,.7,.3,1),gap .28s cubic-bezier(.2,.7,.3,1);}
.logo .nm{display:block;white-space:nowrap;color:#12233B;}
.logo .nm span{color:#B08430;}
.logo span{color:#B08430;}
.logomark{width:92px;height:auto;display:block;flex:none;margin:0 auto;
  transition:width .28s cubic-bezier(.2,.7,.3,1);}
.brandurl{margin-top:2px;font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:#3A4C66;padding-left:0;text-align:center;}
nav.main{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0;
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.15em;
  text-transform:uppercase;}
/* padding gives each link a ~44px tap target without changing the visual rhythm */
nav.main a{text-decoration:none;color:#12233B;border-bottom:1px solid #B08430;
  padding:12px 2px 3px;display:inline-block;}
nav.main a:hover,nav.main a[aria-current="page"]{color:#B08430;}
nav.main a:focus-visible{outline:2px solid #B08430;outline-offset:3px;}
nav.main .sep{color:#3A4C66;opacity:.5;padding:0 13px;}

/* ---- sticky bar (fixed, out of flow) ----
   A header that collapses in normal flow changes document height, which yanks
   content as you scroll and can feed back into its own trigger. Fixed cannot. */
.stickybar{position:fixed;top:0;left:0;right:0;z-index:70;background:var(--cream);
  border-bottom:2px solid var(--navy);transform:translateY(-101%);
  transition:transform .26s cubic-bezier(.2,.7,.3,1);will-change:transform;}
.stickybar.show{transform:none;}
.sbinner{display:flex;align-items:center;justify-content:space-between;
  gap:18px;max-width:980px;margin:0 auto;padding:7px 22px;}
.stickybar .logo{flex-direction:row;gap:9px;font-size:17px;}
.stickybar .logomark{width:27px;margin:0;}
.stickybar .brandurl{display:none;}
.stickybar nav.main{font-size:9.5px;gap:0;}
.stickybar nav.main a{padding:10px 2px 3px;}
@media (max-width:700px){
  .sbinner{flex-direction:column;gap:2px;padding:5px 16px;}
  .stickybar .logo{font-size:15px;} .stickybar .logomark{width:22px;}
  .stickybar nav.main{font-size:9px;} .stickybar nav.main .sep{padding:0 6px;}
}
@media (prefers-reduced-motion:reduce){.stickybar{transition:none;}}

/* ---- legacy condensed state (superseded) ----
   The full masthead shows at the top of the page; once you scroll past it the
   header collapses to a slim bar so it stops eating a quarter of the screen. */
header.site.condensed .bar{padding:8px 0 6px;gap:6px;}
header.site.condensed .logo{flex-direction:row;gap:10px;font-size:18px;}
header.site.condensed .logomark{width:30px;margin:0;}
header.site.condensed .brandurl{display:none;}
header.site.condensed nav.main a{padding:9px 2px 3px;}

@media (max-width:720px){
  header.site .bar{gap:11px;padding:18px 0 10px;}
  .logo{font-size:22px;gap:9px;} .logomark{width:56px;}
  .brandurl{font-size:9px;letter-spacing:.16em;}
  nav.main{font-size:9.5px;justify-content:center;} nav.main .sep{padding:0 7px;}
  header.site.condensed .bar{padding:6px 0 4px;}
  header.site.condensed .logo{font-size:15px;} header.site.condensed .logomark{width:24px;}
}
@media (max-width:400px){ nav.main .sep{padding:0 5px;} nav.main{font-size:9px;} }
/* very short viewports (landscape phones): never let the masthead dominate */
@media (max-height:520px){
  header.site .bar{padding:8px 0 6px;gap:6px;}
  .logo{flex-direction:row;gap:9px;font-size:16px;} .logomark{width:26px;margin:0;}
  .brandurl{display:none;}
}
@media (prefers-reduced-motion:reduce){
  header.site .bar,.logo,.logomark{transition:none!important;}
}
