/* ==========================================================================
   Cad Care RISE — rise.cad.care
   Design system v1.0
   Palette extends the CAD CARE identity (navy / signal blue / teal) with a
   dispatch amber used only for live-operational states.
   Type system is a width contrast: Condensed display · Sans body · Mono data.
   ========================================================================== */

@font-face{font-family:'Plex';src:url('fonts/IBMPlexSans.woff2') format('woff2');font-weight:100 700;font-display:swap}
@font-face{font-family:'PlexCond';src:url('fonts/IBMPlexSansCondensed-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'PlexCond';src:url('fonts/IBMPlexSansCondensed-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'PlexCond';src:url('fonts/IBMPlexSansCondensed-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'PlexMono';src:url('fonts/IBMPlexMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'PlexMono';src:url('fonts/IBMPlexMono-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'NotoDeva';src:url('fonts/NotoSansDevanagari.woff2') format('woff2');font-weight:100 700;font-display:swap}
@font-face{font-family:'NotoTelu';src:url('fonts/NotoSansTelugu.woff2') format('woff2');font-weight:100 700;font-display:swap}
@font-face{font-family:'NotoTaml';src:url('fonts/NotoSansTamil.woff2') format('woff2');font-weight:100 700;font-display:swap}
@font-face{font-family:'NotoKnda';src:url('fonts/NotoSansKannada.woff2') format('woff2');font-weight:100 700;font-display:swap}

:root{
  /* Sampled from the Cad Care Aid Foundation logo and source document furniture */
  --blue:#296BB3;       /* brand blue — logo mark and wordmark */
  --green:#03871D;      /* brand green — tagline; legible weight */
  --green-mark:#05A501; /* logo mark green only */
  --wave-1:#93C1E2;     /* document wave bands */
  --wave-2:#5CA2D5;
  --wave-3:#3F7EB4;
  --wave-4:#5879A4;
  --ink:#123A63;        /* deep brand blue — dark surfaces */
  --ink-2:#1B4C82;      /* raised dark surface */
  
  --signal:#296BB3;
  --teal:#03871D;
  --ok:#03871D;
  --on-dark:#D6E6F4;      /* body text on brand-blue surfaces */
  --on-dark-2:#A8C6E2;    /* secondary text on brand-blue surfaces */
  --on-dark-3:var(--on-dark-3);    /* brand green, lightened for dark surfaces */
  --attn:#1B4C82;       /* attention state — brand blue, deepened. No orange. */
  --paper:#F2F7FB;
  --white:#FFFFFF;
  --rule:#CBD9E6;
  --rule-dark:#2F5F92;
  --body:#25384C;
  --muted:#5B7288;
  --muted-dark:var(--on-dark-2);

  --max:1180px;
  --gut:24px;

  --f-disp:'PlexCond','Plex',system-ui,sans-serif;
  --f-serif:Georgia,'Times New Roman',serif;
  --f-body:'Plex',system-ui,-apple-system,sans-serif;
  --f-mono:'PlexMono',ui-monospace,monospace;
}
:root{--ink-3:#1D3A56}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--body);
  font-family:var(--f-body);font-size:17px;line-height:1.62;
  overflow-x:hidden;
}
img,svg{max-width:100%;height:auto}

/* Script-aware typography — letter-spacing is applied ONLY to Latin scripts,
   because tracking breaks Devanagari, Telugu, Tamil and Kannada
   conjunct clusters and matra positioning. */
html[data-script="deva"] body{font-family:'NotoDeva','Plex',sans-serif}
html[data-script="telu"] body{font-family:'NotoTelu','Plex',sans-serif}
html[data-script="taml"] body{font-family:'NotoTaml','Plex',sans-serif}
html[data-script="knda"] body{font-family:'NotoKnda','Plex',sans-serif}
html[data-script="deva"] .disp,html[data-script="deva"] h1,html[data-script="deva"] h2,html[data-script="deva"] h3{font-family:'NotoDeva',sans-serif}
html[data-script="telu"] .disp,html[data-script="telu"] h1,html[data-script="telu"] h2,html[data-script="telu"] h3{font-family:'NotoTelu',sans-serif}
html[data-script="taml"] .disp,html[data-script="taml"] h1,html[data-script="taml"] h2,html[data-script="taml"] h3{font-family:'NotoTaml',sans-serif}
html[data-script="knda"] .disp,html[data-script="knda"] h1,html[data-script="knda"] h2,html[data-script="knda"] h3{font-family:'NotoKnda',sans-serif}
html:not([data-script="latin"]) .eyebrow,
html:not([data-script="latin"]) .disp,
html:not([data-script="latin"]) h1,
html:not([data-script="latin"]) h2,
html:not([data-script="latin"]) .btn,
html:not([data-script="latin"]) .ops-cell b{letter-spacing:normal !important}

/* Accessible skip link — uses clip-path, never off-canvas positioning, so RTL
   layouts cannot inherit horizontal overflow from it. */
.skip{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}
.skip:focus{position:fixed;inset-block-start:12px;inset-inline-start:12px;width:auto;height:auto;
  clip-path:none;z-index:200;background:var(--green);color:#fff;
  padding:10px 18px;font-family:var(--f-mono);font-size:13px;border-radius:2px}

a{color:var(--signal);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:3px solid var(--green);outline-offset:2px}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.disp{font-family:var(--f-disp);font-weight:700;line-height:1.08;letter-spacing:-0.005em}

/* ---------- Masthead ---------------------------------------------------- */
.mast{background:var(--ink);color:#fff;border-block-end:1px solid var(--rule-dark)}
.mast-bar{display:flex;align-items:center;gap:20px;padding-block:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;flex:0 0 auto}
.brand:hover{text-decoration:none}
.brand .mark{width:42px;height:42px;flex:0 0 42px}
.brand b{font-family:var(--f-serif);font-size:23px;font-weight:700;letter-spacing:.01em;display:block;line-height:1}
.brand span{font-family:var(--f-serif);font-size:11.5px;color:var(--on-dark);letter-spacing:.01em;display:block;margin-block-start:3px;font-style:italic}
.nav{margin-inline-start:auto;display:flex;gap:3px;flex-wrap:wrap}
.nav a{color:var(--on-dark);font-family:var(--f-disp);font-weight:500;font-size:15.5px;
  padding:7px 11px;border-radius:2px;white-space:nowrap}
.nav a:hover{background:var(--ink-2);text-decoration:none;color:#fff}
.nav a[aria-current="page"]{background:var(--signal);color:#fff}
.langbar{background:var(--ink-2);border-block-start:1px solid var(--rule-dark)}
.langbar .wrap{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding-block:8px}
.langbar span{font-family:var(--f-mono);font-size:10.5px;color:var(--on-dark-2);letter-spacing:.12em}
.langbar a{font-family:var(--f-mono);font-size:12px;color:var(--on-dark)}
.langbar a[aria-current="true"]{color:var(--on-dark-3)}

/* ---------- Ops strip — the signature device ---------------------------- */
/* A dispatch board rendered in type. The five cells are the real response
   chain the platform coordinates; the active cell marks where a page sits. */
.ops{display:flex;border:1px solid var(--rule-dark);background:var(--ink-2);
  font-family:var(--f-mono);font-size:11px;overflow:hidden;border-radius:2px}
.ops-cell{flex:1;padding:9px 10px;border-inline-end:1px solid var(--rule-dark);
  color:var(--on-dark-2);min-width:0}
.ops-cell:last-child{border-inline-end:0}
.ops-cell b{display:block;color:var(--on-dark);font-weight:600;letter-spacing:.11em;
  font-size:10px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-cell i{font-style:normal;font-size:10.5px;display:block;margin-block-start:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-cell.on{background:var(--blue);color:#fff}
.ops-cell.on b,.ops-cell.on i{color:#fff}
.ops-light{border-color:var(--rule);background:var(--white)}
.ops-light .ops-cell{border-color:var(--rule);color:var(--muted)}
.ops-light .ops-cell b{color:var(--ink)}

/* ---------- Hero -------------------------------------------------------- */
.hero{background:var(--ink);color:#fff;padding-block:54px 46px;position:relative}
.wave{display:block;width:100%;height:auto;margin:0;line-height:0}
.hero::after{content:"";position:absolute;inset-block-end:0;inset-inline:0;height:4px;
  background:linear-gradient(90deg,var(--blue) 0 62%,var(--green) 62% 100%)}
.hero .kicker{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.16em;
  color:var(--on-dark-3);text-transform:uppercase;margin-block-end:16px}
.hero h1{font-family:var(--f-disp);font-size:clamp(34px,6vw,62px);line-height:1.03;
  margin:0 0 18px;font-weight:700;max-width:19ch}
.hero p.lead{font-size:clamp(17px,2.2vw,20px);color:var(--on-dark);max-width:62ch;margin:0 0 26px;line-height:1.55}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:start}
.situation{border:1px solid var(--rule-dark);background:var(--ink-2);border-radius:3px;padding:18px 20px}
.situation h2{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--on-dark-2);
  text-transform:uppercase;margin:0 0 14px;font-weight:600}
.sit-row{display:flex;justify-content:space-between;gap:14px;padding-block:9px;
  border-block-end:1px dashed var(--rule-dark);font-size:14px}
.sit-row:last-child{border-block-end:0}
.sit-row span{color:var(--on-dark)}
.sit-row b{font-family:var(--f-mono);font-weight:600;color:#fff;font-size:14.5px;white-space:nowrap}
.sit-row b.a{color:var(--on-dark-3)}
.sit-row b.g{color:var(--on-dark-3)}

/* ---------- Page header (reference plate) ------------------------------- */
.plate{background:var(--ink);color:#fff;padding-block:38px 32px;position:relative}
.plate::after{content:"";position:absolute;inset-block-end:0;inset-inline:0;height:4px;
  background:linear-gradient(90deg,var(--blue) 0 62%,var(--green) 62% 100%)}
.plate .code{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.16em;color:var(--on-dark-3);
  text-transform:uppercase}
.plate .crumb{font-family:var(--f-mono);font-size:11.5px;color:var(--on-dark-2);margin-block-end:12px}
.plate .crumb a{color:var(--on-dark-2)}
.plate h1{font-family:var(--f-disp);font-size:clamp(29px,4.6vw,46px);line-height:1.07;
  margin:8px 0 14px;font-weight:700;max-width:24ch}
.plate p{color:var(--on-dark);max-width:66ch;margin:0;font-size:17.5px;line-height:1.55}
.plate .ops{margin-block-start:24px}

/* ---------- Sections ---------------------------------------------------- */
main{display:block}
.band{padding-block:52px}
.band.alt{background:var(--white);border-block:1px solid var(--rule)}
.band.dark{background:var(--ink);color:var(--on-dark)}
.band.dark h2,.band.dark h3{color:#fff}
.band.dark p{color:var(--on-dark)}
.eyebrow{font-family:var(--f-disp);font-weight:600;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--green);margin-block-end:10px;font-weight:600}
.band.dark .eyebrow{color:var(--on-dark-3)}
h2{font-family:var(--f-disp);font-size:clamp(24px,3.4vw,34px);line-height:1.12;margin:0 0 16px;
  font-weight:700;color:var(--ink)}
h3{font-family:var(--f-disp);font-size:21px;line-height:1.2;margin:0 0 9px;font-weight:600;color:var(--ink)}
h4{font-family:var(--f-disp);font-size:17.5px;margin:0 0 7px;font-weight:600;color:var(--ink)}
p{margin:0 0 15px}
.measure{max-width:70ch}
.two{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.sec-head{max-width:74ch;margin-block-end:26px}

/* ---------- Cards ------------------------------------------------------- */
.cards{display:grid;gap:16px}
.cards.c2{grid-template-columns:repeat(2,1fr)}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.cards.c4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--white);border:1px solid var(--rule);border-radius:3px;padding:20px 21px;
  display:flex;flex-direction:column}
.band.alt .card{background:var(--paper)}
.card .ref{font-family:var(--f-mono);font-size:11px;color:var(--teal);letter-spacing:.1em;
  font-weight:600;margin-block-end:8px}
.card p{font-size:15.5px;color:var(--muted);margin:0}
.card p+p{margin-block-start:10px}
.card .more{font-family:var(--f-mono);font-size:12px;margin-block-start:auto;padding-block-start:14px}
a.card{text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
a.card:hover{border-color:var(--signal);text-decoration:none;transform:translateY(-2px)}
.card.dark{background:var(--ink-2);border-color:var(--rule-dark)}
.card.dark h3,.card.dark h4{color:#fff}
.card.dark p{color:var(--on-dark)}

/* ---------- Lists ------------------------------------------------------- */
ul.plain,ol.plain{margin:0 0 16px;padding-inline-start:20px}
ul.plain li,ol.plain li{margin-block-end:9px}
ul.ticks{list-style:none;margin:0 0 16px;padding:0}
ul.ticks li{position:relative;padding-inline-start:26px;margin-block-end:10px}
ul.ticks li::before{content:"";position:absolute;inset-inline-start:0;inset-block-start:9px;
  width:9px;height:9px;background:var(--teal);border-radius:1px}
.band.dark ul.ticks li::before{background:var(--on-dark-3)}
dl.defs{margin:0}
dl.defs dt{font-family:var(--f-disp);font-weight:600;color:var(--ink);font-size:17px;
  margin-block-start:16px}
dl.defs dd{margin:4px 0 0;color:var(--muted);font-size:15.5px}
.band.dark dl.defs dt{color:#fff}
.band.dark dl.defs dd{color:var(--on-dark)}

/* ---------- Tables ------------------------------------------------------ */
.tw{overflow-x:auto;border:1px solid var(--rule);border-radius:3px;background:var(--white);
  margin-block-end:18px}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px}
caption{text-align:start;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);padding:12px 14px;border-block-end:1px solid var(--rule)}
th,td{padding:11px 14px;text-align:start;border-block-end:1px solid var(--rule);vertical-align:top}
thead th{background:var(--ink);color:#fff;font-family:var(--f-disp);font-weight:600;font-size:14.5px;
  border-block-end:0;position:sticky;inset-block-start:0}
tbody tr:last-child td{border-block-end:0}
tbody tr:nth-child(even){background:#FAFBFD}
td.num,th.num{font-family:var(--f-mono);font-size:13.5px;white-space:nowrap}

/* ---------- Stats ------------------------------------------------------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);border-radius:3px;overflow:hidden}
.stat{background:var(--white);padding:20px 18px}
.stat b{font-family:var(--f-disp);font-size:34px;font-weight:700;color:var(--ink);display:block;line-height:1}
.stat span{font-family:var(--f-mono);font-size:11px;letter-spacing:.09em;color:var(--muted);
  text-transform:uppercase;display:block;margin-block-start:8px;line-height:1.4}
.band.dark .stats{background:var(--rule-dark);border-color:var(--rule-dark)}
.band.dark .stat{background:var(--ink-2)}
.band.dark .stat b{color:#fff}
.band.dark .stat span{color:var(--on-dark-2)}

/* ---------- Callouts ---------------------------------------------------- */
.note{border-inline-start:4px solid var(--teal);background:var(--white);padding:16px 20px;
  border-radius:0 3px 3px 0;margin-block-end:18px;border-block:1px solid var(--rule);
  border-inline-end:1px solid var(--rule)}
.note.warn{border-inline-start-color:var(--attn);background:#EEF4FA}
.note.status{border-inline-start-color:var(--green)}
.note b{font-family:var(--f-disp);display:block;margin-block-end:5px;color:var(--ink)}
.note p{margin:0;font-size:15.5px;color:var(--muted)}
.band.dark .note{background:var(--ink-2);border-color:var(--rule-dark)}
.band.dark .note b{color:#fff}
.band.dark .note p{color:var(--on-dark)}

/* Translation-honesty notice — never let a reader fall silently into English */
.xlate{background:#EEF4FA;border:1px solid #BFD9EF;border-radius:3px;padding:14px 18px;
  margin-block-end:22px;font-size:15px;color:#1B4C82}
.xlate b{font-family:var(--f-disp);display:block;margin-block-end:4px;color:var(--ink)}

/* ---------- Timeline ---------------------------------------------------- */
.tl{border-inline-start:2px solid var(--rule);margin-inline-start:8px;padding-inline-start:26px}
.tl-item{position:relative;padding-block-end:26px}
.tl-item:last-child{padding-block-end:0}
.tl-item::before{content:"";position:absolute;inset-inline-start:-34px;inset-block-start:6px;width:14px;height:14px;
  border-radius:50%;background:var(--white);border:3px solid var(--signal)}
.tl-item.done::before{background:var(--ok);border-color:var(--ok)}
.tl-item.now::before{background:var(--blue);border-color:var(--blue);
  box-shadow:0 0 0 5px rgba(41,107,179,.20)}
.tl-year{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.1em;color:var(--muted);font-weight:600}
.tl-item h3{margin:3px 0 7px}
.tag{display:inline-block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;padding:3px 8px;border-radius:2px;margin-inline-start:8px;vertical-align:2px}
.tag.done{background:#DFF1E3;color:#03871D}
.tag.now{background:#DCE9F6;color:#1B4C82}
.tag.next{background:#EEF2F6;color:#5B7288}

/* ---------- CTA / footer ------------------------------------------------ */
.cta{background:var(--ink-2);color:#fff;border-radius:3px;padding:32px 34px;
  display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  border:1px solid var(--rule-dark)}
.cta h2{color:#fff;margin:0 0 8px}
.cta p{color:var(--on-dark);margin:0;max-width:56ch}
.btn{display:inline-block;font-family:var(--f-disp);font-weight:600;font-size:16px;
  padding:12px 24px;border-radius:3px;background:var(--blue);color:#fff;
  letter-spacing:.02em;white-space:nowrap}
.btn:hover{text-decoration:none;background:#1B5A9C}
.btn.ghost{background:transparent;color:#fff;border:1px solid var(--rule-dark)}
.btn.ghost:hover{background:var(--ink);border-color:var(--signal)}
.btnrow{display:flex;gap:12px;flex-wrap:wrap}

.foot{background:var(--ink);color:var(--on-dark);padding-block:44px 30px;font-size:14.5px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px}
.foot h4{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;margin:0 0 12px;font-weight:600}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-block-end:8px}
.foot a{color:var(--on-dark)}
.foot a:hover{color:#fff}
.foot .addr{font-style:normal;line-height:1.7}
.foot-base{margin-block-start:32px;padding-block-start:18px;border-block-start:1px solid var(--rule-dark);
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-family:var(--f-mono);font-size:11.5px;color:#7E97AE}

/* ---------- Index / directory lists ------------------------------------- */
.dirlist{display:grid;gap:0;border:1px solid var(--rule);border-radius:3px;background:var(--white);
  overflow:hidden}
.dir{display:flex;gap:18px;padding:16px 20px;border-block-end:1px solid var(--rule);
  text-decoration:none;color:inherit;align-items:baseline}
.dir:last-child{border-block-end:0}
.dir:hover{background:#F7F9FC;text-decoration:none}
.dir .ref{font-family:var(--f-mono);font-size:12.5px;color:var(--teal);font-weight:600;
  flex:0 0 74px;letter-spacing:.06em}
.dir .t{flex:1;min-width:0}
.dir .t b{font-family:var(--f-disp);font-size:17.5px;color:var(--ink);display:block;font-weight:600}
.dir .t span{font-size:15px;color:var(--muted);display:block;margin-block-start:3px}

figure{margin:0 0 20px}
figure svg{display:block;width:100%;height:auto;background:var(--white);
  border:1px solid var(--rule);border-radius:3px}
figcaption{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);margin-block-start:9px;
  letter-spacing:.04em}

/* ---------- Responsive -------------------------------------------------- */
@media (max-width:920px){
  .hero-grid,.two{grid-template-columns:1fr;gap:26px}
  .cards.c4{grid-template-columns:repeat(2,1fr)}
  .cards.c3{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr !important}
  .ops{flex-wrap:wrap}
  .ops-cell{flex:1 0 33%}
}
@media (max-width:620px){
  body{font-size:16px}
  .cards.c2,.cards.c3,.cards.c4{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr !important}
  .band{padding-block:38px}
  .ops-cell{flex:1 0 50%}
  .cta{padding:24px 22px}
  .dir{flex-direction:column;gap:6px}
  .dir .ref{flex:none}
  .nav{margin-inline-start:0;width:100%}
  .nav a{font-size:14.5px;padding:6px 9px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}
@media print{
  .mast .nav,.langbar,.skip{display:none}
  body{background:#fff}
  .band{padding-block:26px;break-inside:avoid}
  .card,.tw,figure{break-inside:avoid}
}

/* ---------- Pre-launch status banner --------------------------------- */
.prelaunch{background:#EEF4FA;border-block-end:1px solid #BFD9EF;color:#1B4C82;
  font-size:14px;padding-block:10px}
.prelaunch .wrap{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.prelaunch b{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--green);white-space:nowrap}
.prelaunch span{flex:1;min-width:0}

/* ---------- Light lockup — blue serif on white, as in source documents -- */
.brand.light b{color:var(--blue)}
.brand.light span{color:var(--green)}
.lockup{display:flex;align-items:center;gap:12px;padding-block:18px}
.lockup .mark{width:46px;height:46px;flex:0 0 46px}
.lockup b{font-family:var(--f-serif);font-size:26px;color:var(--blue);display:block;line-height:1}
.lockup span{font-family:var(--f-serif);font-style:italic;font-size:12.5px;color:var(--green);
  display:block;margin-block-start:4px}

/* ---------- Non-Latin scripts: monospace has no Indic coverage -----------
   IBM Plex Mono carries no Devanagari, Telugu, Tamil or Kannada glyphs, so
   every mono-set label — reference codes, ops cells, captions, footer heads —
   fell back to a tiny default face. Under a non-Latin script these inherit the
   script font and drop tracking, which also protects conjunct clusters.      */
html:not([data-script="latin"]) .plate .code,
html:not([data-script="latin"]) .hero .kicker,
html:not([data-script="latin"]) .ops-cell b,
html:not([data-script="latin"]) .ops-cell i,
html:not([data-script="latin"]) .prelaunch b,
html:not([data-script="latin"]) .situation h2,
html:not([data-script="latin"]) .sit-row b,
html:not([data-script="latin"]) .langbar span,
html:not([data-script="latin"]) .langbar a,
html:not([data-script="latin"]) .foot h4,
html:not([data-script="latin"]) .foot-base,
html:not([data-script="latin"]) .stat span,
html:not([data-script="latin"]) caption,
html:not([data-script="latin"]) th.num,
html:not([data-script="latin"]) td.num,
html:not([data-script="latin"]) .card .ref,
html:not([data-script="latin"]) .dir .ref,
html:not([data-script="latin"]) .tl-year,
html:not([data-script="latin"]) .tag,
html:not([data-script="latin"]) figcaption,
html:not([data-script="latin"]) .plate .crumb{
  font-family:inherit !important;letter-spacing:normal !important}
html:not([data-script="latin"]) .ops-cell b{font-size:12.5px;text-transform:none}
html:not([data-script="latin"]) .ops-cell i{font-size:12px}
html:not([data-script="latin"]) .plate .code,
html:not([data-script="latin"]) .hero .kicker{font-size:13px;text-transform:none}
html:not([data-script="latin"]) .eyebrow{font-size:14px;text-transform:none}
html:not([data-script="latin"]) .stat span,
html:not([data-script="latin"]) .foot h4{font-size:12.5px;text-transform:none}


/* ---------- Deployment hardening (v1.1) --------------------------------
   1. Diagrams: the SVG figures are laid out on a 1000-unit canvas with
      11px labels. Scaled to a 390px phone that renders label text at
      roughly 4px, which is unreadable. Below 760px the figure becomes a
      horizontal scroller with a readable floor, matching how wide tables
      already behave in .tw.
   2. Language bar: the current language had no visible state.
   3. Focus visibility for keyboard users.                                */

.langbar a[aria-current="page"]{background:var(--blue);color:#fff;
  border-radius:2px;padding-inline:6px}

a:focus-visible,button:focus-visible{outline:2px solid var(--green);
  outline-offset:2px}

@media (max-width:760px){
  figure{overflow-x:auto;-webkit-overflow-scrolling:touch;
    border:1px solid var(--rule);border-radius:3px;background:var(--white)}
  figure svg{min-width:680px;border:0;border-radius:0}
  figure figcaption{position:sticky;inset-inline-start:0;padding:0 12px 10px}
  html[lang="en"] figure figcaption::before{
    content:"Scroll the diagram sideways to read it. ";
    font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;
    text-transform:uppercase;color:var(--blue);display:block;
    margin-block-end:6px}
}
