@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:100 700;font-display:swap;src:url(fonts/ibm-plex-sans-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:100 700;font-display:swap;src:url(fonts/ibm-plex-sans-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}
:after,:before{--tw-content:""}
:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:DM Sans,Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}
body{margin:0;line-height:inherit}
h1,h2,h3{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
b,strong{font-weight:bolder}
button,input,select{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}
button,select{text-transform:none}
button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}
:-moz-focusring{outline:auto}
:-moz-ui-invalid{box-shadow:none}
::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}
[type=search]{-webkit-appearance:textfield;outline-offset:-2px}
::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
dd,dl,h1,h2,h3,p{margin:0}
ul{list-style:none;margin:0;padding:0}
input::-moz-placeholder{opacity:1;color:#9ca3af}
input::placeholder{opacity:1;color:#9ca3af}
[role=button],button{cursor:pointer}
:disabled{cursor:default}
[hidden]:where(:not([hidden=until-found])){display:none}
:root{--background:210 20% 98%;--foreground:222 34% 14%;--card:0 0% 100%;--muted:214 28% 93%;--muted-foreground:215 16% 44%;--border:214 26% 88%;--ring:220 60% 28%;--primary:220 60% 25%;--accent:25 90% 48%}
*{border-color:hsl(var(--border));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100vh;overflow-x:hidden;background-color:hsl(var(--background));font-family:DM Sans,Inter,system-ui,sans-serif}
body,h1,h2,h3{color:hsl(var(--foreground))}
h1,h2,h3{letter-spacing:0}
.site-header{background:radial-gradient(circle at 16% 0,color-mix(in srgb,var(--site-accent) 36%,transparent),transparent 31%),linear-gradient(135deg,var(--site-primary),color-mix(in srgb,var(--site-primary) 84%,#020617))}
.site-online{
  --paper:#F2F4F7; --ink:#141A22; --mut:#4C5663; --mut2:#84909E;
  --line:#DCE1E8; --line2:#EAEEF3; --card:#FFFFFF;
  --vi:#3D3A8C; --vi-wash:#EFEEF8; --sand:#9A7B32; --sand-wash:#FAF5E8;
  --fs:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
  --fm:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  background:var(--paper)}
.site-online body,body.site-online{
  background:var(--paper)!important;color:var(--ink)!important;font-family:var(--fs)!important;
  -webkit-font-smoothing:antialiased}
.site-online .sy{max-width:64rem;margin:0 auto;padding:0 1.25rem}
.site-online .sy-read{max-width:44rem;margin:0 auto;padding:0 1.25rem}
.site-online .site-header{
  background:var(--card)!important;border:0!important;
  border-bottom:1px solid var(--line)!important;box-shadow:none!important;position:static!important}
.site-online .sy-bar{
  max-width:64rem;margin:0 auto;padding:.85rem 1.25rem;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;flex-wrap:wrap}
.site-online .sy-brand{text-decoration:none;display:block}
.site-online .sy-brand b{
  display:block;font:600 1.06rem/1 var(--fs);letter-spacing:-.028em;color:var(--ink)}
.site-online .sy-brand b em{font-style:normal;color:var(--vi)}
.site-online .sy-brand s{
  display:block;text-decoration:none;margin-top:.3rem;font:400 .66rem/1 var(--fm);
  letter-spacing:-.01em;color:var(--mut2)}
.site-online .sy-nav{display:flex;gap:1.05rem;font-size:.83rem;overflow-x:auto;scrollbar-width:none}
.site-online .sy-nav::-webkit-scrollbar{display:none}
.site-online .sy-nav a{color:var(--mut);text-decoration:none;white-space:nowrap}
.site-online .sy-nav a:hover{color:var(--vi)}
.site-online .sy-hero{padding:3.25rem 0 2.5rem;border-bottom:1px solid var(--line);background:var(--card)}

@media(max-width:640px){.site-online .sy-hero{padding:2.25rem 0 1.75rem}}
.site-online .sy-eyebrow{
  font:500 .68rem/1 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--vi);margin:0 0 .9rem}
.site-online .sy-hero h1{
  font:600 clamp(1.95rem,5vw,2.95rem)/1.08 var(--fs)!important;letter-spacing:-.038em!important;
  color:var(--ink)!important;margin:0 0 .95rem;max-width:24ch}
.site-online .sy-hero p{font-size:1.03rem;line-height:1.65;color:var(--mut);max-width:52ch;margin:0}
.site-online .sy-map{margin-top:2rem;border:1px solid var(--line);border-radius:10px;overflow:hidden;
  background:var(--card)}
.site-online .sy-semrow{border-bottom:1px solid var(--line)}
.site-online .sy-semrow:last-child{border-bottom:0}
.site-online .sy-semhead{
  display:flex;align-items:baseline;gap:.7rem;padding:.75rem 1rem;background:var(--vi-wash);
  border-bottom:1px solid var(--line)}
.site-online .sy-semhead b{font:600 .82rem/1 var(--fs);letter-spacing:-.01em;color:var(--vi)}
.site-online .sy-semhead s{
  text-decoration:none;font:400 .68rem/1 var(--fm);color:var(--mut2);margin-left:auto}
.site-online .sy-subs{display:grid;grid-template-columns:1fr}

@media(min-width:700px){.site-online .sy-subs{grid-template-columns:repeat(2,1fr)}}
.site-online .sy-sub{
  display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:baseline;
  padding:.7rem 1rem;text-decoration:none;border-bottom:1px solid var(--line2);
  transition:background .12s ease}
.site-online .sy-sub:hover{background:var(--vi-wash)}
.site-online .sy-sub .code{font:500 .68rem/1.4 var(--fm);color:var(--vi);white-space:nowrap}
.site-online .sy-sub .nm{font:400 .93rem/1.4 var(--fs);color:var(--ink)}
.site-online .sy-sub .cr{
  font:500 .68rem/1.4 var(--fm);color:var(--mut2);white-space:nowrap;font-variant-numeric:tabular-nums}
.site-online .sy-facts{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:9px;overflow:hidden;margin:1.6rem 0}

@media(min-width:600px){.site-online .sy-facts{grid-template-columns:repeat(4,1fr)}}
.site-online .sy-facts>div{background:var(--card);padding:.85rem .95rem}
.site-online .sy-facts dt{
  font:400 .62rem/1 var(--fm);letter-spacing:.08em;text-transform:uppercase;color:var(--mut2);
  margin-bottom:.35rem}
.site-online .sy-facts dd{margin:0;font:500 .93rem/1.3 var(--fs);color:var(--ink)}
.site-online .sy-facts dd.mono{font-family:var(--fm);font-variant-numeric:tabular-nums}
.site-online .sy-body p{font-size:1rem;line-height:1.72;color:var(--mut);margin:0 0 1.05rem;max-width:66ch}
.site-online .sy-body p strong{color:var(--ink);font-weight:600}
.site-online .sy-body h2{
  font:600 1.16rem/1.25 var(--fs)!important;letter-spacing:-.028em!important;color:var(--ink)!important;
  margin:2rem 0 .7rem}
.site-online .sy-body ul{margin:0 0 1.1rem;padding-left:1.15rem;color:var(--mut);line-height:1.75}
.site-online .sy-body li{margin-bottom:.4rem}
.site-online .sy-body li strong{color:var(--ink)}
.site-online .sy-topics{
  display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.2rem}
.site-online .sy-topics span{
  border:1px solid var(--line);background:var(--card);border-radius:5px;padding:.38rem .62rem;
  font:400 .8rem/1 var(--fs);color:var(--mut)}
.site-online .sy-verdict{
  background:var(--sand-wash);border-left:3px solid var(--sand);border-radius:0 8px 8px 0;
  padding:.95rem 1.1rem;margin:1.6rem 0;font-size:.94rem;line-height:1.62;color:#5E4A18}
.site-online .sy-verdict strong{color:var(--sand)}
.site-online .sy-sec{padding:2.25rem 0}
.site-online .sy-sec h2{
  font:600 1.3rem/1.2 var(--fs)!important;letter-spacing:-.032em!important;color:var(--ink)!important;
  margin:0 0 .3rem}
.site-online .sy-sec p.lede{color:var(--mut);font-size:.94rem;line-height:1.6;margin:0 0 1.25rem;max-width:56ch}
.site-online .sy-streams{
  display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);
  border-radius:10px;overflow:hidden}

@media(min-width:660px){.site-online .sy-streams{grid-template-columns:repeat(2,1fr)}}

@media(min-width:980px){.site-online .sy-streams{grid-template-columns:repeat(3,1fr)}}
.site-online .sy-stream{background:var(--card);padding:1.1rem 1.15rem;text-decoration:none;display:block}
.site-online .sy-stream:hover{background:var(--vi-wash)}
.site-online .sy-stream b{display:block;font:600 .98rem/1.3 var(--fs);letter-spacing:-.022em;color:var(--ink)}
.site-online .sy-stream s{
  display:block;text-decoration:none;margin-top:.32rem;font-size:.83rem;line-height:1.5;color:var(--mut)}
.site-online .sy-stream u{
  display:block;text-decoration:none;margin-top:.55rem;font:500 .66rem/1 var(--fm);color:var(--vi)}
.site-online .sy-notinst{
  background:var(--vi);color:rgba(255,255,255,.86);padding:1.15rem 0;font-size:.88rem;line-height:1.62}
.site-online .sy-notinst .sy{max-width:64rem}
.site-online .sy-notinst strong{color:#fff}
.site-online .sy-ask{background:var(--vi);color:#fff;border-radius:12px;padding:1.65rem;margin:2.6rem 0}
.site-online .sy-ask h3{
  font:600 1.22rem/1.3 var(--fs)!important;color:#fff!important;margin:0 0 .45rem;letter-spacing:-.03em!important}
.site-online .sy-ask p{margin:0 0 1.15rem;font-size:.9rem;line-height:1.6;color:rgba(255,255,255,.72)}
.site-online .sy-ask .f{margin-bottom:.6rem}
.site-online .sy-ask label{
  display:block;font:500 .63rem/1 var(--fm);letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin-bottom:.36rem}
.site-online .sy-ask input,.site-online .sy-ask select{
  width:100%;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:rgba(255,255,255,.09);
  padding:.72rem .78rem;font:400 .9rem/1.2 var(--fs);color:#fff;-webkit-appearance:none;appearance:none}
.site-online .sy-ask input::placeholder{color:rgba(255,255,255,.42)}
.site-online .sy-ask select{
  background-color:rgba(255,255,255,.09);
  background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);
  background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}
.site-online .sy-ask input:focus,.site-online .sy-ask select:focus{
  outline:none;border-color:#fff;background:rgba(255,255,255,.14)}
.site-online .sy-ask button{
  width:100%;background:#fff;color:var(--vi);border:0;border-radius:7px;padding:.86rem;
  font:600 .93rem/1 var(--fs);cursor:pointer}
.site-online .sy-ask button:hover{background:var(--vi-wash)}
.site-online .sy-ask .fine{margin:.62rem 0 0;font-size:.71rem;color:rgba(255,255,255,.55);text-align:center}
.site-online .sy-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.site-online .sy-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}
.site-online .sy-chips a{
  border:1px solid var(--line);background:var(--card);border-radius:6px;padding:.44rem .78rem;
  font-size:.84rem;color:var(--ink);text-decoration:none}
.site-online .sy-chips a:hover{border-color:var(--vi);color:var(--vi)}
.site-online .sy-footer{border-top:1px solid var(--line);margin-top:3.25rem;background:var(--card)}
.site-online .sy-foot{max-width:64rem;margin:0 auto;padding:2.4rem 1.25rem;display:grid;gap:1.7rem}

@media(min-width:700px){.site-online .sy-foot{grid-template-columns:1.6fr 1fr 1fr 1fr}}
.site-online .sy-foot .brand{font:600 1.04rem/1.2 var(--fs);letter-spacing:-.028em;color:var(--ink);margin:0}
.site-online .sy-foot .blurb{margin:.5rem 0 0;font-size:.84rem;line-height:1.6;color:var(--mut)}
.site-online .sy-foot b{
  display:block;font:500 .63rem/1 var(--fm);letter-spacing:.11em;text-transform:uppercase;
  color:var(--mut2);margin-bottom:.55rem}
.site-online .sy-foot a{display:block;font-size:.85rem;line-height:1.95;color:var(--mut);text-decoration:none}
.site-online .sy-foot a:hover{color:var(--vi)}
.site-online .sy-foot-legal{
  border-top:1px solid var(--line);padding:1.05rem 1.25rem;text-align:center;font-size:.75rem;color:var(--mut2)}
.site-online .sy-own{
  display:block;margin-top:2rem;border:1px solid var(--vi);border-left:4px solid var(--vi);
  border-radius:10px;background:var(--vi-wash);padding:1.25rem 1.35rem}
.site-online .sy-own .tag{
  display:inline-block;font:500 .62rem/1 var(--fm);letter-spacing:.14em;text-transform:uppercase;
  background:var(--vi);color:#fff;padding:.32rem .55rem;border-radius:4px;margin-bottom:.7rem}
.site-online .sy-own b{
  display:block;font:600 1.22rem/1.28 var(--fs);letter-spacing:-.03em;color:var(--ink);margin-bottom:.5rem}
.site-online .sy-own p{margin:0;font-size:.95rem;line-height:1.62;color:var(--mut);max-width:62ch}
.site-online .sy-own .sy-chips{margin-top:.9rem}
.site-online .sy-disclose{
  border:1px dashed var(--vi);border-radius:8px;background:var(--card);padding:.9rem 1.05rem;
  margin:1.5rem 0;font-size:.88rem;line-height:1.6;color:var(--mut)}
.site-online .sy-disclose strong{color:var(--vi)}
.site-online .sy-disclose a{color:var(--vi)}
.site-online a.sy-cta{
  background:var(--vi)!important;border-color:var(--vi)!important;color:#fff!important;
  font-weight:600;padding:.6rem 1.1rem}
.site-online a.sy-cta:hover{background:#332F76!important;color:#fff!important}
.sy-bar{min-width:0}
.sy-nav{min-width:0;max-width:100%;flex:1 1 auto;justify-content:flex-end}

@media(max-width:640px){.sy-nav{justify-content:flex-start;flex-basis:100%;
  -webkit-overflow-scrolling:touch;padding-bottom:2px}}
.sy-hero .sy,.sy-hero .sy-read,.sy-read,.sy-sec .sy{min-width:0}
.sy-verdict a,.sy-disclose a,.sy-own a{text-decoration:underline;text-underline-offset:2px}
.sy-verdict a{color:inherit;font-weight:600}

/* ==========================================================================
   onlinemba.institute — mobile layer.
   The site is read on phones by people deciding whether to spend money, so
   the phone is the primary target, not a fallback. Everything below either
   removes a known mobile failure or buys back paint time.
   ========================================================================== */

/* iOS inflates text on orientation change unless this is pinned. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Notched phones: keep content clear of the rounded corners and home bar. */
.site-online .sy,.site-online .sy-read,.site-online .sy-bar,.site-online .sy-foot{
  padding-left:max(1.25rem,env(safe-area-inset-left));
  padding-right:max(1.25rem,env(safe-area-inset-right))}

/* Institution names run to 269 characters and will not wrap on their own. */
.site-online .sy-stream b,.site-online .sy-stream s,.site-online .sy-body,
.site-online h1,.site-online h2,.site-online h3,.site-online td,.site-online dd{
  overflow-wrap:anywhere;word-break:normal}

/* Fluid headings: no horizontal cropping at 320px, no shrunken hero at 430. */
.site-online .sy-hero h1{font-size:clamp(1.72rem,7.4vw,2.6rem)!important;line-height:1.14!important}
.site-online .sy-body h2{font-size:clamp(1.16rem,4.6vw,1.42rem)!important}
.site-online .sy-sec h2{font-size:clamp(1.2rem,5vw,1.62rem)!important}

@media(max-width:720px){
  /* Body copy at 16px. Below that phones render management prose as fine print. */
  .site-online .sy-body,.site-online .sy-body p,.site-online .sy-body li{font-size:1rem;line-height:1.68}
  .site-online .lede{font-size:1rem;line-height:1.62}
  .site-online .sy-hero p{font-size:1rem;line-height:1.6}

  /* 44px minimum touch target — nav, footer, chips, stream rows. */
  .site-online .sy-nav a{min-height:44px;display:flex;align-items:center;font-size:.92rem}
  .site-online .sy-foot a{min-height:44px;display:flex;align-items:center;line-height:1.3;font-size:.9rem}
  .site-online .sy-chips a{min-height:44px;display:inline-flex;align-items:center;padding:.6rem 1rem}
  .site-online .sy-stream{padding:1.05rem 1.1rem;min-height:56px}

  /* The nav is a scroll rail; without an edge fade nobody knows it scrolls. */
  .site-online .sy-bar{position:relative;gap:.35rem;padding-top:.7rem;padding-bottom:.2rem}
  .site-online .sy-nav{position:relative;gap:1.15rem;padding-right:1.6rem;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent);
    mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent)}

  .site-online .sy-hero{padding:1.9rem 0 1.5rem}
  .site-online .sy-sec{padding:2.1rem 0}

  /* 4 facts × 2 columns reads better than a 4-wide squeeze. */
  .site-online .sy-facts{grid-template-columns:repeat(2,1fr)}
  .site-online .sy-own{padding:1.1rem 1.15rem;margin-top:1.5rem}
  .site-online .sy-own b{font-size:1.14rem}
  .site-online .sy-verdict,.site-online .sy-disclose{font-size:.95rem;padding:.95rem 1rem}

  /* 🚨 Any font-size under 16px in a focused field makes iOS Safari zoom the
     whole page in and never zoom back out. This was 14.4px. */
  .site-online .sy-ask input,.site-online .sy-ask select{font-size:16px;padding:.8rem .8rem;min-height:48px}
  .site-online .sy-ask button{min-height:50px;font-size:1rem}
  .site-online .sy-ask{padding:1.3rem 1.15rem;border-radius:10px;margin:2rem 0}
  .site-online .sy-ask label{font-size:.66rem}

  /* Sticky action bar clears the fixed dock and the home indicator. */
  .site-online body,body.site-online{padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .site-online .sy-footer{margin-top:2.4rem}
}

/* Anchors must not land under the header. */
.site-online #enquiry{scroll-margin-top:1rem}

/* Provider tiers run to 259 rows; skip layout+paint for what is off-screen. */
.site-online .sy-streams>.sy-stream{content-visibility:auto;contain-intrinsic-size:auto 96px}

/* --- mobile action dock ---------------------------------------------------
   One primary action and one conversation channel, thumb-height, phone only. */
.omi-dock{display:none}
@media(max-width:720px){
  .omi-dock{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;gap:.5rem;
    padding:.5rem max(.7rem,env(safe-area-inset-right)) calc(.5rem + env(safe-area-inset-bottom)) max(.7rem,env(safe-area-inset-left));
    background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(180%) blur(12px);
    backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--line)}
  .omi-dock a{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:46px;
    border-radius:9px;text-decoration:none;font:600 .93rem/1 var(--fs);letter-spacing:-.01em}
  .omi-dock .omi-go{flex:1;background:var(--vi);color:#fff}
  .omi-dock .omi-go span{font:500 .72rem/1 var(--fm);opacity:.72;letter-spacing:.02em}
  .omi-dock .omi-wa{width:52px;background:#25D366;color:#fff;flex:0 0 52px}
  .omi-dock .omi-wa svg{width:22px;height:22px;fill:currentColor}
}
@media print{.omi-dock{display:none}}

/* --- link affordance ------------------------------------------------------
   There was no `.sy-body a` rule at all: body links inherited the paragraph
   grey with no underline, so on a phone — where there is no hover to reveal
   them — every in-text link was invisible. This is the one that mattered. */
.site-online .sy-body a,.site-online .sy-notinst a,.site-online .sy-hero p a{
  color:var(--vi);text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:2px;font-weight:500}
.site-online .sy-notinst a{color:#fff}
.site-online .sy-body a:hover{color:#332F76}
@media(max-width:720px){.site-online .sy-body a{padding:.06rem 0}}

/* Tailwind's preflight kills list markers and nothing ever restored them, so
   every bulleted list read as loose indented paragraphs. */
.site-online .sy-body ul{list-style:disc}
.site-online .sy-body ul ul{list-style:circle}
.site-online .sy-body li::marker{color:var(--vi)}

/* The label wraps to two lines under ~370px. */
.site-online .sy-own .tag{line-height:1.45;max-width:100%}

/* ==========================================================================
   onlinemba.institute — the richness layer.
   Charts, tables, timeline and the section furniture that turns a column of
   grey prose into something with a rhythm. Everything is CSS + HTML: no chart
   library, no images, no JS — the site's whole payload budget is 24 KB of CSS.

   Palette is the site's own violet #3D3A8C. The ordinal ramp below was
   generated in OKLCH at fixed hue 280° with chroma rising toward the dark end,
   then validated: monotone lightness, all adjacent gaps >= 0.06 L, light end
   2.50:1 on white. Do not hand-edit a step — regenerate the ramp.
   ========================================================================== */

.site-online{
  --v1:#9DA1CA; --v2:#888CBE; --v3:#7478B2; --v4:#6063A5; --v5:#4E4F99; --v6:#3D3A8C;
  --demote:#7C8899;            /* de-emphasis gray, 3.60:1 on white */
  --grid:#EAEEF3;
}

/* ---- section furniture --------------------------------------------------- */
.site-online .sy-sec.alt{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.site-online .sy-num{
  display:flex;align-items:center;gap:.6rem;margin:0 0 .55rem;
  font:500 .66rem/1 var(--fm);letter-spacing:.16em;text-transform:uppercase;color:var(--vi)}
.site-online .sy-num::after{content:"";flex:1;height:1px;background:var(--line);max-width:120px}

/* ---- figures ------------------------------------------------------------- */
.site-online .fig{
  margin:1.5rem 0 0;padding:1.25rem 1.3rem 1.1rem;background:var(--card);
  border:1px solid var(--line);border-radius:10px}
.site-online .sy-sec.alt .fig{background:var(--paper)}
.site-online .fig>figcaption{
  font:600 .95rem/1.35 var(--fs);letter-spacing:-.02em;color:var(--ink);margin:0 0 .2rem}
.site-online .fig .fig-sub{
  margin:0 0 1.05rem;font-size:.82rem;line-height:1.5;color:var(--mut2);max-width:60ch}

/* horizontal bars: label and value on one line, bar beneath. Survives 320px,
   which a label-column layout does not. */
.site-online .bars{display:block}
.site-online .bar-row{margin-bottom:.72rem}
.site-online .bar-row:last-child{margin-bottom:0}
.site-online .bar-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.28rem}
.site-online .bar-head .k{font:400 .84rem/1.3 var(--fs);color:var(--ink);min-width:0;overflow-wrap:anywhere}
.site-online .bar-head .v{
  margin-left:auto;font:500 .78rem/1.3 var(--fm);color:var(--mut);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.site-online .bar-head .v s{text-decoration:none;color:var(--mut2)}
.site-online .bar-track{height:12px;background:var(--grid);border-radius:3px;overflow:hidden}
.site-online .bar-fill{
  height:100%;background:var(--v6);border-radius:0 4px 4px 0;
  transition:filter .15s ease;min-width:3px}
.site-online .bar-row:hover .bar-fill{filter:saturate(1.25) brightness(1.08)}
.site-online .bar-fill.d{background:var(--demote)}

/* columns: four semesters on a shared baseline */
.site-online .cols{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;align-items:end;
  height:150px;border-bottom:1px solid var(--line);padding-bottom:0}
.site-online .col{display:flex;flex-direction:column;justify-content:flex-end;height:100%;position:relative}
.site-online .col i{
  display:block;font:500 .74rem/1 var(--fm);color:var(--ink);text-align:center;
  margin-bottom:.35rem;font-style:normal;font-variant-numeric:tabular-nums}
.site-online .col b{display:block;border-radius:4px 4px 0 0;max-width:34px;width:100%;margin:0 auto}
.site-online .col-x{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;margin-top:.4rem}
.site-online .col-x span{
  text-align:center;font:400 .7rem/1.35 var(--fm);color:var(--mut2);letter-spacing:.02em}

/* fee territory: one axis, three market bands, our fee pinned to it */
.site-online .fee{position:relative;margin:.2rem 0 0}
.site-online .fee-track{display:flex;height:34px;border-radius:5px;overflow:hidden;gap:2px}
.site-online .fee-track span{
  display:flex;align-items:center;justify-content:center;background:var(--demote);
  font:500 .7rem/1 var(--fm);color:#fff;letter-spacing:.02em;white-space:nowrap;overflow:hidden}
.site-online .fee-track span.open{
  background:linear-gradient(90deg,var(--demote),#AAB3BF)}
.site-online .fee-axis{display:flex;justify-content:space-between;margin-top:.35rem;
  font:400 .68rem/1 var(--fm);color:var(--mut2);font-variant-numeric:tabular-nums}
.site-online .fee-pin{position:relative;height:56px;margin-top:.1rem}
.site-online .fee-pin i{
  position:absolute;top:0;width:2px;height:16px;background:var(--vi);font-style:normal}
.site-online .fee-pin em{
  position:absolute;top:19px;font-style:normal;white-space:nowrap;
  font:600 .8rem/1.3 var(--fs);color:var(--vi);letter-spacing:-.01em}
.site-online .fee-pin em s{display:block;text-decoration:none;font:400 .68rem/1.3 var(--fm);color:var(--mut2)}

/* the table twin every figure carries */
.site-online .fig details{margin-top:1rem;border-top:1px solid var(--line);padding-top:.7rem}
.site-online .fig summary{
  cursor:pointer;font:500 .72rem/1 var(--fm);letter-spacing:.08em;text-transform:uppercase;
  color:var(--mut2);list-style:none}
.site-online .fig summary::-webkit-details-marker{display:none}
.site-online .fig summary::before{content:"+ ";color:var(--vi)}
.site-online .fig details[open] summary::before{content:"\2212 "}
.site-online .fig summary:hover{color:var(--vi)}

/* ---- tables -------------------------------------------------------------- */
.site-online table{
  width:100%;border-collapse:collapse;margin:.8rem 0 0;font-size:.86rem;line-height:1.5}
.site-online .tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.1rem 0}
.site-online .tw table{margin:0;min-width:460px}
.site-online th,.site-online td{
  text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line2);vertical-align:top}
.site-online thead th{
  font:500 .66rem/1.3 var(--fm);letter-spacing:.1em;text-transform:uppercase;color:var(--mut2);
  border-bottom:1px solid var(--line);white-space:nowrap}
.site-online tbody th{font:600 .86rem/1.45 var(--fs);color:var(--ink);white-space:normal}
.site-online td{color:var(--mut)}
.site-online td.num{font-family:var(--fm);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.site-online tbody tr:last-child th,.site-online tbody tr:last-child td{border-bottom:0}
.site-online .cmp td strong{color:var(--ink);font-weight:600}
.site-online .cmp tbody tr:hover td,.site-online .cmp tbody tr:hover th{background:var(--vi-wash)}

/* ---- the four semesters as a run of time --------------------------------- */
.site-online .tl{
  display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin:1.4rem 0 0;
  border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--line)}
.site-online .tl>div{background:var(--card);padding:.95rem 1rem}
.site-online .sy-sec.alt .tl>div{background:var(--paper)}
.site-online .tl b{
  display:block;font:500 .64rem/1 var(--fm);letter-spacing:.12em;text-transform:uppercase;
  color:var(--vi);margin-bottom:.5rem}
.site-online .tl u{
  display:block;text-decoration:none;font:600 1.32rem/1 var(--fs);letter-spacing:-.035em;
  color:var(--ink);margin-bottom:.15rem}
.site-online .tl s{display:block;text-decoration:none;font-size:.76rem;line-height:1.45;color:var(--mut2)}
.site-online .tl i{
  display:block;font-style:normal;margin-top:.6rem;height:4px;border-radius:2px;background:var(--v2)}

/* ---- key-number rail ----------------------------------------------------- */
.site-online .rail{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:9px;overflow:hidden;margin:1.6rem 0 0}
.site-online .rail>div{background:var(--card);padding:.9rem .95rem}
.site-online .sy-hero .rail>div{background:var(--card)}
.site-online .rail b{
  display:block;font:600 1.42rem/1 var(--fs);letter-spacing:-.04em;color:var(--ink);margin-bottom:.3rem}
.site-online .rail s{
  display:block;text-decoration:none;font:400 .68rem/1.35 var(--fm);color:var(--mut2);letter-spacing:.02em}

/* ---- FAQ ----------------------------------------------------------------- */
.site-online .qa{border-top:1px solid var(--line);margin-top:1.3rem}
.site-online .qa details{border-bottom:1px solid var(--line)}
.site-online .qa summary{
  cursor:pointer;list-style:none;padding:.95rem 2rem .95rem 0;position:relative;
  font:600 .96rem/1.45 var(--fs);letter-spacing:-.018em;color:var(--ink)}
.site-online .qa summary::-webkit-details-marker{display:none}
.site-online .qa summary::after{
  content:"+";position:absolute;right:.2rem;top:.85rem;font:400 1.2rem/1 var(--fm);color:var(--vi)}
.site-online .qa details[open] summary::after{content:"\2212"}
.site-online .qa summary:hover{color:var(--vi)}
.site-online .qa .a{padding:0 0 1.05rem;font-size:.94rem;line-height:1.68;color:var(--mut);max-width:66ch}
.site-online .qa .a a{color:var(--vi);text-decoration:underline;text-underline-offset:2px}
.site-online .qa .a strong{color:var(--ink)}

/* ---- subject page: credits as a ring ------------------------------------- */
.site-online .ring{
  display:flex;align-items:center;gap:1rem;margin:1.5rem 0 0;padding:1.1rem 1.2rem;
  background:var(--card);border:1px solid var(--line);border-radius:10px}
.site-online .sy-sec.alt .ring{background:var(--paper)}
.site-online .ring .dial{
  flex:0 0 74px;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;position:relative}
.site-online .ring .dial::after{
  content:"";position:absolute;inset:9px;background:var(--card);border-radius:50%}
.site-online .sy-sec.alt .ring .dial::after{background:var(--paper)}
.site-online .ring .dial span{
  position:relative;z-index:1;font:600 1.16rem/1 var(--fs);letter-spacing:-.04em;color:var(--ink)}
.site-online .ring .dial span s{
  display:block;text-decoration:none;font:400 .56rem/1 var(--fm);color:var(--mut2);
  letter-spacing:.1em;text-transform:uppercase;margin-top:.24rem}
.site-online .ring p{margin:0;font-size:.88rem;line-height:1.6;color:var(--mut)}
.site-online .ring p b{display:block;color:var(--ink);font:600 .95rem/1.35 var(--fs);margin-bottom:.22rem}

/* ---- mobile -------------------------------------------------------------- */
@media(max-width:720px){
  .site-online .rail{grid-template-columns:repeat(2,1fr)}
  .site-online .rail b{font-size:1.28rem}
  .site-online .tl{grid-template-columns:repeat(2,1fr)}
  .site-online .fig{padding:1.05rem 1rem .95rem;border-radius:9px}
  .site-online .cols{height:126px}
  .site-online .col-x span{font-size:.62rem;letter-spacing:0}
  .site-online .fee-track span{font-size:.62rem}
  .site-online .fee-pin em{font-size:.76rem}
  .site-online .qa summary{font-size:.94rem;padding-top:.9rem;padding-bottom:.9rem;min-height:44px}
  .site-online .ring{gap:.85rem;padding:.95rem 1rem}
  .site-online .ring .dial{flex-basis:64px;width:64px;height:64px}
  .site-online .ring .dial span{font-size:1.02rem}
  .site-online th,.site-online td{padding:.55rem .6rem;font-size:.82rem}
}
@media(max-width:400px){
  .site-online .cols{gap:.35rem}
  .site-online .fee-track span{font-size:.58rem}
}

/* --- polish ---------------------------------------------------------------
   Fixes found by rendering the page at 390px rather than reasoning about it. */

/* Bar labels that link somewhere have to look like it. */
.site-online .bar-head .k a{color:var(--vi);text-decoration:none;font-weight:500}
.site-online .bar-row:hover .bar-head .k a{text-decoration:underline;text-underline-offset:2px}

/* A scrollable table with no edge cue reads as a truncated table. */
.site-online .tw{position:relative;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);
  mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
.site-online .tw.end,.site-online .fig .tw{-webkit-mask-image:none;mask-image:none}
.site-online .cmp{min-width:620px}
.site-online .fig .tw table{min-width:380px}

/* Links inside figures and callouts. */
.site-online .fig a,.site-online .fee-pin a{color:var(--vi);text-decoration:underline;text-underline-offset:2px}
.site-online .fig figcaption a{text-decoration:none}

/* The fee pin's label must not run off the left edge on a narrow phone. */
@media(max-width:520px){
  .site-online .fee-pin em{left:0!important;transform:none!important}
  .site-online .fee-pin{height:62px}
}

/* The dial caption has to fit inside the ring's hole, which is 56px across. */
.site-online .ring .dial{flex-basis:80px;width:80px;height:80px}
.site-online .ring .dial::after{inset:8px}
.site-online .ring .dial span s{font-size:.5rem;letter-spacing:.06em;margin-top:.2rem} /* dial caption */
@media(max-width:720px){
  .site-online .ring .dial{flex-basis:72px;width:72px;height:72px}
  .site-online .ring .dial span{font-size:1.06rem}
}

/* --- desktop hero ---------------------------------------------------------
   At 1280 the hero was copy on the left and 600px of nothing on the right,
   with the programme card pushed below the fold. Two columns puts the offer
   beside the pitch. Scoped with :has() so heroes without the card — every
   other page — keep the single-column layout they were written for. */
@media(min-width:980px){
  .site-online .sy-hero .sy:has(.sy-own){
    display:grid;grid-template-columns:minmax(0,1fr) 386px;column-gap:3rem;
    grid-template-areas:"eyebrow own" "head own" "lede own" "rail rail";
    /* the card spans three rows and is taller than the copy; without 1fr on the
       lede row the surplus is split between rows and opens a gap under the h1 */
    grid-template-rows:auto auto 1fr auto;align-content:start}
  .site-online .sy-hero .sy:has(.sy-own) .sy-eyebrow{grid-area:eyebrow}
  .site-online .sy-hero .sy:has(.sy-own) h1{grid-area:head;max-width:none}
  .site-online .sy-hero .sy:has(.sy-own)>p:not(.sy-eyebrow){grid-area:lede;max-width:46ch}
  .site-online .sy-hero .sy:has(.sy-own) .rail{grid-area:rail}
  .site-online .sy-hero .sy:has(.sy-own) .sy-own{
    grid-area:own;align-self:start;margin-top:.4rem;height:100%}
  .site-online .sy-hero{padding-bottom:3rem}
}

/* --- the worldwide country table -----------------------------------------
   Region rows break 24 countries into scannable groups without a second table. */
.site-online .geo tr.reg th{
  background:var(--vi-wash);border-bottom:1px solid var(--line);
  font:500 .64rem/1 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--vi);
  padding:.6rem .7rem}
.site-online .geo tr.reg th s{text-decoration:none;color:var(--mut2);margin-left:.4rem;letter-spacing:.06em}
.site-online .geo tr.reg:hover th{background:var(--vi-wash)}
.site-online .geo{min-width:660px}
.site-online .geo tbody th[scope="row"]{white-space:nowrap}
/* A horizontally scrolling table needs to say so on a phone; the edge fade
   alone reads as a design flourish rather than an affordance. */
.site-online .scrollhint{display:none}
@media(max-width:720px){
  .site-online .scrollhint{
    display:block;margin:-.6rem 0 1.2rem;font:400 .75rem/1.4 var(--fm);color:var(--mut2)}
}
/* Prose that follows a full-width table inside .sy inherits the 64rem container
   and reads as a lopsided column. Centre it at the site's own reading measure. */
/* Left-aligned, not centred: a centred column under a left-aligned h2 reads as
   an accidental indent. */
.site-online .sy-sec .sy>.sy-body{max-width:44rem}
/* Institution rows carry a name and a city, not a code/name/credits triple, so
   they need their own two-column track or the city lands in the stretch cell. */
.site-online .sy-map .sy-sub:not(:has(.code)){grid-template-columns:1fr auto}
.site-online .sy-map .sy-sub .cr{text-align:right}

/* --- IICT / IIPM section ------------------------------------------------- */
#iict-iipm h3{font:600 1rem/1.35 var(--fs,inherit);letter-spacing:-.02em;margin:1.4rem 0 .3rem}
#iict-iipm p{margin:0 0 .7rem;line-height:1.62}
#iict-iipm p:last-child{margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--line,#e3e3e3);font-size:.9rem}
#iict-iipm a{color:var(--vi,#3D3A8C);text-decoration:underline;text-underline-offset:2px}
