:root{--ink:#1a1a1a;--muted:#5c5c5c;--rule:#e4e1dc;--accent:#B01220;--paper:#fff;--soft:#f7f5f2;--serif:'Playfair Display',Georgia,serif;--sans:Inter,system-ui,-apple-system,sans-serif}
body.hi{--serif:'Noto Serif Devanagari','Playfair Display',serif;--sans:'Noto Sans Devanagari',Inter,system-ui,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.65 var(--sans)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.mast{display:flex;align-items:baseline;gap:.5rem;padding:14px 20px;border-top:4px solid var(--accent);border-bottom:1px solid var(--rule);max-width:1040px;margin:0 auto}
.brand{font:900 1.35rem var(--serif);color:var(--ink)}.sep{color:var(--muted)}.section{font:700 .85rem var(--sans);letter-spacing:.12em;color:var(--accent)}
.lang{margin-left:auto;font:600 .9rem var(--sans);border:1px solid var(--ink);padding:3px 12px;color:var(--ink)}
main{max-width:1040px;margin:0 auto;padding:0 20px}
section{padding:44px 0;border-bottom:1px solid var(--rule)}
h1{font:900 clamp(2rem,5.2vw,3.4rem)/1.12 var(--serif);margin:.2em 0 .45em;max-width:20ch}
body.hi h1{font-weight:700;line-height:1.35;max-width:24ch}
h2{font:900 clamp(1.45rem,3vw,1.9rem)/1.2 var(--serif);margin:0 0 18px}
body.hi h2{font-weight:700}
h3{font:700 1rem/1.35 var(--sans);margin:0 0 6px}
.kicker{font:700 .78rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0}
.sub{font-size:1.12rem;color:#333;max-width:62ch;margin:0}
.lede{color:var(--muted);margin:-8px 0 18px;max-width:62ch}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:30px;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}
.stat{padding:16px 16px 14px 0}.stat+.stat{padding-left:16px;border-left:1px solid var(--rule)}
.stat b{display:block;font:900 2.3rem/1 var(--serif);font-variant-numeric:tabular-nums}.stat b i{font-style:normal;font-size:1.1rem;color:var(--muted)}
.stat span{display:block;font:600 .8rem var(--sans);text-transform:uppercase;letter-spacing:.08em;margin-top:6px}
body.hi .stat span{text-transform:none;letter-spacing:0;font-size:.9rem}
.stat small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.prose p{max-width:68ch}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{border-top:3px solid var(--ink);padding-top:12px}.card .key{font:600 .9rem var(--sans);color:var(--accent);margin:0 0 6px}.card p{margin:0;font-size:.95rem}
.note{margin:20px 0 4px;font-weight:500}.src{color:var(--muted);font-size:.85rem;margin:0}
.road{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.phase{display:flex;gap:16px;padding:14px 12px;background:var(--soft);border-left:3px solid transparent}
.phase.now{border-left-color:var(--accent);background:#fbf1f1}
.phase-n{font:900 1.6rem/1 var(--serif);color:var(--muted);min-width:1.2em}.phase.now .phase-n{color:var(--accent)}
.phase h3{margin:0}.when{color:var(--muted);font-size:.9rem;margin:2px 0 0}
.next{list-style:none;padding:0;margin:0;counter-reset:n}
.next li{display:grid;grid-template-columns:150px 1fr;gap:4px 16px;padding:12px 0;border-bottom:1px solid var(--rule)}
.next .when{grid-row:span 2;margin:0;font-weight:600;color:var(--ink)}.next .topic{font-weight:600}.next .meta{color:var(--muted);font-size:.88rem}
.map{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 40px}
.group h3{font:700 .8rem var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border-bottom:2px solid var(--ink);padding-bottom:6px;margin-bottom:8px}
body.hi .group h3{text-transform:none;letter-spacing:0;font-size:.95rem}
.area{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 0}
.area-name{font-size:.95rem}.area-count{font:600 .85rem var(--sans);color:var(--muted);font-variant-numeric:tabular-nums}
.bar{grid-column:1/-1;height:5px;background:var(--rule);display:block}.bar span{display:block;height:100%;background:var(--accent)}
.contains{columns:2;column-gap:40px;padding-left:1.3em;margin:0}.contains li{break-inside:avoid;margin:0 0 8px}
.days{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.days a{display:grid;grid-template-columns:90px 1fr;gap:2px 16px;padding:14px 16px;background:var(--soft);border-left:3px solid var(--accent);color:var(--ink)}
.days a:hover{text-decoration:none;background:#fbf1f1}
.day-n{grid-row:span 2;font:900 1.25rem/1.2 var(--serif);color:var(--accent)}.days .topic{font-weight:600}.days .meta{color:var(--muted);font-size:.88rem}
.foot{max-width:1040px;margin:0 auto;padding:28px 20px 48px;color:var(--muted);font-size:.88rem}
@media (max-width:720px){.stats,.cards{grid-template-columns:1fr}.stat+.stat{padding-left:0;border-left:0;border-top:1px solid var(--rule)}
.map{grid-template-columns:1fr}.contains{columns:1}.next li{grid-template-columns:1fr}.next .when{grid-row:auto}}
