/* Kirori Mal College – public site. Palette: Royal Blue, Magenta, Sky Blue, Light Blue, Light Grey */
:root{
  --royal:#4169E1; --royal-d:#2b4bb8; --royal-dd:#1b2f7a;
  --magenta:#7d8bb0; --magenta-d:#4b587c;
  --sky:#87CEEB; --light:#ADD8E6; --lightest:#EAF5FB;
  --grey:#F2F4F7; --grey-d:#D9DEE6;
  --ink:#1b2559; --text:#2c3350; --muted:#667085; --white:#fff;
  --r:14px; --shadow:0 6px 24px rgba(27,47,122,.10);
  --fs:100%;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:var(--fs);scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;line-height:1.6;color:var(--text);background:var(--grey)}
img{max-width:100%;height:auto;display:block}
a{color:var(--royal-d);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--magenta)}
h1,h2,h3{color:var(--ink);line-height:1.25;margin:0 0 .5em}
:focus-visible{outline:3px solid var(--magenta);outline-offset:2px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--magenta);color:#fff;padding:.6rem 1rem;z-index:1000}
.skip:focus{left:0}
.wrap{width:min(1240px,100% - 32px);margin-inline:auto}
.ic{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.2em}
.flip{transform:scaleX(-1)}
.muted{color:var(--muted)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;border:0;cursor:pointer;background:var(--royal);color:#fff;font:inherit;font-weight:600;padding:.7rem 1.3rem;border-radius:999px;text-decoration:none;transition:.2s}
.btn:hover{background:var(--royal-d);color:#fff;transform:translateY(-1px)}
.btn--magenta{background:var(--magenta)} .btn--magenta:hover{background:var(--magenta-d)}
.btn--sm{padding:.45rem 1rem;font-size:.9rem}
.iconbtn{display:inline-grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}
.iconbtn:hover{background:rgba(0,0,0,.08)}
.iconbtn--solid{background:var(--royal);color:#fff}.iconbtn--solid:hover{background:var(--royal-d)}
.chip{display:inline-block;background:var(--lightest);color:var(--royal-d);font-size:.75rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;margin-right:.4rem}
.chip--m{background:#fbe3f4;color:var(--magenta-d)}

/* top bar */
.topbar{background:var(--royal-dd);color:#fff;font-size:.85rem}
.topbar__in{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-block:.35rem}
.topbar a{color:#dbe6ff;text-decoration:none}.topbar a:hover{color:#fff;text-decoration:underline}
.tbtn{display:inline-flex;align-items:center;gap:.35rem;background:var(--magenta);color:#fff;border:0;padding:.25rem .8rem;border-radius:6px;cursor:pointer;font:inherit;font-weight:600}
.tbtn:hover{background:var(--magenta-d)}
.lang{display:inline-flex;align-items:center;gap:.3rem;background:rgba(255,255,255,.12);padding:.15rem .5rem;border-radius:6px}
.lang select{background:transparent;color:#fff;border:0;font:inherit;max-width:9.5rem}
.lang select option{color:#000}

/* header */
.sbox{position:relative;margin-left:auto;display:flex;align-items:center;gap:.4rem;background:var(--grey);border:2px solid transparent;border-radius:999px;padding:.25rem .3rem .25rem .9rem;width:min(460px,100%);transition:.2s}
.sbox:focus-within{border-color:var(--sky);background:#fff;box-shadow:0 0 0 4px var(--lightest)}
.sbox input{flex:1;min-width:0;border:0;background:transparent;font:inherit;padding:.4rem;color:var(--text)}
.sbox input:focus{outline:0}
.sbox__mic{border:0;background:transparent;cursor:pointer;color:var(--royal);padding:.3rem;border-radius:50%}
.sbox__mic.is-live{background:var(--magenta);color:#fff;animation:pulse 1s infinite}
.sres{position:absolute;left:0;right:0;top:calc(100% + 8px);background:#fff;border-radius:var(--r);box-shadow:var(--shadow);list-style:none;margin:0;padding:.4rem;z-index:60;max-height:60vh;overflow:auto}
.sres a{display:flex;gap:.6rem;align-items:center;padding:.55rem .7rem;border-radius:10px;text-decoration:none;color:var(--text)}
.sres a:hover,.sres a.is-sel{background:var(--lightest)}
.burger{display:none;margin-left:auto;background:var(--royal);color:#fff;border:0;border-radius:10px;width:44px;height:44px;cursor:pointer}

/* multi-level nav */
.nav__list{display:flex;flex-wrap:wrap;list-style:none;margin:0 auto;padding:0}
.nav__item{position:relative}
.nav__row{display:flex;align-items:center}
.nav__link{display:block;color:#fff;text-decoration:none;padding:.85rem 1rem;font-weight:600;font-size:.92rem;text-transform:uppercase;letter-spacing:.2px}
.nav__link:hover,.nav__item:focus-within>.nav__row>.nav__link,.nav__item:hover>.nav__row>.nav__link{background:var(--magenta);color:#fff}
.nav__tog{display:none}
.nav__sub{display:none;position:absolute;left:0;top:100%;min-width:260px;max-width:340px;list-style:none;margin:0;padding:.4rem 0;background:#fff;border-top:3px solid var(--magenta);border-radius:0 0 var(--r) var(--r);box-shadow:var(--shadow);z-index:70}
.nav__sub .nav__link{color:var(--text);text-transform:none;font-weight:500;padding:.6rem 1.1rem;font-size:.92rem}
.nav__sub .nav__link:hover,.nav__sub .nav__item:hover>.nav__row>.nav__link{background:var(--lightest);color:var(--royal-d)}
.nav__sub .nav__sub{left:100%;top:-.4rem;border-top:0;border-left:3px solid var(--sky);border-radius:var(--r)}
.nav__sub .has-sub>.nav__row>.nav__link::after{content:"›";float:right;margin-left:.6rem;color:var(--magenta);font-weight:700}
.nav__item:hover>.nav__sub,.nav__item:focus-within>.nav__sub,.nav__item.is-open>.nav__sub{display:block}
.nav__item.depth-0:nth-last-child(-n+4)>.nav__sub{left:auto;right:0}
.nav__item.depth-0:nth-last-child(-n+4) .nav__sub .nav__sub{left:auto;right:100%}

/* hero */

/* ticker */
.ticker{background:var(--lightest);border-bottom:1px solid var(--light)}
.ticker__in{display:flex;align-items:center;gap:1rem;padding-block:.5rem}
.ticker__label{background:var(--magenta);color:#fff;font-weight:700;padding:.2rem .8rem;border-radius:999px;white-space:nowrap;font-size:.85rem}
.ticker__run{overflow:hidden;flex:1}
.ticker__move{display:inline-flex;gap:3rem;white-space:nowrap;animation:marq 60s linear infinite;padding-left:100%}
.ticker__run:hover .ticker__move{animation-play-state:paused}
.ticker a{text-decoration:none;font-weight:600;color:var(--royal-dd)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:-1px;padding-block:1.6rem}
.stat{background:#fff;border-radius:var(--r);padding:1.1rem;text-align:center;box-shadow:var(--shadow);border-bottom:4px solid var(--sky)}
.stat:nth-child(even){border-color:var(--magenta)}
.stat strong{display:block;font-size:2rem;color:var(--royal);line-height:1.1}
.stat span{color:var(--muted);font-size:.9rem}

/* sections */
.eyebrow{color:var(--magenta);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;margin:0 0 .3rem}
.eyebrow--light{color:var(--light)}
.h2{font-size:clamp(1.4rem,2.6vw,2.1rem);color:var(--royal-dd)}
.h2--light{color:#fff}
.lead{font-size:1.08rem}
.sect{padding-block:2.4rem}.sect__head{margin-bottom:1.2rem}
.band{background:#fff;padding-block:2.4rem}
.band--blue{background:linear-gradient(120deg,var(--royal-dd),var(--royal))}
.welcome{display:grid;grid-template-columns:260px 1fr;gap:2rem;align-items:center;padding-block:2rem}
.welcome__img{border-radius:var(--r);box-shadow:var(--shadow);width:100%;aspect-ratio:1/1;object-fit:cover;border:5px solid #fff}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.card-list{background:var(--grey);border-radius:var(--r);overflow:hidden;border-top:4px solid var(--royal)}
.card-list:nth-child(2){border-color:var(--magenta)}.card-list:nth-child(3){border-color:var(--sky)}
.card-list header{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.1rem;background:#fff}
.card-list h2{font-size:1.05rem;margin:0;display:flex;gap:.5rem;align-items:center;color:var(--royal-dd)}
.card-list header a{font-size:.85rem;font-weight:600}
.card-list ul{list-style:none;margin:0;padding:.3rem 1.1rem 1rem}
.card-list li{padding:.65rem 0;border-bottom:1px dashed var(--grey-d);display:flex;flex-direction:column;gap:.1rem}
.card-list li:last-child{border:0}
.card-list li a{color:var(--text);text-decoration:none;font-weight:500}
.card-list li a:hover{color:var(--magenta)}
.card-list time,.card-list small{color:var(--muted);font-size:.8rem}
.card-list li.ev{flex-direction:row;gap:.8rem;align-items:center}
.ev__d{flex:none;width:58px;text-align:center;background:var(--royal);color:#fff;border-radius:10px;padding:.3rem 0;font-size:.72rem;text-transform:uppercase;line-height:1.1;display:inline-flex;flex-direction:column}
.ev__d b{font-size:1.4rem}
.cards4{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.2rem}
.tile{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:.25s}
.tile:hover{transform:translateY(-4px)}
.tile img{aspect-ratio:16/10;width:100%;object-fit:cover}
.tile__b{padding:1rem}.tile__b h3{font-size:1.05rem;color:var(--royal-d)}.tile__b p{margin:0;color:var(--muted);font-size:.92rem}
.video{display:grid;grid-template-columns:1fr 1.4fr;gap:2rem;align-items:center}
.video__frame{aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.35);background:#000}
.video__frame iframe,.video__play{width:100%;height:100%;border:0}
.video__play{position:relative;padding:0;cursor:pointer;background:#000}
.video__play img{width:100%;height:100%;object-fit:cover;opacity:.85}
.video__play span{position:absolute;inset:0;margin:auto;width:76px;height:76px;border-radius:50%;background:var(--magenta);color:#fff;display:grid;place-items:center;font-size:1.8rem}
.scroller{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.8rem}
.person{flex:0 0 220px;scroll-snap-align:start;background:#fff;border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;text-align:center;padding-bottom:1rem}
.band .person{background:var(--grey)}
.person img{width:100%;aspect-ratio:1/1;object-fit:cover}
.person h3{font-size:1rem;margin:.7rem .8rem .2rem;color:var(--royal-d)}
.person p{font-size:.84rem;color:var(--muted);margin:0 .8rem}
.logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.9rem}
.logos img{background:#fff;border-radius:12px;padding:.8rem;height:80px;width:100%;object-fit:contain;box-shadow:var(--shadow)}

/* inner pages */
.pagehead{background:linear-gradient(120deg,var(--royal-dd),var(--royal) 60%,var(--magenta));color:#fff;padding-block:1.8rem 2rem;margin-bottom:1.6rem}
.pagehead h1{color:#fff;font-size:clamp(1.4rem,3vw,2.2rem);margin:.3rem 0 0}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.85rem}
.crumbs a{color:var(--light);text-decoration:none}.crumbs a:hover{color:#fff;text-decoration:underline}
.meta{display:flex;gap:1rem;flex-wrap:wrap;margin:.4rem 0 0;color:var(--light)}
.layout{display:grid;grid-template-columns:280px 1fr;gap:1.6rem;align-items:start;padding-bottom:2.5rem}
.side{background:#fff;border-radius:var(--r);padding:1rem;box-shadow:var(--shadow);position:sticky;top:130px}
.side h2{font-size:.95rem;text-transform:uppercase;letter-spacing:.08em;color:var(--magenta)}
.side ul{list-style:none;margin:0;padding:0}
.side li a{display:block;padding:.5rem .7rem;border-radius:8px;text-decoration:none;color:var(--text);font-size:.93rem}
.side li a:hover{background:var(--lightest)}
.side li a[aria-current]{background:var(--royal);color:#fff}
.content{background:#fff;border-radius:var(--r);padding:clamp(1rem,3vw,2rem);box-shadow:var(--shadow);min-width:0}
.content--full{max-width:980px;margin:0 auto 2.5rem;grid-column:1/-1}
.block+.block{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--grey-d)}
.rich{overflow-wrap:anywhere}
.rich img{max-width:100%;height:auto;border-radius:8px}
.rich table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;margin:1rem 0}
.rich td,.rich th{border:1px solid var(--grey-d);padding:.5rem .7rem}
.rich th{background:var(--lightest)}
.rich iframe{max-width:100%;aspect-ratio:16/9;height:auto;border:0}
.subcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem}
.subcard{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:1rem 1.1rem;background:var(--lightest);border-left:4px solid var(--royal);border-radius:10px;text-decoration:none;font-weight:600}
.subcard:hover{border-color:var(--magenta);background:#fff;box-shadow:var(--shadow)}
.docs{list-style:none;margin:1.2rem 0 0;padding:0;display:grid;gap:.5rem}
.docs a{display:flex;align-items:center;gap:.7rem;padding:.7rem 1rem;background:var(--grey);border-radius:10px;text-decoration:none}
.docs a:hover{background:var(--lightest)}.docs em{margin-left:auto;font-style:normal;font-size:.72rem;font-weight:700;background:var(--magenta);color:#fff;border-radius:6px;padding:.1rem .45rem}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;margin-top:1.2rem}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:10px}
.empty{color:var(--muted);text-align:center;padding:2rem}
.feed{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.7rem}
.feed li{display:flex;gap:1rem;background:#fff;border-radius:12px;padding:.9rem 1.1rem;box-shadow:var(--shadow);align-items:flex-start}
.feed time{flex:none;color:var(--royal);font-weight:700;min-width:96px;font-size:.88rem}
.feed a{font-weight:600;text-decoration:none}.feed p{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}
.tabs{display:flex;gap:.5rem;margin-bottom:1rem}
.tabs a{padding:.5rem 1.1rem;border-radius:999px;background:#fff;text-decoration:none;font-weight:600}
.tabs a.is-on{background:var(--royal);color:#fff}
.filter{display:flex;gap:.5rem;margin-bottom:1rem}
.filter input{flex:1;max-width:420px;padding:.6rem 1rem;border:1px solid var(--grey-d);border-radius:999px;font:inherit}
.evgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem}
.evcard{display:flex;gap:1rem;align-items:center;background:#fff;border-radius:12px;padding:1rem;box-shadow:var(--shadow);text-decoration:none;color:var(--text)}
.evcard:hover{box-shadow:0 8px 28px rgba(65,105,225,.18)}.evcard small{display:block;color:var(--muted)}
.pager{display:flex;justify-content:center;align-items:center;gap:1rem;margin:1.5rem 0 2.5rem}
.pager__b{padding:.5rem 1.1rem;border-radius:999px;background:var(--royal);color:#fff;text-decoration:none;font-weight:600}
.pager__b.is-off{background:var(--grey-d);color:var(--muted)}
.contact{display:grid;grid-template-columns:1fr 320px;gap:1.6rem;padding-bottom:2.5rem}
.form{background:#fff;border-radius:var(--r);padding:1.5rem;box-shadow:var(--shadow);display:grid;gap:1rem}
.form label{display:grid;gap:.3rem;font-weight:600;font-size:.92rem}
.form input,.form select,.form textarea{font:inherit;padding:.65rem .8rem;border:1px solid var(--grey-d);border-radius:10px;background:var(--grey)}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--royal);background:#fff;box-shadow:0 0 0 3px var(--lightest)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.hp{position:absolute;left:-5000px;height:0;overflow:hidden}
.alert{padding:.9rem 1.1rem;border-radius:10px;margin-bottom:1rem}
.alert--ok{background:#e6f7ee;color:#116b3a}.alert--err{background:#fde8f5;color:var(--magenta-d)}
.alert ul{margin:0;padding-left:1.1rem}
.oops{text-align:center;padding-block:4rem}.oops__c{font-size:5rem;font-weight:800;color:var(--magenta);margin:0;line-height:1}

/* footer */
.foot{background:var(--royal-dd);color:#cfd9ff;margin-top:2rem}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;padding-block:2.5rem}
.foot__h{color:#fff;font-size:1.05rem;border-bottom:2px solid var(--magenta);display:inline-block;padding-bottom:.25rem}
.foot a{color:#cfd9ff;text-decoration:none}.foot a:hover{color:#fff;text-decoration:underline}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.foot__contact li{display:flex;gap:.6rem;align-items:flex-start}
.foot__bar{background:rgba(0,0,0,.25);padding-block:.8rem;font-size:.85rem;text-align:center}
.totop{position:fixed;left:18px;bottom:18px;width:44px;height:44px;border-radius:50%;background:var(--royal);color:#fff;display:grid;place-items:center;z-index:40;box-shadow:var(--shadow)}
.totop .ic{transform:rotate(-90deg)}

/* accessibility panel */
.a11y{position:fixed;top:0;right:0;height:100%;width:min(380px,100%);background:#fff;z-index:200;box-shadow:-10px 0 40px rgba(0,0,0,.25);display:flex;flex-direction:column}
.a11y[hidden]{display:none}
.a11y__head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.1rem;background:var(--royal);color:#fff}
.a11y__head h2{margin:0;color:#fff;font-size:1.1rem;display:flex;gap:.5rem;align-items:center}
.a11y__body{padding:1rem;overflow:auto}
.a11y__size{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}
.a11y__size button{padding:.7rem;border:2px solid var(--royal);background:#fff;color:var(--royal);border-radius:10px;font:inherit;font-weight:800;cursor:pointer}
.a11y__size button:hover{background:var(--royal);color:#fff}
.a11y__grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.a11y__opt{display:flex;align-items:center;justify-content:center;gap:.4rem;text-align:center;padding:.8rem .5rem;border:2px solid var(--grey-d);background:var(--grey);border-radius:10px;font:inherit;font-weight:600;font-size:.88rem;color:var(--text);cursor:pointer}
.a11y__opt:hover{border-color:var(--sky)}
.a11y__opt[aria-pressed="true"]{background:var(--magenta);border-color:var(--magenta);color:#fff}
.a11y__reset{width:100%;justify-content:center;margin-top:1rem}
.readmask{position:fixed;left:0;right:0;height:90px;pointer-events:none;z-index:150;box-shadow:0 0 0 100vmax rgba(0,0,0,.65);top:0}

/* a11y modes on <html> */
html.a11y-contrast body{background:#000!important;color:#ff0!important}
html.a11y-contrast *:not(img):not(svg):not(path){background-color:#000!important;color:#ff0!important;border-color:#ff0!important;text-shadow:none!important;box-shadow:none!important}
html.a11y-contrast a{color:#0ff!important;text-decoration:underline!important}
html.a11y-invert{filter:invert(1) hue-rotate(180deg)}
html.a11y-invert img,html.a11y-invert video,html.a11y-invert iframe{filter:invert(1) hue-rotate(180deg)}
html.a11y-gray{filter:grayscale(1)}
html.a11y-invert.a11y-gray{filter:invert(1) hue-rotate(180deg) grayscale(1)}
html.a11y-links a{background:#fff3a3!important;color:#000!important;text-decoration:underline!important;outline:2px solid #000}
html.a11y-heads h1,html.a11y-heads h2,html.a11y-heads h3,html.a11y-heads h4{background:#d6f0ff!important;color:#000!important;outline:2px dashed var(--magenta);padding:.1em .3em}
html.a11y-readable body,html.a11y-readable *{font-family:Verdana,Arial,Helvetica,sans-serif!important}
html.a11y-dyslexia body,html.a11y-dyslexia *{font-family:"Comic Sans MS","Trebuchet MS",Verdana,sans-serif!important;letter-spacing:.04em;word-spacing:.12em}
html.a11y-spacing body{letter-spacing:.12em;word-spacing:.25em}
html.a11y-lineh body{line-height:2.1}
html.a11y-left body,html.a11y-left .rich *{text-align:left!important}
html.a11y-noanim *,html.a11y-noanim *::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-hideimg img,html.a11y-hideimg .hero__slide img{visibility:hidden}
html.a11y-cursor,html.a11y-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l16 9-7 2-3 7z' fill='%23000' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") 4 2,auto!important}

/* assistant */
.ai-fab{position:fixed;right:18px;bottom:18px;z-index:90;display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(120deg,var(--magenta),var(--royal));color:#fff;border:0;padding:.8rem 1.2rem;border-radius:999px;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 8px 28px rgba(65,105,225,.5)}
.ai-fab:hover{transform:translateY(-2px)}
.ai{position:fixed;right:18px;bottom:18px;width:min(380px,calc(100% - 36px));max-height:min(620px,calc(100vh - 36px));background:#fff;z-index:210;border-radius:18px;box-shadow:0 20px 60px rgba(27,47,122,.35);display:flex;flex-direction:column;overflow:hidden}
.ai[hidden]{display:none}
.ai__head{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;background:linear-gradient(120deg,var(--royal),var(--magenta));color:#fff}
.ai__head h2{margin:0;font-size:1rem;color:#fff;display:flex;gap:.5rem;align-items:center}
.ai__log{flex:1;overflow:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem;background:var(--grey);min-height:220px}
.ai__msg{max-width:88%;padding:.6rem .9rem;border-radius:14px;font-size:.93rem;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.ai__msg--me{align-self:flex-end;background:var(--royal);color:#fff}
.ai__msg a{display:block;padding:.35rem 0;border-bottom:1px solid var(--grey-d);text-decoration:none;font-weight:600}
.ai__msg a:last-child{border:0}.ai__msg small{color:var(--magenta);font-weight:700;margin-right:.3rem}
.ai__chips{display:flex;flex-wrap:wrap;gap:.4rem}
.ai__chips button{border:1px solid var(--sky);background:#fff;color:var(--royal-d);border-radius:999px;padding:.3rem .8rem;cursor:pointer;font:inherit;font-size:.85rem}
.ai__chips button:hover{background:var(--sky)}
.ai__form{display:flex;gap:.3rem;padding:.6rem;border-top:1px solid var(--grey-d);align-items:center}
.ai__form input{flex:1;border:1px solid var(--grey-d);border-radius:999px;padding:.55rem .9rem;font:inherit;min-width:0}

@keyframes fade{from{opacity:.2}to{opacity:1}}
@keyframes marq{to{transform:translateX(-100%)}}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(65,105,225,.25)}}

/* Google Translate chrome hidden (own UI is used) */
.goog-te-banner-frame,.skiptranslate>iframe,#goog-gt-tt,.goog-te-balloon-frame{display:none!important}
body{top:0!important}
.goog-text-highlight{background:none!important;box-shadow:none!important}

/* responsive */
@media (max-width:1100px){
  .nav__link{padding:.8rem .65rem;font-size:.84rem}
}
@media (max-width:980px){
  .trio,.layout,.contact,.video{grid-template-columns:1fr}
  .welcome{grid-template-columns:1fr}.welcome__img{max-width:220px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .foot__grid{grid-template-columns:1fr 1fr}
  .side{position:static}
  .burger{display:inline-grid;place-items:center}
  .nav{display:none}.nav.is-open{display:block;max-height:75vh;overflow:auto}
  .nav__list{flex-direction:column}
  .nav__row{justify-content:space-between}
  .nav__row .nav__link{flex:1}
  .nav__tog{display:grid;place-items:center;width:48px;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;align-self:stretch}
  .nav__item.is-open>.nav__row>.nav__tog .ic{transform:rotate(180deg)}
  .nav__sub,.nav__sub .nav__sub{position:static;display:none;box-shadow:none;border:0;border-radius:0;min-width:0;max-width:none;background:rgba(0,0,0,.18);padding:0 0 0 .8rem}
  .nav__item:hover>.nav__sub,.nav__item:focus-within>.nav__sub{display:none}
  .nav__item.is-open>.nav__sub{display:block}
  .nav__sub .nav__link{color:#fff}
  .nav__sub .nav__link:hover{background:var(--magenta);color:#fff}
  .nav__sub .nav__tog{color:#fff}
  .nav__sub .has-sub>.nav__row>.nav__link::after{display:none}
}
@media (max-width:560px){
  .foot__grid,.row2{grid-template-columns:1fr}
  .a11y__grid{grid-template-columns:1fr 1fr}
  .ai-fab span{display:none}
}
@media print{.topbar,.head,.nav,.foot,.ai-fab,.ai,.a11y,.totop{display:none!important}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* department pages */
.dept__top{width:100%;max-height:340px;object-fit:cover;border-radius:var(--r);margin-bottom:1.2rem}
.facgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem}
.fac{background:var(--grey);border-radius:var(--r);padding:1rem;text-align:center;display:grid;gap:.5rem;justify-items:center}
.fac img,.fac__ph{width:110px;height:110px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:var(--shadow)}
.fac__ph{display:grid;place-items:center;background:var(--light);color:var(--royal-d);font-size:2.4rem}
.fac h3{font-size:1rem;margin:0;color:var(--royal-d)}


.totop[hidden]{display:none}

/* ===== header (own design): slim utility strip -> identity + search -> sticky gradient menu ===== */
.topbar{background:var(--royal-dd);font-size:.8rem}
.topbar__in{display:flex;align-items:center;gap:1rem;padding-block:.3rem}
.topbar a{color:#dbe6ff}
.topbar__contact,.topbar__links{display:flex;gap:1.1rem;list-style:none;margin:0;padding:0;align-items:center}
.topbar__contact li{display:flex;gap:.4rem;align-items:center;color:#c9d7ff;white-space:nowrap}
.topbar__links{margin-left:auto}
.topbar__links li+li{border-left:1px solid rgba(255,255,255,.25);padding-left:1.1rem}
.topbar__tools{display:flex;align-items:center;gap:.5rem}
.tbtn--erp{background:var(--sky);color:var(--royal-dd)!important;text-decoration:none!important}
.tbtn--erp:hover{background:var(--light)}
.lang select{max-width:7.5rem}

.masthead{background:linear-gradient(105deg,#fff 0%,var(--lightest) 55%,var(--light) 130%);position:relative;overflow:hidden}
.masthead::after{content:"";position:absolute;right:-60px;top:-70px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(65,105,225,.16),transparent 70%);pointer-events:none}
.masthead__in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1rem;position:relative;z-index:1}
.ident{display:flex;align-items:center;gap:1rem;text-decoration:none;min-width:0}
.ident__crest{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 3px 6px rgba(27,47,122,.25))}
.ident__txt{display:grid;gap:.1rem}
.ident__txt strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.05;color:var(--royal-dd);letter-spacing:.01em;text-transform:uppercase}
.ident__txt em{font-style:normal;color:var(--magenta);font-weight:700;letter-spacing:.14em;font-size:.76rem;text-transform:uppercase}
.ident__tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.25rem}
.ident__tags b{background:#fff;border:1px solid var(--light);color:var(--royal-d);border-radius:999px;font-size:.7rem;padding:.05rem .6rem}
.ident__tags b:last-child{border-color:var(--magenta);color:var(--magenta-d)}
.masthead__right{display:grid;gap:.6rem;justify-items:end;flex:0 1 480px;min-width:0}
.masthead .sbox{margin:0;width:100%;background:#fff;box-shadow:var(--shadow)}
.cta{display:flex;gap:.5rem}
.btn--ghost{background:transparent;color:var(--royal-d);box-shadow:inset 0 0 0 2px var(--royal)}
.btn--ghost:hover{background:var(--royal);color:#fff}

.navbar{background:linear-gradient(90deg,var(--royal-dd),var(--royal) 55%,#5a4bd1);position:sticky;top:0;z-index:50;box-shadow:0 4px 16px rgba(27,47,122,.3);border-bottom:3px solid var(--magenta)}
.navbar .nav__list{flex-wrap:nowrap}
.navbar .nav__link{padding:.8rem .7rem;font-size:.83rem}
.navbar .nav__item.depth-0.has-sub>.nav__row>.nav__link::after{content:"";display:inline-block;margin-left:.4rem;border:4px solid transparent;border-top-color:currentColor;border-bottom:0;vertical-align:middle}
.totop[hidden]{display:none}
.hide-sm{display:flex}

@media (max-width:1180px){
  .topbar__contact{display:none}.topbar__links{margin-left:0;flex-wrap:wrap}
  .topbar__in{flex-wrap:wrap}.navbar .nav__list{flex-wrap:wrap}
}
@media (max-width:980px){
  .masthead__in{flex-wrap:wrap}
  .masthead__right{flex-basis:100%;justify-items:stretch;order:3}
  .cta{justify-content:stretch}.cta .btn{flex:1;justify-content:center}
  .navbar .nav__list{flex-wrap:nowrap}
  .ident__crest{width:56px;height:56px}
}
@media (max-width:560px){.topbar__links{display:none}.topbar__tools{width:100%;justify-content:space-between}}
.gt-hold{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}

/* fixed round accessibility button (bottom-left, stays while the page scrolls) */
.a11y-fab{position:fixed;left:18px;bottom:18px;z-index:120;width:56px;height:56px;border-radius:50%;border:3px solid #fff;background:var(--royal);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 20px rgba(27,47,122,.45),0 0 0 2px var(--royal);transition:.2s;padding:0}
.a11y-fab .ic{width:32px;height:32px;stroke-width:2.2}
.a11y-fab:hover{background:var(--magenta);box-shadow:0 6px 20px rgba(65,105,225,.45),0 0 0 2px var(--magenta);transform:scale(1.07)}
.totop{left:18px;bottom:88px}
.a11y{left:0;right:auto;box-shadow:10px 0 40px rgba(0,0,0,.25)}
@media print{.a11y-fab{display:none!important}}

/* ===== top bar: contact (left) | links (centre) | language + ERP (right) ===== */
.topbar__in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;width:100%;padding:.35rem clamp(1rem,3vw,2.5rem)}
.topbar__contact{justify-self:start}
.topbar__links{justify-self:center;margin:0;flex-wrap:wrap;justify-content:center}
.topbar__tools{justify-self:end}
.topbar__contact a{color:#c9d7ff;text-decoration:none}.topbar__contact a:hover{color:#fff}
@media (max-width:1180px){.topbar__in{grid-template-columns:1fr auto}.topbar__links{grid-column:1/-1;grid-row:2;padding-bottom:.2rem}.topbar__contact{display:flex}}
@media (max-width:560px){.topbar__links{display:flex}.topbar__in{grid-template-columns:1fr}.topbar__tools,.topbar__contact{justify-self:center}}

/* ===== header highlights (three cards) ===== */
.hl{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
.hl__card{display:flex;align-items:center;gap:.6rem;background:#fff;border-radius:14px;padding:.45rem .8rem .45rem .45rem;text-decoration:none;box-shadow:var(--shadow);border:1px solid transparent;transition:.2s;max-width:200px}
.hl__card:hover{transform:translateY(-3px);border-color:var(--magenta);box-shadow:0 10px 24px rgba(65,105,225,.2)}
.hl__ic{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;background:var(--royal)}
.hl__card--m .hl__ic{background:linear-gradient(135deg,var(--magenta),#e04fc2)}
.hl__card--r .hl__ic{background:linear-gradient(135deg,var(--royal),#6b8cff)}
.hl__card--s .hl__ic{background:linear-gradient(135deg,#2b9fd0,var(--sky))}
.hl__tx{display:grid;font-size:.76rem;font-weight:700;line-height:1.2;color:var(--royal-dd)}
.hl__tx small{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--magenta);font-weight:700}
.masthead__right{flex:0 1 560px}
@media (max-width:980px){.hl{justify-content:stretch}.hl__card{flex:1 1 150px;max-width:none}}
.masthead__right{flex:0 1 660px}
.hl{flex-wrap:nowrap}
.hl__card{flex:1 1 0;min-width:0;max-width:none;padding-right:.6rem}
.hl__tx{font-size:.72rem}
@media (max-width:980px){.masthead__right{flex:1 1 100%}.hl{flex-wrap:wrap}.hl__card{flex:1 1 150px}}
.hl__ic--img{width:auto;height:auto;background:none!important;border-radius:0}.hl__ic--img img{width:45px;height:48px;border-radius:9px;object-fit:cover;box-shadow:0 2px 8px rgba(27,47,122,.3)}

/* ===== masthead: left/right edges aligned with the top bar ===== */
.masthead .masthead__in{width:100%;max-width:none;margin:0;padding:1rem clamp(1rem,3vw,2.5rem)}
.ident{align-items:stretch;gap:1.1rem}
.ident__crest{width:auto;height:auto;aspect-ratio:1;align-self:stretch;min-height:96px;object-fit:contain}
.ident__txt{align-content:space-between;gap:.15rem}
.ident__txt strong{line-height:1}
.ident__tags{margin-top:.3rem;gap:.5rem}
.ident__tags b{font-size:.9rem;padding:.28rem 1rem;border-width:1.5px;font-weight:700}
.masthead__right{border-left:3px solid transparent;border-image:linear-gradient(180deg,transparent,var(--magenta) 30%,var(--royal) 70%,transparent) 1;padding-left:1.6rem;margin-left:auto}
@media (max-width:980px){
  .masthead__right{border-left:0;border-image:none;padding-left:0}
  .ident__crest{min-height:0;height:84px;width:84px;align-self:center}
}

/* ===================== smart navbar v2 ===================== */
.navbar{background:linear-gradient(90deg,var(--royal-dd),var(--royal) 55%,#5a4bd1)}
.navbar .wrap{width:100%;max-width:none;padding-inline:clamp(.5rem,1.6vw,2rem)}
.navbar .nav__list{justify-content:space-between;gap:0}
.navbar .nav__link{position:relative;padding:1.05rem clamp(.5rem,.9vw,1rem);font-size:clamp(.84rem,1.02vw,1.02rem);font-weight:700;letter-spacing:.01em;text-transform:uppercase;transition:background .2s}
.navbar .nav__link::before{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.45rem;height:3px;border-radius:3px;background:var(--sky);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.navbar .nav__link:hover,.navbar .nav__item:hover>.nav__row>.nav__link,.navbar .nav__item:focus-within>.nav__row>.nav__link,.navbar .nav__item.is-open>.nav__row>.nav__link{background:rgba(255,255,255,.14);color:#fff}
.navbar .nav__link:hover::before,.navbar .nav__item:hover>.nav__row>.nav__link::before,.navbar .nav__item:focus-within>.nav__row>.nav__link::before{transform:scaleX(1)}

/* dropdown panel: scrolls inside itself, never taller than the free screen height */
.navbar .nav__sub{width:max-content;min-width:290px;max-width:min(420px,calc(100vw - 24px));max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--royal) var(--lightest);padding:.5rem;background:var(--lightest);border:0;border-top:4px solid var(--magenta);border-radius:0 0 16px 16px;box-shadow:0 18px 40px rgba(27,47,122,.35);left:0;right:auto}
.navbar .nav__sub.is-right{left:auto;right:0}
.navbar .nav__sub::-webkit-scrollbar{width:8px}
.navbar .nav__sub::-webkit-scrollbar-track{background:var(--lightest)}
.navbar .nav__sub::-webkit-scrollbar-thumb{background:var(--royal);border-radius:8px}
.navbar .nav__sub .nav__item{position:static}
.navbar .nav__sub .nav__row{display:flex;align-items:stretch;border-radius:10px;overflow:hidden}
.navbar .nav__sub .nav__link{flex:1;color:var(--royal-dd);font-size:.95rem;font-weight:600;text-transform:none;letter-spacing:0;padding:.65rem .9rem;white-space:normal;line-height:1.3;border-radius:10px}
.navbar .nav__sub .nav__link::before,.navbar .nav__sub .has-sub>.nav__row>.nav__link::after{display:none}
.navbar .nav__sub .nav__link:hover,.navbar .nav__sub .nav__item:hover>.nav__row>.nav__link{background:linear-gradient(90deg,var(--royal),#5a7df0);color:#fff;box-shadow:inset 4px 0 0 var(--magenta)}
.navbar .nav__sub .nav__tog{display:grid;place-items:center;width:40px;flex:none;border:0;background:transparent;color:var(--magenta);cursor:pointer;border-radius:10px}
.navbar .nav__sub .nav__tog:hover{background:var(--magenta);color:#fff}
.navbar .nav__sub .nav__tog .ic{transition:transform .2s}
.navbar .nav__sub .is-open>.nav__row>.nav__tog .ic{transform:rotate(90deg)}
/* deeper levels expand inside the same scrolling box (accordion), never off-screen */
.navbar .nav__sub .nav__sub{position:static;display:none;width:auto;min-width:0;max-width:none;max-height:none;overflow:visible;margin:.15rem 0 .35rem .8rem;padding:.2rem 0 .2rem .5rem;background:transparent;border:0;border-left:2px solid var(--sky);border-radius:0;box-shadow:none}
.navbar .nav__sub .nav__item:hover>.nav__sub,.navbar .nav__sub .nav__item:focus-within>.nav__sub{display:none}
.navbar .nav__sub .nav__item.is-open>.nav__sub{display:block}
.navbar .nav__sub .nav__sub .nav__link{font-size:.9rem;font-weight:500;color:var(--text)}
.navbar .nav__sub .nav__sub .nav__sub .nav__link{font-size:.86rem}
.navbar .nav__sub .is-open>.nav__row>.nav__link{background:#fff;color:var(--royal-d)}
.navbar .nav__item.depth-0:hover>.nav__sub,.navbar .nav__item.depth-0:focus-within>.nav__sub,.navbar .nav__item.depth-0.is-open>.nav__sub{display:block;animation:navin .18s ease-out}
@keyframes navin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* smart "find in menu" box (added by JS to long dropdowns) */
.nav__find{position:sticky;top:-.5rem;z-index:2;margin:-.5rem -.5rem .4rem;padding:.6rem .6rem .5rem;background:var(--lightest);border-bottom:1px solid var(--light)}
.nav__find label{display:flex;align-items:center;gap:.5rem;background:#fff;border:2px solid var(--light);border-radius:999px;padding:.25rem .8rem;color:var(--magenta)}
.nav__find label:focus-within{border-color:var(--royal)}
.nav__find input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:.9rem;color:var(--text);padding:.2rem 0}
.nav__find input:focus{outline:0}
.nav__none{padding:.8rem;color:var(--muted);font-size:.9rem}

@media (max-width:980px){
  .navbar .wrap{padding-inline:0}
  .navbar .nav__link{font-size:1rem;padding:.9rem 1rem}
  .navbar .nav__link::before{display:none}
  .navbar .nav__sub{position:static;width:auto;max-width:none;min-width:0;max-height:55vh;border-radius:0;box-shadow:none;border-top:0;margin:0 .6rem .6rem;border-radius:12px;animation:none}
  .navbar .nav__item.depth-0:hover>.nav__sub,.navbar .nav__item.depth-0:focus-within>.nav__sub{display:none}
  .navbar .nav__item.depth-0.is-open>.nav__sub{display:block}
  .navbar .nav__item.depth-0>.nav__row>.nav__tog{display:grid}
  .navbar .nav__item.depth-0>.nav__row>.nav__link{color:#fff}
  .navbar .nav__sub .nav__sub .nav__link{color:var(--text)}
  .nav.is-open{max-height:calc(100dvh - 120px)}
}
.nav__item[hidden]{display:none!important}
@media (max-width:980px){.ident{flex:1;min-width:0}.burger{align-self:flex-start;margin-left:0}}@media (max-width:560px){.ident__tags b{font-size:.76rem;padding:.2rem .7rem}.ident__txt strong{font-size:1.25rem}.ident__crest{width:70px;height:70px}}

/* ===== desktop: sub-sub-links fly out to the right (or left) of the hovered link ===== */
@keyframes navin{from{opacity:0}to{opacity:1}}
@media (min-width:981px){
  .navbar .nav__sub .nav__sub{position:fixed;display:none;width:max-content;min-width:250px;max-width:min(440px,calc(100vw - 24px));max-height:calc(100vh - 16px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;margin:0;padding:.5rem;background:var(--lightest);border:0;border-left:4px solid var(--magenta);border-radius:14px;box-shadow:0 18px 44px rgba(27,47,122,.38);z-index:90;animation:navin .15s ease-out}
  .navbar .nav__sub .nav__item:hover>.nav__sub,
  .navbar .nav__sub .nav__item:focus-within>.nav__sub{display:block}
  .navbar .nav__sub .nav__item.is-open>.nav__sub{display:none}
  .navbar .nav__sub .nav__item.is-open:hover>.nav__sub{display:block}
  .navbar .nav__sub .nav__tog{display:none}
  .navbar .nav__sub .has-sub>.nav__row>.nav__link{display:flex;justify-content:space-between;align-items:center;gap:1rem}
  .navbar .nav__sub .has-sub>.nav__row>.nav__link::after{display:inline;content:"\203A";font-size:1.25rem;line-height:1;color:var(--magenta);font-weight:700}
  .navbar .nav__sub .has-sub:hover>.nav__row>.nav__link::after{color:#fff}
  .navbar .nav__sub .nav__sub .nav__link,.navbar .nav__sub .nav__sub .nav__sub .nav__link{font-size:.93rem;font-weight:600;color:var(--royal-dd)}
  .navbar .nav__sub .has-sub:hover>.nav__row>.nav__link{background:linear-gradient(90deg,var(--royal),#5a7df0);color:#fff;box-shadow:inset 4px 0 0 var(--magenta)}
  /* while filtering, matches are shown flat inside the box so none is hidden */
  .navbar .nav__sub.filtering .nav__sub{position:static;display:block;width:auto;min-width:0;max-width:none;max-height:none;overflow:visible;margin:.1rem 0 .3rem .8rem;padding:.1rem 0 .1rem .5rem;background:transparent;border:0;border-left:2px solid var(--sky);border-radius:0;box-shadow:none;animation:none}
  .navbar .nav__sub.filtering .has-sub>.nav__row>.nav__link::after{display:none}
}

/* ===== merged container look: the sub-sub column is part of the same box ===== */
@media (min-width:981px){
  .navbar .nav__sub .nav__sub{border:0;border-top:4px solid var(--magenta);border-left:1px solid var(--light);border-radius:0 0 16px 0;box-shadow:16px 18px 36px -10px rgba(27,47,122,.4)}
  .navbar .nav__sub .nav__sub.is-left{border-left:0;border-right:1px solid var(--light);border-radius:0 0 0 16px;box-shadow:-16px 18px 36px -10px rgba(27,47,122,.4)}
  .navbar .nav__sub:has(> .nav__item:hover > .nav__sub:not(.is-left)){border-bottom-right-radius:0}
  .navbar .nav__sub:has(> .nav__item:hover > .nav__sub.is-left){border-bottom-left-radius:0}
  .navbar .nav__sub .nav__sub .nav__link{padding-block:.6rem}
}

/* ===== v3: compact main links, icons, hover-intent flyouts, identical link styling at every level ===== */
.navbar .wrap{padding-inline:clamp(1rem,3vw,2.5rem)}
.navbar .nav__list{justify-content:flex-start;gap:.1rem}
.navbar .nav__link{padding:.95rem clamp(.4rem,.55vw,.7rem);font-size:clamp(.72rem,.8vw,.84rem);letter-spacing:.015em}
.nav__ic{margin-right:.4em;font-size:.95em;width:1.1em;text-align:center}
.navbar .nav__link::before{left:.5rem;right:.5rem}
.navbar .nav__sub .nav__ic{color:var(--magenta);font-size:.8rem;margin-right:.55rem;transition:color .15s}
@media (min-width:981px){
  .navbar .nav__sub .nav__item .nav__row .nav__link{font-size:.95rem;font-weight:600;color:var(--royal-dd);padding:.65rem .9rem;text-transform:none;letter-spacing:0}
  .navbar .nav__sub .nav__item .nav__row .nav__link:hover,
  .navbar .nav__sub .nav__item:hover>.nav__row>.nav__link,
  .navbar .nav__sub .nav__item.fly-open>.nav__row>.nav__link{background:linear-gradient(90deg,var(--royal),#5a7df0);color:#fff;box-shadow:inset 4px 0 0 var(--magenta)}
  .navbar .nav__sub .nav__item .nav__row .nav__link:hover .nav__ic,
  .navbar .nav__sub .nav__item:hover>.nav__row>.nav__link .nav__ic,
  .navbar .nav__sub .nav__item.fly-open>.nav__row>.nav__link .nav__ic{color:#fff}
  .navbar .nav__sub .has-sub:hover>.nav__row>.nav__link::after,.navbar .nav__sub .has-sub.fly-open>.nav__row>.nav__link::after{color:#fff}
  /* flyouts are controlled by JS hover-intent (class fly-open), not by raw :hover */
  .navbar .nav__sub .nav__item:hover>.nav__sub,.navbar .nav__sub .nav__item:focus-within>.nav__sub{display:none}
  .navbar .nav__sub .nav__item.fly-open>.nav__sub{display:block}
  .navbar .nav__sub.filtering .nav__item>.nav__sub{display:block}
}

/* v3b: ONE link style for every dropdown level (leaf links and links that have children) */
.navbar .nav__link{font-size:clamp(.76rem,.9vw,.88rem)}
@media (min-width:981px){
  .navbar .nav .nav__sub .nav__item .nav__link{font-size:.95rem;font-weight:600;color:var(--royal-dd);padding:.65rem .9rem;text-transform:none;letter-spacing:0;line-height:1.3;background:transparent;box-shadow:none}
  .navbar .nav .nav__sub .nav__item>.nav__link:hover,
  .navbar .nav .nav__sub .nav__item:hover>.nav__link,
  .navbar .nav .nav__sub .nav__item:hover>.nav__row>.nav__link,
  .navbar .nav .nav__sub .nav__item.fly-open>.nav__row>.nav__link{background:linear-gradient(90deg,var(--royal),#5a7df0);color:#fff;box-shadow:inset 4px 0 0 var(--magenta)}
  .navbar .nav .nav__sub .nav__item>.nav__link:hover .nav__ic,
  .navbar .nav .nav__sub .nav__item:hover>.nav__link .nav__ic,
  .navbar .nav .nav__sub .nav__item:hover>.nav__row>.nav__link .nav__ic,
  .navbar .nav .nav__sub .nav__item.fly-open>.nav__row>.nav__link .nav__ic{color:#fff}
}
@media (min-width:981px){.navbar .nav__sub .has-sub>.nav__row>.nav__link{justify-content:flex-start;align-items:center;gap:0}.navbar .nav__sub .has-sub>.nav__row>.nav__link::after{margin-left:auto;padding-left:1rem}}

/* ===================== navbar v4: clean white bar, centred, light-weight type ===================== */
.navbar{background:#fff;border-bottom:3px solid transparent;border-image:linear-gradient(90deg,var(--royal),var(--sky) 50%,var(--magenta)) 1;box-shadow:0 8px 20px rgba(27,47,122,.12)}
.navbar .nav__list{justify-content:center;gap:.15rem}
.navbar .nav__list>.nav__item>.nav__link,
.navbar .nav__list>.nav__item>.nav__row>.nav__link{color:var(--royal-dd);font-weight:500;letter-spacing:.05em;font-size:clamp(.76rem,.88vw,.86rem);background:transparent;padding:.95rem clamp(.45rem,.7vw,.85rem)}
.navbar .nav__list>.nav__item>.nav__link .nav__ic,
.navbar .nav__list>.nav__item>.nav__row>.nav__link .nav__ic{color:var(--royal);transition:color .2s}
.navbar .nav__list>.nav__item>.nav__link::before,
.navbar .nav__list>.nav__item>.nav__row>.nav__link::before{background:var(--magenta);bottom:.3rem;height:3px}
.navbar .nav__list>.nav__item:hover>.nav__link,
.navbar .nav__list>.nav__item:hover>.nav__row>.nav__link,
.navbar .nav__list>.nav__item:focus-within>.nav__row>.nav__link,
.navbar .nav__list>.nav__item.is-open>.nav__row>.nav__link{background:var(--lightest);color:var(--magenta)}
.navbar .nav__list>.nav__item:hover>.nav__link .nav__ic,
.navbar .nav__list>.nav__item:hover>.nav__row>.nav__link .nav__ic,
.navbar .nav__list>.nav__item:focus-within>.nav__row>.nav__link .nav__ic{color:var(--magenta)}
.navbar .nav__item.depth-0.has-sub>.nav__row>.nav__link::after{border-top-color:var(--magenta)}

/* dropdown panels: white card, Magenta top line, Royal Blue text, Royal Blue gradient on hover */
.navbar .nav__sub{background:#fff;border-top:3px solid var(--magenta);box-shadow:0 20px 44px rgba(27,47,122,.28);scrollbar-color:var(--sky) #fff}
.navbar .nav__sub::-webkit-scrollbar-track{background:#fff}
.navbar .nav__sub::-webkit-scrollbar-thumb{background:var(--sky)}
.nav__find{background:#fff;border-bottom-color:var(--lightest)}
.nav__find label{background:var(--lightest);border-color:transparent}
.nav__find label:focus-within{border-color:var(--royal)}
@media (min-width:981px){
  .navbar .nav__sub .nav__sub{background:#fff;border-top:3px solid var(--magenta);border-left:1px solid var(--lightest)}
  .navbar .nav__sub .nav__sub.is-left{border-left:0;border-right:1px solid var(--lightest)}
  .navbar .nav .nav__sub .nav__item .nav__link{font-weight:500;color:var(--royal-dd)}
  .navbar .nav .nav__sub .nav__item+.nav__item{border-top:1px solid #f0f5fa}
}

@media (max-width:980px){
  .navbar .nav__list{justify-content:flex-start}
  .navbar .nav__item.depth-0>.nav__row>.nav__link,.navbar .nav__list>.nav__item>.nav__link{color:var(--royal-dd);font-size:.95rem;border-bottom:1px solid var(--lightest)}
  .navbar .nav__tog{background:var(--lightest);color:var(--magenta)}
  .navbar .nav__sub{background:var(--lightest)}
  .navbar .nav__sub .nav__link{color:var(--royal-dd)}
}

/* ============ navbar v5: Light Grey -> Light Blue bar, colour-coded icon chips, Royal->Magenta hover pill ============ */
.navbar{background:linear-gradient(180deg,#fff 0%,var(--lightest) 55%,var(--light) 160%);border-top:1px solid var(--grey-d);border-bottom:3px solid transparent;border-image:linear-gradient(90deg,var(--royal),var(--sky) 45%,var(--magenta)) 1;box-shadow:0 8px 22px rgba(27,47,122,.14)}
.navbar .nav__list{gap:.2rem;padding-block:.3rem}
.navbar .nav__list>.nav__item>.nav__link,
.navbar .nav__list>.nav__item>.nav__row>.nav__link{display:flex;align-items:center;border-radius:999px;padding:.5rem .85rem .5rem .5rem;color:var(--royal-dd);font-weight:600;letter-spacing:.04em;transition:background .2s,color .2s,box-shadow .2s}
.navbar .nav__list>.nav__item>.nav__link::before,
.navbar .nav__list>.nav__item>.nav__row>.nav__link::before{display:none}
/* icon chips: one theme colour per link */
.navbar .nav__list>.nav__item>.nav__link .nav__ic,
.navbar .nav__list>.nav__item>.nav__row>.nav__link .nav__ic{display:inline-grid;place-items:center;width:1.95rem;height:1.95rem;border-radius:50%;font-size:.8rem;margin-right:.5rem;width:1.95rem;transition:background .2s,color .2s}
.navbar .nav__list>.nav__item:nth-child(4n+1) .nav__ic{background:var(--royal);color:#fff}
.navbar .nav__list>.nav__item:nth-child(4n+2) .nav__ic{background:var(--magenta);color:#fff}
.navbar .nav__list>.nav__item:nth-child(4n+3) .nav__ic{background:var(--sky);color:var(--royal-dd)}
.navbar .nav__list>.nav__item:nth-child(4n) .nav__ic{background:var(--light);color:var(--royal-d)}
/* hover / open: Royal Blue -> Magenta pill, white text, white chip */
.navbar .nav__list>.nav__item:hover>.nav__link,
.navbar .nav__list>.nav__item:hover>.nav__row>.nav__link,
.navbar .nav__list>.nav__item:focus-within>.nav__row>.nav__link,
.navbar .nav__list>.nav__item.is-open>.nav__row>.nav__link{background:linear-gradient(90deg,var(--royal),var(--magenta));color:#fff;box-shadow:0 6px 16px rgba(65,105,225,.35)}
.navbar .nav__list>.nav__item:hover .nav__ic,
.navbar .nav__list>.nav__item:focus-within>.nav__row .nav__ic{}
.navbar .nav__list>.nav__item:hover>.nav__link .nav__ic,
.navbar .nav__list>.nav__item:hover>.nav__row>.nav__link .nav__ic,
.navbar .nav__list>.nav__item:focus-within>.nav__row>.nav__link .nav__ic{background:#fff;color:var(--magenta)}
.navbar .nav__item.depth-0.has-sub>.nav__row>.nav__link::after{border-top-color:currentColor;margin-left:.45rem}

/* dropdown: Light Blue card, Royal->Magenta top line, hover = Royal -> Magenta like the main pill */
.navbar .nav__sub{background:linear-gradient(180deg,#fff,var(--lightest));border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--royal),var(--sky) 50%,var(--magenta)) 1;border-radius:0 0 16px 16px}
.nav__find{background:var(--lightest)}
.nav__find label{background:#fff;border-color:var(--light)}
@media (min-width:981px){
  .navbar .nav__sub .nav__sub{background:linear-gradient(180deg,#fff,var(--grey));border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--sky),var(--magenta)) 1;border-left:1px solid var(--light)}
  .navbar .nav__sub .nav__sub.is-left{border-left:0;border-right:1px solid var(--light)}
  .navbar .nav .nav__sub .nav__item+.nav__item{border-top:1px solid rgba(135,206,235,.35)}
  .navbar .nav .nav__sub .nav__item>.nav__link:hover,
  .navbar .nav .nav__sub .nav__item:hover>.nav__link,
  .navbar .nav .nav__sub .nav__item:hover>.nav__row>.nav__link,
  .navbar .nav .nav__sub .nav__item.fly-open>.nav__row>.nav__link{background:linear-gradient(90deg,var(--royal),var(--magenta));color:#fff;box-shadow:none}
  .navbar .nav .nav__sub .nav__item .nav__ic{color:var(--magenta)}
  .navbar .nav .nav__sub .nav__item>.nav__link:hover .nav__ic,
  .navbar .nav .nav__sub .nav__item:hover>.nav__link .nav__ic,
  .navbar .nav .nav__sub .nav__item:hover>.nav__row>.nav__link .nav__ic,
  .navbar .nav .nav__sub .nav__item.fly-open>.nav__row>.nav__link .nav__ic{color:#fff}
}
@media (max-width:980px){
  .navbar .nav__list>.nav__item>.nav__link,.navbar .nav__list>.nav__item>.nav__row>.nav__link{border-radius:12px}
  .navbar .nav__sub{background:var(--lightest)}
}

/* v5 fixes: compact so all links fit, chips only on main links, readable glyph colours */
.navbar .nav__list{flex-wrap:wrap;gap:.1rem}
.navbar .nav__list>.nav__item>.nav__link,
.navbar .nav__list>.nav__item>.nav__row>.nav__link{white-space:nowrap;padding:.32rem .65rem .32rem .32rem;font-size:clamp(.7rem,.8vw,.8rem);letter-spacing:.02em}
.navbar .nav__list>.nav__item>.nav__link .nav__ic,
.navbar .nav__list>.nav__item>.nav__row>.nav__link .nav__ic{width:1.7rem;height:1.7rem;font-size:.72rem;margin-right:.42rem}
.navbar .nav__list>.nav__item:nth-child(4n+1)>.nav__link .nav__ic,.navbar .nav__list>.nav__item:nth-child(4n+1)>.nav__row>.nav__link .nav__ic{background:var(--royal);color:#fff}
.navbar .nav__list>.nav__item:nth-child(4n+2)>.nav__link .nav__ic,.navbar .nav__list>.nav__item:nth-child(4n+2)>.nav__row>.nav__link .nav__ic{background:var(--magenta);color:#fff}
.navbar .nav__list>.nav__item:nth-child(4n+3)>.nav__link .nav__ic,.navbar .nav__list>.nav__item:nth-child(4n+3)>.nav__row>.nav__link .nav__ic{background:var(--sky);color:var(--royal-dd)}
.navbar .nav__list>.nav__item:nth-child(4n)>.nav__link .nav__ic,.navbar .nav__list>.nav__item:nth-child(4n)>.nav__row>.nav__link .nav__ic{background:var(--light);color:var(--royal-d)}
.navbar .nav__list>.nav__item:hover>.nav__link .nav__ic,
.navbar .nav__list>.nav__item:hover>.nav__row>.nav__link .nav__ic,
.navbar .nav__list>.nav__item:focus-within>.nav__row>.nav__link .nav__ic,
.navbar .nav__list>.nav__item.is-open>.nav__row>.nav__link .nav__ic{background:#fff;color:var(--magenta)}
/* dropdown icons stay plain glyphs (no chip) */
.navbar .nav__sub .nav__ic{display:inline-block!important;width:1.1em!important;height:auto!important;background:none!important;border-radius:0;margin-right:.55rem;font-size:.8rem}

/* ============ navbar v6: deep Royal Blue bar so it stands out from the light header ============ */
.navbar{background:linear-gradient(90deg,#16276b 0%,var(--royal-dd) 18%,var(--royal) 60%,#3f7fe0 100%);border-top:0;border-bottom:4px solid transparent;border-image:linear-gradient(90deg,var(--magenta),var(--sky) 50%,var(--magenta)) 1;box-shadow:0 10px 24px rgba(22,39,107,.35)}
.navbar .nav__list>.nav__item>.nav__link,
.navbar .nav__list>.nav__item>.nav__row>.nav__link{color:#fff;font-weight:500}
.navbar .nav__list>.nav__item:nth-child(4n+1)>.nav__link .nav__ic,.navbar .nav__list>.nav__item:nth-child(4n+1)>.nav__row>.nav__link .nav__ic{background:var(--magenta);color:#fff}
.navbar .nav__list>.nav__item:nth-child(4n+2)>.nav__link .nav__ic,.navbar .nav__list>.nav__item:nth-child(4n+2)>.nav__row>.nav__link .nav__ic{background:var(--sky);color:var(--royal-dd)}
.navbar .nav__list>.nav__item:nth-child(4n+3)>.nav__link .nav__ic,.navbar .nav__list>.nav__item:nth-child(4n+3)>.nav__row>.nav__link .nav__ic{background:#fff;color:var(--royal)}
.navbar .nav__list>.nav__item:nth-child(4n)>.nav__link .nav__ic,.navbar .nav__list>.nav__item:nth-child(4n)>.nav__row>.nav__link .nav__ic{background:var(--light);color:var(--royal-dd)}
.navbar .nav__list>.nav__item:hover>.nav__link,
.navbar .nav__list>.nav__item:hover>.nav__row>.nav__link,
.navbar .nav__list>.nav__item:focus-within>.nav__row>.nav__link,
.navbar .nav__list>.nav__item.is-open>.nav__row>.nav__link{background:linear-gradient(90deg,#e23bb8,var(--magenta));color:#fff;box-shadow:0 6px 16px rgba(0,0,0,.3)}
@media (max-width:980px){
  .navbar .nav__item.depth-0>.nav__row>.nav__link,.navbar .nav__list>.nav__item>.nav__link{color:#fff;border-bottom:1px solid rgba(255,255,255,.14)}
  .navbar .nav__tog{background:rgba(255,255,255,.14);color:#fff}
}
.navbar .nav__list>.nav__item.nav__item:hover>.nav__link .nav__ic,.navbar .nav__list>.nav__item.nav__item:hover>.nav__row>.nav__link .nav__ic,.navbar .nav__list>.nav__item.nav__item:focus-within>.nav__row>.nav__link .nav__ic,.navbar .nav__list>.nav__item.nav__item.is-open>.nav__row>.nav__link .nav__ic{background:#fff;color:var(--magenta)}

/* ===== alumni pages ===== */
.altabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.altabs a{padding:.4rem 1rem;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;text-decoration:none;font-weight:600;font-size:.88rem}
.altabs a:hover{background:rgba(255,255,255,.3)}.altabs a.is-on{background:#fff;color:var(--royal-d)}
.grid2,.grid3,.grid4{display:grid;gap:1rem}
.grid2{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(4,1fr)}
.span2{grid-column:span 2}
.alform{background:transparent;box-shadow:none;padding:0}
.fsec{background:var(--grey);border-radius:var(--r);padding:1.2rem;border-left:5px solid var(--royal);display:grid;gap:1rem}
.fsec:nth-of-type(even){border-color:var(--magenta)}
.fsec h2{font-size:1.1rem;margin:0;color:var(--royal-dd)}
.yn{border:0;margin:0;padding:0;display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.yn legend{float:left;margin-right:1rem;font-weight:600;padding:0}
.yn__opt{display:inline-flex!important;grid-template-columns:none;gap:.4rem;align-items:center;font-weight:500}
.check{display:flex!important;gap:.5rem;align-items:center;font-weight:500!important}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.4rem}
.hint,.muted{color:var(--muted);font-size:.88rem;margin:0}
.form small{font-weight:400;color:var(--muted)}
[hidden]{display:none!important}
.tablewrap{overflow-x:auto}
.rtable{width:100%;border-collapse:collapse}.rtable th,.rtable td{padding:.6rem .8rem;border-bottom:1px solid var(--grey-d);text-align:left;white-space:nowrap}
.rtable th{background:var(--lightest);color:var(--royal-dd)}
.receipt__top{display:flex;gap:1rem;align-items:center;border-bottom:3px solid var(--magenta);padding-bottom:1rem;margin-bottom:1rem}
.receipt__top h2{margin:0}.receipt__top p{margin:0;color:var(--muted)}.receipt__top .chip{margin-left:auto;font-size:1rem}
.receipt__grid{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.5rem;margin:1rem 0}
.receipt__grid dt{font-weight:700;color:var(--royal-dd)}.receipt__grid dd{margin:0}
@media (max-width:980px){.grid3,.grid4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid2,.grid3,.grid4{grid-template-columns:1fr}.span2{grid-column:auto}}
@media print{.pagehead,.altabs{display:none!important}.receipt{box-shadow:none}}
@media (min-width:981px) and (max-width:1400px){.navbar .nav__list>.nav__item>.nav__link,.navbar .nav__list>.nav__item>.nav__row>.nav__link{padding:.28rem .45rem .28rem .28rem;font-size:.68rem}.navbar .nav__list>.nav__item>.nav__link .nav__ic,.navbar .nav__list>.nav__item>.nav__row>.nav__link .nav__ic{width:1.5rem;height:1.5rem;font-size:.66rem;margin-right:.3rem}.navbar .nav__item.depth-0.has-sub>.nav__row>.nav__link::after{margin-left:.25rem}}

/* ===================== hero carousel: cross-fade + slow zoom + staged captions ===================== */
.hero{position:relative;background:var(--royal-dd);overflow:hidden;isolation:isolate;--hero-ms:6500ms}
.hero__stage{position:relative;height:clamp(320px,50vw,640px)}
.hs{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity 1.3s ease,visibility 0s linear 1.3s;overflow:hidden}
.hs.is-on{opacity:1;visibility:visible;z-index:2;transition:opacity 1.3s ease,visibility 0s}
.hs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.hs.is-on.hs--a img{animation:kb-a 12s ease-out forwards}
.hs.is-on.hs--b img{animation:kb-b 12s ease-out forwards}
@keyframes kb-a{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.13) translate(-1.5%,-1%)}}
@keyframes kb-b{from{transform:scale(1.13) translate(1.5%,1%)}to{transform:scale(1.02) translate(0,0)}}
.hs__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,39,107,.88) 0%,rgba(22,39,107,.5) 38%,rgba(22,39,107,0) 72%),linear-gradient(0deg,rgba(65,105,225,.38) 0%,rgba(65,105,225,0) 38%)}
.hs--plain,.hs:not(:has(img)){background:linear-gradient(120deg,var(--royal-dd),var(--royal) 55%,var(--magenta))}
.hs__cap{position:absolute;left:clamp(1rem,3vw,2.5rem);bottom:clamp(3.2rem,8vw,5.5rem);max-width:min(640px,calc(100% - 2rem));color:#fff;display:grid;gap:.7rem;justify-items:start}
.hs__tag{display:inline-block;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:.25rem .9rem;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.hs__title{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.5rem,3.8vw,3rem);line-height:1.12;font-weight:700;text-shadow:0 3px 18px rgba(0,0,0,.45)}
.hs__text{margin:0;font-size:clamp(.95rem,1.4vw,1.15rem);max-width:52ch;color:#eef3ff;text-shadow:0 2px 10px rgba(0,0,0,.4)}
.hs__line{display:block;width:84px;height:5px;border-radius:5px;background:linear-gradient(90deg,var(--magenta),var(--sky));transform-origin:left}
.hs.is-on .hs__cap>*{animation:hs-rise .9s cubic-bezier(.2,.7,.2,1) both}
.hs.is-on .hs__tag{animation-delay:.35s}.hs.is-on .hs__title{animation-delay:.5s}.hs.is-on .hs__text{animation-delay:.68s}
.hs.is-on .hs__line{animation:hs-line .9s .85s cubic-bezier(.2,.7,.2,1) both}
@keyframes hs-rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes hs-line{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}

.hero__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(22,39,107,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;cursor:pointer;display:grid;place-items:center;opacity:.0;transition:.25s}
.hero:hover .hero__arrow,.hero:focus-within .hero__arrow{opacity:1}
.hero__arrow:hover{background:var(--magenta);border-color:var(--magenta);transform:translateY(-50%) scale(1.08)}
.hero__arrow--prev{left:clamp(.6rem,2vw,1.6rem)}.hero__arrow--next{right:clamp(.6rem,2vw,1.6rem)}
.hero__bar{position:absolute;z-index:5;left:0;right:0;bottom:0;display:flex;align-items:center;gap:1.2rem;padding:.9rem clamp(1rem,3vw,2.5rem);background:linear-gradient(0deg,rgba(22,39,107,.78),transparent)}
.hero__count{color:#fff;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:.4rem}
.hero__count b{font-size:1.6rem;font-family:Georgia,serif}.hero__count span{opacity:.75;font-size:.9rem}
.hero__dots{display:flex;gap:.5rem;flex:1;max-width:520px}
.hero__dots button{flex:1;height:26px;padding:0;border:0;background:transparent;cursor:pointer;position:relative}
.hero__dots button::before{content:"";position:absolute;left:0;right:0;top:11px;height:4px;border-radius:4px;background:rgba(255,255,255,.35)}
.hero__dots button i{position:absolute;left:0;top:11px;height:4px;width:0;border-radius:4px;background:linear-gradient(90deg,var(--sky),var(--magenta))}
.hero__dots button.is-on i{width:100%}
.hero.is-running .hero__dots button.is-on i{width:0;animation:hero-fill var(--hero-ms) linear forwards}
@keyframes hero-fill{to{width:100%}}
.hero__dots button:hover::before{background:rgba(255,255,255,.6)}
.hero__pause{margin-left:auto;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.12);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px}
.hero__pause span{width:4px;height:14px;background:#fff;border-radius:2px}
.hero__pause[aria-pressed="true"] span:first-child{width:0;height:0;background:none;border-left:11px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent;border-radius:0}
.hero__pause[aria-pressed="true"] span:last-child{display:none}
.hero__pause:hover{background:var(--magenta);border-color:var(--magenta)}
html.a11y-noanim .hs.is-on img,html.a11y-noanim .hs.is-on .hs__cap>*{animation:none!important}
@media (prefers-reduced-motion:reduce){.hs.is-on img{animation:none}.hs.is-on .hs__cap>*,.hs.is-on .hs__line{animation:none}}
@media (max-width:700px){.hero__arrow{display:none}.hs__text{display:none}.hero__count{display:none}.hero__bar{padding-block:.6rem}}
.hero__stage{height:clamp(340px,calc(100vh - 250px),640px);height:clamp(340px,calc(100dvh - 250px),640px)}
.hero__bar{padding-left:5.6rem}@media (max-width:700px){.hero__bar{padding-left:5rem}}

/* ===== hero v2: caption-free, true dissolve (no pop-in) ===== */
.hs{z-index:0;transition:opacity 1.8s ease-in-out,visibility 0s linear 1.8s}
.hs.is-on{z-index:2;opacity:1;visibility:visible;transition:opacity 1.8s ease-in-out,visibility 0s}
.hs.is-leaving{z-index:1;opacity:1;visibility:visible;transition:none}
.hs.is-leaving.hs--a img{animation:kb-a 12s ease-out forwards}
.hs.is-leaving.hs--b img{animation:kb-b 12s ease-out forwards}
.hs__shade{background:linear-gradient(0deg,rgba(22,39,107,.62) 0%,rgba(22,39,107,0) 34%),linear-gradient(135deg,rgba(65,105,225,.18),rgba(65,105,225,.14))}
.hs--b img{transform-origin:70% 40%}.hs--a img{transform-origin:30% 55%}

/* home sections up to "Life at KMC": same left/right edges as the top bar and header (logo ... ERP Login) */
.wrap.wrap--wide{width:100%;max-width:none;margin-inline:0;padding-inline:clamp(1rem,3vw,2.5rem)}
.ticker__in.wrap--wide{gap:1.2rem}
.cards4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}

/* ---- Quick access: AI-style tilted icon tiles ---- */
@property --qa{syntax:"<angle>";inherits:false;initial-value:0deg}
.quick{padding-block:2.6rem;background:radial-gradient(900px 300px at 15% 0,rgba(135,206,235,.35),transparent 70%),radial-gradient(700px 280px at 90% 100%,rgba(65,105,225,.10),transparent 70%),var(--lightest)}
.quick__head{text-align:center}
.quick__head .eyebrow{display:inline-flex;align-items:center;gap:.4rem}
.quick__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.1rem;margin-top:1.4rem}
.qk{position:relative;display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;border-radius:var(--r);text-decoration:none;color:var(--ink);font-weight:700;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);isolation:isolate;overflow:hidden;box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s;animation:qk-in .6s both;animation-delay:calc(var(--i)*60ms)}
.qk::before{content:"";position:absolute;inset:0;z-index:-2;padding:2px;border-radius:inherit;background:conic-gradient(from var(--qa),var(--royal),var(--sky),var(--magenta),var(--royal));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.35;transition:opacity .3s;animation:qk-spin 6s linear infinite}
.qk::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;z-index:-1;background:linear-gradient(100deg,transparent,rgba(255,255,255,.85),transparent);transform:skewX(-20deg);transition:left .7s}
.qk:hover{transform:translateY(-6px);box-shadow:0 14px 34px rgba(65,105,225,.28);color:var(--ink)}
.qk:hover::before{opacity:1}.qk:hover::after{left:130%}
.qk__ico{flex:none;width:3.4rem;height:3.4rem;display:grid;place-items:center}
.qk__orb{width:100%;height:100%;display:grid;place-items:center;border-radius:16px;color:#fff;font-size:1.45rem;background:linear-gradient(135deg,var(--royal),var(--magenta));box-shadow:0 8px 18px rgba(65,105,225,.38),inset 0 1px 0 rgba(255,255,255,.4);transform:rotate(-9deg);transition:transform .45s cubic-bezier(.3,1.6,.5,1);animation:qk-glow 3.2s ease-in-out infinite;animation-delay:calc(var(--i)*-.4s)}
.qk:nth-child(even) .qk__orb{background:linear-gradient(135deg,var(--royal-d),var(--sky));transform:rotate(9deg)}
.qk:hover .qk__orb{transform:rotate(0) scale(1.12)}
.qk:hover .qk__orb .ic{animation:qk-pop .5s}
.qk__t{flex:1;line-height:1.25;font-size:.95rem}
.qk__go{color:var(--magenta);opacity:0;transform:translateX(-6px);transition:.3s}
.qk:hover .qk__go{opacity:1;transform:none}
@keyframes qk-spin{to{--qa:360deg}}
@keyframes qk-glow{50%{box-shadow:0 8px 26px rgba(65,105,225,.45),inset 0 1px 0 rgba(255,255,255,.4)}}
@keyframes qk-pop{40%{transform:scale(1.35) rotate(8deg)}}
@keyframes qk-in{from{opacity:0;transform:translateY(18px)}}
@media (max-width:520px){.quick__grid{grid-template-columns:1fr 1fr;gap:.7rem}.qk{flex-direction:column;text-align:center;padding:1rem .6rem}.qk__go{display:none}}

/* ---- Principal's desk: magenta aurora band ---- */
.pd{position:relative;overflow:hidden;padding-block:3.2rem;color:var(--text);background:radial-gradient(700px 360px at 8% 10%,rgba(125,139,176,0.14),transparent 70%),radial-gradient(600px 400px at 95% 100%,rgba(135,206,235,0.4),transparent 70%),linear-gradient(135deg,#fff,#f6f7f9 55%,var(--lightest))}
.pd::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(65,105,225,.22) 1px,transparent 1.5px);background-size:26px 26px;-webkit-mask:linear-gradient(120deg,#000,transparent 70%);mask:linear-gradient(120deg,#000,transparent 70%)}
.pd__in{position:relative;display:grid;grid-template-columns:minmax(230px,320px) 1fr;gap:clamp(1.5rem,4vw,3.2rem);align-items:center}
.pd__who{text-align:center}
.pd__photo{position:relative;width:min(100%,260px);aspect-ratio:1;margin:0 auto 1.1rem;border-radius:50%;padding:6px;background:conic-gradient(from var(--qa),var(--magenta),var(--sky),var(--royal),var(--light),var(--magenta));animation:qk-spin 7s linear infinite;box-shadow:0 0 0 10px rgba(65,105,225,.07),0 18px 44px rgba(43,75,184,.25)}
.pd__photo::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px dashed rgba(65,105,225,.45);animation:pd-rot 24s linear infinite}
.pd__photo img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:50%;border:4px solid #fff}
.pd__who h3{color:var(--ink);margin:0;font-size:1.35rem}
.pd__who p{margin:.2rem 0 .8rem;color:var(--muted)}
.pd__chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;padding:.3rem .8rem;border-radius:999px;color:var(--magenta-d);background:rgba(255,255,255,.75);border:1px solid rgba(65,105,225,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.pd .eyebrow{display:inline-flex;align-items:center;gap:.4rem;color:var(--magenta)}
.pd .h2--light{color:var(--royal-dd)}
.pd__motto{margin:.2rem 0 1.1rem;padding:.7rem 1.1rem;border-left:4px solid var(--magenta);border-radius:0 12px 12px 0;background:linear-gradient(90deg,rgba(255,255,255,.85),transparent)}
.pd__motto span{display:block;font-size:1.35rem;font-weight:700;color:var(--magenta-d)}
.pd__motto small{color:var(--muted);font-size:.85rem}
.pd__tabs{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:999px;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(65,105,225,.18);margin-bottom:.9rem}
.pd__tabs button{border:0;cursor:pointer;font:inherit;font-weight:600;color:var(--magenta-d);background:none;padding:.4rem 1.1rem;border-radius:999px;transition:.25s}
.pd__tabs button[aria-selected=true]{background:linear-gradient(120deg,var(--magenta),var(--royal));color:#fff;box-shadow:0 4px 14px rgba(65,105,225,.35)}
.pd__panel{animation:fade .4s;max-height:15.5rem;overflow:auto;padding-right:.6rem;line-height:1.7;text-align:justify;scrollbar-width:thin;scrollbar-color:var(--magenta) transparent}
.pd__panel p{margin:0 0 .8em}
.pd__poem{font-style:italic;color:var(--magenta-d);padding-left:1rem;border-left:2px solid rgba(65,105,225,.4)}
.pd__act{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.3rem}
.pd__btn{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font:inherit;font-weight:700;color:var(--magenta-d);background:rgba(255,255,255,.7);border:1px solid rgba(65,105,225,.4);padding:.7rem 1.3rem;border-radius:999px;transition:.25s}
.pd__btn:hover{background:#fff;transform:translateY(-2px)}
.pd__btn--solid{background:linear-gradient(120deg,var(--magenta),var(--magenta-d));color:#fff;border-color:transparent;box-shadow:0 8px 24px rgba(65,105,225,.35)}
.pd__btn--solid:hover{background:linear-gradient(120deg,var(--magenta),var(--royal));color:#fff;box-shadow:0 12px 30px rgba(65,105,225,.5)}
@keyframes pd-rot{to{transform:rotate(360deg)}}
@media (max-width:820px){.pd__in{grid-template-columns:1fr}.pd__panel{max-height:none}}

/* dialogs */
.dlg{border:0;padding:0;border-radius:18px;width:min(900px,calc(100% - 24px));max-height:88vh;color:var(--text);box-shadow:0 30px 80px rgba(74,10,58,.5);overflow:hidden}
.dlg[open]{animation:qk-in .3s}
.dlg::backdrop{background:rgba(40,5,32,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.dlg__box{display:flex;flex-direction:column;max-height:88vh}
.dlg header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.3rem;color:#fff;background:linear-gradient(120deg,#1b2f7a,var(--magenta))}
.dlg header h2{margin:0;color:#fff;font-size:1.15rem}
.dlg__x{border:0;cursor:pointer;width:2.2rem;height:2.2rem;border-radius:50%;color:#fff;background:rgba(255,255,255,.18);display:grid;place-items:center}
.dlg__x:hover{background:rgba(255,255,255,.35)}
.dlg__body{overflow:auto;padding:1.3rem 1.5rem 1.6rem;line-height:1.75;text-align:justify}
.dlg__body .pd__poem{color:var(--magenta-d);border-color:var(--magenta)}
.pd__motto-line{padding:.6rem .9rem;border-radius:10px;background:var(--lightest);text-align:left}
.pd__list{margin:0;padding-left:1.4rem}.pd__list li{margin-bottom:.7rem}.pd__list li::marker{color:var(--magenta);font-weight:700}

/* ---- Duo: Quick access + Principal's desk as two smart cards ---- */
.duo;

/* ---- Principal's desk: magenta aurora band ---- */
.pd{position:relative;overflow:hidden;padding-block:3.2rem;color:var(--text);background:radial-gradient(700px 360px at 8% 10%,color-mix(in srgb,var(--magenta) 14%,transparent),transparent 70%),radial-gradient(600px 400px at 95% 100%,color-mix(in srgb,var(--sky) 40%,transparent),transparent 70%),linear-gradient(135deg,#fff,color-mix(in srgb,var(--magenta) 7%,#fff) 55%,var(--lightest))}
.pd::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(65,105,225,.22) 1px,transparent 1.5px);background-size:26px 26px;-webkit-mask:linear-gradient(120deg,#000,transparent 70%);mask:linear-gradient(120deg,#000,transparent 70%)}
.pd__in{position:relative;display:grid;grid-template-columns:minmax(230px,320px) 1fr;gap:clamp(1.5rem,4vw,3.2rem);align-items:center}
.pd__who{text-align:center}
.pd__photo{position:relative;width:min(100%,260px);aspect-ratio:1;margin:0 auto 1.1rem;border-radius:50%;padding:6px;background:conic-gradient(from var(--qa),var(--magenta),var(--sky),var(--royal),var(--light),var(--magenta));animation:qk-spin 7s linear infinite;box-shadow:0 0 0 10px rgba(65,105,225,.07),0 18px 44px rgba(43,75,184,.25)}
.pd__photo::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px dashed rgba(65,105,225,.45);animation:pd-rot 24s linear infinite}
.pd__photo img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:50%;border:4px solid #fff}
.pd__who h3{color:var(--ink);margin:0;font-size:1.35rem}
.pd__who p{margin:.2rem 0 .8rem;color:var(--muted)}
.pd__chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;padding:.3rem .8rem;border-radius:999px;color:var(--magenta-d);background:rgba(255,255,255,.75);border:1px solid rgba(65,105,225,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.pd .eyebrow{display:inline-flex;align-items:center;gap:.4rem;color:var(--magenta)}
.pd .h2--light{color:var(--royal-dd)}
.pd__motto{margin:.2rem 0 1.1rem;padding:.7rem 1.1rem;border-left:4px solid var(--magenta);border-radius:0 12px 12px 0;background:linear-gradient(90deg,rgba(255,255,255,.85),transparent)}
.pd__motto span{display:block;font-size:1.35rem;font-weight:700;color:var(--magenta-d)}
.pd__motto small{color:var(--muted);font-size:.85rem}
.pd__tabs{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:999px;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(65,105,225,.18);margin-bottom:.9rem}
.pd__tabs button{border:0;cursor:pointer;font:inherit;font-weight:600;color:var(--magenta-d);background:none;padding:.4rem 1.1rem;border-radius:999px;transition:.25s}
.pd__tabs button[aria-selected=true]{background:linear-gradient(120deg,var(--magenta),var(--royal));color:#fff;box-shadow:0 4px 14px rgba(65,105,225,.35)}
.pd__panel{animation:fade .4s;max-height:15.5rem;overflow:auto;padding-right:.6rem;line-height:1.7;text-align:justify;scrollbar-width:thin;scrollbar-color:var(--magenta) transparent}
.pd__panel p{margin:0 0 .8em}
.pd__poem{font-style:italic;color:var(--magenta-d);padding-left:1rem;border-left:2px solid rgba(65,105,225,.4)}
.pd__act{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.3rem}
.pd__btn{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font:inherit;font-weight:700;color:var(--magenta-d);background:rgba(255,255,255,.7);border:1px solid rgba(65,105,225,.4);padding:.7rem 1.3rem;border-radius:999px;transition:.25s}
.pd__btn:hover{background:#fff;transform:translateY(-2px)}
.pd__btn--solid{background:linear-gradient(120deg,var(--magenta),var(--magenta-d));color:#fff;border-color:transparent;box-shadow:0 8px 24px rgba(65,105,225,.35)}
.pd__btn--solid:hover{background:linear-gradient(120deg,var(--magenta),var(--royal));color:#fff;box-shadow:0 12px 30px rgba(65,105,225,.5)}
@keyframes pd-rot{to{transform:rotate(360deg)}}
@media (max-width:820px){.pd__in{grid-template-columns:1fr}.pd__panel{max-height:none}}

/* dialogs */
.dlg{border:0;padding:0;border-radius:18px;width:min(900px,calc(100% - 24px));max-height:88vh;color:var(--text);box-shadow:0 30px 80px rgba(74,10,58,.5);overflow:hidden}
.dlg[open]{animation:qk-in .3s}
.dlg::backdrop{background:rgba(40,5,32,.65);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.dlg__box{display:flex;flex-direction:column;max-height:88vh}
.dlg header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.3rem;color:#fff;background:linear-gradient(120deg,#1b2f7a,var(--magenta))}
.dlg header h2{margin:0;color:#fff;font-size:1.15rem}
.dlg__x{border:0;cursor:pointer;width:2.2rem;height:2.2rem;border-radius:50%;color:#fff;background:rgba(255,255,255,.18);display:grid;place-items:center}
.dlg__x:hover{background:rgba(255,255,255,.35)}
.dlg__body{overflow:auto;padding:1.3rem 1.5rem 1.6rem;line-height:1.75;text-align:justify}
.dlg__body .pd__poem{color:var(--magenta-d);border-color:var(--magenta)}
.pd__motto-line{padding:.6rem .9rem;border-radius:10px;background:var(--lightest);text-align:left}
.pd__list{margin:0;padding-left:1.4rem}.pd__list li{margin-bottom:.7rem}.pd__list li::marker{color:var(--magenta);font-weight:700}

/* ---- Duo: Quick access + Principal's desk as two smart cards ---- */
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;padding-block:2rem;align-items:stretch}
.duo__card{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;padding:clamp(1.1rem,2vw,1.8rem);box-shadow:0 14px 40px rgba(27,47,122,.12);display:flex;flex-direction:column}
.duo__card::before{content:"";position:absolute;inset:0;z-index:-1;padding:1.5px;border-radius:inherit;background:conic-gradient(from var(--qa),var(--royal),var(--sky),var(--magenta),var(--royal));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;animation:qk-spin 9s linear infinite}
.duo__card::after{content:"";position:absolute;width:260px;height:260px;right:-90px;top:-110px;z-index:-1;border-radius:50%;filter:blur(40px);opacity:.55;animation:duo-float 8s ease-in-out infinite alternate}
.quick.duo__card{padding-block:clamp(1.1rem,2vw,1.8rem);background:linear-gradient(160deg,#fff,var(--lightest))}
.quick.duo__card::after{background:var(--sky)}
.pd.duo__card{padding-block:clamp(1.1rem,2vw,1.8rem);background:linear-gradient(160deg,#fff,#f5f6f9);background:linear-gradient(160deg,#fff,color-mix(in srgb,var(--magenta) 8%,#fff))}
.pd.duo__card::after{background:rgba(125,139,176,0.45);background:color-mix(in srgb,var(--magenta) 45%,transparent)}
@keyframes duo-float{to{transform:translate(-40px,50px) scale(1.2)}}
.duo__head{margin-bottom:1.1rem}
.duo__tag{display:inline-flex;align-items:center;gap:.45rem;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.28rem .75rem;border-radius:999px;color:var(--royal-d);background:#ecf0fc;background:color-mix(in srgb,var(--royal) 10%,#fff);border:1px solid rgba(65,105,225,0.25);border:1px solid color-mix(in srgb,var(--royal) 25%,transparent)}
.pd .duo__tag{color:var(--magenta-d);background:#f3f5f8;background:color-mix(in srgb,var(--magenta) 9%,#fff);border-color:rgba(125,139,176,0.28);border-color:color-mix(in srgb,var(--magenta) 28%,transparent)}
.duo__tag i{width:.5rem;height:.5rem;border-radius:50%;background:currentColor;animation:pulse 2s infinite}
.duo__head .h2{margin:.55rem 0 0;font-size:clamp(1.25rem,2vw,1.7rem)}
/* quick tiles: compact 3-column */
.quick__grid{grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:0;flex:1;align-content:start}
.quick .qk{flex-direction:column;justify-content:center;text-align:center;gap:.55rem;padding:.9rem .5rem;box-shadow:0 4px 14px rgba(27,47,122,.08)}
.quick .qk__t{flex:none;font-size:.82rem}
.quick .qk__ico{width:2.9rem;height:2.9rem}
.quick .qk__orb .ic{font-size:1.2rem}
/* principal: single column inside the card */
.pd.duo__card{padding-block:clamp(1.1rem,2vw,1.8rem)}
.pd .pd__in{display:flex;flex-direction:column;gap:0;align-items:stretch;flex:1}
.pd .pd__who{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center;text-align:left;order:2;margin:0 0 1rem}
.pd .pd__who .pd__photo{grid-row:1/4;width:92px;margin:0;padding:3px;box-shadow:0 8px 20px rgba(43,75,184,.25)}
.pd .pd__photo::after{inset:-7px}
.pd .pd__who h3{font-size:1.05rem}.pd .pd__who p{margin:.1rem 0 .4rem;font-size:.88rem}
.pd .pd__chip{justify-self:start;font-size:.72rem}
.pd .pd__main{display:contents}
.pd .duo__head{order:0}
.pd .pd__motto{order:1;margin:0 0 1rem}.pd .pd__motto span{font-size:1.15rem}
.pd .pd__tabs{order:3;align-self:flex-start}
.pd .pd__panel{order:4;max-height:11rem;font-size:.94rem}
.pd .pd__act{order:5;margin-top:auto;padding-top:1.1rem}
.pd .pd__btn{padding:.6rem 1.1rem;font-size:.9rem}
@media (max-width:980px){.duo{grid-template-columns:1fr}}
@media (max-width:520px){.quick__grid{grid-template-columns:repeat(2,1fr)}.quick .qk{flex-direction:column}}

/* ---- Alumni + Contributors ---- */
.alu{padding-block:2rem 2.6rem}
.alu__in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;align-items:stretch}
.alu__card{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;padding:clamp(1.1rem,2vw,1.8rem);box-shadow:0 14px 40px rgba(27,47,122,.12);display:flex;flex-direction:column;background:linear-gradient(160deg,#fff,var(--lightest))}
.alu__card::before{content:"";position:absolute;inset:0;z-index:-1;padding:1.5px;border-radius:inherit;background:conic-gradient(from var(--qa),var(--royal),var(--sky),var(--magenta),var(--royal));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;animation:qk-spin 9s linear infinite}
.alu__card::after{content:"";position:absolute;width:260px;height:260px;right:-90px;top:-110px;z-index:-1;border-radius:50%;filter:blur(40px);opacity:.5;background:var(--sky);animation:duo-float 8s ease-in-out infinite alternate}
.alu__card--c{background:linear-gradient(160deg,#fff,#f5f6f9);background:linear-gradient(160deg,#fff,color-mix(in srgb,var(--magenta) 8%,#fff))}
.alu__card--c::after{background:rgba(125,139,176,0.45);background:color-mix(in srgb,var(--magenta) 45%,transparent)}
.alu__card--c .duo__tag{color:var(--magenta-d);background:#f3f5f8;background:color-mix(in srgb,var(--magenta) 9%,#fff);border-color:rgba(125,139,176,0.28);border-color:color-mix(in srgb,var(--magenta) 28%,transparent)}
.alu__lead{margin:.5rem 0 0;color:var(--muted);font-size:.93rem;line-height:1.6}
/* carousel */
.alu__car{flex:1;display:flex;flex-direction:column}
.alu__view{flex:1}
.alu__slide{display:grid;gap:.7rem}
.alu__slide.is-on{animation:fade .45s}
.alu__p{display:flex;gap:.9rem;align-items:center;padding:.65rem .8rem;border-radius:16px;background:rgba(255,255,255,.85);box-shadow:0 4px 14px rgba(27,47,122,.08);border:1px solid rgba(65,105,225,0.12);border:1px solid color-mix(in srgb,var(--royal) 12%,transparent);transition:transform .25s,box-shadow .25s}
.alu__p:hover{transform:translateX(5px);box-shadow:0 8px 22px rgba(65,105,225,.2)}
.alu__img{flex:none;width:3.6rem;height:3.6rem;border-radius:50%;padding:2px;background:conic-gradient(from var(--qa),var(--royal),var(--sky),var(--magenta),var(--royal));animation:qk-spin 8s linear infinite;display:grid;place-items:center;overflow:hidden}
.alu__img img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:50%;border:2px solid #fff;background:#fff}
.alu__img b{width:100%;height:100%;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--royal),var(--magenta));color:#fff;font-size:1.3rem}
.alu__txt{min-width:0}
.alu__txt h3{margin:0;font-size:1rem;color:var(--ink)}
.alu__txt p{margin:.15rem 0 0;font-size:.84rem;line-height:1.45;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.alu__nav{display:flex;align-items:center;justify-content:center;gap:.9rem;margin-top:1rem}
.alu__arr{width:2.3rem;height:2.3rem;border-radius:50%;border:0;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--royal),var(--magenta));display:grid;place-items:center;box-shadow:0 6px 16px rgba(65,105,225,.35);transition:transform .25s}
.alu__arr:hover{transform:scale(1.12)}
.alu__dots{display:flex;gap:.45rem}
.alu__dots button{width:.6rem;height:.6rem;padding:0;border:0;cursor:pointer;border-radius:999px;background:var(--grey-d);transition:.3s}
.alu__dots button[aria-selected=true]{width:1.6rem;background:linear-gradient(90deg,var(--royal),var(--magenta))}
/* contributors */
.alu__card--c .pd__act{margin:1rem 0}
.con{position:relative;flex:1;min-height:17rem;max-height:23rem;overflow:hidden;border-radius:16px;background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px rgba(125,139,176,0.16);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--magenta) 16%,transparent);-webkit-mask:linear-gradient(transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(transparent,#000 8%,#000 92%,transparent)}
.con__track{display:grid;gap:.5rem;padding:.6rem;animation:con-up 90s linear infinite}
.con:hover .con__track,.con:focus-within .con__track,.con:focus .con__track{animation-play-state:paused}
.con__i{display:flex;gap:.8rem;align-items:center;padding:.55rem .8rem;border-radius:12px;background:#fff;box-shadow:0 2px 8px rgba(43,75,184,.08)}
.con__ico{flex:none;width:2.1rem;height:2.1rem;border-radius:10px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--magenta),var(--royal));transform:rotate(-8deg)}
.con__t{display:grid;min-width:0;line-height:1.3}
.con__t strong{font-size:.9rem;color:var(--ink)}
.con__t small{font-size:.78rem;color:var(--magenta-d);font-weight:600}
@keyframes con-up{to{transform:translateY(-50%)}}
@media (max-width:980px){.alu__in{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.con{overflow:auto}}

/* ---- Placements: logo carousel + Career Pathways ---- */
.plc{padding-block:0 2.6rem}
.plc__grid.alu__slide{grid-template-columns:repeat(4,1fr);gap:.75rem}
.plc__logo{aspect-ratio:3/2;display:grid;place-items:center;padding:.6rem;border-radius:14px;background:#fff;border:1px solid rgba(65,105,225,0.12);border:1px solid color-mix(in srgb,var(--royal) 12%,transparent);box-shadow:0 4px 14px rgba(27,47,122,.08);transition:transform .3s,box-shadow .3s}
.plc__logo:hover{transform:translateY(-4px) rotate(-1.5deg);box-shadow:0 10px 24px rgba(65,105,225,.25)}
.plc__logo img{max-width:100%;max-height:100%;object-fit:contain}
.plc__path{justify-content:flex-start}
.plc__text{margin:0 0 1.2rem;line-height:1.75;color:var(--text)}
.plc__steps{list-style:none;margin:0 0 1.2rem;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;position:relative}
.plc__steps::before{content:"";position:absolute;left:8%;right:8%;top:1.45rem;height:2px;background:linear-gradient(90deg,var(--royal),var(--sky),var(--magenta));opacity:.5}
.plc__steps li{position:relative;display:grid;justify-items:center;gap:.4rem;font-size:.8rem;font-weight:700;color:var(--magenta-d);text-align:center}
.plc__steps .ic{box-sizing:content-box;width:1.2rem;height:1.2rem;padding:.6rem;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--magenta),var(--royal));box-shadow:0 6px 16px rgba(65,105,225,.3);transform:rotate(-8deg);animation:qk-glow 3.2s ease-in-out infinite}
.plc__steps li:nth-child(even) .ic{transform:rotate(8deg)}
.plc__path .pd__act{margin-top:auto}
@media (max-width:520px){.plc__grid.alu__slide{grid-template-columns:repeat(3,1fr)}.plc__steps{grid-template-columns:repeat(2,1fr)}.plc__steps::before{display:none}}

/* video + achievers cards; smaller placement logos (6 x 4 per slide) */
.vid{padding-block:0 2rem}
.alu__in > .alu__card:only-child{grid-column:1/-1}
.vid__frame{flex:1;min-height:0;border-radius:16px;overflow:hidden;box-shadow:0 10px 28px rgba(27,47,122,.2)}
.vid__frame .video__play{width:100%;height:100%;min-height:15rem}
.vid__frame img{width:100%;height:100%;object-fit:cover}
.plc__grid.alu__slide{grid-template-columns:repeat(6,1fr);gap:.5rem}
.plc__logo{padding:.35rem;border-radius:10px;aspect-ratio:3/2}
@media (max-width:700px){.plc__grid.alu__slide{grid-template-columns:repeat(4,1fr)}}
@media (max-width:520px){.plc__grid.alu__slide{grid-template-columns:repeat(4,1fr)}}

/* smaller video, bigger achiever photos */

.vid__frame .video__play{min-height:0}
.ach .alu__img{width:5.6rem;height:5.6rem;padding:3px}
.ach .alu__p{gap:1.1rem;padding:.7rem .9rem}
.ach .alu__txt h3{font-size:1.05rem}

/* Virtual tour: two video tiles */
.vt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;flex:1;align-content:center}
.vt__item{margin:0;display:flex;flex-direction:column;gap:.6rem}
.vt__thumb,.vt__item>iframe,.vt__item>video{position:relative;display:block;width:100%;aspect-ratio:16/10;border:0;padding:0;border-radius:16px;overflow:hidden;cursor:pointer;background:#0d1b4d;box-shadow:0 10px 26px rgba(27,47,122,.25);transition:transform .3s,box-shadow .3s}
.vt__item>iframe,.vt__item>video{cursor:auto;background:#000;object-fit:contain}
.vt__thumb:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(65,105,225,.38)}
.vt__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.vt__thumb:hover img{transform:scale(1.08)}
.vt__thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(27,47,122,.55),transparent 55%);pointer-events:none}
.vt__play{position:absolute;z-index:2;inset:0;margin:auto;width:3.4rem;height:3.4rem;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--royal),var(--magenta));box-shadow:0 0 0 0 rgba(65,105,225,.5);animation:pulse 2.2s infinite}
.vt__play .ic{fill:currentColor;stroke:none;width:1.3rem;height:1.3rem;margin-left:2px}
.vt__thumb--lum{background:radial-gradient(circle at 25% 20%,rgba(125,139,176,0.55),transparent 60%),radial-gradient(circle at 85% 90%,rgba(135,206,235,0.55),transparent 60%),linear-gradient(135deg,var(--royal-dd),var(--royal-d));background:radial-gradient(circle at 25% 20%,color-mix(in srgb,var(--magenta) 55%,transparent),transparent 60%),radial-gradient(circle at 85% 90%,color-mix(in srgb,var(--sky) 55%,transparent),transparent 60%),linear-gradient(135deg,var(--royal-dd),var(--royal-d))}
.vt__wave{position:absolute;left:0;right:0;bottom:0;height:46%;display:flex;align-items:flex-end;justify-content:center;gap:5px;padding-bottom:.7rem;z-index:1}
.vt__wave i{width:6px;border-radius:4px;background:linear-gradient(0deg,var(--sky),#fff);opacity:.8;height:30%;animation:vt-wave 1.2s ease-in-out infinite}
.vt__wave i:nth-child(2n){animation-delay:-.4s}.vt__wave i:nth-child(3n){animation-delay:-.8s}.vt__wave i:nth-child(5n){animation-duration:.9s}
@keyframes vt-wave{50%{height:90%}}
.vt__brand{position:absolute;z-index:1;left:.9rem;top:.7rem;color:#fff;font-weight:800;font-size:1.4rem;letter-spacing:.08em;line-height:1}
.vt__brand small{display:block;font-size:.62rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--light);margin-top:.2rem}
.vt__item figcaption{display:grid;gap:.35rem}
.vt__chip{justify-self:start;display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .6rem;border-radius:999px;color:var(--royal-d);background:#ecf0fc;background:color-mix(in srgb,var(--royal) 10%,#fff)}
.vt__item--m .vt__chip{color:var(--magenta-d);background:#f2f3f7;background:color-mix(in srgb,var(--magenta) 10%,#fff)}
.vt__item h3{margin:0;font-size:.88rem;line-height:1.4;color:var(--ink)}
@media (max-width:560px){.vt{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.vt__wave i,.vt__play{animation:none}}
.vt__video{background:radial-gradient(circle at 25% 20%,rgba(125,139,176,0.55),transparent 60%),linear-gradient(135deg,var(--royal-dd),var(--royal-d))!important;background:radial-gradient(circle at 25% 20%,color-mix(in srgb,var(--magenta) 55%,transparent),transparent 60%),linear-gradient(135deg,var(--royal-dd),var(--royal-d))!important;object-fit:cover!important}

/* =====================================================================
   Layout polish: fewer boxes, smart vertical separators
   ===================================================================== */
/* -- split panel: one glass surface, two columns, glowing vertical divider -- */
.alu__in--split{position:relative;gap:0;border-radius:28px;overflow:hidden;background:linear-gradient(120deg,rgba(255,255,255,.92),#eef7fc 50%,#f9f9fb);background:linear-gradient(120deg,rgba(255,255,255,.92),color-mix(in srgb,var(--lightest) 80%,#fff) 50%,color-mix(in srgb,var(--magenta) 5%,#fff));border:1px solid rgba(65,105,225,0.14);border:1px solid color-mix(in srgb,var(--royal) 14%,transparent);box-shadow:0 22px 60px rgba(27,47,122,.12)}
.alu__in--split .alu__card{background:none;box-shadow:none;border-radius:0;padding:clamp(1.3rem,2.6vw,2.4rem)}
.alu__in--split .alu__card::before{display:none}
.alu__in--split::before{content:"";position:absolute;z-index:3;left:50%;top:7%;bottom:7%;width:2px;margin-left:-1px;border-radius:2px;background:linear-gradient(180deg,transparent,var(--royal) 25%,var(--sky) 50%,var(--magenta) 75%,transparent);box-shadow:0 0 14px rgba(65,105,225,0.55);box-shadow:0 0 14px color-mix(in srgb,var(--royal) 55%,transparent)}
.alu__in--split::after{content:"";position:absolute;z-index:4;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:radial-gradient(circle,#fff 28%,var(--magenta) 30%);box-shadow:0 0 0 5px rgba(125,139,176,0.18),0 0 20px var(--magenta);box-shadow:0 0 0 5px color-mix(in srgb,var(--magenta) 18%,transparent),0 0 20px var(--magenta);animation:pulse 2.4s infinite}
.alu__in--split > .alu__card:only-child{grid-column:1/-1}
.alu__in--split:has(> .alu__card:only-child)::before,.alu__in--split:has(> .alu__card:only-child)::after{display:none}
/* flat rows inside split panels (no box-in-box) */
.alu__in--split .alu__p{background:none;box-shadow:none;border:0;border-radius:14px;border-bottom:1px dashed rgba(65,105,225,0.22);border-bottom:1px dashed color-mix(in srgb,var(--royal) 22%,transparent);padding-inline:.4rem}
.alu__in--split .alu__p:hover{transform:none;background:rgba(65,105,225,0.06);background:color-mix(in srgb,var(--royal) 6%,transparent)}
.alu__in--split .alu__slide{gap:.25rem}
.alu__in--split .con{background:none;box-shadow:none}
.alu__in--split .con__i{background:none;box-shadow:none;border-bottom:1px dashed rgba(125,139,176,0.25);border-bottom:1px dashed color-mix(in srgb,var(--magenta) 25%,transparent);border-radius:0;padding-inline:.3rem}
.alu__in--split .vt__thumb{box-shadow:0 6px 18px rgba(27,47,122,.2)}
@media (max-width:980px){
  .alu__in--split::before{left:7%;right:7%;top:50%;bottom:auto;width:auto;height:2px;margin:-1px 0 0;background:linear-gradient(90deg,transparent,var(--royal) 25%,var(--sky) 50%,var(--magenta) 75%,transparent)}
  .alu__in--split::after{display:none}
}

/* -- latest news / events / notices: one panel, three columns, thin dividers -- */
.band{background:linear-gradient(180deg,#fff,var(--lightest))}
.trio{position:relative;gap:0;padding:.4rem 0;border-radius:26px;background:#fff;box-shadow:0 16px 46px rgba(27,47,122,.10);border:1px solid rgba(65,105,225,0.1);border:1px solid color-mix(in srgb,var(--royal) 10%,transparent);overflow:hidden}
.trio .card-list{position:relative;background:none;border:0;border-radius:0;padding-inline:.4rem}
.trio .card-list header{background:none;border-bottom:2px solid transparent;border-image:linear-gradient(90deg,var(--royal),var(--sky),transparent) 1}
.trio .card-list:nth-child(2) header{border-image:linear-gradient(90deg,var(--magenta),var(--light),transparent) 1}
.trio .card-list:nth-child(3) header{border-image:linear-gradient(90deg,var(--sky),var(--royal),transparent) 1}
.trio .card-list + .card-list::before{content:"";position:absolute;left:0;top:12%;bottom:12%;width:1px;background:linear-gradient(180deg,transparent,rgba(65,105,225,0.45),rgba(125,139,176,0.45),transparent);background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--royal) 45%,transparent),color-mix(in srgb,var(--magenta) 45%,transparent),transparent)}
@media (max-width:900px){.trio{grid-template-columns:1fr}.trio .card-list + .card-list::before{left:8%;right:8%;top:0;bottom:auto;width:auto;height:1px}}

/* -- the remaining boxes: softer, airier -- */
.quick.duo__card,.pd.duo__card,.alu__card--plc{box-shadow:0 10px 30px rgba(27,47,122,.08)}
.quick .qk{box-shadow:none;background:rgba(255,255,255,.6);border:1px solid rgba(65,105,225,0.1);border:1px solid color-mix(in srgb,var(--royal) 10%,transparent)}
.quick .qk:hover{background:#fff}
.plc__logo{box-shadow:none;border-color:rgba(65,105,225,0.1);border-color:color-mix(in srgb,var(--royal) 10%,transparent)}
.stat,.tile,.person{box-shadow:none;border:1px solid rgba(65,105,225,0.1);border:1px solid color-mix(in srgb,var(--royal) 10%,transparent)}

/* =====================================================================
   Panels sit inside the page gutters; slanted divider variant
   ===================================================================== */
.wrap.wrap--wide.alu__in--split,.wrap.wrap--wide.alu__in--tilt,.wrap.wrap--wide.duo--tilt,.wrap.wrap--wide.trio{width:auto;max-width:1500px;margin-inline:clamp(1rem,3vw,2.5rem);padding-inline:0}
@media (min-width:1600px){.wrap.wrap--wide.alu__in--split,.wrap.wrap--wide.alu__in--tilt,.wrap.wrap--wide.duo--tilt,.wrap.wrap--wide.trio{margin-inline:auto;width:calc(100% - 5rem)}}

.alu__in--tilt,.duo--tilt{position:relative;gap:0;border-radius:28px;overflow:hidden;
  background:linear-gradient(102deg,#edf7fc 0 50%,#f7f8fa 50% 100%);
  background:linear-gradient(102deg,color-mix(in srgb,var(--lightest) 85%,#fff) 0 50%,color-mix(in srgb,var(--magenta) 6%,#fff) 50% 100%);
  border:1px solid rgba(65,105,225,0.14);
  border:1px solid color-mix(in srgb,var(--royal) 14%,transparent);box-shadow:0 22px 60px rgba(27,47,122,.12)}
.alu__in--tilt .alu__card,.duo--tilt .duo__card{background:none!important;box-shadow:none!important;border-radius:0;padding:clamp(1.3rem,2.6vw,2.4rem)}
.alu__in--tilt .alu__card::before,.duo--tilt .duo__card::before{display:none}
.alu__in--tilt .alu__card:first-child,.duo--tilt .duo__card:first-child{padding-right:clamp(2rem,5vw,4rem)}
.alu__in--tilt .alu__card:last-child,.duo--tilt .duo__card:last-child{padding-left:clamp(2rem,5vw,4rem)}
.alu__in--tilt::before,.duo--tilt::before{content:"";position:absolute;z-index:3;left:50%;top:-12%;bottom:-12%;width:3px;margin-left:-1.5px;transform:rotate(12deg);border-radius:3px;background:linear-gradient(180deg,transparent,var(--royal) 22%,var(--sky) 50%,var(--magenta) 78%,transparent);box-shadow:0 0 16px rgba(65,105,225,0.55);box-shadow:0 0 16px color-mix(in srgb,var(--royal) 55%,transparent)}
.alu__in--tilt::after,.duo--tilt::after{content:"";position:absolute;z-index:4;left:50%;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:4px;transform:rotate(45deg);background:linear-gradient(135deg,var(--royal),var(--magenta));box-shadow:0 0 0 5px rgba(125,139,176,0.16),0 0 22px var(--magenta);box-shadow:0 0 0 5px color-mix(in srgb,var(--magenta) 16%,transparent),0 0 22px var(--magenta);animation:pulse 2.4s infinite}
.duo--tilt .pd__tabs,.duo--tilt .pd__act{position:relative;z-index:5}
@media (max-width:980px){
  .alu__in--tilt,.duo--tilt{background:linear-gradient(180deg,#edf7fc 0 50%,#f7f8fa 50% 100%);background:linear-gradient(180deg,color-mix(in srgb,var(--lightest) 85%,#fff) 0 50%,color-mix(in srgb,var(--magenta) 6%,#fff) 50% 100%)}
  .alu__in--tilt::before,.duo--tilt::before{left:-5%;right:-5%;top:50%;bottom:auto;width:auto;height:3px;margin:-1.5px 0 0;transform:rotate(-2deg);background:linear-gradient(90deg,transparent,var(--royal) 22%,var(--sky) 50%,var(--magenta) 78%,transparent)}
  .alu__in--tilt::after,.duo--tilt::after{display:none}
  .alu__in--tilt .alu__card:first-child,.duo--tilt .duo__card:first-child{padding-right:clamp(1.3rem,2.6vw,2.4rem)}
  .alu__in--tilt .alu__card:last-child,.duo--tilt .duo__card:last-child{padding-left:clamp(1.3rem,2.6vw,2.4rem)}
}

/* =====================================================================
   Awesome-look layer
   ===================================================================== */
body{background:radial-gradient(900px 500px at 8% 4%,rgba(135,206,235,0.28),transparent 70%),radial-gradient(800px 500px at 96% 40%,rgba(125,139,176,0.09),transparent 70%),radial-gradient(900px 600px at 20% 95%,rgba(65,105,225,0.09),transparent 70%),var(--grey);background:radial-gradient(900px 500px at 8% 4%,color-mix(in srgb,var(--sky) 28%,transparent),transparent 70%),radial-gradient(800px 500px at 96% 40%,color-mix(in srgb,var(--magenta) 9%,transparent),transparent 70%),radial-gradient(900px 600px at 20% 95%,color-mix(in srgb,var(--royal) 9%,transparent),transparent 70%),var(--grey);background-attachment:fixed}
/* gradient headings inside panels */
.duo__head .h2,.alu__card .h2{background:linear-gradient(100deg,var(--royal-dd),var(--royal) 55%,var(--magenta));-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}
.duo__head .h2::after{content:"";display:block;width:2.6rem;height:3px;margin-top:.45rem;border-radius:3px;background:linear-gradient(90deg,var(--magenta),var(--sky));-webkit-text-fill-color:initial}
/* pointer-following light */
.alu__in--split,.alu__in--tilt,.duo--tilt,.trio{--mx:50%;--my:30%}
.alu__in--split > .alu__card,.alu__in--tilt > .alu__card,.duo--tilt > .duo__card{background-image:radial-gradient(420px circle at var(--mx) var(--my),rgba(135,206,235,0.22),transparent 60%)!important;background-image:radial-gradient(420px circle at var(--mx) var(--my),color-mix(in srgb,var(--sky) 22%,transparent),transparent 60%)!important}
.trio{background-image:radial-gradient(520px circle at var(--mx) var(--my),rgba(135,206,235,0.2),transparent 60%);background-image:radial-gradient(520px circle at var(--mx) var(--my),color-mix(in srgb,var(--sky) 20%,transparent),transparent 60%)}
/* reveal */
.rv{opacity:0;transform:translateY(34px) scale(.985);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.rv-in{opacity:1;transform:none}
/* ticker + hero seam */
.ticker{background:linear-gradient(90deg,var(--lightest),#fff 50%,var(--lightest));box-shadow:0 6px 20px rgba(27,47,122,.06)}
/* section rhythm */
.duo{padding-block:2.4rem 1.4rem}.vid{padding-block:1rem 1.4rem}.alu{padding-block:1.2rem 1.6rem}.plc{padding-block:0 3rem}

/* =====================================================================
   FIX: panels align with the ticker ("Latest"), real gutter between
   columns for the divider, slanted background == slanted divider
   ===================================================================== */
.wrap.wrap--wide.alu__in--split,.wrap.wrap--wide.alu__in--tilt,.wrap.wrap--wide.duo--tilt,.wrap.wrap--wide.trio{width:auto;max-width:none;margin-inline:clamp(1rem,3vw,2.5rem)}
@media (min-width:1600px){.wrap.wrap--wide.alu__in--split,.wrap.wrap--wide.alu__in--tilt,.wrap.wrap--wide.duo--tilt,.wrap.wrap--wide.trio{width:auto;margin-inline:clamp(1rem,3vw,2.5rem)}}

/* panel = padding + gap; cards are plain content columns */
.alu__in--split,.alu__in--tilt,.duo--tilt{padding:clamp(1.4rem,2.6vw,2.4rem);column-gap:clamp(4rem,7vw,6rem);row-gap:2rem;align-items:stretch;overflow:hidden}
.alu__in--split > .alu__card,.alu__in--tilt > .alu__card,.duo--tilt > .duo__card{padding:0!important;border-radius:0;background-color:transparent!important;box-shadow:none!important;overflow:visible;min-width:0}
.alu__in--split > .alu__card::before,.alu__in--split > .alu__card::after,.alu__in--tilt > .alu__card::before,.alu__in--tilt > .alu__card::after,.duo--tilt > .duo__card::before,.duo--tilt > .duo__card::after{display:none!important}
/* pointer light now lives on the panel (no clipped glow edges) */
.alu__in--split > .alu__card,.alu__in--tilt > .alu__card,.duo--tilt > .duo__card{background-image:none!important}
.alu__in--split,.alu__in--tilt,.duo--tilt{background-image:radial-gradient(460px circle at var(--mx) var(--my),rgba(135,206,235,0.24),transparent 60%),var(--panel-bg,none);background-image:radial-gradient(460px circle at var(--mx) var(--my),color-mix(in srgb,var(--sky) 24%,transparent),transparent 60%),var(--panel-bg,none)}

/* straight divider sits in the middle of the gap */
.alu__in--split{--panel-bg:linear-gradient(120deg,rgba(255,255,255,.95),#eef7fc 50%,#f9f9fb)}
.alu__in--split::before{top:6%;bottom:6%}

/* slanted: SAME angle for the colour split and the line (tilt = 6deg) */
.alu__in--tilt,.duo--tilt{--tilt:6deg;--panel-bg:linear-gradient(96deg,#edf7fc 0 50%,#f6f7f9 50% 100%)}
.alu__in--tilt::before,.duo--tilt::before{top:-6%;bottom:-6%;width:3px;transform:rotate(var(--tilt))}

/* stacked (tablet/phone): divider moves between the two blocks, never over content */
@media (max-width:980px){
  .alu__in--split,.alu__in--tilt,.duo--tilt{padding:0;row-gap:0}
  .alu__in--split > .alu__card,.alu__in--tilt > .alu__card,.duo--tilt > .duo__card{padding:1.5rem 1.3rem!important}
  .alu__in--split::before,.alu__in--split::after,.alu__in--tilt::after,.duo--tilt::after{display:none}
  .alu__in--split > :nth-child(2){border-top:2px solid transparent;border-image:linear-gradient(90deg,transparent,var(--royal),var(--magenta),transparent) 1}
  .alu__in--tilt,.duo--tilt{--panel-bg:linear-gradient(#edf7fc,#edf7fc)}
  .alu__in--tilt > :nth-child(2),.duo--tilt > .duo__card:nth-of-type(2){background-color:#f6f7f9!important;background-color:color-mix(in srgb,var(--magenta) 7%,#fff)!important;clip-path:polygon(0 18px,100% 0,100% 100%,0 100%);margin-top:-1px;padding-top:2.4rem!important}
  .alu__in--tilt::before,.duo--tilt::before{display:none}
}

/* =====================================================================
   Full-bleed panels: no rounded border, colour runs edge to edge;
   content still starts where "Latest" starts
   ===================================================================== */
.wrap.wrap--wide.alu__in--split,.wrap.wrap--wide.alu__in--tilt,.wrap.wrap--wide.duo--tilt,.wrap.wrap--wide.trio{
  width:100%;max-width:none;margin-inline:0;border:0;border-radius:0;box-shadow:none;
  padding-inline:clamp(1rem,3vw,2.5rem)}
.wrap.wrap--wide.alu__in--split,.wrap.wrap--wide.alu__in--tilt,.wrap.wrap--wide.duo--tilt{padding-block:clamp(1.8rem,3.2vw,3rem)}
.duo.duo--tilt,.alu.plc,.alu.vid{padding-block:0}
.alu:has(> .alu__in--split),.alu:has(> .alu__in--tilt){padding-block:0}
.wrap.wrap--wide.trio{padding-block:1.2rem;background-color:transparent}
@media (min-width:1600px){.wrap.wrap--wide.alu__in--split,.wrap.wrap--wide.alu__in--tilt,.wrap.wrap--wide.duo--tilt,.wrap.wrap--wide.trio{width:100%;margin-inline:0;padding-inline:clamp(1rem,3vw,2.5rem)}}
@media (max-width:980px){.wrap.wrap--wide.alu__in--split,.wrap.wrap--wide.alu__in--tilt,.wrap.wrap--wide.duo--tilt{padding-inline:0;padding-block:0}}

/* Principal: big round photo on the left; motto, name, language tabs on the right; message + buttons stay below */
.pd .pd__in{display:grid;grid-template-columns:clamp(11rem,17vw,16rem) minmax(0,1fr);column-gap:clamp(1.2rem,2.6vw,2.2rem);row-gap:.35rem;align-items:center;align-content:start}
.pd .pd__who{display:contents}
.pd .duo__head{grid-column:1/-1;grid-row:1;order:0}
.pd .pd__who .pd__photo{grid-column:1;grid-row:2/7;width:100%;max-width:none;margin:0;padding:5px;align-self:center;box-shadow:0 14px 34px rgba(43,75,184,.3)}
.pd .pd__photo::after{inset:-9px}
.pd .pd__photo img{object-position:center 18%}
.pd .pd__motto{grid-column:2;grid-row:2;margin:0 0 .5rem}
.pd .pd__who h3{grid-column:2;grid-row:3;margin:0;font-size:1.2rem;text-align:left}
.pd .pd__who p{grid-column:2;grid-row:4;margin:0;text-align:left}
.pd .pd__chip{grid-column:2;grid-row:5;justify-self:start;margin:.2rem 0 .5rem}
.pd .pd__tabs{grid-column:2;grid-row:6;justify-self:start;align-self:start;margin:0}
.pd .pd__panel{grid-column:1/-1;grid-row:7;margin-top:1rem}
.pd .pd__act{grid-column:1/-1;grid-row:8}
@media (max-width:620px){
  .pd .pd__in{grid-template-columns:1fr}
  .pd .pd__who .pd__photo{grid-column:1;grid-row:auto;width:min(60%,14rem);margin:.4rem auto 1rem}
  .pd .pd__motto,.pd .pd__who h3,.pd .pd__who p,.pd .pd__chip,.pd .pd__tabs,.pd .pd__panel,.pd .pd__act{grid-column:1;grid-row:auto}
  .pd .pd__who h3,.pd .pd__who p{text-align:center}.pd .pd__chip,.pd .pd__tabs{justify-self:center}
}

/* News / Events / Notices: three separate boxes */
.wrap.wrap--wide.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;padding-block:0;background:none;background-image:none;overflow:visible}
.trio .card-list,.trio .card-list + .card-list{position:relative;overflow:hidden;background:#fff;border:1px solid rgba(65,105,225,0.12);border:1px solid color-mix(in srgb,var(--royal) 12%,transparent);border-top:4px solid var(--royal);border-radius:20px;padding-inline:0;box-shadow:0 12px 34px rgba(27,47,122,.10);transition:transform .3s,box-shadow .3s}
.trio .card-list:nth-child(2){border-top-color:var(--magenta)}
.trio .card-list:nth-child(3){border-top-color:var(--sky)}
.trio .card-list:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(65,105,225,.2)}
.trio .card-list::before,.trio .card-list + .card-list::before{display:none}
.trio .card-list header{background:linear-gradient(180deg,var(--lightest),#fff);border:0;border-image:none}
.trio .card-list:nth-child(2) header{border-image:none;background:linear-gradient(180deg,#f6f7f9,#fff);background:linear-gradient(180deg,color-mix(in srgb,var(--magenta) 7%,#fff),#fff)}
.trio .card-list:nth-child(3) header{border-image:none}
@media (max-width:900px){.wrap.wrap--wide.trio{grid-template-columns:1fr}}

/* ---- News / Events / Notices: vertical auto-scroll feeds ---- */
.feed{position:relative;height:21rem;overflow:hidden;outline-offset:-3px;-webkit-mask:linear-gradient(transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(transparent,#000 6%,#000 94%,transparent)}
.feed:not(.feed--run){overflow:auto}
.feed__track{list-style:none;margin:0;padding:.4rem .9rem;display:grid;gap:.55rem}
.feed--run .feed__track{animation:feed-up calc(var(--n)*4.5s) linear infinite}
.feed--run:hover .feed__track,.feed--run:focus-within .feed__track,.feed--run:focus .feed__track{animation-play-state:paused}
@keyframes feed-up{to{transform:translateY(-50%)}}
.feed__empty{padding:1rem}
.fi{position:relative;display:flex;align-items:center;gap:.8rem;padding:.7rem .8rem;border-radius:14px;text-decoration:none;color:var(--text);background:linear-gradient(120deg,#fff,#f0f8fc);background:linear-gradient(120deg,#fff,color-mix(in srgb,var(--lightest) 70%,#fff));border:1px solid rgba(65,105,225,0.1);border:1px solid color-mix(in srgb,var(--royal) 10%,transparent);transition:transform .25s,box-shadow .25s,border-color .25s}
.fi:hover{transform:translateX(4px);border-color:rgba(125,139,176,0.4);border-color:color-mix(in srgb,var(--magenta) 40%,transparent);box-shadow:0 8px 20px rgba(65,105,225,.16);color:var(--text)}
.fi__dot{flex:none;width:.6rem;height:.6rem;border-radius:50%;background:linear-gradient(135deg,var(--royal),var(--magenta));box-shadow:0 0 0 4px rgba(65,105,225,0.14);box-shadow:0 0 0 4px color-mix(in srgb,var(--royal) 14%,transparent)}
.fi__d{flex:none;width:2.9rem;padding:.3rem 0;border-radius:12px;text-align:center;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;line-height:1.1;color:#fff;background:linear-gradient(135deg,var(--magenta),var(--royal));transform:rotate(-4deg);box-shadow:0 5px 12px rgba(65,105,225,.3)}
.fi__d b{display:block;font-size:1.15rem;letter-spacing:0}
.fi__body{flex:1;min-width:0;display:grid;gap:.1rem}
.fi__t{font-weight:600;font-size:.9rem;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fi:hover .fi__t{color:var(--magenta-d)}
.fi small{font-size:.74rem;color:var(--muted)}
/* attachment icon always on the right */
.fi__att{flex:none;margin-left:auto;width:2rem;height:2rem;border-radius:10px;display:grid;place-items:center;color:var(--royal-d);background:#ecf0fc;background:color-mix(in srgb,var(--royal) 10%,#fff);transition:.25s}
.fi__att .ic{width:1.05rem;height:1.05rem}
.fi:hover .fi__att{color:#fff;background:linear-gradient(135deg,var(--royal),var(--magenta));transform:rotate(-10deg) scale(1.08)}
.fi--only .fi__att{width:2.4rem;height:2.4rem;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--magenta),var(--royal));box-shadow:0 6px 16px rgba(65,105,225,.38);animation:qk-glow 3s ease-in-out infinite}
.fi--only .fi__att .ic{width:1.25rem;height:1.25rem}
@media (prefers-reduced-motion:reduce){.feed--run{overflow:auto}.feed--run .feed__track{animation:none}}

/* ---- feed rows: content cell + attachment cell ---- */
.fi{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0;align-items:stretch;overflow:hidden;cursor:pointer}
.fi--file{grid-template-columns:minmax(0,5fr) minmax(0,1fr)}
.fi__main{display:flex;align-items:center;gap:.8rem;padding:.7rem .8rem;text-decoration:none;color:inherit;min-width:0}
.fi__main:hover{color:inherit}
.fi__att{margin:0;width:auto;height:auto;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.4rem .2rem;text-decoration:none;color:var(--royal-d);background:#f2f5fd;background:color-mix(in srgb,var(--royal) 7%,#fff);border-left:1px dashed rgba(65,105,225,0.3);border-left:1px dashed color-mix(in srgb,var(--royal) 30%,transparent)}
.fi__att em{font-style:normal;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.fi:hover .fi__att{transform:none;color:#fff;background:linear-gradient(135deg,var(--royal),var(--magenta))}
.fi:hover .fi__att .ic{animation:qk-pop .5s}
.fi--only .fi__att{width:auto;height:auto;border-radius:0;color:#fff;background:linear-gradient(135deg,var(--magenta),var(--royal));box-shadow:none;animation:none}
.fi--only .fi__att .ic{width:1.3rem;height:1.3rem}
.fi:hover{transform:translateY(-2px)}

/* ---- pop-up ---- */
.dlg--feed{width:min(860px,calc(100% - 24px))}
.dlg--feed header{align-items:flex-start;background:linear-gradient(120deg,var(--royal-dd),var(--royal) 55%,var(--magenta))}
.dlg--feed .duo__tag{color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35)}
.fd__head h2{margin:.5rem 0 .25rem;font-size:clamp(1.05rem,2.4vw,1.4rem);line-height:1.3}
.fd__meta{margin:0;color:var(--light);font-size:.85rem}
.dlg__foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.7rem;padding:.9rem 1.3rem;border-top:1px solid var(--grey-d);background:linear-gradient(180deg,#fff,var(--lightest))}
.fd{text-align:left;min-height:9rem}
.fd__content{line-height:1.8;overflow-wrap:anywhere}
.fd__content img{border-radius:12px;margin-block:.6rem}
.fd__content table{max-width:100%;display:block;overflow:auto}
.fd__files{margin-top:1.4rem;padding:1rem 1.1rem;border-radius:16px;background:linear-gradient(135deg,var(--lightest),#f7f8fa);background:linear-gradient(135deg,var(--lightest),color-mix(in srgb,var(--magenta) 6%,#fff));border:1px solid rgba(65,105,225,0.14);border:1px solid color-mix(in srgb,var(--royal) 14%,transparent)}
.fd__files h3{margin:0 0 .8rem;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--royal-d)}
.fd__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem}
.fd__file{display:flex;align-items:center;gap:.8rem;padding:.6rem .7rem;border-radius:14px;background:#fff;text-decoration:none;color:var(--ink);border:1px solid rgba(65,105,225,0.12);border:1px solid color-mix(in srgb,var(--royal) 12%,transparent);transition:transform .25s,box-shadow .25s}
.fd__file:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(65,105,225,.2);color:var(--ink)}
.fd__ext{flex:none;width:2.9rem;height:2.9rem;border-radius:12px;display:grid;place-items:center;overflow:hidden;font-size:.68rem;font-weight:800;letter-spacing:.04em;color:#fff;background:linear-gradient(135deg,var(--magenta),var(--royal));transform:rotate(-5deg)}
.fd__ext img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:0}
.fd__fn{display:grid;min-width:0}.fd__fn b{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd__fn small{color:var(--muted);font-size:.74rem}
.fd__sk{height:1rem;border-radius:8px;margin-bottom:.8rem;background:linear-gradient(90deg,var(--grey),var(--lightest),var(--grey));background-size:200% 100%;animation:fd-sk 1.2s linear infinite}
.fd__sk--s{width:60%}
@keyframes fd-sk{to{background-position:-200% 0}}

/* ---- feed rows: every row is exactly the same width; 10 : 2 split when a file exists ---- */
.card-list .feed__track > li{display:block;width:100%;padding:0;border:0;margin:0}
.feed__track > li > .fi{display:grid;width:100%;max-width:100%;box-sizing:border-box;justify-content:stretch;grid-template-columns:minmax(0,1fr)}
.feed__track > li > .fi.fi--file{grid-template-columns:minmax(0,5fr) minmax(0,1fr)}
.fi__main{width:100%;min-width:0}
.fi__body{width:100%}
.fi__t{display:block;-webkit-line-clamp:unset;overflow:visible;text-align:justify;text-justify:inter-word;overflow-wrap:anywhere;word-break:break-word;hyphens:auto}
.fi__att{width:100%;min-width:0}

/* ---- pop-up: attachment-only items show the file itself ---- */
.dlg--feed.dlg--wide{width:min(1100px,calc(100% - 24px))}
.dlg--wide .dlg__body{padding:.8rem 1rem 1rem}
.fd__viewer{display:grid;gap:.7rem}
.fd__bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.fd__chip{font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;text-decoration:none;max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.35rem .8rem;border-radius:999px;color:var(--royal-d);background:#f0f3fd;background:color-mix(in srgb,var(--royal) 8%,#fff);border:1px solid rgba(65,105,225,0.22);border:1px solid color-mix(in srgb,var(--royal) 22%,transparent)}
.fd__chip.is-on{color:#fff;background:linear-gradient(120deg,var(--royal),var(--magenta));border-color:transparent}
.fd__open{margin-left:auto;font-size:.82rem;font-weight:700;color:var(--magenta-d);text-decoration:none;padding:.35rem .9rem;border-radius:999px;border:1px solid rgba(125,139,176,0.35);border:1px solid color-mix(in srgb,var(--magenta) 35%,transparent)}
.fd__open:hover{background:#f5f6f9;background:color-mix(in srgb,var(--magenta) 8%,#fff)}
.fd__stage{border-radius:14px;overflow:hidden;background:var(--grey);box-shadow:inset 0 0 0 1px rgba(65,105,225,0.14);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--royal) 14%,transparent)}
.fd__stage iframe{display:block;width:100%;height:68vh;border:0;background:#fff}
.fd__stage img{display:block;max-width:100%;max-height:68vh;margin:0 auto;object-fit:contain}

/* feeds: pause only while the pointer rests on them or a keyboard user is tabbing through - a click never freezes the scroll */
.feed--run:hover .feed__track,.feed--run:focus-within .feed__track,.feed--run:focus .feed__track{animation-play-state:running}
.feed--run:not(.feed--resume):hover .feed__track,.feed--run:has(:focus-visible) .feed__track,.feed--run:focus-visible .feed__track{animation-play-state:paused}

/* ---- placements: logos must never push the grid wider than their column ---- */
.alu__card,.alu__car,.alu__view,.alu__slide{min-width:0}
.plc__grid.alu__slide,.plc__grid.alu__slide.is-on{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.6rem,1fr));gap:.55rem}
.plc__logo{min-width:0;aspect-ratio:3/2;padding:.3rem;overflow:hidden}
.plc__logo img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.plc__path{min-width:0}

/* ---- placements: two separate boxes, logos spin slowly on their own axis ---- */
.alu.plc .alu__in{padding-inline:clamp(1rem,3vw,2.5rem)}
.plc .alu__card{box-shadow:0 12px 34px rgba(27,47,122,.10)}
.plc__grid.alu__slide,.plc__grid.alu__slide.is-on{grid-template-columns:repeat(auto-fill,minmax(6.4rem,1fr));gap:.7rem}
.plc__logo{aspect-ratio:auto;height:4.8rem;padding:.35rem;overflow:visible;perspective:420px;display:grid;place-items:center;background:#fff;border-radius:14px}
.plc__logo img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;transform-style:preserve-3d;backface-visibility:visible;animation:plc-spin 12s linear infinite,plc-glint 3.6s ease-in-out infinite;animation-delay:calc(var(--i)*-1.1s),calc(var(--i)*-.45s)}
.plc__logo:hover{transform:translateY(-4px)}
.plc__logo:hover img{animation-play-state:paused;transform:none}
@keyframes plc-spin{0%{transform:rotateY(0)}100%{transform:rotateY(360deg)}}
@keyframes plc-glint{0%,100%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 7px rgba(135,206,235,0.9));filter:drop-shadow(0 0 7px color-mix(in srgb,var(--sky) 90%,transparent))}}
@media (prefers-reduced-motion:reduce){.plc__logo img{animation:none}}

/* ---- placements: no rotation; gentle staggered fade in / out, with room around every logo ---- */
.plc__grid.alu__slide,.plc__grid.alu__slide.is-on{grid-template-columns:repeat(auto-fill,minmax(7.2rem,1fr));gap:1rem}
.plc__logo{perspective:none;height:5.2rem;padding:.6rem .7rem;overflow:hidden;border-radius:14px;display:grid;place-items:center}
.plc__logo img{transform:none!important;transform-style:flat;width:100%;height:100%;object-fit:contain;filter:none;animation:plc-fade 6s ease-in-out infinite;animation-delay:calc(var(--i)*-.55s)}
.plc__logo:hover{transform:translateY(-3px)}
.plc__logo:hover img{animation-play-state:paused;opacity:1}
@keyframes plc-fade{0%,100%{opacity:1}45%,60%{opacity:.12}}
@media (prefers-reduced-motion:reduce){.plc__logo img{animation:none;opacity:1}}

/* ---- placements: even padding on all four sides + sparkling rounded frame ---- */
.plc__logo{position:relative;isolation:isolate;box-sizing:border-box;display:flex;align-items:center;justify-content:center;height:5.6rem;padding:.7rem;overflow:hidden;background:#fff;border:0;border-radius:16px;box-shadow:0 4px 14px rgba(27,47,122,.10)}
.plc__logo img{box-sizing:border-box;width:auto;height:auto;max-width:100%;max-height:100%;flex:0 1 auto;object-fit:contain;border-radius:6px}
/* animated gradient frame */
.plc__logo::before{content:"";position:absolute;inset:0;z-index:-1;padding:2px;border-radius:inherit;background:conic-gradient(from var(--qa),var(--royal),var(--sky),var(--magenta),#fff,var(--royal));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.75;animation:qk-spin 7s linear infinite;animation-delay:calc(var(--i)*-.6s)}
/* twinkling sparkle in the corner */
.plc__logo::after{content:"";position:absolute;top:7px;right:8px;width:11px;height:11px;z-index:2;background:linear-gradient(135deg,#fff,var(--sky) 45%,var(--magenta));clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:drop-shadow(0 0 3px var(--sky));animation:plc-twinkle 2.8s ease-in-out infinite;animation-delay:calc(var(--i)*-.35s)}
@keyframes plc-twinkle{0%,100%{transform:scale(.2) rotate(0);opacity:0}50%{transform:scale(1) rotate(45deg);opacity:1}}
.plc__logo:hover::before{opacity:1}
@media (prefers-reduced-motion:reduce){.plc__logo::before,.plc__logo::after{animation:none}.plc__logo::after{opacity:1;transform:none}}

/* ---- Alumni | Contributors: straight divider whose top and bottom fade out ---- */
.alu__in--tilt-r{--tilt:0deg;--panel-bg:linear-gradient(90deg,#edf7fc 0 50%,#f6f7f9 50% 100%)}
.alu__in--tilt-r::before{top:0;bottom:0;background:linear-gradient(180deg,transparent,var(--royal) 22%,var(--sky) 50%,var(--magenta) 78%,transparent)}
.alu__in--tilt-r::after{border-radius:50%;transform:none}
@media (max-width:980px){.alu__in--tilt-r::before{transform:rotate(2deg)}}
.alu__in--tilt-r .alu__p{background:none;box-shadow:none;border:0;border-radius:14px;border-bottom:1px dashed rgba(65,105,225,0.22);border-bottom:1px dashed color-mix(in srgb,var(--royal) 22%,transparent);padding-inline:.4rem}
.alu__in--tilt-r .alu__p:hover{transform:none;background:rgba(65,105,225,0.06);background:color-mix(in srgb,var(--royal) 6%,transparent)}
.alu__in--tilt-r .alu__slide{gap:.25rem}
.alu__in--tilt-r .con{background:none;box-shadow:none}
.alu__in--tilt-r .con__i{background:none;box-shadow:none;border-bottom:1px dashed rgba(125,139,176,0.25);border-bottom:1px dashed color-mix(in srgb,var(--magenta) 25%,transparent);border-radius:0;padding-inline:.3rem}

/* ---- alumni / achievers / placements carousels: slow fade out, then slow fade in ---- */
.alu__view{display:grid}
.alu__slide,.alu__slide[hidden]{grid-area:1/1;display:grid;opacity:0;visibility:hidden;pointer-events:none;animation:none;transition:opacity .9s ease,visibility 0s .9s}
.alu__slide.is-on{opacity:1;visibility:visible;pointer-events:auto;animation:none;transition:opacity 1s ease .85s,visibility 0s .85s}
.plc__grid.alu__slide{display:grid}
@media (prefers-reduced-motion:reduce){.alu__slide,.alu__slide.is-on{transition:none}}

/* ---- Our Alumni only: slides glide in from the right, slowly (achievers keep the fade) ---- */
.alu__car--slide .alu__view{overflow:hidden}
.alu__car--slide .alu__slide,.alu__car--slide .alu__slide[hidden]{transform:translateX(100%);transition:transform 1.4s cubic-bezier(.65,0,.35,1),opacity 1.4s ease,visibility 0s 1.4s}
.alu__car--slide .alu__slide.is-on{transform:none;opacity:1;visibility:visible;transition:transform 1.4s cubic-bezier(.65,0,.35,1),opacity 1.4s ease,visibility 0s}
.alu__car--slide .alu__slide.is-out{transform:translateX(-100%);opacity:0}
@media (prefers-reduced-motion:reduce){.alu__car--slide .alu__slide,.alu__car--slide .alu__slide.is-on{transition:none}}

/* Our Alumni + Our Achievers: names and descriptions in capitals */
.alu__car .alu__txt h3,.alu__car .alu__txt p{text-transform:uppercase}
.alu__car .alu__txt h3{letter-spacing:.03em}
.alu__car .alu__txt p{letter-spacing:.015em;font-size:.78rem}

/* =====================================================================
   Pale-pink surfaces -> light grey, with matching (blue / ink) text.
   Brand magenta stays only inside gradient accents (icons, ring, dots).
   ===================================================================== */
:root{--soft:#f2f4f7;--soft-2:#e9edf3;--soft-line:#d9dee6}
body{background:radial-gradient(900px 500px at 8% 4%,rgba(135,206,235,0.28),transparent 70%),radial-gradient(900px 600px at 20% 95%,rgba(65,105,225,0.09),transparent 70%),var(--grey);background:radial-gradient(900px 500px at 8% 4%,color-mix(in srgb,var(--sky) 28%,transparent),transparent 70%),radial-gradient(900px 600px at 20% 95%,color-mix(in srgb,var(--royal) 9%,transparent),transparent 70%),var(--grey);background-attachment:fixed}
/* panels / cards */
.pd.duo__card,.alu__card--c{background:linear-gradient(160deg,#fff,var(--soft))}
.alu__card--c::after,.pd.duo__card::after{background:var(--soft-2)}
.alu__in--tilt,.duo--tilt{--panel-bg:linear-gradient(96deg,#edf7fc 0 50%,var(--soft) 50% 100%)}
.alu__in--tilt-r{--panel-bg:linear-gradient(90deg,#edf7fc 0 50%,var(--soft) 50% 100%)}
.alu__in--split{--panel-bg:linear-gradient(120deg,rgba(255,255,255,.95),#eef7fc 50%,var(--soft))}
@media (max-width:980px){.alu__in--tilt > :nth-child(2),.duo--tilt > .duo__card:nth-of-type(2){background-color:var(--soft)!important}}
.trio .card-list:nth-child(2) header{background:linear-gradient(180deg,var(--soft),#fff)}
.fd__files{background:linear-gradient(135deg,var(--lightest),var(--soft))}
/* tags, chips, tabs, buttons that were pink */
.alu__card--c .duo__tag,.pd .duo__tag{color:var(--royal-d);background:var(--soft);border-color:var(--soft-line)}
.pd__chip{color:var(--royal-d);background:#fff;border-color:var(--soft-line)}
.pd .eyebrow{color:var(--royal-d)}
.pd__tabs{background:#fff;box-shadow:inset 0 0 0 1px var(--soft-line)}
.pd__tabs button{color:var(--royal-d)}
.pd__tabs button[aria-selected=true]{background:linear-gradient(120deg,var(--royal-d),var(--royal));color:#fff;box-shadow:0 4px 14px rgba(65,105,225,.3)}
.pd__btn{color:var(--royal-d);background:#fff;border-color:var(--soft-line)}
.pd__btn:hover{background:var(--soft)}
.pd__btn--solid{background:linear-gradient(120deg,var(--royal-d),var(--royal));color:#fff;border-color:transparent;box-shadow:0 8px 22px rgba(65,105,225,.32)}
.pd__btn--solid:hover{background:linear-gradient(120deg,var(--royal),var(--royal-dd));color:#fff;box-shadow:0 12px 28px rgba(65,105,225,.45)}
/* quotes / poems / lists */
.pd__motto{border-left-color:var(--royal);background:linear-gradient(90deg,var(--soft),transparent)}
.pd__motto span{color:var(--royal-dd)}
.pd__poem,.dlg__body .pd__poem{color:var(--text);border-left-color:var(--soft-line)}
.pd__list li::marker{color:var(--royal)}
.pd__panel{scrollbar-color:var(--royal) transparent}
.pd__who h3{color:var(--ink)}
/* contributors */
.con__t small{color:var(--muted)}
.alu__in--tilt-r .con__i,.alu__in--split .con__i{border-bottom-color:var(--soft-line)}
.con{box-shadow:inset 0 0 0 1px var(--soft-line)}
/* misc */
.vt__item--m .vt__chip{color:var(--royal-d);background:var(--soft)}
.plc__steps li{color:var(--royal-d)}
.duo__head .h2,.alu__card .h2{background:linear-gradient(100deg,var(--royal-dd),var(--royal));-webkit-background-clip:text;background-clip:text}
.duo__head .h2::after{background:linear-gradient(90deg,var(--royal),var(--sky))}
.dlg header,.dlg--feed header{background:linear-gradient(120deg,var(--royal-dd),var(--royal))}
.fd__open{color:var(--royal-d);border-color:var(--soft-line)}
.fd__open:hover{background:var(--soft)}

/* =====================================================================
   Pink, kept only where asked: "Latest" badge, alternate quick-access icons,
   header small labels, Events box top border, separator dots
   ===================================================================== */
:root{--pink:#C8179B;--pink-d:#9d1079}
.ticker__label{background:var(--pink)}
.hl__tx small{color:var(--pink)}
/* quick access: blue, pink, blue, pink ... */
.qk__orb{background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 8px 18px rgba(65,105,225,.38),inset 0 1px 0 rgba(255,255,255,.4);animation-name:qk-glow-blue}
.qk:nth-child(even) .qk__orb{background:linear-gradient(135deg,var(--pink),var(--pink-d));box-shadow:0 8px 18px rgba(200,23,155,.38),inset 0 1px 0 rgba(255,255,255,.4);animation-name:qk-glow-pink}
@keyframes qk-glow-blue{50%{box-shadow:0 8px 26px rgba(65,105,225,.55),inset 0 1px 0 rgba(255,255,255,.4)}}
@keyframes qk-glow-pink{50%{box-shadow:0 8px 26px rgba(200,23,155,.55),inset 0 1px 0 rgba(255,255,255,.4)}}
/* events box */
.trio .card-list:nth-child(2){border-top-color:var(--pink)}
/* round dot / diamond on every separator */
.alu__in--split::after,.alu__in--tilt::after,.duo--tilt::after,.alu__in--tilt-r::after{background:radial-gradient(circle,#fff 28%,var(--pink) 30%);box-shadow:0 0 0 5px rgba(200,23,155,.18),0 0 20px var(--pink)}
.alu__in--split::after,.alu__in--tilt::after,.duo--tilt::after,.alu__in--tilt-r::after{border-radius:50%;transform:none}

/* ---- feeds: empty state ---- */
.feed:has(> .feed__empty){-webkit-mask:none;mask:none;overflow:hidden}
.feed__empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;text-align:center;color:var(--muted)}
.feed__eico{position:relative;width:5.4rem;height:5.4rem;border-radius:26px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 14px 30px rgba(65,105,225,.32),inset 0 1px 0 rgba(255,255,255,.4);transform:rotate(-6deg);animation:feed-float 4s ease-in-out infinite}
.feed__eico::before{content:"";position:absolute;inset:-9px;border-radius:32px;border:1.5px dashed rgba(65,105,225,0.4);border:1.5px dashed color-mix(in srgb,var(--royal) 40%,transparent)}
.feed__eico .ic{width:2.5rem;height:2.5rem;stroke-width:1.7}
.card-list:nth-child(2) .feed__eico{background:linear-gradient(135deg,var(--pink),var(--pink-d));box-shadow:0 14px 30px rgba(200,23,155,.3),inset 0 1px 0 rgba(255,255,255,.4)}
.card-list:nth-child(2) .feed__eico::before{border-color:rgba(200,23,155,0.4);border-color:color-mix(in srgb,var(--pink) 40%,transparent)}
.card-list:nth-child(3) .feed__eico{background:linear-gradient(135deg,var(--sky),var(--royal))}
.feed__empty strong{margin-top:.8rem;font-size:1rem;color:var(--ink)}
.feed__empty small{font-size:.82rem}
@keyframes feed-float{50%{transform:rotate(-6deg) translateY(-8px)}}
@media (prefers-reduced-motion:reduce){.feed__eico{animation:none}}

/* ---- Placements, then Career Pathways: stacked, full width, no box borders, same header style ---- */
.plc .alu__in{grid-template-columns:minmax(0,1fr);gap:2.4rem;padding-block:1.6rem 2.6rem}
.plc .alu__card,.plc .alu__card--c{background:none!important;box-shadow:none!important;border:0;border-radius:0;padding:0;overflow:visible}
.plc .alu__card::before,.plc .alu__card::after{display:none!important}
.plc .alu__card--c .duo__tag{color:var(--royal-d);background:#ecf0fc;background:color-mix(in srgb,var(--royal) 10%,#fff);border-color:rgba(65,105,225,0.25);border-color:color-mix(in srgb,var(--royal) 25%,transparent)}
.plc__text{max-width:70rem}
.plc__steps{max-width:56rem}
/* big logos, still / calm: only the sparkling frame remains */
.plc__grid.alu__slide,.plc__grid.alu__slide.is-on{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:1.1rem}
.plc__logo{height:7.4rem;padding:.9rem 1rem;border-radius:20px}
.plc__logo img{animation:none;opacity:1;filter:none}
.plc__logo:hover{transform:translateY(-4px)}
.plc__logo::before{padding:2.5px}

/* ---- Placements 9 : Career Pathways 3, one row, no separator ---- */
.plc .alu__in{grid-template-columns:minmax(0,9fr) minmax(0,3fr);column-gap:clamp(1.6rem,3vw,3rem);align-items:start}
.plc__text{max-width:none}
.plc__steps{max-width:none;grid-template-columns:repeat(2,1fr);gap:.9rem .6rem}
.plc__steps::before{display:none}
.plc__grid.alu__slide,.plc__grid.alu__slide.is-on{grid-template-columns:repeat(auto-fill,minmax(9.2rem,1fr))}
.plc__logo{height:6.8rem}
@media (max-width:980px){.plc .alu__in{grid-template-columns:minmax(0,1fr);row-gap:2rem}.plc__steps{grid-template-columns:repeat(4,1fr)}.plc__steps::before{display:block}}
@media (max-width:520px){.plc__steps{grid-template-columns:repeat(2,1fr)}.plc__steps::before{display:none}}

/* ---- Career Pathways: rounded pink-bordered box, coloured icons joined by pink arrows ---- */
.plc .alu__card.plc__path{background:linear-gradient(160deg,#fff,var(--soft))!important;border:2px solid var(--pink)!important;border-radius:26px!important;padding:clamp(1.2rem,2vw,1.7rem)!important;box-shadow:0 14px 34px rgba(200,23,155,.12)!important;overflow:hidden}
.plc__path .plc__text{font-size:.93rem;line-height:1.7;margin-bottom:1.1rem}
.plc__steps{list-style:none;display:flex!important;flex-direction:column;gap:0;margin:0 0 1.2rem;padding:0}
.plc__steps::before{display:none!important}
.plc__steps li{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:.9rem;padding:0 0 2.2rem;text-align:left;font-size:.95rem;font-weight:700;color:var(--ink)}
.plc__steps li:last-child{padding-bottom:0}
.plc__steps .ic{box-sizing:content-box;flex:none;width:1.4rem;height:1.4rem;padding:.75rem;border-radius:16px;color:#fff;transform:none!important;animation:none;box-shadow:0 8px 18px rgba(27,47,122,.22)}
.plc__steps li:nth-child(1) .ic{background:linear-gradient(135deg,var(--royal),var(--royal-d))}
.plc__steps li:nth-child(2) .ic{background:linear-gradient(135deg,var(--sky),var(--royal))}
.plc__steps li:nth-child(3) .ic{background:linear-gradient(135deg,var(--pink),var(--pink-d));box-shadow:0 8px 18px rgba(200,23,155,.3)}
.plc__steps li:nth-child(4) .ic{background:linear-gradient(135deg,var(--royal-d),var(--royal-dd))}
/* pink arrow between two steps (points down; points right when laid out in a row) */
.plc__steps li:not(:last-child)::after{content:"";position:absolute;left:1.35rem;top:calc(1.4rem + 1.5rem + .1rem);width:1.1rem;height:1.7rem;margin-left:-.55rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='28' viewBox='0 0 18 28'%3E%3Cpath d='M9 1v22M2 16l7 8 7-8' fill='none' stroke='%23C8179B' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.plc__path .pd__act{margin-top:auto}
@media (max-width:980px){
  .plc__steps{flex-direction:row!important;flex-wrap:wrap;gap:.8rem 0}
  .plc__steps li{flex:1 1 9rem;padding:0 1.8rem 0 0}
  .plc__steps li:last-child{padding-right:0}
  .plc__steps li:not(:last-child)::after{left:auto;right:.2rem;top:50%;margin:-.85rem 0 0;width:1.5rem;height:1.1rem;transform:rotate(-90deg)}
}
@media (max-width:520px){
  .plc__steps{flex-direction:column!important}
  .plc__steps li{flex:none;padding:0 0 2.2rem}
  .plc__steps li:not(:last-child)::after{left:1.35rem;right:auto;top:calc(1.4rem + 1.5rem + .1rem);margin:0 0 0 -.55rem;width:1.1rem;height:1.7rem;transform:none}
}

/* ---- Career Pathways: order Grow > Get placed > Train > Learn; View button to the right of the list ---- */
.plc__row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.plc__steps{margin:0}
.plc__steps li:nth-child(1) .ic{background:linear-gradient(135deg,var(--royal-d),var(--royal-dd));box-shadow:0 8px 18px rgba(27,47,122,.28)}
.plc__steps li:nth-child(2) .ic{background:linear-gradient(135deg,var(--pink),var(--pink-d));box-shadow:0 8px 18px rgba(200,23,155,.3)}
.plc__steps li:nth-child(3) .ic{background:linear-gradient(135deg,var(--sky),var(--royal));box-shadow:0 8px 18px rgba(65,105,225,.28)}
.plc__steps li:nth-child(4) .ic{background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 8px 18px rgba(65,105,225,.3)}
.plc__go{flex:none;display:inline-flex;flex-direction:column;align-items:center;gap:.4rem;padding:.9rem .8rem;border-radius:18px;text-decoration:none;font-weight:800;font-size:.92rem;letter-spacing:.04em;color:#fff;background:linear-gradient(160deg,var(--pink),var(--pink-d));box-shadow:0 10px 24px rgba(200,23,155,.35);transition:transform .25s,box-shadow .25s}
.plc__go .ic{width:1.5rem;height:1.5rem;transition:transform .25s}
.plc__go:hover{color:#fff;transform:translateY(-3px);box-shadow:0 14px 30px rgba(200,23,155,.5)}
.plc__go:hover .ic{transform:translateX(4px)}
@media (max-width:520px){.plc__row{flex-direction:column;align-items:stretch}.plc__go{flex-direction:row;justify-content:center}}
/* step arrows point upward: Learn > Train > Get placed > Grow (list is shown top-down as Grow ... Learn) */
.plc__steps li:not(:last-child)::after{transform:rotate(180deg)}
@media (max-width:980px){.plc__steps li:not(:last-child)::after{transform:rotate(-90deg)}}
@media (max-width:520px){.plc__steps li:not(:last-child)::after{transform:rotate(180deg)}}

/* ---- Placements logos: sun-ray sparkle frame ---- */
.plc__logo{overflow:visible}
.plc__logo::before{
  inset:-6px;padding:6px;border-radius:24px;opacity:1;
  background:repeating-conic-gradient(from var(--qa),#fff3b0 0deg 3deg,#ffd35a 3deg 5deg,rgba(255,255,255,0) 5deg 13deg,var(--sky) 13deg 15deg,rgba(255,255,255,0) 15deg 22deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  filter:drop-shadow(0 0 4px rgba(255,211,90,.85));
  animation:qk-spin 14s linear infinite,plc-rays 2.4s ease-in-out infinite;
  animation-delay:calc(var(--i)*-.8s),calc(var(--i)*-.3s)}
.plc__logo:hover::before{animation-duration:5s,1.2s}
@keyframes plc-rays{0%,100%{opacity:.55}50%{opacity:1}}
.plc__logo::after{top:-3px;right:-3px;width:15px;height:15px;background:linear-gradient(135deg,#fff,#ffe58a 50%,#ffc23a);filter:drop-shadow(0 0 5px #ffd35a)}
@media (prefers-reduced-motion:reduce){.plc__logo::before{animation:none;opacity:.9}}

/* ---- Placements logos: one gold sparkle runs around the rectangular border ---- */
.plc__logo{overflow:visible}
.plc__logo::before{inset:0;padding:2px;border-radius:20px;opacity:1;filter:none;animation:none;
  background:linear-gradient(135deg,#f4dd9a,#e2b84e 50%,#f4dd9a);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.plc__logo{border-radius:20px}
.plc__logo::after{
  content:"";position:absolute;z-index:3;top:0;left:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;clip-path:none;
  background:radial-gradient(circle,#fff 0 28%,#ffe58a 30% 55%,rgba(255,200,60,0) 72%);
  box-shadow:0 0 8px 3px rgba(255,205,70,.85),0 0 18px 6px rgba(255,205,70,.45);filter:none;opacity:1;
  animation:plc-run 5s linear infinite;animation-delay:calc(var(--i)*-.7s)}
@keyframes plc-run{0%{top:0;left:0}25%{top:0;left:100%}50%{top:100%;left:100%}75%{top:100%;left:0}100%{top:0;left:0}}
@supports (offset-path:inset(0 round 20px)){
  .plc__logo::after{top:0;left:0;margin:0;offset-path:inset(0 round 20px);offset-rotate:0deg;offset-anchor:center;animation:plc-run-op 5s linear infinite;animation-delay:calc(var(--i)*-.7s)}
  @keyframes plc-run-op{from{offset-distance:0%}to{offset-distance:100%}}
}
@media (prefers-reduced-motion:reduce){.plc__logo::after{animation:none;top:0;left:100%}}

/* ---- Placements logos: plain glowing border, a different colour per tile (no moving dot) ---- */
.plc__logo{--c:#4169E1;border:2px solid var(--c);box-shadow:0 0 0 0 transparent,0 0 12px rgba(67,160,71,0.55);box-shadow:0 0 0 0 transparent,0 0 12px color-mix(in srgb,var(--c) 55%,transparent);animation:plc-glow 3.2s ease-in-out infinite;animation-delay:calc(var(--i)*-.4s)}
.plc__logo::before,.plc__logo::after{display:none!important}
.plc__logo:nth-child(8n+2){--c:#87CEEB}
.plc__logo:nth-child(8n+3){--c:#C8179B}
.plc__logo:nth-child(8n+4){--c:#f2b01e}
.plc__logo:nth-child(8n+5){--c:#1fb59a}
.plc__logo:nth-child(8n+6){--c:#7c5cff}
.plc__logo:nth-child(8n+7){--c:#ff7a45}
.plc__logo:nth-child(8n+8){--c:#43a047}
@keyframes plc-glow{50%{box-shadow:0 0 0 3px rgba(67,160,71,0.18),0 0 22px rgba(67,160,71,0.8);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 18%,transparent),0 0 22px color-mix(in srgb,var(--c) 80%,transparent)}}
.plc__logo:hover{animation-play-state:paused;box-shadow:0 0 0 3px rgba(67,160,71,0.22),0 0 26px var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 22%,transparent),0 0 26px var(--c)}
@media (prefers-reduced-motion:reduce){.plc__logo{animation:none}}

/* ---- Placements logos: slow expand / squeeze ("breathing"), staggered ---- */
.plc__logo{animation:plc-glow 3.2s ease-in-out infinite,plc-breathe 4.8s ease-in-out infinite;animation-delay:calc(var(--i)*-.4s),calc(var(--i)*-.6s);will-change:transform}
@keyframes plc-breathe{0%,100%{transform:scale(1)}35%{transform:scale(1.07)}70%{transform:scale(.95)}}
.plc__logo:hover{animation-play-state:paused,paused;transform:scale(1.08)}
@media (prefers-reduced-motion:reduce){.plc__logo{animation:none;will-change:auto}}

/* ---- Social icons: hanging rail on the right edge ---- */
.hang{position:fixed;z-index:60;top:clamp(7rem,22vh,11rem);right:clamp(.5rem,1.2vw,1rem);pointer-events:none}
.hang ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:.15rem}
.hang__rail{position:absolute;top:-10px;left:50%;width:2.6rem;height:6px;margin-left:-1.3rem;border-radius:6px;background:linear-gradient(90deg,var(--royal-d),var(--royal),var(--sky));box-shadow:0 3px 10px rgba(27,47,122,.3)}
.hang__i{pointer-events:auto;transform-origin:50% 0;animation:hang-sway 4.6s ease-in-out infinite;animation-delay:calc(var(--i)*-.9s)}
.hang__i a{position:relative;display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--royal-d)}
.hang__string{width:2px;height:1.1rem;background:linear-gradient(180deg,var(--royal-d),var(--sky))}
.hang__badge{width:2.9rem;height:2.9rem;border-radius:50%;display:grid;place-items:center;color:var(--royal-d);background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid rgba(65,105,225,0.35);border:2px solid color-mix(in srgb,var(--royal) 35%,transparent);box-shadow:0 8px 18px rgba(27,47,122,.22),inset 0 1px 0 #fff;transition:transform .3s,background .3s,color .3s,box-shadow .3s}
.hang__badge .ic{width:1.35rem;height:1.35rem}
.hang__tip{position:absolute;right:calc(100% + .7rem);top:calc(1.1rem + 1.45rem);transform:translate(8px,-50%);opacity:0;white-space:nowrap;font-size:.78rem;font-weight:700;color:#fff;padding:.3rem .75rem;border-radius:999px;background:linear-gradient(120deg,var(--royal-d),var(--royal));box-shadow:0 6px 16px rgba(27,47,122,.3);transition:.25s;pointer-events:none}
.hang__i a:hover .hang__tip,.hang__i a:focus-visible .hang__tip{opacity:1;transform:translate(0,-50%)}
.hang__i:hover,.hang__i:focus-within{animation:hang-swing 1.4s ease-out 1}
.hang__i a:hover .hang__badge,.hang__i a:focus-visible .hang__badge{color:#fff;transform:scale(1.12);border-color:transparent}
.hang__i--fb a:hover .hang__badge{background:#1877f2;box-shadow:0 0 22px #1877f2}
.hang__i--ig a:hover .hang__badge{background:linear-gradient(45deg,#f9ce34,#ee2a7b 55%,#6228d7);box-shadow:0 0 22px #ee2a7b}
.hang__i--x a:hover .hang__badge{background:#111;box-shadow:0 0 22px rgba(0,0,0,.6)}
.hang__i--yt a:hover .hang__badge{background:#ff0000;box-shadow:0 0 22px #ff0000}
.hang__i--in a:hover .hang__badge{background:#0a66c2;box-shadow:0 0 22px #0a66c2}
@keyframes hang-sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes hang-swing{0%{transform:rotate(14deg)}25%{transform:rotate(-10deg)}50%{transform:rotate(6deg)}75%{transform:rotate(-3deg)}100%{transform:rotate(0)}}
@media (max-width:700px){.hang{top:auto;bottom:9.5rem;right:.4rem}.hang__badge{width:2.4rem;height:2.4rem}.hang__string{height:.7rem}.hang__tip{display:none}.hang__rail{display:none}}
@media (prefers-reduced-motion:reduce){.hang__i,.hang__i:hover{animation:none}}

/* rail rests on the hero image; hero's next-arrow moves clear of it */
.hang{top:var(--hang-top,clamp(10rem,24vh,13rem))}
.hero__arrow--next{right:calc(clamp(.6rem,2vw,1.6rem) + 4.6rem)}
@media (max-width:700px){.hang{top:auto}}

/* social icons: official brand colours all the time (white glyph on brand background) */
.hang__badge{color:#fff;border-color:rgba(255,255,255,.85)}
.hang__i--fb .hang__badge{background:#1877f2;box-shadow:0 8px 18px rgba(24,119,242,.4),inset 0 1px 0 rgba(255,255,255,.35)}
.hang__i--ig .hang__badge{background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%);box-shadow:0 8px 18px rgba(214,36,159,.4),inset 0 1px 0 rgba(255,255,255,.35)}
.hang__i--x .hang__badge{background:#000;box-shadow:0 8px 18px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.25)}
.hang__i--yt .hang__badge{background:#ff0000;box-shadow:0 8px 18px rgba(255,0,0,.38),inset 0 1px 0 rgba(255,255,255,.35)}
.hang__i--in .hang__badge{background:#0a66c2;box-shadow:0 8px 18px rgba(10,102,194,.4),inset 0 1px 0 rgba(255,255,255,.35)}
.hang__i--fb .hang__string{background:linear-gradient(180deg,var(--royal-d),#1877f2)}
.hang__i--ig .hang__string{background:linear-gradient(180deg,var(--royal-d),#d6249f)}
.hang__i--x .hang__string{background:linear-gradient(180deg,var(--royal-d),#000)}
.hang__i--yt .hang__string{background:linear-gradient(180deg,var(--royal-d),#ff0000)}
.hang__i--in .hang__string{background:linear-gradient(180deg,var(--royal-d),#0a66c2)}
.hang__i--fb .hang__tip{background:#1877f2}.hang__i--ig .hang__tip{background:linear-gradient(120deg,#d6249f,#fd5949)}.hang__i--x .hang__tip{background:#000}.hang__i--yt .hang__tip{background:#ff0000}.hang__i--in .hang__tip{background:#0a66c2}
.hang__i--fb a:hover .hang__badge{box-shadow:0 0 24px #1877f2}.hang__i--ig a:hover .hang__badge{box-shadow:0 0 24px #d6249f}.hang__i--x a:hover .hang__badge{box-shadow:0 0 24px rgba(0,0,0,.7)}.hang__i--yt a:hover .hang__badge{box-shadow:0 0 24px #ff0000}.hang__i--in a:hover .hang__badge{box-shadow:0 0 24px #0a66c2}

/* hero: no left / right slide arrows (dots, swipe and autoplay remain) */
.hero__arrow{display:none!important}

/* navbar: every menu icon sits in a pink badge, glyph in white */
.navbar .nav .nav__ic{display:inline-grid!important;place-items:center;flex:none;width:1.75em!important;height:1.75em;margin-right:.5em;font-size:.8rem!important;line-height:1;border-radius:9px;color:#fff!important;background:linear-gradient(135deg,var(--pink),var(--pink-d))!important;box-shadow:0 3px 8px rgba(200,23,155,.35);transition:transform .25s,box-shadow .25s}
.navbar .nav .nav__link:hover .nav__ic{transform:rotate(-8deg) scale(1.08);box-shadow:0 5px 12px rgba(200,23,155,.5)}
.navbar .nav .nav__sub .nav__ic{font-size:.7rem!important;margin-right:.6rem}

/* dropdown links: just a pink arrow, no badge / no ring */
.navbar .nav .nav__sub .nav__ic{background:none!important;box-shadow:none!important;border-radius:0;width:1em!important;height:auto;margin-right:.6rem;font-size:.8rem!important;color:var(--pink)!important;display:inline-block!important;transition:transform .2s}
.navbar .nav .nav__sub .nav__link:hover .nav__ic{transform:translateX(3px);box-shadow:none!important;color:var(--pink)!important}

/* quick access icons: straight by default, tilt only on hover */
.qk .qk__orb,.qk:nth-child(even) .qk__orb{transform:none}
.qk:hover .qk__orb{transform:rotate(-9deg) scale(1.12)}
.qk:nth-child(even):hover .qk__orb{transform:rotate(9deg) scale(1.12)}

/* attachment cell: light grey with matching icon / text colours */
.fi__att,.fi--only .fi__att{background:var(--soft);color:var(--royal-d);border-left:1px dashed var(--soft-line);box-shadow:none;animation:none}
.fi__att em{color:var(--muted)}
.fi--only .fi__att{color:var(--pink)}
.fi--only .fi__att em{color:var(--pink-d)}
.fi:hover .fi__att{background:var(--soft-2);color:var(--royal-dd)}
.fi:hover .fi__att em{color:var(--royal-d)}
.fi--only:hover .fi__att{color:var(--pink-d)}
.fi--only:hover .fi__att em{color:var(--pink-d)}

/* contributors: heart icons in magenta/pink */
.con__ico{background:#f8e3f3;color:var(--pink);box-shadow:inset 0 0 0 1px rgba(200,23,155,0.28)}
.con__ico .ic{fill:currentColor}
.alu__card--c .duo__tag .ic,.alu__card--c .pd__btn:not(.pd__btn--solid) .ic{color:var(--pink)}

/* accessibility button lives in the header, extreme right; the right-hand block shifts left to make room */
.masthead .a11y-fab{position:static;flex:none;width:52px;height:52px;margin-left:.4rem;border:3px solid #fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 6px 18px rgba(27,47,122,.35),0 0 0 2px var(--royal)}
.masthead .a11y-fab .ic{width:28px;height:28px}
.masthead .a11y-fab:hover{background:linear-gradient(135deg,var(--pink),var(--pink-d));box-shadow:0 6px 18px rgba(200,23,155,.4),0 0 0 2px var(--pink);transform:scale(1.07)}
.masthead__right{margin-right:clamp(1rem,2.4vw,2.2rem)}
@media (max-width:980px){.masthead__right{margin-right:0}.masthead .a11y-fab{order:2;margin-left:auto}.burger{margin-left:.6rem}}

/* header: bigger accessibility button, right-hand block nudged back toward the right */
.masthead .a11y-fab{width:66px;height:66px;margin-left:0}
.masthead .a11y-fab .ic{width:38px;height:38px}
.masthead__right{margin-right:clamp(.4rem,.8vw,.8rem)}
@media (max-width:980px){.masthead__right{margin-right:0}.masthead .a11y-fab{width:56px;height:56px}.masthead .a11y-fab .ic{width:32px;height:32px}}

/* header: right-hand block flush toward the accessibility button (only a small gap between them) */
.masthead__right{margin-right:0}
.masthead .a11y-fab{margin-left:-.9rem}
@media (max-width:980px){.masthead .a11y-fab{margin-left:auto}}

/* header: accessibility icon alone sits at the extreme right, vertically centred, with a clear gap on its left */
@media (min-width:981px){
  .masthead .masthead__in{padding-right:calc(66px + 1.7rem)}
  .masthead .a11y-fab{position:absolute;right:.7rem;top:50%;margin:0;transform:translateY(-50%)}
  .masthead .a11y-fab:hover{transform:translateY(-50%) scale(1.07)}
  .masthead__right{margin-right:0}
}

/* header: icon pushed right to the edge, with a wider clear margin on its left */
@media (min-width:981px){
  .masthead .masthead__in{padding-right:calc(66px + 2.8rem)}
  .masthead .a11y-fab{right:4px}
}

/* the icon's old fixed-corner offsets (left / bottom) must not apply any more */
@media (min-width:981px); hero's next-arrow moves clear of it */
.hang{top:var(--hang-top,clamp(10rem,24vh,13rem))}
.hero__arrow--next{right:calc(clamp(.6rem,2vw,1.6rem) + 4.6rem)}
@media (max-width:700px){.hang{top:auto}}

/* social icons: official brand colours all the time (white glyph on brand background) */
.hang__badge{color:#fff;border-color:rgba(255,255,255,.85)}
.hang__i--fb .hang__badge{background:#1877f2;box-shadow:0 8px 18px rgba(24,119,242,.4),inset 0 1px 0 rgba(255,255,255,.35)}
.hang__i--ig .hang__badge{background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%);box-shadow:0 8px 18px rgba(214,36,159,.4),inset 0 1px 0 rgba(255,255,255,.35)}
.hang__i--x .hang__badge{background:#000;box-shadow:0 8px 18px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.25)}
.hang__i--yt .hang__badge{background:#ff0000;box-shadow:0 8px 18px rgba(255,0,0,.38),inset 0 1px 0 rgba(255,255,255,.35)}
.hang__i--in .hang__badge{background:#0a66c2;box-shadow:0 8px 18px rgba(10,102,194,.4),inset 0 1px 0 rgba(255,255,255,.35)}
.hang__i--fb .hang__string{background:linear-gradient(180deg,var(--royal-d),#1877f2)}
.hang__i--ig .hang__string{background:linear-gradient(180deg,var(--royal-d),#d6249f)}
.hang__i--x .hang__string{background:linear-gradient(180deg,var(--royal-d),#000)}
.hang__i--yt .hang__string{background:linear-gradient(180deg,var(--royal-d),#ff0000)}
.hang__i--in .hang__string{background:linear-gradient(180deg,var(--royal-d),#0a66c2)}
.hang__i--fb .hang__tip{background:#1877f2}.hang__i--ig .hang__tip{background:linear-gradient(120deg,#d6249f,#fd5949)}.hang__i--x .hang__tip{background:#000}.hang__i--yt .hang__tip{background:#ff0000}.hang__i--in .hang__tip{background:#0a66c2}
.hang__i--fb a:hover .hang__badge{box-shadow:0 0 24px #1877f2}.hang__i--ig a:hover .hang__badge{box-shadow:0 0 24px #d6249f}.hang__i--x a:hover .hang__badge{box-shadow:0 0 24px rgba(0,0,0,.7)}.hang__i--yt a:hover .hang__badge{box-shadow:0 0 24px #ff0000}.hang__i--in a:hover .hang__badge{box-shadow:0 0 24px #0a66c2}

/* hero: no left / right slide arrows (dots, swipe and autoplay remain) */
.hero__arrow{display:none!important}

/* navbar: every menu icon sits in a pink badge, glyph in white */
.navbar .nav .nav__ic{display:inline-grid!important;place-items:center;flex:none;width:1.75em!important;height:1.75em;margin-right:.5em;font-size:.8rem!important;line-height:1;border-radius:9px;color:#fff!important;background:linear-gradient(135deg,var(--pink),var(--pink-d))!important;box-shadow:0 3px 8px rgba(200,23,155,.35);transition:transform .25s,box-shadow .25s}
.navbar .nav .nav__link:hover .nav__ic{transform:rotate(-8deg) scale(1.08);box-shadow:0 5px 12px rgba(200,23,155,.5)}
.navbar .nav .nav__sub .nav__ic{font-size:.7rem!important;margin-right:.6rem}

/* dropdown links: just a pink arrow, no badge / no ring */
.navbar .nav .nav__sub .nav__ic{background:none!important;box-shadow:none!important;border-radius:0;width:1em!important;height:auto;margin-right:.6rem;font-size:.8rem!important;color:var(--pink)!important;display:inline-block!important;transition:transform .2s}
.navbar .nav .nav__sub .nav__link:hover .nav__ic{transform:translateX(3px);box-shadow:none!important;color:var(--pink)!important}

/* quick access icons: straight by default, tilt only on hover */
.qk .qk__orb,.qk:nth-child(even) .qk__orb{transform:none}
.qk:hover .qk__orb{transform:rotate(-9deg) scale(1.12)}
.qk:nth-child(even):hover .qk__orb{transform:rotate(9deg) scale(1.12)}

/* attachment cell: light grey with matching icon / text colours */
.fi__att,.fi--only .fi__att{background:var(--soft);color:var(--royal-d);border-left:1px dashed var(--soft-line);box-shadow:none;animation:none}
.fi__att em{color:var(--muted)}
.fi--only .fi__att{color:var(--pink)}
.fi--only .fi__att em{color:var(--pink-d)}
.fi:hover .fi__att{background:var(--soft-2);color:var(--royal-dd)}
.fi:hover .fi__att em{color:var(--royal-d)}
.fi--only:hover .fi__att{color:var(--pink-d)}
.fi--only:hover .fi__att em{color:var(--pink-d)}

/* contributors: heart icons in magenta/pink */
.con__ico{background:color-mix(in srgb,var(--pink) 12%,#fff);color:var(--pink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pink) 28%,transparent)}
.con__ico .ic{fill:currentColor}
.alu__card--c .duo__tag .ic,.alu__card--c .pd__btn:not(.pd__btn--solid) .ic{color:var(--pink)}

/* accessibility button lives in the header, extreme right; the right-hand block shifts left to make room */
.masthead .a11y-fab{position:static;flex:none;width:52px;height:52px;margin-left:.4rem;border:3px solid #fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 6px 18px rgba(27,47,122,.35),0 0 0 2px var(--royal)}
.masthead .a11y-fab .ic{width:28px;height:28px}
.masthead .a11y-fab:hover{background:linear-gradient(135deg,var(--pink),var(--pink-d));box-shadow:0 6px 18px rgba(200,23,155,.4),0 0 0 2px var(--pink);transform:scale(1.07)}
.masthead__right{margin-right:clamp(1rem,2.4vw,2.2rem)}
@media (max-width:980px){.masthead__right{margin-right:0}.masthead .a11y-fab{order:2;margin-left:auto}.burger{margin-left:.6rem}}

/* header: bigger accessibility button, right-hand block nudged back toward the right */
.masthead .a11y-fab{width:66px;height:66px;margin-left:0}
.masthead .a11y-fab .ic{width:38px;height:38px}
.masthead__right{margin-right:clamp(.4rem,.8vw,.8rem)}
@media (max-width:980px){.masthead__right{margin-right:0}.masthead .a11y-fab{width:56px;height:56px}.masthead .a11y-fab .ic{width:32px;height:32px}}

/* header: right-hand block flush toward the accessibility button (only a small gap between them) */
.masthead__right{margin-right:0}
.masthead .a11y-fab{margin-left:-.9rem}
@media (max-width:980px){.masthead .a11y-fab{margin-left:auto}}

/* header: accessibility icon alone sits at the extreme right, vertically centred, with a clear gap on its left */
@media (min-width:981px){
  .masthead .masthead__in{padding-right:calc(66px + 1.7rem)}
  .masthead .a11y-fab{position:absolute;right:.7rem;top:50%;margin:0;transform:translateY(-50%)}
  .masthead .a11y-fab:hover{transform:translateY(-50%) scale(1.07)}
  .masthead__right{margin-right:0}
}

/* header: icon pushed right to the edge, with a wider clear margin on its left */
@media (min-width:981px){
  .masthead .masthead__in{padding-right:calc(66px + 2.8rem)}
  .masthead .a11y-fab{right:4px}
}

/* the icon's old fixed-corner offsets (left / bottom) must not apply any more */
@media (min-width:981px){.masthead .a11y-fab{left:auto;bottom:auto;right:6px}}

/* header: icon a little in from the edge; the card block keeps a clear gap to it */
@media (min-width:981px){
  .masthead .masthead__in{padding-right:calc(66px + 1.5rem + 2rem)}
  .masthead .a11y-fab{right:1.5rem}
}

/* accessibility panel: drop-down card directly below the header icon, on the right */
.a11y{left:auto;right:var(--a11y-right,1.5rem);top:var(--a11y-top,8.5rem);height:auto;max-height:calc(100vh - var(--a11y-top,8.5rem) - 1rem);width:min(380px,calc(100% - 1rem));border-radius:20px;overflow:hidden;box-shadow:0 22px 60px rgba(27,47,122,.35),0 0 0 1px rgba(27,47,122,.12);animation:qk-in .25s}
.a11y__head{background:linear-gradient(120deg,var(--royal-dd),var(--royal))}
.a11y__body{min-height:0}

/* "Latest" ticker: capitals + a news icon in front of every headline */
.ticker__move a{display:inline-flex;align-items:center;gap:.55rem;text-transform:uppercase;letter-spacing:.03em;font-weight:600;font-size:.86rem}
.ticker__move a .ic{flex:none;width:1.55rem;height:1.55rem;padding:.3rem;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 3px 8px rgba(65,105,225,.3)}
.ticker__move a:hover .ic{background:linear-gradient(135deg,var(--pink),var(--pink-d))}

/* ---- footer: content left, smart map right ---- */
.foot__split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(1.5rem,3vw,3rem);padding-block:2.5rem;align-items:start}
.foot__split .foot__grid{padding:0;grid-template-columns:1.3fr 1fr;gap:1.6rem 2rem;max-width:none;width:auto;margin:0}
.foot__split .foot__grid > section:first-child{grid-column:1/-1}
.fmap{position:relative;padding:1.1rem;border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.10),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.18);box-shadow:0 20px 50px rgba(0,0,0,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.fmap__head{margin-bottom:.8rem}
.fmap__tag{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .7rem;border-radius:999px;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3)}
.fmap__tag i{width:.5rem;height:.5rem;border-radius:50%;background:var(--pink);animation:pulse 2s infinite}
.fmap__head h2{margin:.5rem 0 0;color:#fff;font-size:1.25rem}
.fmap__frame{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:#0d1b4d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.fmap__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(1.05) contrast(1.02)}
.fmap__scan{position:absolute;left:0;right:0;top:0;height:3px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--sky),#fff,var(--sky),transparent);box-shadow:0 0 14px var(--sky);animation:fmap-scan 5s ease-in-out infinite}
@keyframes fmap-scan{0%,100%{top:0;opacity:0}10%,90%{opacity:.9}50%{top:calc(100% - 3px)}}
.fmap__pin{position:absolute;left:.7rem;top:.7rem;display:flex;align-items:center;gap:.45rem;padding:.3rem .75rem .3rem .35rem;border-radius:999px;font-size:.75rem;font-weight:700;color:var(--ink);background:rgba(255,255,255,.92);box-shadow:0 6px 16px rgba(0,0,0,.25);pointer-events:none}
.fmap__pin .ic{box-sizing:content-box;width:.95rem;height:.95rem;padding:.3rem;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--pink),var(--pink-d))}
.fmap__coords{position:absolute;left:.7rem;bottom:.7rem;display:flex;align-items:center;gap:.7rem;padding:.4rem .6rem .4rem .8rem;border-radius:14px;color:#fff;font-size:.78rem;font-weight:700;background:rgba(13,27,77,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25)}
.fmap__coords small{display:block;font-size:.58rem;letter-spacing:.14em;color:var(--sky);font-weight:700}
.fmap__coords button{border:0;cursor:pointer;width:1.9rem;height:1.9rem;border-radius:9px;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.16);transition:.2s}
.fmap__coords button:hover,.fmap__coords button.is-ok{background:var(--pink)}
.fmap__dist{margin:.8rem 0 .2rem;min-height:1.4em;font-size:.85rem;color:#dfe7ff}
.fmap__act{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.6rem}
.fmap__btn{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;font:inherit;font-size:.85rem;font-weight:700;padding:.55rem 1rem;border-radius:999px;color:#fff!important;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.4);text-decoration:none!important;transition:.25s}
.fmap__btn:hover{background:rgba(255,255,255,.22);transform:translateY(-2px)}
.fmap__btn--solid{background:linear-gradient(120deg,var(--pink),var(--pink-d));border-color:transparent;box-shadow:0 8px 20px rgba(200,23,155,.4)}
.fmap__btn--solid:hover{background:linear-gradient(120deg,var(--pink),var(--royal))}
@media (max-width:1100px){.foot__split{grid-template-columns:1fr}.foot__split .foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.foot__split .foot__grid{grid-template-columns:1fr}.fmap__frame{aspect-ratio:4/3}}
@media (prefers-reduced-motion:reduce){.fmap__scan{display:none}}

/* ---- footer: compact (links in three columns, smaller map card) ---- */
.foot__split{grid-template-columns:minmax(0,1fr) minmax(280px,360px);padding-block:1.8rem;gap:clamp(1.2rem,2.5vw,2.4rem)}
.foot__split .foot__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem 1.6rem}
.foot__split .foot__grid > section:first-child{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:.2rem 2rem;align-items:start}
.foot__split .foot__grid > section:first-child .foot__h{grid-column:1/-1}
.foot__split .foot__grid > section:first-child p{margin:0}
.foot__split .foot__grid > section:first-child .foot__contact{grid-column:2;grid-row:2/4;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem}
.foot__links{gap:.3rem;font-size:.88rem}
.fmap{padding:.8rem;border-radius:20px}
.fmap__head{margin-bottom:.5rem}.fmap__head h2{font-size:1.05rem;margin-top:.35rem}
.fmap__frame{aspect-ratio:16/9;border-radius:14px}
.fmap__coords{left:.5rem;bottom:.5rem;padding:.3rem .45rem .3rem .6rem;gap:.5rem;font-size:.7rem}
.fmap__coords button{width:1.6rem;height:1.6rem}
.fmap__pin{left:.5rem;top:.5rem;font-size:.68rem}
.fmap__dist{margin:.5rem 0 .1rem;font-size:.78rem;min-height:2.4em}
.fmap__act{gap:.45rem;margin-top:.3rem}
.fmap__btn{padding:.4rem .75rem;font-size:.76rem}
@media (max-width:1100px){.foot__split{grid-template-columns:1fr}.fmap{max-width:420px}}
@media (max-width:760px){.foot__split .foot__grid{grid-template-columns:1fr 1fr}.foot__split .foot__grid > section:first-child{grid-template-columns:1fr}.foot__split .foot__grid > section:first-child .foot__contact{grid-column:1;grid-row:auto}}
@media (max-width:520px){.foot__split .foot__grid{grid-template-columns:1fr}}

/* off-screen sections: all animations on hold until they scroll back into view */
.is-off,.is-off *,.is-off *::before,.is-off *::after{animation-play-state:paused!important}

/* =====================================================================
   MOBILE / TABLET MENU (<= 980px): one clean accordion for every level
   main link > sub link > sub-sub link > deeper. Closed until the burger is tapped.
   ===================================================================== */
@media (max-width:980px){
  .navbar .nav{display:none}
  .navbar .nav.is-open{display:block;max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .navbar .nav__list{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:.15rem;padding:.5rem .6rem .9rem}
  .navbar .nav__item{width:100%;max-width:100%}
  .navbar .nav__row{display:flex;align-items:stretch;gap:.35rem}
  .navbar .nav__row>.nav__link{flex:1;min-width:0}

  /* every link, every level */
  .navbar .nav .nav__link{display:flex;align-items:center;white-space:normal;word-break:break-word;line-height:1.3;font-size:.92rem;letter-spacing:.02em;padding:.7rem .8rem;border-radius:12px;border:0;color:#fff;background:transparent;text-decoration:none}
  .navbar .nav .nav__link::before,.navbar .nav .nav__link::after{display:none!important}
  .navbar .nav .nav__link:active,.navbar .nav .nav__link:hover{background:rgba(255,255,255,.14);color:#fff;box-shadow:none}
  .navbar .nav__list>.nav__item>.nav__link,.navbar .nav__list>.nav__item>.nav__row>.nav__link{font-weight:600;font-size:.95rem;text-transform:uppercase;padding:.6rem .7rem .6rem .5rem}
  .navbar .nav__list>.nav__item.is-open>.nav__row>.nav__link{background:rgba(255,255,255,.14);box-shadow:none}

  /* expand / collapse button */
  .navbar .nav .nav__tog{flex:none;display:grid;place-items:center;width:2.7rem;min-height:2.7rem;border:0;border-radius:12px;cursor:pointer;color:#fff;background:rgba(255,255,255,.16)}
  .navbar .nav .nav__tog:active{background:rgba(255,255,255,.28)}
  .navbar .nav .nav__tog .ic{width:1.1rem;height:1.1rem;transition:transform .25s}
  .navbar .nav__item.is-open>.nav__row>.nav__tog{background:linear-gradient(135deg,var(--pink),var(--pink-d))}
  .navbar .nav__item.is-open>.nav__row>.nav__tog .ic{transform:rotate(180deg)}
  .navbar .nav__sub .nav__tog .ic{transform:rotate(90deg)}
  .navbar .nav__sub .nav__item.is-open>.nav__row>.nav__tog .ic{transform:rotate(-90deg)}

  /* sub, sub-sub, deeper: stacked panels, indented, closed until their parent is open */
  .navbar .nav__sub,.navbar .nav__sub .nav__sub{position:static!important;display:none!important;width:auto!important;min-width:0!important;max-width:none!important;max-height:none!important;overflow:visible!important;transform:none!important;margin:.2rem 0 .4rem .7rem!important;padding:.25rem 0 .25rem .45rem!important;list-style:none;background:rgba(255,255,255,.07)!important;border:0!important;border-image:none!important;border-left:2px solid var(--sky)!important;border-radius:0 12px 12px 0!important;box-shadow:none!important;animation:none!important}
  .navbar .nav__sub .nav__sub{background:rgba(255,255,255,.06)!important;border-left-color:var(--light)!important}
  .navbar .nav__item.is-open>.nav__sub,.navbar .nav__sub.filtering,.navbar .nav__sub.filtering .nav__sub{display:block!important}
  .navbar .nav__sub .nav__item+.nav__item{border:0}
  .navbar .nav__sub .nav__link{font-weight:500;font-size:.88rem;text-transform:none;padding:.55rem .6rem}
  .navbar .nav__sub .nav__ic{color:var(--pink)!important;margin-right:.5rem}

  /* menu filter box (injected by the script) */
  .navbar .nav__find{position:static;margin:0 0 .4rem;padding:0;background:transparent;border:0}
  .navbar .nav__find label{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);border-radius:12px}
  .navbar .nav__find input,.navbar .nav__find svg{color:#fff}
  .navbar .nav__find input::placeholder{color:rgba(255,255,255,.7)}

  /* the social rail must not sit on top of the open menu */
  body:has(#mainnav.is-open) .hang{display:none}
}

/* =====================================================================
   MOBILE / TABLET HEADER + DROP-DOWN MENU (<= 980px)
   Row 1: crest + college name | accessibility | burger.  Row 2: search.  Row 3: highlight cards (swipe).
   The menu is a panel that drops straight down from the burger button.
   ===================================================================== */
@media (max-width:980px){
  /* ---- header ---- */
  .masthead .masthead__in{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .6rem;padding:.7rem 1rem .8rem!important}
  .masthead .ident{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:.7rem}
  .masthead .ident__crest{width:54px!important;height:54px!important;min-height:0!important;aspect-ratio:auto!important;flex:none;align-self:center}
  .masthead .ident__txt{align-content:center;gap:.1rem;min-width:0}
  .masthead .ident__txt strong{font-size:1.12rem;line-height:1.12}
  .masthead .ident__txt em{font-size:.62rem;letter-spacing:.12em}
  .masthead .ident__tags{margin-top:.2rem;gap:.25rem}
  .masthead .ident__tags b{font-size:.62rem;padding:.05rem .45rem;white-space:nowrap}
  .masthead .a11y-fab{position:static!important;order:0;flex:none;width:44px!important;height:44px!important;margin:0!important;transform:none!important;border-width:2px}
  .masthead .a11y-fab .ic{width:24px!important;height:24px!important}
  .masthead .burger{display:inline-grid;place-items:center;flex:none;order:0;width:44px;height:44px;margin:0!important;align-self:center;border-radius:12px;background:linear-gradient(135deg,var(--royal),var(--royal-d));transition:background .2s}
  .masthead .burger[aria-expanded="true"]{background:linear-gradient(135deg,var(--pink),var(--pink-d))}
  .masthead .masthead__in::after{display:none}
  .masthead .masthead__right{order:5;flex:1 1 100%;width:100%;margin:0!important;padding:0!important;border:0!important;border-image:none!important;display:grid;gap:.5rem;justify-items:stretch}
  .masthead .sbox{width:100%;margin:0}
  /* highlight cards: one swipeable row instead of three stacked blocks */
  .masthead .hl{display:flex;flex-wrap:nowrap;gap:.5rem;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:.15rem .05rem .35rem;margin:0 -.05rem;scrollbar-width:none}
  .masthead .hl::-webkit-scrollbar{display:none}
  .masthead .hl__card{flex:0 0 min(78%,250px);scroll-snap-align:start;padding:.45rem .6rem}

  /* ---- menu: bar collapses, panel drops from the burger ---- */
  .navbar{position:static!important;background:none!important;border:0!important;border-image:none!important;box-shadow:none!important;height:0;min-height:0;padding:0!important;margin:0!important;overflow:visible}
  .navbar .wrap{padding:0!important}
  .navbar .nav.is-open{position:fixed!important;z-index:140;top:var(--nav-top,5rem);left:.6rem;right:.6rem;display:block;border-radius:18px;background:linear-gradient(160deg,#16276b,var(--royal-dd) 45%,var(--royal));box-shadow:0 22px 60px rgba(22,39,107,.5),0 0 0 1px rgba(255,255,255,.12);max-height:calc(100vh - var(--nav-top,5rem) - .8rem);max-height:calc(100dvh - var(--nav-top,5rem) - .8rem);overflow-y:auto;animation:navdrop .22s ease-out}
  .navbar .nav.is-open::before{content:"";position:absolute;top:-7px;right:1.3rem;width:14px;height:14px;transform:rotate(45deg);background:#16276b;border-radius:3px;pointer-events:none}
  .nav-shade{position:fixed;inset:0;z-index:130;background:rgba(13,27,77,.45);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  .nav-shade[hidden]{display:none}
}
@keyframes navdrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* mobile header: the three highlight cards stack one below the other */
@media (max-width:980px){
  .masthead .hl{display:grid;grid-template-columns:1fr;gap:.45rem;overflow:visible;scroll-snap-type:none;padding:0;margin:0}
  .masthead .hl__card{flex:none;width:100%;max-width:none;scroll-snap-align:none;padding:.45rem .65rem}
}

/* =====================================================================
   INNER PAGES (main link > sub page > sub-sub page ...)
   hero with breadcrumb + title rule, smart side navigation, "at a glance" tiles,
   numbered content cards, card grid for sub-pages, previous / next
   ===================================================================== */
.pgprogress{position:fixed;z-index:160;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--royal),var(--sky),var(--pink));box-shadow:0 0 10px rgba(65,105,225,.6);transition:width .1s linear}

/* ---- hero ---- */
.ph{position:relative;overflow:hidden;isolation:isolate;color:#fff;padding-block:1.6rem 2.4rem;margin-bottom:1.8rem;background:linear-gradient(120deg,#16276b,var(--royal-dd) 40%,var(--royal))}
.ph::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.28) 1px,transparent 1.5px);background-size:24px 24px;-webkit-mask:linear-gradient(100deg,#000,transparent 75%);mask:linear-gradient(100deg,#000,transparent 75%)}
.ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--sky),var(--royal) 40%,var(--pink));opacity:.9}
.ph__orb{position:absolute;z-index:-1;border-radius:50%;filter:blur(50px);pointer-events:none}
.ph__orb--a{width:340px;height:340px;right:-80px;top:-140px;background:rgba(135,206,235,.45);animation:duo-float 9s ease-in-out infinite alternate}
.ph__orb--b{width:240px;height:240px;left:30%;bottom:-150px;background:rgba(200,23,155,.28);animation:duo-float 11s ease-in-out infinite alternate-reverse}
.ph__crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.82rem;margin-bottom:1.2rem}
.ph__crumbs a,.ph__crumbs span[aria-current]{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .7rem;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;text-decoration:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s}
.ph__crumbs a:hover{background:rgba(255,255,255,.26);color:#fff;text-decoration:none}
.ph__crumbs span[aria-current]{background:#fff;color:var(--royal-dd);font-weight:700;border-color:#fff}
.ph__sep{width:.9em;height:.9em;opacity:.7}
.ph__main{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.ph__kicker{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--light);text-decoration:none;margin-bottom:.5rem}
.ph__kicker:hover{color:#fff}
.ph h1{color:#fff;margin:0;font-size:clamp(1.6rem,3.6vw,2.7rem);line-height:1.15;letter-spacing:.01em;text-transform:uppercase;max-width:60ch}
.ph h1::after{content:"";display:block;height:4px;width:5rem;margin-top:.8rem;border-radius:4px;background:linear-gradient(90deg,var(--sky),#fff);box-shadow:0 0 14px rgba(135,206,235,.8)}
.ph__sub{display:flex;align-items:center;gap:.6rem;margin:.9rem 0 0;color:#d6e3ff;font-size:.9rem}
.ph__dot{width:5px;height:5px;border-radius:50%;background:var(--sky)}
.ph__tools{display:flex;gap:.5rem}
.ph__btn{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;color:#fff;padding:.5rem .95rem;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);transition:.25s}
.ph__btn:hover,.ph__btn.is-ok{background:rgba(255,255,255,.26);transform:translateY(-2px)}
.ph__btn.is-ok{background:var(--pink);border-color:var(--pink)}

/* ---- layout ---- */
.pg{display:grid;grid-template-columns:300px minmax(0,1fr);gap:1.6rem;align-items:start;padding-bottom:3rem}
.pgside{position:sticky;top:90px;display:grid;gap:1rem;max-height:calc(100vh - 110px);overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain;padding-bottom:.2rem}
.pgnav,.pgtoc{background:#fff;border-radius:20px;padding:1rem;box-shadow:0 10px 30px rgba(27,47,122,.10);border:1px solid rgba(65,105,225,.12)}
.pgnav summary{display:flex;align-items:center;justify-content:space-between;gap:.6rem;cursor:pointer;list-style:none;padding:.2rem .2rem .7rem;border-bottom:2px solid transparent;border-image:linear-gradient(90deg,var(--royal),var(--sky),transparent) 1}
.pgnav summary::-webkit-details-marker{display:none}
.pgnav__t{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--royal-d)}
.pgnav__n{min-width:1.7rem;text-align:center;font-size:.75rem;font-weight:800;padding:.1rem .5rem;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d))}
.pgnav__up{display:flex;align-items:center;gap:.4rem;margin:.7rem 0 .2rem;padding:.45rem .6rem;border-radius:10px;font-size:.8rem;font-weight:700;color:var(--royal-d);text-decoration:none;background:var(--soft)}
.pgnav__up:hover{background:var(--soft-2);color:var(--royal-dd)}
.pgnav__find{display:flex;align-items:center;gap:.5rem;margin:.7rem 0 .3rem;padding:.4rem .7rem;border-radius:12px;background:var(--soft);border:1px solid var(--soft-line)}
.pgnav__find:focus-within{border-color:var(--royal);background:#fff}
.pgnav__find input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:.86rem;outline:0}
.pgnav__list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.2rem}
.pgnav__list a{display:flex;align-items:center;gap:.65rem;padding:.5rem .55rem;border-radius:12px;text-decoration:none;color:var(--text);font-size:.9rem;line-height:1.3;transition:background .2s,transform .2s}
.pgnav__list a:hover{background:var(--lightest);transform:translateX(3px)}
.pgnav__i{flex:none;width:2rem;height:2rem;border-radius:10px;display:grid;place-items:center;color:var(--royal-d);background:rgba(65,105,225,.1)}
.pgnav__i .ic{width:1rem;height:1rem}
.pgnav__list li:nth-child(3n+2) .pgnav__i{color:var(--pink);background:rgba(200,23,155,.1)}
.pgnav__list li:nth-child(3n) .pgnav__i{color:#0f7fa8;background:rgba(135,206,235,.35)}
.pgnav__list a[aria-current]{color:#fff;background:linear-gradient(120deg,var(--royal-d),var(--royal));box-shadow:0 8px 18px rgba(65,105,225,.35);font-weight:700}
.pgnav__list a[aria-current] .pgnav__i{color:var(--royal-d);background:#fff}
.pgnav__list li[hidden]{display:none}
.pgtoc h2{display:flex;align-items:center;gap:.5rem;margin:0 0 .6rem;font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--royal-d)}
.pgtoc ol{list-style:none;margin:0;padding:0;display:grid;gap:.1rem;border-left:2px solid var(--soft-line)}
.pgtoc a{display:block;padding:.35rem .7rem;margin-left:-2px;border-left:2px solid transparent;font-size:.85rem;line-height:1.35;color:var(--muted);text-decoration:none;transition:.2s}
.pgtoc a:hover{color:var(--royal-d)}
.pgtoc a.is-on{color:var(--royal-d);font-weight:700;border-left-color:var(--pink);background:linear-gradient(90deg,rgba(65,105,225,.08),transparent)}

/* ---- main column ---- */
.pgmain{display:grid;gap:1.3rem;min-width:0}
.pgmain--full{grid-column:1/-1;max-width:1100px;margin-inline:auto;width:100%}
.glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.8rem}
.glance__i{position:relative;overflow:hidden;text-align:center;padding:1rem .6rem;border-radius:18px;background:#fff;border:1px solid rgba(65,105,225,.12);box-shadow:0 8px 24px rgba(27,47,122,.08);animation:qk-in .6s both;animation-delay:calc(var(--i)*70ms)}
.glance__i::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--royal),var(--sky))}
.glance__i:nth-child(even)::before{background:linear-gradient(90deg,var(--pink),var(--sky))}
.glance__i b{display:block;font-size:1.9rem;line-height:1.1;color:var(--royal-dd)}
.glance__i span{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pgcard,.pgdept .block{position:relative;background:#fff;border-radius:22px;padding:clamp(1.1rem,2.6vw,2rem);box-shadow:0 12px 34px rgba(27,47,122,.09);border:1px solid rgba(65,105,225,.10)}
.pgdept .block+.block{margin-top:0;border-top:1px solid rgba(65,105,225,.10)}
.pgdept{display:grid;gap:1.3rem}
.pgcard__h,.pgdept .block>h2{display:flex;align-items:center;gap:.8rem;margin:0 0 1.1rem;padding-bottom:.8rem;font-size:clamp(1.1rem,2vw,1.4rem);color:var(--royal-dd);border-bottom:2px solid transparent;border-image:linear-gradient(90deg,var(--royal),var(--sky) 50%,transparent) 1}
.pgcard__n{flex:none;font-size:.8rem;font-weight:800;letter-spacing:.06em;padding:.25rem .6rem;border-radius:10px;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 6px 14px rgba(65,105,225,.3)}
.pgdept .dept__top{border-radius:22px;box-shadow:0 12px 34px rgba(27,47,122,.15)}

/* ---- rich text from the CMS ---- */
.pgmain .rich{line-height:1.8;font-size:1rem;color:var(--text)}
.pgmain .rich>*:first-child{margin-top:0}
.pgmain .rich h1,.pgmain .rich h2,.pgmain .rich h3,.pgmain .rich h4{color:var(--royal-dd);line-height:1.3;margin:1.5em 0 .6em}
.pgmain .rich h2{font-size:1.3rem;padding-left:.8rem;border-left:4px solid var(--royal)}
.pgmain .rich h3{font-size:1.12rem;padding-left:.7rem;border-left:3px solid var(--sky)}
.pgmain .rich p{margin:0 0 1em;text-align:justify;hyphens:auto}
.pgmain .rich a{color:var(--royal-d);text-decoration-color:rgba(65,105,225,.4);text-underline-offset:3px}
.pgmain .rich a:hover{color:var(--pink-d)}
.pgmain .rich ul,.pgmain .rich ol{padding-left:1.3rem;margin:0 0 1em}
.pgmain .rich ul{list-style:none;padding-left:0}
.pgmain .rich ul>li{position:relative;padding-left:1.5rem;margin:.35rem 0}
.pgmain .rich ul>li::before{content:"";position:absolute;left:.2rem;top:.7em;width:.55rem;height:.55rem;border-radius:50%;background:linear-gradient(135deg,var(--royal),var(--pink))}
.pgmain .rich ol>li{margin:.35rem 0}.pgmain .rich ol>li::marker{color:var(--royal-d);font-weight:800}
.pgmain .rich blockquote{margin:1.2em 0;padding:.9rem 1.2rem;border-left:4px solid var(--royal);border-radius:0 14px 14px 0;background:linear-gradient(90deg,var(--lightest),transparent);color:var(--ink)}
.pgmain .rich img{border-radius:14px;box-shadow:0 8px 24px rgba(27,47,122,.15);height:auto;max-width:100%}
.pgmain .rich hr{border:0;height:2px;margin:1.6em 0;background:linear-gradient(90deg,transparent,var(--royal),var(--sky),transparent)}
.pgmain .rich table{display:block;max-width:100%;overflow-x:auto;border-collapse:separate;border-spacing:0;margin:1.2em 0;border-radius:14px;border:1px solid var(--soft-line);box-shadow:0 6px 20px rgba(27,47,122,.08);-webkit-overflow-scrolling:touch}
.pgmain .rich table caption{padding:.6rem;font-weight:700;color:var(--royal-dd)}
.pgmain .rich th{background:linear-gradient(120deg,var(--royal-dd),var(--royal));color:#fff;font-weight:700;text-align:left;padding:.7rem .9rem;border:0;white-space:nowrap}
.pgmain .rich td{padding:.6rem .9rem;border:0;border-bottom:1px solid var(--soft-line);vertical-align:top}
.pgmain .rich tr:nth-child(even) td{background:var(--soft)}
.pgmain .rich tr:hover td{background:var(--lightest)}
.pgmain .rich tr:last-child td{border-bottom:0}

/* ---- files, gallery ---- */
.pgmain .docs{list-style:none;margin:1.3rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem}
.pgmain .docs a{display:flex;align-items:center;gap:.75rem;padding:.65rem .8rem;border-radius:14px;text-decoration:none;color:var(--ink);background:linear-gradient(120deg,#fff,var(--lightest));border:1px solid rgba(65,105,225,.14);transition:transform .25s,box-shadow .25s,border-color .25s}
.pgmain .docs a:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(65,105,225,.2);border-color:var(--pink)}
.pgmain .docs .ic{flex:none;box-sizing:content-box;width:1.1rem;height:1.1rem;padding:.55rem;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d))}
.pgmain .docs span{flex:1;min-width:0;font-weight:600;font-size:.9rem;line-height:1.3;overflow-wrap:anywhere}
.pgmain .docs em{flex:none;font-style:normal;font-size:.68rem;font-weight:800;letter-spacing:.08em;padding:.2rem .5rem;border-radius:8px;color:var(--pink-d);background:rgba(200,23,155,.1)}
.pgmain .gallery{gap:.8rem;margin-top:1.3rem}
.pgmain .gallery a{display:block;overflow:hidden;border-radius:16px;box-shadow:0 8px 22px rgba(27,47,122,.14)}
.pgmain .gallery img{transition:transform .5s}
.pgmain .gallery a:hover img{transform:scale(1.08)}

/* ---- sub-page cards ---- */
.pgcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}
.pgc{position:relative;overflow:hidden;display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;border-radius:18px;text-decoration:none;color:var(--ink);background:linear-gradient(120deg,#fff,var(--lightest));border:1px solid rgba(65,105,225,.14);box-shadow:0 6px 18px rgba(27,47,122,.07);transition:transform .3s,box-shadow .3s,border-color .3s;animation:qk-in .5s both;animation-delay:calc(var(--i)*45ms)}
.pgc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--royal),var(--sky))}
.pgc:nth-child(3n+2)::before{background:linear-gradient(180deg,var(--pink),var(--sky))}
.pgc:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(65,105,225,.22);border-color:var(--pink);color:var(--ink)}
.pgc__ico{flex:none;width:2.8rem;height:2.8rem;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 8px 16px rgba(65,105,225,.3);transition:transform .35s}
.pgc:nth-child(3n+2) .pgc__ico{background:linear-gradient(135deg,var(--pink),var(--pink-d));box-shadow:0 8px 16px rgba(200,23,155,.3)}
.pgc:nth-child(3n) .pgc__ico{background:linear-gradient(135deg,var(--sky),var(--royal))}
.pgc:hover .pgc__ico{transform:rotate(-8deg) scale(1.08)}
.pgc__t{flex:1;min-width:0;font-weight:700;font-size:.95rem;line-height:1.3}
.pgc__go{flex:none;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;color:var(--royal-d);background:var(--soft);transition:.25s}
.pgc:hover .pgc__go{background:var(--pink);color:#fff;transform:translateX(3px)}

/* ---- empty, previous / next ---- */
.pgempty{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;padding:2.6rem 1.2rem;border-radius:22px;background:#fff;box-shadow:0 12px 34px rgba(27,47,122,.09);color:var(--muted)}
.pgempty__ico{width:5rem;height:5rem;border-radius:24px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 14px 28px rgba(65,105,225,.32);transform:rotate(-6deg);animation:feed-float 4s ease-in-out infinite;margin-bottom:.6rem}
.pgempty__ico .ic{width:2.3rem;height:2.3rem}
.pgempty strong{color:var(--ink);font-size:1.05rem}
.pgpn{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:.4rem}
.pgpn__a{display:grid;gap:.15rem;padding:.9rem 1.1rem;border-radius:18px;text-decoration:none;background:#fff;border:1px solid rgba(65,105,225,.14);box-shadow:0 8px 22px rgba(27,47,122,.08);transition:transform .25s,box-shadow .25s,border-color .25s}
.pgpn__a:hover{transform:translateY(-3px);border-color:var(--pink);box-shadow:0 14px 28px rgba(65,105,225,.2)}
.pgpn__a small{font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--pink-d)}
.pgpn__a span{display:flex;align-items:center;gap:.4rem;font-weight:700;color:var(--royal-dd);line-height:1.3}
.pgpn__a--n{text-align:right}.pgpn__a--n span{justify-content:flex-end}

/* ---- tablet / phone ---- */
@media (max-width:980px){
  .pg{grid-template-columns:minmax(0,1fr);gap:1.1rem}
  .pgside{position:static;max-height:none;overflow:visible}
  .pgtoc{display:none}
  .ph__main{align-items:flex-start}
  .ph__tools{width:100%}
}
@media (max-width:560px){
  .ph{padding-block:1.1rem 1.6rem}
  .ph h1{font-size:1.45rem}
  .ph__btn span{display:none}.ph__btn{padding:.55rem .7rem}
  .pgpn{grid-template-columns:1fr}.pgpn__a--n{text-align:left}.pgpn__a--n span{justify-content:flex-start}
  .glance{grid-template-columns:repeat(2,1fr)}
  .pgmain .rich p{text-align:left}
}
@media print{.ph__tools,.pgside,.pgprogress,.pgpn{display:none!important}.pg{display:block}.pgcard{box-shadow:none;border:0;padding:0}}
@media (prefers-reduced-motion:reduce){.ph__orb,.pgempty__ico{animation:none}.pgprogress{transition:none}}

/* ---- Copy link / Print: two different colours ---- */
.ph__tools .ph__btn{color:#fff;border:0;box-shadow:0 8px 20px rgba(0,0,0,.25)}
#pgCopy{background:linear-gradient(135deg,#87CEEB,#3a9fd6);color:#0e2a66;font-weight:800}
#pgPrint{background:linear-gradient(135deg,#C8179B,#9d1079)}
#pgCopy:hover,#pgCopy.is-ok{background:linear-gradient(135deg,#ADD8E6,#4fb4e0);transform:translateY(-2px)}
#pgCopy.is-ok{background:linear-gradient(135deg,#43a047,#1b7a3a);color:#fff}
#pgPrint:hover{background:linear-gradient(135deg,#e23bb8,#C8179B);transform:translateY(-2px)}

/* ---- Downloads and media: separate header, its own colour family (teal / sea blue) ---- */
.ph__ribbon{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-bottom:1.1rem;padding:.55rem .9rem;border-radius:16px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:fit-content;max-width:100%}
.ph__ribbon strong{font-size:.95rem;letter-spacing:.14em;color:#fff}
.ph__ribbon-ico{width:2.2rem;height:2.2rem;border-radius:12px;display:grid;place-items:center;color:var(--royal-dd);background:linear-gradient(135deg,var(--sky),#fff);box-shadow:0 6px 16px rgba(135,206,235,.45);animation:feed-float 4s ease-in-out infinite}
.ph__ribbon-sub{font-size:.8rem;color:var(--light)}
.ph__ribbon-n{font-size:.74rem;font-weight:800;letter-spacing:.06em;padding:.2rem .65rem;border-radius:999px;color:#062a44;background:#f2b01e}
/* content accents follow the header on downloads pages */
@media (prefers-reduced-motion:reduce){.ph__ribbon-ico{animation:none}}

/* ---- Downloads and media (combined list at the bottom of a page, grouped by header) ---- */
.pgdl__total{margin-left:auto;font-size:.72rem;font-weight:800;letter-spacing:.06em;padding:.25rem .7rem;border-radius:999px;color:var(--pink-d);background:rgba(200,23,155,.1)}
.pgdl .pgcard__n .ic{width:1rem;height:1rem;display:block}
.pgdl__groups{display:grid;gap:.7rem}
.pgdl__g{border-radius:16px;border:1px solid rgba(65,105,225,.14);background:linear-gradient(120deg,#fff,var(--lightest));overflow:hidden}
.pgdl__g summary{display:flex;align-items:center;gap:.7rem;cursor:pointer;list-style:none;padding:.8rem 1rem;font-weight:800;letter-spacing:.06em;font-size:.88rem;color:var(--royal-dd)}
.pgdl__g summary::-webkit-details-marker{display:none}
.pgdl__g summary span{flex:1;min-width:0}
.pgdl__g summary b{font-size:.72rem;padding:.15rem .55rem;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d))}
.pgdl__chev{width:1.1rem;height:1.1rem;color:var(--royal-d);transition:transform .25s}
.pgdl__g[open] summary{background:linear-gradient(90deg,rgba(65,105,225,.10),transparent);border-bottom:1px solid rgba(65,105,225,.12)}
.pgdl__g[open] .pgdl__chev{transform:rotate(180deg)}
.pgdl__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.7rem;padding:.9rem}
.pgdl__btn{display:flex;align-items:center;gap:.7rem;padding:.6rem .75rem;border-radius:14px;text-decoration:none;color:var(--ink);background:#fff;border:1px solid rgba(65,105,225,.14);transition:transform .25s,box-shadow .25s,border-color .25s}
.pgdl__btn:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(65,105,225,.2);border-color:var(--pink);color:var(--ink)}
.pgdl__btn .ic{flex:none;box-sizing:content-box;width:1.05rem;height:1.05rem;padding:.5rem;border-radius:11px;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d))}
.pgdl__btn span{flex:1;min-width:0;font-weight:600;font-size:.88rem;line-height:1.3;overflow-wrap:anywhere}
.pgdl__btn em{flex:none;font-style:normal;font-size:.66rem;font-weight:800;letter-spacing:.08em;padding:.2rem .5rem;border-radius:8px;color:var(--pink-d);background:rgba(200,23,155,.1)}
.pgdl__btn--video .ic{background:linear-gradient(135deg,var(--pink),var(--pink-d))}
.pgdl__img{margin:0;display:grid;gap:.4rem;padding:.5rem;border-radius:14px;background:#fff;border:1px solid rgba(65,105,225,.14)}
.pgdl__img a:first-child{display:block;overflow:hidden;border-radius:10px}
.pgdl__img img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.pgdl__img a:first-child:hover img{transform:scale(1.07)}
.pgdl__img figcaption{font-weight:600;font-size:.86rem;color:var(--ink);padding:0 .2rem}
.pgdl__ext{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:700;color:var(--royal-d);text-decoration:none;padding:0 .2rem}
.pgdl__ext .ic{width:.9em;height:.9em}

/* =====================================================================
   CMS CONTENT COMPONENTS  (database content written with the old theme's markup)
   accordion (.faq-*), tabs (.tab-pane), grid (.row / .col-*), buttons, link lists, anchors
   ===================================================================== */
.rich .container,.rich .container-fluid{width:100%;max-width:none;margin:0;padding:0}
.rich .faq-page-area,.rich .product-details-tab-area,.rich .faq-items{margin:0!important;padding:0}
.rich i[class*="fa-"]{display:none}
.rich .cms-ic{width:1.05em;height:1.05em;vertical-align:-.15em;margin-right:.35em}

/* ---- grid: .row / .col-* (mobile: stacked) ---- */
.rich .row{display:flex;flex-wrap:wrap;gap:1rem;margin:0 0 1rem}
.rich .row>*{flex:1 1 100%;min-width:0}
.rich .col{flex:1 1 0}
.rich .col-1{--n:1}.rich .col-2{--n:2}.rich .col-3{--n:3}.rich .col-4{--n:4}.rich .col-5{--n:5}.rich .col-6{--n:6}.rich .col-7{--n:7}.rich .col-8{--n:8}.rich .col-9{--n:9}.rich .col-10{--n:10}.rich .col-11{--n:11}.rich .col-12{--n:12}
.rich [class*="col-"]:not([class*="col-sm"]):not([class*="col-md"]):not([class*="col-lg"]):not([class*="col-xl"]){flex:0 0 calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem);max-width:calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem)}
@media (min-width:576px){.rich .col-sm-1{--n:1}.rich .col-sm-2{--n:2}.rich .col-sm-3{--n:3}.rich .col-sm-4{--n:4}.rich .col-sm-5{--n:5}.rich .col-sm-6{--n:6}.rich .col-sm-7{--n:7}.rich .col-sm-8{--n:8}.rich .col-sm-9{--n:9}.rich .col-sm-10{--n:10}.rich .col-sm-11{--n:11}.rich .col-sm-12{--n:12}.rich [class*="col-sm-"]{flex:0 0 calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem);max-width:calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem)}}
@media (min-width:768px){.rich .col-md-1{--n:1}.rich .col-md-2{--n:2}.rich .col-md-3{--n:3}.rich .col-md-4{--n:4}.rich .col-md-5{--n:5}.rich .col-md-6{--n:6}.rich .col-md-7{--n:7}.rich .col-md-8{--n:8}.rich .col-md-9{--n:9}.rich .col-md-10{--n:10}.rich .col-md-11{--n:11}.rich .col-md-12{--n:12}.rich [class*="col-md-"]{flex:0 0 calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem);max-width:calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem)}}
@media (min-width:992px){.rich .col-lg-1{--n:1}.rich .col-lg-2{--n:2}.rich .col-lg-3{--n:3}.rich .col-lg-4{--n:4}.rich .col-lg-5{--n:5}.rich .col-lg-6{--n:6}.rich .col-lg-7{--n:7}.rich .col-lg-8{--n:8}.rich .col-lg-9{--n:9}.rich .col-lg-10{--n:10}.rich .col-lg-11{--n:11}.rich .col-lg-12{--n:12}.rich [class*="col-lg-"]{flex:0 0 calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem);max-width:calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem)}}
@media (min-width:1200px){.rich .col-xl-1{--n:1}.rich .col-xl-2{--n:2}.rich .col-xl-3{--n:3}.rich .col-xl-4{--n:4}.rich .col-xl-5{--n:5}.rich .col-xl-6{--n:6}.rich .col-xl-7{--n:7}.rich .col-xl-8{--n:8}.rich .col-xl-9{--n:9}.rich .col-xl-10{--n:10}.rich .col-xl-11{--n:11}.rich .col-xl-12{--n:12}.rich [class*="col-xl-"]{flex:0 0 calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem);max-width:calc(var(--n) / 12 * 100% - (12 - var(--n)) / 12 * 1rem)}}

/* ---- accordion (.faq-items > .faq-item > .faq-title > .accordion-button + .accordion-collapse > .faq-body) ---- */
.rich .faq-items{display:grid;gap:.8rem}
.rich .faq-item{border-radius:18px;border:1px solid rgba(65,105,225,.16);background:linear-gradient(120deg,#fff,var(--lightest));overflow:hidden;box-shadow:0 6px 18px rgba(27,47,122,.07);transition:box-shadow .3s,border-color .3s}
.rich .faq-item.is-open{border-color:rgba(200,23,155,.45);box-shadow:0 12px 30px rgba(65,105,225,.18)}
.rich .faq-title{margin:0;padding:0;font-size:1rem}
.rich .accordion-button{position:relative;display:flex;align-items:center;gap:.85rem;width:100%;padding:.85rem 3rem .85rem .9rem;cursor:pointer;font-weight:800;font-size:.98rem;line-height:1.35;letter-spacing:.02em;color:var(--royal-dd);text-transform:uppercase;transition:background .25s,color .25s;-webkit-user-select:none;user-select:none}
.rich .accordion-button:hover{background:rgba(65,105,225,.06)}
.rich .accordion-button:focus-visible{outline:3px solid var(--pink);outline-offset:-3px}
.rich .accordion-button::after{content:"";position:absolute;right:1rem;top:50%;width:1.9rem;height:1.9rem;margin-top:-.95rem;border-radius:50%;background:var(--soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b4bb8' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/1rem no-repeat;transition:transform .3s,background-color .3s}
.rich .faq-item.is-open .accordion-button{color:#fff;background:linear-gradient(120deg,var(--royal-d),var(--royal))}
.rich .faq-item.is-open .accordion-button::after{transform:rotate(180deg);background-color:#fff}
.rich .faq-count{flex:none;min-width:2.3rem;height:2.3rem;padding:0 .4rem;border-radius:12px;display:grid;place-items:center;font-size:.82rem;font-weight:800;letter-spacing:.04em;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));box-shadow:0 6px 14px rgba(65,105,225,.3)}
.rich .faq-count::before{content:attr(data-n)}
.rich .faq-item:nth-child(3n+2) .faq-count{background:linear-gradient(135deg,var(--pink),var(--pink-d));box-shadow:0 6px 14px rgba(200,23,155,.3)}
.rich .faq-item:nth-child(3n) .faq-count{background:linear-gradient(135deg,var(--sky),var(--royal))}
.rich .faq-item.is-open .faq-count{background:#fff;color:var(--royal-d);box-shadow:none}
.rich .faq-body{padding:1rem 1.2rem 1.2rem;border-top:1px dashed rgba(65,105,225,.25);animation:fade .4s}
.cms-acc-ready .accordion-collapse:not(.show){display:none}

/* ---- tabs (ul of #links + panes) ---- */
.rich ul.cms-tabs,.rich ul.cms-jump{list-style:none;display:flex;flex-wrap:nowrap;gap:.5rem;margin:0 0 1.2rem;padding:.35rem;overflow-x:auto;scrollbar-width:none;border-radius:999px;background:var(--soft);box-shadow:inset 0 0 0 1px var(--soft-line)}
.rich ul.cms-tabs::-webkit-scrollbar,.rich ul.cms-jump::-webkit-scrollbar{display:none}
.rich ul.cms-tabs>li,.rich ul.cms-jump>li{flex:none;margin:0;padding:0}
.rich ul.cms-tabs>li::before,.rich ul.cms-jump>li::before{display:none}
.rich ul.cms-tabs a,.rich ul.cms-jump a{display:block;white-space:nowrap;padding:.5rem 1.05rem;border-radius:999px;font-weight:700;font-size:.9rem;color:var(--royal-d);text-decoration:none;transition:background .25s,color .25s,box-shadow .25s}
.rich ul.cms-tabs a:hover,.rich ul.cms-jump a:hover{background:#fff;color:var(--royal-dd)}
.rich ul.cms-tabs a.is-on,.rich ul.cms-jump a.is-on{color:#fff;background:linear-gradient(120deg,var(--royal-d),var(--royal));box-shadow:0 8px 18px rgba(65,105,225,.35)}
.cms-tabs-ready .tab-pane{display:none}
.cms-tabs-ready .tab-pane.is-on{display:block;animation:fade .45s}
.rich .colorful-section{padding:.2rem 0}
.rich .centered-heading{text-align:center;margin:.4rem 0 1rem;padding:.5rem 1rem;border-radius:14px;font-weight:800;letter-spacing:.14em;color:var(--royal-dd);background:linear-gradient(90deg,transparent,rgba(65,105,225,.1),transparent)}
.rich .tab-pane p b,.rich .tab-pane p em{font-weight:inherit}

/* ---- lists of links become link cards ---- */
.rich ul.cms-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.7rem;padding:0;list-style:none}
.rich ul.cms-links>li{margin:0;padding:0}
.rich ul.cms-links>li::before{display:none}
.rich ul.cms-links a{display:flex;align-items:center;gap:.7rem;height:100%;padding:.7rem .9rem;border-radius:14px;font-weight:600;line-height:1.3;text-decoration:none;color:var(--ink);background:linear-gradient(120deg,#fff,var(--lightest));border:1px solid rgba(65,105,225,.14);transition:transform .25s,box-shadow .25s,border-color .25s}
.rich ul.cms-links a::before{content:"";flex:none;width:2rem;height:2rem;border-radius:10px;background:linear-gradient(135deg,var(--royal),var(--royal-d)) center/1rem no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"),linear-gradient(135deg,var(--royal),var(--royal-d));background-size:1rem,auto;background-position:center;background-repeat:no-repeat}
.rich ul.cms-links>li:nth-child(3n+2) a::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"),linear-gradient(135deg,var(--pink),var(--pink-d))}
.rich ul.cms-links a:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(65,105,225,.2);border-color:var(--pink);color:var(--ink)}

/* ---- link badges ---- */
.rich a[data-ext]::after{content:attr(data-ext);display:inline-block;margin-left:.4rem;padding:.05rem .4rem;border-radius:6px;font-size:.62rem;font-weight:800;letter-spacing:.06em;vertical-align:.1em;color:var(--pink-d);background:rgba(200,23,155,.1)}
.rich a.cms-ext:not([data-ext])::after{content:"\2197";margin-left:.25rem;font-size:.85em;color:var(--pink-d)}

/* ---- buttons, list groups, thumbnails ---- */
.rich .btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border:0;border-radius:999px;font-weight:700;font-size:.9rem;line-height:1.2;text-decoration:none;color:#fff;background:linear-gradient(120deg,var(--royal-d),var(--royal));box-shadow:0 6px 14px rgba(65,105,225,.28);transition:transform .2s,box-shadow .2s}
.rich .btn:hover{transform:translateY(-2px);color:#fff;box-shadow:0 10px 20px rgba(65,105,225,.38)}
.rich .btn-sm{padding:.3rem .75rem;font-size:.8rem}
.rich .btn-warning{color:#3a2600;background:linear-gradient(120deg,#ffcf5c,#f2b01e);box-shadow:0 6px 14px rgba(242,176,30,.4)}
.rich .btn-warning:hover{color:#3a2600}
.rich .btn-success{background:linear-gradient(120deg,#1b7a3a,#43a047)}
.rich .btn-danger{background:linear-gradient(120deg,var(--pink-d),var(--pink))}
.rich .btn-secondary,.rich .btn-light{color:var(--royal-dd);background:var(--soft);box-shadow:inset 0 0 0 1px var(--soft-line)}
.rich ul.list-group{list-style:none;padding:0;display:grid;gap:.4rem}
.rich ul.list-group>li::before{display:none}
.rich .list-group-item{padding:.6rem .9rem!important;border:1px solid rgba(65,105,225,.14);border-radius:12px;background:#fff}
.rich .img-thumbnail{padding:.3rem;background:#fff;border:1px solid rgba(65,105,225,.16);border-radius:14px}
.rich .text-center{text-align:center}.rich .text-end{text-align:right}.rich .fw-bold{font-weight:700}

@media (prefers-reduced-motion:reduce){.rich .faq-body,.cms-tabs-ready .tab-pane.is-on{animation:none}}

/* header: Copy link / Print sit clear of the social rail on the right edge */
@media (min-width:981px){.ph__tools{margin-right:4.6rem}}

/* accordions: the script keeps the clicked title in place, so the browser must not also "anchor" the scroll */
.rich .faq-items,.rich .faq-item{overflow-anchor:none}

/* =====================================================================
   FACULTY BOX + PROFILE POP-UP + RESEARCH TABLES  (ERP data, site look and feel)
   ===================================================================== */
.fac2__bar{display:grid;gap:.8rem;margin-bottom:1.3rem}
.fac2__find{display:flex;align-items:center;gap:.6rem;padding:.55rem 1rem;border-radius:999px;background:var(--soft);border:1px solid var(--soft-line);max-width:30rem}
.fac2__find:focus-within{border-color:var(--royal);background:#fff;box-shadow:0 0 0 3px rgba(65,105,225,.15)}
.fac2__find .ic{color:var(--royal-d);flex:none}
.fac2__find input{flex:1;min-width:0;border:0;background:transparent;font:inherit;outline:0}
.fac2__chips{display:flex;flex-wrap:wrap;gap:.45rem}
.fac2__chips button{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;padding:.4rem .85rem;border-radius:999px;color:var(--royal-d);background:#fff;border:1px solid var(--soft-line);transition:.2s}
.fac2__chips button b{font-size:.7rem;padding:.05rem .45rem;border-radius:999px;color:var(--royal-d);background:rgba(65,105,225,.12)}
.fac2__chips button:hover{border-color:var(--royal);background:var(--lightest)}
.fac2__chips button.is-on{color:#fff;border-color:transparent;background:linear-gradient(120deg,var(--royal-d),var(--royal));box-shadow:0 8px 18px rgba(65,105,225,.3)}
.fac2__chips button.is-on b{color:#fff;background:rgba(255,255,255,.25)}

.fac2__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:1.1rem}
.fac2__card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem;padding:1.5rem 1rem 1.1rem;border-radius:22px;background:linear-gradient(160deg,#fff,var(--lightest));border:1px solid rgba(65,105,225,.14);box-shadow:0 8px 24px rgba(27,47,122,.08);transition:transform .3s,box-shadow .3s,border-color .3s;animation:qk-in .5s both;animation-delay:calc(var(--i)*40ms)}
.fac2__card[hidden]{display:none}
.fac2__card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--royal),var(--sky))}
.fac2__card--1::before{background:linear-gradient(90deg,var(--pink),var(--sky))}
.fac2__card--2::before{background:linear-gradient(90deg,#0f8aa6,#1fd1b0)}
.fac2__card--3::before{background:linear-gradient(90deg,var(--royal-dd),var(--royal))}
.fac2__card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(65,105,225,.24);border-color:var(--pink)}
.fac2__photo{position:relative;width:7.4rem;height:7.4rem;border-radius:50%;padding:4px;background:conic-gradient(from var(--qa),var(--royal),var(--sky),var(--pink),var(--royal));animation:qk-spin 10s linear infinite;box-shadow:0 12px 26px rgba(65,105,225,.28)}
.fac2__photo img,.fac2__ini{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);border-radius:50%;border:3px solid #fff;background:#fff}
.fac2__photo img{object-fit:cover;object-position:center 20%}
.fac2__ini{display:grid;place-items:center;font-size:1.9rem;font-weight:800;letter-spacing:.04em;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d))}
.fac2__card--1 .fac2__ini{background:linear-gradient(135deg,var(--pink),var(--pink-d))}
.fac2__card--2 .fac2__ini{background:linear-gradient(135deg,#1fd1b0,#0f8aa6)}
.fac2__card h3{margin:.55rem 0 0;font-size:.95rem;line-height:1.3;letter-spacing:.03em;color:var(--royal-dd)}
.fac2__role{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.22rem .7rem;border-radius:999px;color:var(--royal-d);background:rgba(65,105,225,.12)}
.fac2__card--1 .fac2__role{color:var(--pink-d);background:rgba(200,23,155,.1)}
.fac2__card--2 .fac2__role{color:#0b6a80;background:rgba(31,209,176,.16)}
.fac2__card--3 .fac2__role{color:#fff;background:linear-gradient(120deg,var(--royal-dd),var(--royal))}
.fac2__card small{color:var(--muted);font-size:.78rem;font-weight:600}
.fac2__btn{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;padding:.5rem 1rem;border:0;border-radius:999px;color:#fff;background:linear-gradient(120deg,var(--royal-d),var(--royal));box-shadow:0 8px 18px rgba(65,105,225,.3);transition:.25s}
.fac2__btn:hover{transform:translateY(-2px);background:linear-gradient(120deg,var(--pink),var(--pink-d));box-shadow:0 10px 22px rgba(200,23,155,.35)}
.fac2__card .fac2__btn{margin-top:auto}
.fac2__card>:nth-last-child(2){margin-bottom:.4rem}
.fac2__none{margin:1.2rem 0 0;text-align:center;color:var(--muted)}

/* ---- profile pop-up ---- */
.dlg--fac{width:min(940px,calc(100% - 24px))}
.fp__head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.1rem;padding:1.1rem 1.3rem;background:linear-gradient(120deg,var(--royal-dd),var(--royal))}
.fp__av{position:relative;width:5.6rem;height:5.6rem;border-radius:50%;padding:3px;background:conic-gradient(from var(--qa),#fff,var(--sky),var(--pink),#fff);animation:qk-spin 10s linear infinite}
.fp__av img,.fp__av b{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);border-radius:50%;border:2px solid #fff}
.fp__av img{object-fit:cover;object-position:center 20%}
.fp__av b{display:grid;place-items:center;font-size:1.6rem;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d))}
.fp__id h2{margin:.4rem 0 .15rem;color:#fff;font-size:clamp(1.05rem,2.4vw,1.45rem);line-height:1.25}
.fp__head .duo__tag{color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35)}
.fp__sub{margin:0;color:#cfe0ff;font-size:.88rem}
.fp__soc{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.fp__soc:empty{display:none}
.fp__soc a{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;color:var(--royal-dd);background:#fff;transition:transform .2s,background .2s,color .2s}
.fp__soc a:hover{transform:translateY(-3px) rotate(-8deg);background:var(--pink);color:#fff}
.fp__soc .ic{width:1rem;height:1rem}
.fp__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;padding:.9rem 1.3rem 0}
.fp__stats div{text-align:center;padding:.55rem .4rem;border-radius:14px;background:linear-gradient(120deg,#fff,var(--lightest));border:1px solid rgba(65,105,225,.14)}
.fp__stats b{display:block;font-size:1.35rem;line-height:1.1;color:var(--royal-dd)}
.fp__stats span{font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fp__tabs{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;padding:.9rem 1.3rem .2rem}
.fp__tabs::-webkit-scrollbar{display:none}
.fp__tabs button{flex:none;cursor:pointer;font:inherit;font-size:.85rem;font-weight:700;padding:.5rem 1rem;border-radius:999px;color:var(--royal-d);background:var(--soft);border:1px solid var(--soft-line);transition:.2s}
.fp__tabs button:hover{background:#fff}
.fp__tabs button.is-on{color:#fff;border-color:transparent;background:linear-gradient(120deg,var(--royal-d),var(--royal));box-shadow:0 8px 18px rgba(65,105,225,.3)}
.fp__body{text-align:left}
.fp__panel{display:grid;gap:.7rem;animation:fade .35s}
.fp__panel[hidden]{display:none}
.fp__h{margin:.6rem 0 .1rem;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--royal-d)}
.fp__h:first-child{margin-top:0}
.fp__item{position:relative;padding:.75rem .95rem .75rem 1.15rem;border-radius:14px;background:#fff;border:1px solid rgba(65,105,225,.14);box-shadow:0 4px 14px rgba(27,47,122,.06)}
.fp__item::before{content:"";position:absolute;left:0;top:.7rem;bottom:.7rem;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--royal),var(--sky))}
.fp__item:nth-child(3n+2)::before{background:linear-gradient(180deg,var(--pink),var(--sky))}
.fp__item b{display:block;color:var(--ink);font-size:.95rem;line-height:1.35}
.fp__item p{margin:.15rem 0 0;color:var(--text);font-size:.88rem;line-height:1.5}
.fp__item .fp__m{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}
.fp__chip{font-size:.68rem;font-weight:800;letter-spacing:.05em;padding:.15rem .55rem;border-radius:999px;color:var(--royal-d);background:rgba(65,105,225,.12)}
.fp__chip--p{color:var(--pink-d);background:rgba(200,23,155,.1)}
.fp__item a.fp__lnk{display:inline-flex;align-items:center;gap:.3rem;margin-top:.4rem;font-size:.82rem;font-weight:700;color:var(--royal-d);text-decoration:none}
.fp__item a.fp__lnk:hover{color:var(--pink-d)}
.fp__kv{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.2rem;padding:.9rem 1.1rem;border-radius:16px;background:var(--soft);margin:0}
.fp__kv dt{font-weight:800;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--royal-d)}
.fp__kv dd{margin:0;overflow-wrap:anywhere}
.fp__none{color:var(--muted);text-align:center;padding:1.4rem}

/* ---- research table ---- */
.rs__filter{display:grid;grid-template-columns:1fr 1fr auto;gap:.8rem;align-items:end;margin-bottom:.9rem}
.rs__filter label{display:grid;gap:.3rem}
.rs__filter label span{font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--royal-d)}
.rs__filter select{width:100%;font:inherit;padding:.6rem .9rem;border-radius:14px;border:1px solid var(--soft-line);background:#fff;color:var(--ink);cursor:pointer}
.rs__filter select:focus{outline:0;border-color:var(--royal);box-shadow:0 0 0 3px rgba(65,105,225,.15)}
.rs__filter .pd__btn{height:2.8rem;justify-content:center}
.rs__note{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem;padding:.55rem .9rem;border-radius:14px;font-size:.88rem;color:var(--text);background:linear-gradient(90deg,rgba(65,105,225,.09),transparent)}
.rs__note .ic{color:var(--pink);flex:none}
.rs__wrap{overflow-x:auto;border-radius:16px;border:1px solid var(--soft-line);box-shadow:0 6px 20px rgba(27,47,122,.08);-webkit-overflow-scrolling:touch}
.rs__table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}
.rs__table th{position:sticky;top:0;text-align:left;white-space:nowrap;padding:.75rem .9rem;font-weight:700;color:#fff;background:linear-gradient(120deg,var(--royal-dd),var(--royal))}
.rs__table td{padding:.65rem .9rem;vertical-align:top;border-bottom:1px solid var(--soft-line);line-height:1.45}
.rs__table tbody tr:nth-child(even) td{background:var(--soft)}
.rs__table tbody tr:hover td{background:var(--lightest)}
.rs__table tbody tr:last-child td{border-bottom:0}
.rs__table td:first-child{min-width:12rem}
.rs__link{display:inline-flex;align-items:center;gap:.3rem;font-weight:700;font-size:.82rem;padding:.2rem .65rem;border-radius:999px;text-decoration:none;color:var(--royal-d);background:rgba(65,105,225,.1);white-space:nowrap}
.rs__link:hover{color:#fff;background:var(--pink)}
.rs__url{color:var(--royal-d);text-decoration:underline;word-break:break-all;overflow-wrap:anywhere}
.rs__url:hover{color:var(--pink)}
.rs__link .ic{width:.9em;height:.9em}
.rs__na{color:var(--muted)}
.rs__empty{padding:1.6rem;text-align:center;color:var(--muted);border-radius:16px;background:var(--soft)}
.rs .pager{margin-top:1.1rem}

@media (max-width:760px){
  .rs__filter{grid-template-columns:1fr}
  .rs__wrap{overflow:visible;border:0;box-shadow:none}
  .rs__table,.rs__table tbody,.rs__table tr,.rs__table td{display:block}
  .rs__table thead{display:none}
  .rs__table tr{margin-bottom:.8rem;border-radius:16px;overflow:hidden;border:1px solid var(--soft-line);box-shadow:0 6px 18px rgba(27,47,122,.08);background:#fff}
  .rs__table td{display:grid;grid-template-columns:7.5rem 1fr;gap:.6rem;border-bottom:1px dashed var(--soft-line)}
  .rs__table td::before{content:attr(data-label);font-weight:800;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--royal-d)}
  .rs__table td:first-child{min-width:0;background:linear-gradient(120deg,var(--royal-dd),var(--royal))!important;color:#fff;grid-template-columns:1fr}
  .rs__table td:first-child::before{display:none}
  .rs__table tbody tr:nth-child(even) td{background:transparent}
  .fp__head{grid-template-columns:auto 1fr;padding:1rem}
  .fp__head .dlg__x{grid-column:2;grid-row:1;justify-self:end;margin-top:-.2rem}
  .fp__kv{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.fac2__photo,.fp__av{animation:none}}

/* ---- full faculty profile page ---- */
.fpc{display:grid;justify-items:center;gap:.5rem;text-align:center;padding:1.5rem 1.1rem;border-radius:22px;background:linear-gradient(160deg,#fff,var(--lightest));border:1px solid rgba(65,105,225,.14);box-shadow:0 12px 30px rgba(27,47,122,.10)}
.fpc__photo{position:relative;width:9.2rem;height:9.2rem;border-radius:50%;padding:4px;background:conic-gradient(from var(--qa),var(--royal),var(--sky),var(--pink),var(--royal));animation:qk-spin 10s linear infinite;box-shadow:0 14px 30px rgba(65,105,225,.3)}
.fpc__photo img{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);border-radius:50%;border:3px solid #fff;object-fit:cover;object-position:center 20%;background:#fff}
.fpc h2{margin:.7rem 0 0;font-size:1.12rem;line-height:1.3;color:var(--royal-dd)}
.fpc small{color:var(--muted);font-weight:600}
.fpc__kv{width:100%;margin:.6rem 0 0;text-align:left;font-size:.88rem}
.fpc__kv a{color:var(--royal-d)}
.fpc__soc{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;margin:.3rem 0}
.fpc__soc a{width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--royal),var(--royal-d));transition:transform .2s,background .2s}
.fpc__soc a:hover{transform:translateY(-3px) rotate(-8deg);background:linear-gradient(135deg,var(--pink),var(--pink-d))}
.fpc__soc .ic{width:1.05rem;height:1.05rem}
.fpc .pd__btn{width:100%;justify-content:center;margin-top:.3rem}
@media (prefers-reduced-motion:reduce){.fpc__photo{animation:none}}

/* faculty pop-up: header, counts and tabs keep their full height; only the content area scrolls */
.dlg--fac .dlg__box{display:flex;flex-direction:column;max-height:88vh}
.dlg--fac .fp__head,.dlg--fac .fp__stats,.dlg--fac .fp__tabs,.dlg--fac .dlg__foot{flex:none}
.dlg--fac .fp__tabs{overflow-y:hidden;padding:.9rem 1.3rem .75rem;align-items:center;background:#fff}
.dlg--fac .fp__tabs button{flex:none;line-height:1.2;padding:.55rem 1.05rem;white-space:nowrap}
.dlg--fac .fp__tabs[hidden],.dlg--fac .fp__stats[hidden]{display:none}
.dlg--fac .fp__body{flex:1 1 auto;min-height:0;overflow-y:auto}

/* Home: breathe in-out on hover (Quick access -> Placements). Uses `scale` so it never fights existing transforms. */
@keyframes kmc-breathe{0%,100%{scale:1}50%{scale:1.025}}
.duo .duo__card,.band .card-list,.alu .alu__card{will-change:scale}
.duo .duo__card:hover,.band .card-list:hover,.alu .alu__card:hover{animation:kmc-breathe 3.2s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.duo .duo__card:hover,.band .card-list:hover,.alu .alu__card:hover{animation:none}}

/* Principal's Desk: dotted ring around the photo in pink so it reads clearly */
.pd .pd__photo::after{border:2px dotted var(--pink);filter:drop-shadow(0 0 2px rgba(255,255,255,.9))}

/* ===== Inner pages (page.blade): "Aurora" smart look =====
   Midnight header with an aurora mesh + circuit grid, glass cards, violet/cyan/pink accents. Blue stays as the base. */
:root{--ai-ink:#0a0f2e;--ai-violet:#7c4dff;--ai-cyan:#22d3ee;--ai-grad:linear-gradient(120deg,#7c4dff,#4169E1 45%,#22d3ee);--ai-grad2:linear-gradient(135deg,#7c4dff,#C8179B)}
@keyframes ai-flow{to{background-position:200% 0}}
@keyframes ai-drift{to{transform:translate3d(-40px,24px,0) scale(1.12)}}

.ph{background:
  radial-gradient(60% 120% at 88% -10%,rgba(124,77,255,.55),transparent 60%),
  radial-gradient(50% 100% at 8% 120%,rgba(34,211,238,.32),transparent 60%),
  radial-gradient(40% 80% at 55% 130%,rgba(200,23,155,.35),transparent 65%),
  linear-gradient(135deg,#070b26,var(--ai-ink) 55%,#141a4d)}
.ph::before{opacity:.55;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask:radial-gradient(70% 120% at 70% 0,#000,transparent 75%);mask:radial-gradient(70% 120% at 70% 0,#000,transparent 75%)}
.ph::after{height:3px;opacity:1;background:linear-gradient(90deg,transparent,var(--ai-cyan),var(--ai-violet),var(--pink),var(--ai-cyan),transparent);background-size:200% 100%;animation:ai-flow 6s linear infinite}
.ph__orb--a{background:rgba(124,77,255,.55);animation:ai-drift 10s ease-in-out infinite alternate}
.ph__orb--b{background:rgba(34,211,238,.3);animation:ai-drift 12s ease-in-out infinite alternate-reverse}
.ph__crumbs a,.ph__crumbs span[aria-current]{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18)}
.ph__crumbs a:hover{background:rgba(124,77,255,.35)}
.ph__kicker{color:var(--ai-cyan)}
.ph h1{background:linear-gradient(100deg,#fff 30%,#c9d6ff 60%,#8ef0ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.ph h1::after{background:linear-gradient(90deg,var(--ai-cyan),var(--ai-violet),var(--pink));box-shadow:0 0 16px rgba(124,77,255,.8)}
.ph__sub{color:#b9c4f5}.ph__dot{background:var(--ai-cyan);box-shadow:0 0 8px var(--ai-cyan)}
.ph__btn{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.25);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ph__btn:hover{background:rgba(124,77,255,.4);box-shadow:0 0 18px rgba(124,77,255,.5)}
.ph__ribbon{background:rgba(255,255,255,.07);border-color:rgba(34,211,238,.4)}
.ph__ribbon-ico{color:var(--ai-ink);background:linear-gradient(135deg,var(--ai-cyan),#a78bfa);box-shadow:0 6px 16px rgba(34,211,238,.45)}
.ph__ribbon-sub{color:#b9c4f5}
.ph__ribbon-n{color:#fff;background:var(--ai-grad2)}
.pgprogress{background:linear-gradient(90deg,var(--ai-cyan),var(--ai-violet),var(--pink));box-shadow:0 0 12px rgba(124,77,255,.7)}

/* page body */
.ph ~ .pg{position:relative}
.ph ~ .pg::before{content:"";position:absolute;inset:-1.8rem -50vw 0;z-index:-1;pointer-events:none;background:radial-gradient(50% 30% at 85% 0,rgba(124,77,255,.07),transparent),radial-gradient(40% 30% at 5% 60%,rgba(34,211,238,.06),transparent)}
.pgnav,.pgtoc,.glance__i,.pgcard,.pgdept .block,.pgempty{background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(124,77,255,.14);box-shadow:0 12px 34px rgba(20,26,77,.08),inset 0 1px 0 #fff}
.pgcard,.pgdept .block{overflow:hidden}
.pgcard::before,.pgdept .block::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--ai-grad);background-size:200% 100%;opacity:.85}
.pgcard:hover,.pgdept .block:hover{box-shadow:0 18px 44px rgba(124,77,255,.16),inset 0 1px 0 #fff;border-color:rgba(124,77,255,.3)}
.pgcard,.pgdept .block{transition:box-shadow .3s,border-color .3s}
.pgcard__h,.pgdept .block>h2{color:var(--ai-ink);border-image:linear-gradient(90deg,var(--ai-violet),var(--ai-cyan) 50%,transparent) 1}
.pgcard__n,.pgnav__n{background:var(--ai-grad);box-shadow:0 6px 16px rgba(124,77,255,.35)}
.pgnav__t,.pgtoc h2{color:var(--ai-violet)}
.pgnav summary{border-image:linear-gradient(90deg,var(--ai-violet),var(--ai-cyan),transparent) 1}
.pgnav__up{color:#4527c9;background:rgba(124,77,255,.08)}.pgnav__up:hover{background:rgba(124,77,255,.16);color:var(--ai-ink)}
.pgnav__find{background:rgba(124,77,255,.06);border-color:rgba(124,77,255,.2)}.pgnav__find:focus-within{border-color:var(--ai-violet);box-shadow:0 0 0 3px rgba(124,77,255,.15)}
.pgnav__i{color:var(--ai-violet);background:rgba(124,77,255,.1)}
.pgnav__list a:hover{background:rgba(124,77,255,.07)}
.pgnav__list a[aria-current]{color:#fff;background:var(--ai-grad);box-shadow:0 8px 20px rgba(124,77,255,.35)}
.pgnav__list a[aria-current] .pgnav__i{color:#fff;background:rgba(255,255,255,.22)}
.pgtoc a:hover{color:var(--ai-violet)}
.pgtoc a.is-on{color:var(--ai-violet);border-left-color:var(--ai-cyan);background:linear-gradient(90deg,rgba(124,77,255,.1),transparent)}
.glance__i::before{background:var(--ai-grad)}
.glance__i b{background:var(--ai-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.pgmain .rich a{color:#4527c9;text-decoration-color:rgba(124,77,255,.45)}.pgmain .rich a:hover{color:var(--pink-d)}
.pgmain .rich ul>li::before{background:var(--ai-grad2);box-shadow:0 0 8px rgba(124,77,255,.5)}
.pgmain .rich ol>li::marker{color:var(--ai-violet)}
.pgmain .rich blockquote{border-left-color:var(--ai-violet);background:linear-gradient(90deg,rgba(124,77,255,.09),transparent)}
.pgmain .rich hr{background:linear-gradient(90deg,transparent,var(--ai-violet),var(--ai-cyan),transparent)}
.pgmain .rich th{background:linear-gradient(120deg,var(--ai-ink),#2a2f86 60%,var(--ai-violet))}
.pgmain .rich tr:hover td{background:rgba(124,77,255,.05)}
.pgmain .rich table{border-color:rgba(124,77,255,.18)}
.pgmain .docs a,.pgc{background:linear-gradient(120deg,#fff,rgba(124,77,255,.05));border-color:rgba(124,77,255,.16)}
.pgmain .docs a:hover,.pgc:hover{border-color:var(--ai-violet);box-shadow:0 12px 28px rgba(124,77,255,.22)}
.pgmain .docs .ic{background:var(--ai-grad)}
.pgmain .docs em{color:#4527c9;background:rgba(124,77,255,.12)}
.pgc::before{background:linear-gradient(180deg,var(--ai-violet),var(--ai-cyan))}
@media (prefers-reduced-motion:reduce){.ph::after,.ph__orb{animation:none}}

/* Aurora header, softened: lighter indigo-violet instead of near-black, readable current crumb */
.ph{background:
  radial-gradient(60% 130% at 90% -20%,rgba(167,139,250,.55),transparent 62%),
  radial-gradient(50% 110% at 5% 130%,rgba(34,211,238,.28),transparent 62%),
  radial-gradient(40% 90% at 55% 140%,rgba(232,121,200,.28),transparent 65%),
  linear-gradient(120deg,#3a4bb5,#4a4fc4 45%,#6a5ad6)}
.ph::before{opacity:.35}
.ph__orb--a{background:rgba(196,181,253,.45)}.ph__orb--b{background:rgba(125,211,252,.3)}
.ph h1{background:none;-webkit-text-fill-color:#fff;color:#fff;text-shadow:0 2px 18px rgba(30,27,100,.35)}
.ph__sub{color:#e3e8ff}.ph__kicker{color:#a5f3fc}
.ph__crumbs a{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28)}
.ph__crumbs span[aria-current]{background:#fff;color:#2e2a8a;border-color:#fff;font-weight:700}
.ph__btn,.ph__tools .ph__btn{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);color:#fff;box-shadow:none}
.ph__btn:hover{background:rgba(255,255,255,.3)}
.ph__ribbon{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35)}
.ph__ribbon-sub{color:#e3e8ff}

/* Side navigation: more compact text/icons + slim gradient scrollbar */
.pgnav{padding:.8rem .75rem}
.pgnav__t{font-size:.7rem}
.pgnav__n{font-size:.68rem;min-width:1.45rem}
.pgnav__up{font-size:.72rem;padding:.38rem .55rem;margin:.55rem 0 .15rem}
.pgnav__find{padding:.32rem .6rem;margin:.55rem 0 .2rem}
.pgnav__find input{font-size:.78rem}
.pgnav__find .ic{width:.9rem;height:.9rem}
.pgnav__list{gap:.1rem;margin-top:.4rem}
.pgnav__list a{font-size:.8rem;gap:.55rem;padding:.38rem .45rem;border-radius:10px;line-height:1.25}
.pgnav__i{width:1.6rem;height:1.6rem;border-radius:8px}
.pgnav__i .ic{width:.82rem;height:.82rem}
.pgtoc{padding:.8rem .75rem}.pgtoc a{font-size:.78rem}

.pgside{scrollbar-width:thin;scrollbar-color:#a78bfa transparent;padding-right:.35rem}
.pgside::-webkit-scrollbar{width:6px}
.pgside::-webkit-scrollbar-track{background:rgba(124,77,255,.08);border-radius:999px;margin-block:.5rem}
.pgside::-webkit-scrollbar-thumb{border-radius:999px;background:linear-gradient(180deg,#7c4dff,#22d3ee);border:1px solid rgba(255,255,255,.6)}
.pgside::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#6a3df0,#06b6d4)}

/* Header v3: rich indigo -> plum -> rose with a gold accent (replaces the flat blue-violet) */
.ph{background:
  radial-gradient(55% 140% at 92% -30%,rgba(255,196,120,.38),transparent 60%),
  radial-gradient(45% 120% at 0% 130%,rgba(236,72,153,.30),transparent 62%),
  linear-gradient(115deg,#1f1b5a 0%,#3b2178 42%,#7a2a86 78%,#b2377f 100%)}
.ph::before{opacity:.28}
.ph::after{background:linear-gradient(90deg,transparent,#f5c451,#ff8fb8,#f5c451,transparent);background-size:200% 100%}
.ph__orb--a{background:rgba(255,196,120,.30)}.ph__orb--b{background:rgba(236,72,153,.30)}
.ph h1::after{background:linear-gradient(90deg,#f5c451,#ff8fb8);box-shadow:0 0 14px rgba(245,196,81,.6)}
.ph__kicker{color:#ffd98a}.ph__dot{background:#f5c451;box-shadow:0 0 8px #f5c451}
.ph__sub{color:#f1e6ff}
.ph__crumbs span[aria-current]{color:#3b2178}
.ph__ribbon-ico{color:#3b2178;background:linear-gradient(135deg,#f5c451,#ffd98a);box-shadow:0 6px 16px rgba(245,196,81,.45)}
.ph__ribbon-n{background:#f5c451;color:#2a1560}
/* header buttons: glass, same style for both (ids beat the older per-button colours) */
.ph__tools #pgCopy,.ph__tools #pgPrint{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.4);box-shadow:none;font-weight:700}
.ph__tools #pgCopy:hover,.ph__tools #pgPrint:hover{background:rgba(255,255,255,.28);transform:translateY(-2px)}
.ph__tools #pgCopy.is-ok{background:#f5c451;color:#2a1560;border-color:#f5c451}

/* Header v4: off-white / light header with dark text */
.ph{color:#1f1b5a;background:
  radial-gradient(50% 140% at 95% -30%,rgba(245,196,81,.20),transparent 60%),
  radial-gradient(45% 130% at 0% 130%,rgba(124,77,255,.12),transparent 62%),
  linear-gradient(120deg,#fbfaff,#f3f1fc 55%,#fdf4f8);border-bottom:1px solid rgba(124,77,255,.14)}
.ph::before{opacity:.5;background-image:linear-gradient(rgba(79,70,229,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(79,70,229,.06) 1px,transparent 1px)}
.ph__orb--a{background:rgba(167,139,250,.28)}.ph__orb--b{background:rgba(244,114,182,.18)}
.ph__crumbs a{background:#fff;border-color:rgba(124,77,255,.22);color:#3b2178;box-shadow:0 2px 8px rgba(79,70,229,.08);-webkit-backdrop-filter:none;backdrop-filter:none}
.ph__crumbs a:hover{background:#ede9fe;color:#2a1560}
.ph__crumbs span[aria-current]{background:linear-gradient(120deg,#4338ca,#7c4dff);border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(79,70,229,.3)}
.ph__sep{color:#7c6fc4}
.ph__kicker{color:#6d3fd6}.ph__kicker:hover{color:#2a1560}
.ph h1{color:#1f1b5a;-webkit-text-fill-color:#1f1b5a;text-shadow:none}
.ph h1::after{background:linear-gradient(90deg,#7c4dff,#ec4899,#f5c451);box-shadow:none}
.ph__sub{color:#5b5a86}.ph__dot{background:#7c4dff;box-shadow:none}
.ph__tools #pgCopy,.ph__tools #pgPrint{background:#fff;color:#3b2178;border:1px solid rgba(124,77,255,.3);box-shadow:0 4px 12px rgba(79,70,229,.1)}
.ph__tools #pgCopy:hover,.ph__tools #pgPrint:hover{background:#ede9fe;color:#2a1560}
.ph__tools #pgCopy.is-ok{background:#16a34a;color:#fff;border-color:#16a34a}
.ph__ribbon{background:#fff;border-color:rgba(124,77,255,.25);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 4px 14px rgba(79,70,229,.08)}
.ph__ribbon strong{color:#1f1b5a}.ph__ribbon-sub{color:#5b5a86}
.ph__ribbon-ico{color:#fff;background:linear-gradient(135deg,#7c4dff,#4338ca);box-shadow:0 6px 16px rgba(79,70,229,.35)}
.ph__ribbon-n{background:#f5c451;color:#2a1560}

/* Header buttons: Copy link = indigo, Print = rose */
.ph__tools #pgCopy{background:linear-gradient(120deg,#4338ca,#7c4dff);color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(79,70,229,.3)}
.ph__tools #pgCopy:hover{background:linear-gradient(120deg,#3730a3,#6d3fd6);color:#fff}
.ph__tools #pgPrint{background:linear-gradient(120deg,#db2777,#f472b6);color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(219,39,119,.28)}
.ph__tools #pgPrint:hover{background:linear-gradient(120deg,#be185d,#ec4899);color:#fff}
.ph__tools #pgCopy.is-ok{background:#16a34a;color:#fff}

/* Accordion rows: lighter, smaller text/badges/arrow */
.rich .faq-items{gap:.55rem}
.rich .faq-item{border-radius:14px}
.rich .accordion-button{padding:.5rem 2.5rem .5rem .7rem;gap:.65rem;font-weight:600;font-size:.82rem;letter-spacing:.015em}
.rich .accordion-button::after{right:.75rem;width:1.5rem;height:1.5rem;margin-top:-.75rem;background-size:.8rem}
.rich .faq-count{min-width:1.7rem;height:1.7rem;border-radius:9px;font-size:.68rem;font-weight:700;box-shadow:0 4px 10px rgba(65,105,225,.25)}
.rich .faq-body{padding:.8rem 1rem 1rem}

/* ===== Smart tabs (replace accordions inside .rich content) ===== */
@keyframes ait-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.aitabs{display:grid;gap:1rem}
.aitabs__meta{display:inline-flex;align-items:center;gap:.45rem;justify-self:start;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#6d3fd6;padding:.25rem .7rem;border-radius:999px;background:rgba(124,77,255,.08);border:1px solid rgba(124,77,255,.18)}
.aitabs__meta i{color:#ec4899;font-size:.75rem}
.aitabs__bar{display:flex;flex-wrap:wrap;gap:.45rem;padding:.4rem;border-radius:18px;background:linear-gradient(120deg,rgba(124,77,255,.07),rgba(34,211,238,.07));border:1px solid rgba(124,77,255,.16)}
.aitabs__tab{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font:inherit;font-size:.8rem;font-weight:600;line-height:1.2;letter-spacing:.02em;text-transform:uppercase;color:#3b2178;padding:.5rem .85rem .5rem .55rem;border-radius:13px;border:1px solid transparent;background:rgba(255,255,255,.7);transition:transform .2s,box-shadow .25s,background .25s,color .25s}
.aitabs__ico{flex:none;width:1.65rem;height:1.65rem;border-radius:9px;display:grid;place-items:center;font-size:.76rem;color:#6d3fd6;background:rgba(124,77,255,.12);transition:.25s}
.aitabs__tab:nth-child(3n+2) .aitabs__ico{color:#be185d;background:rgba(236,72,153,.12)}
.aitabs__tab:nth-child(3n) .aitabs__ico{color:#0e7490;background:rgba(34,211,238,.16)}
.aitabs__tab:hover{transform:translateY(-2px);background:#fff;box-shadow:0 8px 18px rgba(79,70,229,.15)}
.aitabs__tab:focus-visible{outline:2px solid #7c4dff;outline-offset:2px}
.aitabs__tab.is-on{color:#fff;background:linear-gradient(120deg,#4338ca,#7c4dff 60%,#a855f7);box-shadow:0 10px 22px rgba(79,70,229,.35)}
.aitabs__tab.is-on .aitabs__ico{color:#fff;background:rgba(255,255,255,.22)}
.aitabs__panels{position:relative}
.aitabs__pane{position:relative;padding:clamp(1rem,2.2vw,1.6rem);border-radius:18px;background:linear-gradient(160deg,#fff,rgba(124,77,255,.035));border:1px solid rgba(124,77,255,.14);box-shadow:0 10px 28px rgba(20,26,77,.06);animation:ait-in .35s ease both}
.aitabs__pane::before{content:"";position:absolute;left:1.2rem;right:1.2rem;top:0;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,#7c4dff,#22d3ee,#ec4899)}
.aitabs__pane[hidden]{display:none}
.aitabs__pane>:first-child{margin-top:0}.aitabs__pane>:last-child{margin-bottom:0}
@media (max-width:640px){
  .aitabs__bar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.aitabs__bar::-webkit-scrollbar{display:none}
  .aitabs__tab{flex:none}
}
@media (prefers-reduced-motion:reduce){.aitabs__pane{animation:none}.aitabs__tab,.aitabs__tab:hover{transition:none;transform:none}}

/* the content rule above hides legacy FA glyphs; the tab icons are ours and must show */
.rich .aitabs i[class*="fa-"]{display:inline-grid;place-items:center}
.rich .aitabs__ico{font-size:.8rem}
.rich .aitabs__tab.is-on .aitabs__ico{transform:scale(1.08)}
.rich .aitabs__meta i{display:inline-block}
.aitabs__ico .ic{width:.9rem;height:.9rem}

/* custom page blocks keep a clean frame inside the page card */
.pgmain .rich .cframe{margin:.2rem 0}

/* campus video: short description under the title */
.vt__item .vt__txt{margin:0;font-size:.78rem;line-height:1.45;opacity:.8}

/* Header accreditation tags: distinct, soft gradient colours */
.masthead .ident__tags b{position:relative;border:0;box-shadow:0 2px 8px rgba(27,47,122,.14);letter-spacing:.01em;transition:transform .18s ease,box-shadow .18s ease}
.masthead .ident__tags b:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(27,47,122,.22)}
.masthead .ident__tags b:first-child{background:linear-gradient(120deg,#0f766e,#14b8a6);color:#fff}
.masthead .ident__tags b:last-child{background:linear-gradient(120deg,#fde68a,#fbbf24);color:#5b3a00}

/* Header tags: glowing halo */
.masthead .ident__tags b:first-child{box-shadow:0 0 0 1px rgba(255,255,255,.55),0 0 10px 2px rgba(20,184,166,.55),0 0 22px 5px rgba(20,184,166,.28);animation:tagGlowT 2.8s ease-in-out infinite}
.masthead .ident__tags b:last-child{box-shadow:0 0 0 1px rgba(255,255,255,.65),0 0 10px 2px rgba(251,191,36,.65),0 0 22px 5px rgba(251,191,36,.32);animation:tagGlowG 2.8s ease-in-out infinite .6s}
.masthead .ident__tags b:hover{transform:translateY(-1px) scale(1.04)}
@keyframes tagGlowT{50%{box-shadow:0 0 0 1px rgba(255,255,255,.7),0 0 14px 4px rgba(20,184,166,.8),0 0 30px 9px rgba(20,184,166,.38)}}
@keyframes tagGlowG{50%{box-shadow:0 0 0 1px rgba(255,255,255,.8),0 0 14px 4px rgba(251,191,36,.9),0 0 30px 9px rgba(251,191,36,.42)}}
@media (prefers-reduced-motion:reduce){.masthead .ident__tags b{animation:none!important}}

/* Faculty profile: wider summary box, contact values on one line; Report (PDF) button made readable */
@media (min-width:981px){.pg.pg--fac{grid-template-columns:clamp(340px,27vw,410px) minmax(0,1fr)}}
.fpc__kv{gap:.55rem .9rem;padding:.9rem .9rem}
.fpc__kv dd{overflow-wrap:normal;white-space:nowrap;min-width:0}
.fpc__kv dd:last-of-type{white-space:normal;overflow-wrap:anywhere}
.fpc__kv a{white-space:nowrap}
#pgCopyLike.ph__btn,.ph__tools #pgCopyLike{background:linear-gradient(120deg,#fbbf24,#f59e0b);color:#3b2400;border:0;box-shadow:0 6px 18px rgba(245,158,11,.45)}
.ph__tools #pgCopyLike:hover{background:linear-gradient(120deg,#fcd34d,#f59e0b);color:#2a1a00;box-shadow:0 8px 22px rgba(245,158,11,.6);-webkit-backdrop-filter:none;backdrop-filter:none}

/* Buttons inside CMS content: the generic content-link colour must not override the button's own text colour */
.pgmain .rich a.btn,.pgmain .rich a.btn:visited,.pgmain .rich a.btn:hover,.pgmain .rich a.btn:focus{color:#fff;text-decoration:none}
.pgmain .rich a.btn{background:linear-gradient(120deg,var(--royal-d),var(--royal))}
.pgmain .rich a.btn-info{background:linear-gradient(120deg,#0e7490,#06b6d4)}
.pgmain .rich a.btn-primary{background:linear-gradient(120deg,var(--royal-d),var(--royal))}
.pgmain .rich a.btn-success{background:linear-gradient(120deg,#1b7a3a,#43a047)}
.pgmain .rich a.btn-danger{background:linear-gradient(120deg,var(--pink-d),var(--pink))}
.pgmain .rich a.btn-warning,.pgmain .rich a.btn-warning:hover,.pgmain .rich a.btn-warning:visited{color:#3a2600;background:linear-gradient(120deg,#ffcf5c,#f2b01e)}
.pgmain .rich a.btn-secondary,.pgmain .rich a.btn-light,.pgmain .rich a.btn-secondary:hover,.pgmain .rich a.btn-light:hover{color:var(--royal-dd);background:var(--soft);box-shadow:inset 0 0 0 1px var(--soft-line)}
.pgmain .rich a.btn::after,.pgmain .rich a.btn.cms-ext:not([data-ext])::after{color:inherit;background:transparent;padding:0}
.pgmain .rich a.btn[data-ext]::after{color:inherit;background:rgba(255,255,255,.22)}

/* Downloads and media as tabs */
.aitabs--dl .aitabs__n{margin-left:.15rem;min-width:1.4rem;text-align:center;padding:.05rem .4rem;border-radius:999px;font-size:.68rem;font-weight:800;background:rgba(124,77,255,.14);color:#4527c9}
.aitabs--dl .aitabs__tab.is-on .aitabs__n{background:rgba(255,255,255,.25);color:#fff}
.aitabs--dl .aitabs__pane .pgdl__grid{margin:0}
.aitabs--dl .aitabs__ico i{font-size:.8rem}

/* pictures inside tab panels: neat gallery of small cards, click to enlarge */
.rich :is(.aitabs__pane,.tab-pane):has(>p>img){display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,380px));gap:1.2rem;justify-content:center}
.rich :is(.aitabs__pane,.tab-pane)>p:has(>img){margin:0;padding:0;text-align:center}
.rich img.cms-thumb{display:block;width:100%;max-width:380px;margin-inline:auto;height:auto;max-height:560px;object-fit:cover;object-position:top;border-radius:14px;border:1px solid rgba(124,77,255,.16);box-shadow:0 8px 22px rgba(20,16,60,.12);cursor:zoom-in;transition:transform .25s,box-shadow .25s}
.rich img.cms-thumb:hover,.rich img.cms-thumb:focus-visible{transform:translateY(-4px) scale(1.02);box-shadow:0 16px 32px rgba(79,70,229,.28);outline:none}
.cms-zoom{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:1.5rem;background:rgba(15,10,40,.82);backdrop-filter:blur(4px);cursor:zoom-out;animation:cmsFade .2s}
.cms-zoom img{max-width:min(96vw,900px);max-height:92vh;width:auto;height:auto;border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.5);background:#fff}
.cms-zoom__x{position:absolute;top:1rem;right:1rem;width:2.6rem;height:2.6rem;border:0;border-radius:50%;background:#fff;color:#4338ca;font-size:1.1rem;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.3)}
@keyframes cmsFade{from{opacity:0}}
@media (max-width:560px){.rich :is(.aitabs__pane,.tab-pane):has(>p>img){grid-template-columns:repeat(2,1fr);gap:.6rem}}
/* faculty profile card + "on this page" nav: pink accent instead of blue */
.fpc{background:linear-gradient(160deg,#fff,#fdf0f9);border-color:rgba(200,23,155,.2);box-shadow:0 12px 30px rgba(157,16,121,.12)}
.fpc__photo{background:conic-gradient(from var(--qa),var(--pink),#ff8fd6,var(--pink-d),var(--pink));box-shadow:0 14px 30px rgba(200,23,155,.32)}
.fpc h2{color:var(--pink-d)}
.fpc .fac2__role{color:var(--pink-d);background:rgba(200,23,155,.12)}
.fpc__kv{background:rgba(200,23,155,.06)}
.fpc__kv dt{color:var(--pink-d)}
.fpc__kv a{color:var(--pink-d)}
.fpc__soc a{background:linear-gradient(135deg,var(--pink),var(--pink-d))}
.fpc__soc a:hover{background:linear-gradient(135deg,#ff5fc4,var(--pink))}
.fpc .pd__btn{color:var(--pink-d);border-color:rgba(200,23,155,.35)}
.fpc .pd__btn:hover{background:#fff0fa}
.fpc .pd__btn--solid{color:#fff;border-color:transparent;background:linear-gradient(120deg,var(--pink),var(--pink-d));box-shadow:0 8px 22px rgba(200,23,155,.35)}
.fpc .pd__btn--solid:hover{background:linear-gradient(120deg,#e23bb4,var(--pink-d));box-shadow:0 12px 28px rgba(200,23,155,.5)}
.pg--fac .pgtoc h2{color:var(--pink-d)}
.pg--fac .pgtoc a:hover{color:var(--pink-d)}
.pg--fac .pgtoc a.is-on{color:var(--pink-d);border-left-color:var(--pink);background:linear-gradient(90deg,rgba(200,23,155,.1),transparent)}
/* links styled as buttons never carry an underline */
a.btn,a[class*="btn"],a[class*="__btn"],a[class*="--btn"],a.rs__link,a.pd__btn,a.ph__btn,
a.btn:hover,a[class*="btn"]:hover,a[class*="__btn"]:hover,a.rs__link:hover,a.pd__btn:hover,a.ph__btn:hover,
a.btn:focus,a[class*="btn"]:focus,a[class*="__btn"]:focus{text-decoration:none}
/* Latest-news pop-up polish: glass backdrop, soft glow header, slim scrollbar, footer actions */
.dlg--feed{border:0;padding:0;border-radius:26px;overflow:hidden;box-shadow:0 30px 80px rgba(27,47,122,.45),0 0 0 1px rgba(200,23,155,.25)}
.dlg--feed::backdrop{background:rgba(20,16,60,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.dlg--feed header{position:relative;background:linear-gradient(120deg,var(--royal-dd),var(--royal) 55%,var(--pink))}
.dlg--feed header::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:linear-gradient(90deg,#22d3ee,#a78bfa,var(--pink))}
.dlg--feed .dlg__body{scrollbar-width:thin;scrollbar-color:var(--pink) transparent}
.dlg--feed .dlg__body::-webkit-scrollbar{width:8px}
.dlg--feed .dlg__body::-webkit-scrollbar-thumb{background:linear-gradient(var(--royal),var(--pink));border-radius:8px}
.dlg--feed .dlg__x{transition:transform .25s,background .25s}
.dlg--feed .dlg__x:hover{transform:rotate(90deg)}
.dlg__foot-l{display:flex;flex-wrap:wrap;gap:.6rem;margin-right:auto}
.dlg--feed .dlg__foot .pd__btn{padding:.55rem 1.1rem;font-size:.88rem}
.dlg--feed .dlg__foot .pd__btn[hidden]{display:none}
.ticker a[data-peek]{cursor:pointer}

/* Ask KMC: smart answer cards */
.ai{width:min(420px,calc(100% - 28px));border-radius:22px;box-shadow:0 24px 70px rgba(27,47,122,.4),0 0 0 1px rgba(200,23,155,.22)}
.ai__head{background:linear-gradient(120deg,var(--royal-dd),var(--royal) 55%,var(--pink))}
.ai__log{background:linear-gradient(180deg,#f6f7ff,#fdf3fb);scrollbar-width:thin;scrollbar-color:var(--pink) transparent}
.ai__ans{max-width:100%;width:100%;padding:.8rem;background:transparent;box-shadow:none}
.ai__ans.ai__msg{padding:.2rem 0}
.ai__lead{font-weight:700;color:var(--royal-dd);margin:0 0 .5rem;display:flex;align-items:center;gap:.4rem}
.ai__lead::before{content:"\2726";color:var(--pink)}
.ai__rel{margin:.8rem 0 .4rem;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ai__ans a.ai__card{display:block;padding:.7rem .85rem;margin:0 0 .5rem;border:1px solid rgba(65,105,225,.18);border-radius:14px;background:#fff;text-decoration:none;color:var(--ink);box-shadow:0 4px 14px rgba(27,47,122,.08);transition:transform .2s,box-shadow .2s,border-color .2s}
.ai__ans a.ai__card:hover{transform:translateY(-2px);border-color:var(--pink);box-shadow:0 10px 24px rgba(200,23,155,.18)}
.ai__ans a.ai__card--top{border-left:4px solid var(--pink);background:linear-gradient(160deg,#fff,#fdf0f9)}
.ai__card small{display:inline-block;margin:0 0 .25rem;padding:.1rem .55rem;border-radius:999px;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:linear-gradient(120deg,var(--royal),var(--pink))}
.ai__card b{display:block;font-size:.95rem;line-height:1.3;color:var(--royal-dd)}
.ai__path{display:block;font-size:.72rem;color:var(--muted);margin:.1rem 0 .3rem}
.ai__card p{margin:.3rem 0 .2rem;font-size:.84rem;line-height:1.5;color:var(--text,#33365a);overflow-wrap:anywhere}
.ai__card mark{background:rgba(200,23,155,.16);color:var(--pink-d);font-weight:700;border-radius:4px;padding:0 .12em}
.ai__card em{display:inline-block;margin-top:.2rem;font-style:normal;font-size:.78rem;font-weight:700;color:var(--pink-d)}
.ai__typing{display:flex;gap:.3rem;align-items:center;padding:.7rem .9rem}
.ai__typing i{width:.5rem;height:.5rem;border-radius:50%;background:var(--pink);animation:ai-dot 1s infinite ease-in-out}
.ai__typing i:nth-child(2){animation-delay:.15s}.ai__typing i:nth-child(3){animation-delay:.3s}
@keyframes ai-dot{0%,80%,100%{opacity:.25;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.ai__typing i{animation:none}}
@media (max-width:520px){.ai{right:8px;bottom:8px;width:calc(100% - 16px);max-height:calc(100vh - 16px)}}

/* header search: the dropdown must not be clipped by the masthead, and sits above the sticky menu bar */
.masthead{overflow:visible;clip-path:inset(0 0 -100vh 0);z-index:70}
.sres{left:auto;right:0;width:min(640px,calc(100vw - 24px));z-index:80;border-radius:20px;padding:.5rem;box-shadow:0 24px 60px rgba(27,47,122,.32),0 0 0 1px rgba(200,23,155,.2);max-height:min(70vh,560px);scrollbar-width:thin;scrollbar-color:var(--pink) transparent}
.sres__head{display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;margin:0 0 .3rem;border-radius:12px;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:linear-gradient(120deg,var(--royal-dd),var(--royal) 55%,var(--pink))}
.sres__head .ic{width:1rem;height:1rem}
.sres li{list-style:none}
.sres a{display:flex;align-items:flex-start;gap:.7rem;padding:.6rem .75rem;margin:.1rem 0;border:1px solid transparent}
.sres li:not(.sres__foot):not(.sres__head):not(.sres__sk) a:hover,.sres a.is-sel{background:linear-gradient(160deg,#fff,#fdf0f9);border-color:rgba(200,23,155,.3)}
.sres a.is-top{background:linear-gradient(160deg,#fff,#fdf0f9);border-left:4px solid var(--pink)}
.sres .chip{flex:none;margin-top:.1rem;font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:linear-gradient(120deg,var(--royal),var(--pink));border-radius:999px;padding:.12rem .6rem}
.sres__body{display:grid;gap:.12rem;min-width:0}
.sres__body b{font-size:.95rem;line-height:1.3;color:var(--royal-dd)}
.sres__body small{font-size:.72rem;color:var(--muted)}
.sres__snip{font-size:.82rem;line-height:1.5;color:#3c3f66;overflow-wrap:anywhere}
.sres mark{background:rgba(200,23,155,.16);color:var(--pink-d);font-weight:700;border-radius:4px;padding:0 .1em}
.sres__foot{position:sticky;bottom:-.5rem;background:#fff;padding-top:.3rem}
.sres__foot a{justify-content:center;font-weight:800;color:var(--pink-d);background:rgba(200,23,155,.07);border-radius:12px}
.sres__foot a:hover{background:rgba(200,23,155,.14)}
.sres__sk{height:3.4rem;margin:.3rem 0;border-radius:14px;background:linear-gradient(90deg,var(--grey),var(--lightest),var(--grey));background-size:200% 100%;animation:fd-sk 1.2s linear infinite}
@media (max-width:700px){.sres{left:0;right:auto;width:calc(100vw - 24px)}}
/* full search page */
.sr__list{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.sr__item a{display:grid;gap:.25rem;padding:1rem 1.2rem;border-radius:18px;text-decoration:none;color:var(--ink);background:linear-gradient(160deg,#fff,#fdf0f9);border:1px solid rgba(200,23,155,.16);box-shadow:0 6px 18px rgba(27,47,122,.08);transition:transform .2s,box-shadow .2s}
.sr__item a:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(200,23,155,.18)}
.sr__item .chip{justify-self:start;color:#fff;background:linear-gradient(120deg,var(--royal),var(--pink));text-transform:uppercase;letter-spacing:.07em;font-size:.68rem}
.sr__item b{font-size:1.08rem;color:var(--royal-dd)}
.sr__item small{color:var(--muted)}
.sr__item p{margin:.2rem 0 0;line-height:1.6;color:#3c3f66}
.sr__item mark{background:rgba(200,23,155,.16);color:var(--pink-d);font-weight:700;border-radius:4px;padding:0 .1em}

/* search results table (same smart-table look as News) */
.st__table mark{background:rgba(200,23,155,.16);color:var(--pink-d);font-weight:700;border-radius:4px;padding:0 .1em}
.sr__path{display:block;margin:.1rem 0 .2rem;font-size:.76rem;color:var(--muted)}
.sr__link{width:34%}
.sr__link a{color:var(--royal-d);text-decoration:underline;word-break:break-all;overflow-wrap:anywhere;font-size:.85rem}
.sr__link a:hover{color:var(--pink)}

/* search results: Link column as a soft pill */
.sr__link{width:30%;min-width:14rem;vertical-align:middle}
.sr__link a.sr__pill{display:inline-flex;align-items:center;gap:.55rem;max-width:100%;padding:.45rem .85rem;border-radius:999px;text-decoration:none;font-size:.8rem;font-weight:600;color:var(--royal-d);background:linear-gradient(160deg,#fff,#eef1ff);border:1px solid rgba(65,105,225,.25);box-shadow:0 3px 10px rgba(27,47,122,.08);transition:transform .2s,box-shadow .2s,background .2s,color .2s,border-color .2s}
.sr__link a.sr__pill span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal}
.sr__link a.sr__pill .fa-link{flex:none;display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;font-size:.72rem;color:#fff;background:linear-gradient(135deg,var(--royal),var(--pink))}
.sr__link a.sr__pill .sr__go{flex:none;font-size:.7rem;opacity:.55;transition:transform .2s,opacity .2s}
.sr__link a.sr__pill:hover{color:#fff;text-decoration:none;transform:translateY(-2px);background:linear-gradient(120deg,var(--royal),var(--pink));border-color:transparent;box-shadow:0 10px 22px rgba(200,23,155,.3)}
.sr__link a.sr__pill:hover .sr__go{opacity:1;transform:translate(2px,-2px)}
.sr__link a.sr__pill:hover .fa-link{background:rgba(255,255,255,.25)}
@media (max-width:760px){.sr__link{width:auto;min-width:0}}

/* ===== mobile: nothing may push the page wider than the screen ===== */
/* the header's decorative circle (right:-60px) stuck out of the viewport on phones and made the whole page scroll sideways */
@media (max-width:980px){.masthead::after{display:none}}
@supports (overflow:clip){html,body{overflow-x:clip}}

/* ===== phone header: nothing may be wider than the screen ===== */
@media (max-width:980px){
  /* search + highlight cards: the single grid column may shrink below its content instead of pushing the row wider than the screen */
  .masthead .masthead__right{grid-template-columns:minmax(0,1fr);min-width:0;max-width:100%}
  .masthead .masthead__right>*{min-width:0;max-width:100%}
  .masthead .sbox{min-width:0;max-width:100%;box-sizing:border-box}
  .masthead .sbox .btn,.masthead .sbox button{flex:none}
  /* NAAC / NIRF badges: wrap inside the name column so they never run under the accessibility icon */
  .masthead .ident__txt{min-width:0;max-width:100%}
  .masthead .ident__tags{max-width:100%}
  .masthead .ident__tags b{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.25;border-radius:12px;text-align:left}
}
