:root{--pb:#004AAD;--bb:#218CEF;--nv:#1B2F4D;--sl:#31434E;--lg:#F7F7F7;--mut:#c9d3de;--bbl:#6db4f7}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--nv);color:var(--lg);font:17px/1.6 Avenir,"Avenir Next","Nunito Sans",system-ui,sans-serif;font-variant-numeric:tabular-nums;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(60vw 60vw at 85% 10%,rgba(33,140,239,.14),transparent 60%),radial-gradient(50vw 50vw at 0% 80%,rgba(0,74,173,.25),transparent 60%),linear-gradient(rgba(247,247,247,.035) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgba(247,247,247,.035) 1px,transparent 1px) 0 0/48px 48px;animation:drift 40s linear infinite}
@keyframes drift{to{background-position:0 0,0 0,0 480px,480px 0}}
h1,h2,h3{font-family:Montserrat,sans-serif;line-height:1.15;margin:0 0 .5em}
h1{font-weight:900;font-size:clamp(2.6rem,7vw,5.6rem);letter-spacing:-.02em}
h2{font-weight:600;font-size:clamp(1.6rem,3.4vw,2.5rem)}
h3{font-weight:400;font-size:1.2rem}
a{color:var(--bbl)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--bb);outline-offset:3px}
.tn,.big,td,.tick,svg text{font-variant-numeric:tabular-nums}
.preview-bar{background:transparent;color:inherit;opacity:.75;text-align:center;font-size:.8rem;padding:.35rem 1rem;letter-spacing:.04em}
.nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem clamp(1rem,4vw,3rem);background:rgba(27,47,77,.82);backdrop-filter:blur(12px);border-bottom:1px solid rgba(247,247,247,.08)}
.brand{font-family:Montserrat;font-weight:700;color:var(--lg);text-decoration:none}.brand span{font-weight:400;color:var(--mut);font-size:.85em}
.nav nav{display:flex;gap:1.1rem;flex-wrap:wrap}.nav nav a{color:var(--mut);text-decoration:none;font-size:.9rem}.nav nav a:hover{color:#fff}
@media(max-width:860px){.nav nav{display:none}}
.hero{position:relative;min-height:calc(100vh - 90px);display:flex;align-items:center;padding:4rem clamp(1rem,5vw,4rem);overflow:hidden}
#campus{position:absolute;inset:0;width:100%;height:100%}
.hero-in{position:relative;max-width:640px;padding:2rem;border-radius:20px;background:linear-gradient(120deg,rgba(27,47,77,.88),rgba(27,47,77,.4));}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;color:var(--bbl);margin:0 0 1rem}
.sub{font-size:1.3rem;margin:0 0 .8rem}.kicker{color:var(--mut);border-left:3px solid var(--bb);padding-left:1rem}
.byline{font-size:.9rem;color:var(--mut)}
.ctas{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.5rem 0}
.btn{display:inline-block;background:var(--pb);color:#fff;border:1px solid var(--pb);padding:.8rem 1.3rem;border-radius:999px;text-decoration:none;font-weight:700;font-family:inherit;font-size:.95rem;cursor:pointer;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(33,140,239,.4)}
.btn.ghost{background:transparent;border-color:var(--bb);color:var(--lg)}
.legend{list-style:none;display:flex;gap:1rem;padding:0;margin:0;font-size:.8rem;color:var(--mut)}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:.35rem}
.sec{padding:clamp(3rem,8vw,6rem) clamp(1rem,5vw,4rem);max-width:1280px;margin:0 auto}
.num{display:block;font-size:.8rem;letter-spacing:.2em;color:var(--bbl);font-weight:700;margin-bottom:.4rem}
.intro{color:var(--mut);max-width:760px}.lede{font-size:1.15rem;max-width:860px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;margin:1.5rem 0}
.tile{background:linear-gradient(160deg,var(--sl),rgba(49,67,78,.6));border:1px solid rgba(33,140,239,.3);border-radius:18px;padding:1.6rem;position:relative;overflow:hidden}
.tile::after{content:"";position:absolute;inset:-1px;background:linear-gradient(110deg,transparent 40%,rgba(33,140,239,.18) 50%,transparent 60%);background-size:250% 100%;animation:sheen 6s infinite}
@keyframes sheen{from{background-position:150% 0}to{background-position:-100% 0}}
.big{font-family:Montserrat;font-weight:900;font-size:3.4rem;color:#fff}.tile small,.foot{color:var(--mut);font-size:.82rem}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.reveal.in{opacity:1;transform:none}
/* carousels */
.carousel{position:relative}
.ctrack{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem .2rem 1.5rem;scrollbar-width:none}.ctrack::-webkit-scrollbar{display:none}
.card{flex:0 0 min(360px,84vw);scroll-snap-align:start;background:var(--sl);border:1px solid rgba(247,247,247,.1);border-radius:18px;padding:1.5rem;transition:transform .4s,border-color .4s,box-shadow .4s;transform:perspective(900px) rotateY(0)}
.card.act{border-color:var(--bb);box-shadow:0 0 0 1px var(--bb),0 20px 50px rgba(0,0,0,.35)}
.card .stg{font-family:Montserrat;font-weight:900;font-size:2.4rem;color:var(--bbl);line-height:1}
.card dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--bbl);margin-top:.8rem}.card dd{margin:.2rem 0 0}
.cnav{display:flex;align-items:center;gap:.8rem}.cnav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--bb);background:transparent;color:#fff;font-size:1.1rem;cursor:pointer}
.dots{display:flex;gap:6px}.dots button{width:10px;height:10px;padding:0;border-radius:50%;border:0;background:rgba(247,247,247,.3);cursor:pointer}.dots button.on{background:var(--bb);width:26px;border-radius:5px}
.stack-wrap{display:grid;grid-template-columns:180px 1fr;gap:2rem;align-items:center}
@media(max-width:760px){.stack-wrap{grid-template-columns:1fr}.elevator{display:none}}
.floors{display:flex;flex-direction:column-reverse;gap:4px}
.floors div{height:30px;border:1px solid rgba(33,140,239,.45);border-radius:4px;font-size:.7rem;padding:0 .5rem;line-height:28px;color:var(--mut);transition:all .4s;background:rgba(33,140,239,.05);white-space:nowrap;overflow:hidden;cursor:pointer}
.floors div.lit{background:var(--pb);color:#fff;border-color:var(--bb)}.floors div.cur{box-shadow:0 0 18px var(--bb);transform:scaleX(1.06)}
.tag{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:#000;color:#ffd27a;border:1px solid #ffd27a;border-radius:4px;padding:0 .4rem;vertical-align:middle}
/* ticker */
.ticker{overflow:hidden;border-block:1px solid rgba(247,247,247,.12);margin:1rem 0;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker-track{display:flex;gap:2.5rem;width:max-content;animation:tick 60s linear infinite;padding:.7rem 0}.ticker:hover .ticker-track{animation-play-state:paused}
.tick{background:none;border:0;color:var(--lg);font:inherit;font-size:.9rem;cursor:pointer;white-space:nowrap}.tick b{color:#fff}.tick em{color:var(--mut);font-style:normal}
@keyframes tick{to{transform:translateX(-50%)}}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}
.chip{background:transparent;border:1px solid rgba(247,247,247,.3);color:var(--lg);border-radius:999px;padding:.45rem 1rem;cursor:pointer;font:inherit;font-size:.88rem}.chip.on{background:var(--pb);border-color:var(--bb);color:#fff}
.chartbox{background:rgba(49,67,78,.55);border:1px solid rgba(247,247,247,.08);border-radius:18px;padding:1.2rem;margin:1rem 0}
.chartbox svg{width:100%;height:auto;display:block;overflow:visible}
svg text{fill:var(--lg);font-family:"Nunito Sans",sans-serif;font-size:12px}svg .ax{stroke:rgba(247,247,247,.15)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:2rem}@media(max-width:900px){.grid2{grid-template-columns:1fr}}
.mt{margin-top:2rem}
.timeline{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;position:relative}
.timeline li{background:var(--sl);border-radius:14px;padding:1rem;border-top:3px solid var(--bb)}.timeline b{font-family:Montserrat;font-size:1.6rem;display:block}
.agencies{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1000px){.agencies{grid-template-columns:1fr 1fr}}@media(max-width:560px){.agencies{grid-template-columns:1fr}}
.ag{background:var(--sl);border-radius:16px;padding:1.3rem;border:1px solid rgba(247,247,247,.1);position:relative;overflow:hidden}.ag h3{font-weight:600;color:#fff}.ag::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--pb),var(--bb));transform:scaleX(0);transform-origin:left;transition:transform 1s}.ag.in::before{transform:none}
.callout{margin:2rem 0;padding:1.6rem 2rem;border-left:4px solid var(--bb);background:rgba(0,74,173,.25);font-family:Montserrat;font-size:1.35rem;border-radius:0 16px 16px 0}.callout p{margin:0}
.gap{background:rgba(49,67,78,.55);border-radius:18px;padding:1.4rem}.gap input{width:100%;accent-color:var(--bb)}.gap-row{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;margin:.8rem 0}.gap-row span{display:block;color:var(--mut)}.gap-r{text-align:right}
.gap-bar{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--bb),#ffd27a,#ff6b6b);position:relative;opacity:.9}.gap-bar i{position:absolute;top:-5px;width:24px;height:24px;border-radius:50%;background:#fff;left:0;transition:left .2s;box-shadow:0 0 16px #fff}
.scen-wrap{display:grid;grid-template-columns:320px 1fr;gap:1.5rem;align-items:stretch}@media(max-width:860px){.scen-wrap{grid-template-columns:1fr}#miniCampus{height:200px}}
#miniCampus{width:100%;height:100%;min-height:220px;border-radius:18px;background:rgba(0,0,0,.2)}
.scards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;perspective:1000px}@media(max-width:860px){.scards{grid-template-columns:1fr}}
.sc{background:var(--sl);border-radius:16px;padding:1.3rem;transition:transform .7s,opacity .5s,border-color .5s;border:1px solid transparent;opacity:.55;transform:rotateY(8deg) scale(.96)}.sc.on{opacity:1;transform:none;border-color:var(--bb)}
.ind{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}
.flip{perspective:900px;background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer;min-height:190px}
.flip .in{position:relative;width:100%;height:100%;min-height:190px;transition:transform .7s;transform-style:preserve-3d}.flip.f .in{transform:rotateY(180deg)}
.flip .fa,.flip .ba{position:absolute;inset:0;backface-visibility:hidden;border-radius:16px;padding:1.2rem;background:var(--sl);border:1px solid rgba(33,140,239,.3)}
.flip .ba{transform:rotateY(180deg);background:var(--pb);color:#fff}
.flip .lab{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--bbl)}.flip .val{font-family:Montserrat;font-weight:700;font-size:1.5rem;color:#fff;margin:.3rem 0}.flip small{color:var(--mut);display:block}.flip .ba small{color:#e6eefb}
.pulse-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bb);margin-right:.4rem;animation:pd 2s infinite}@keyframes pd{50%{box-shadow:0 0 0 6px rgba(33,140,239,0)}0%{box-shadow:0 0 0 0 rgba(33,140,239,.7)}}
.qs li{margin:.4rem 0}
.hosts{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}@media(max-width:640px){.hosts{grid-template-columns:1fr}}
.host{display:flex;gap:1rem;align-items:center;background:var(--sl);border-radius:16px;padding:1rem;border:1px solid transparent;transition:all .3s}.host.talk{border-color:var(--bb);box-shadow:0 0 30px rgba(33,140,239,.35)}
.host p{margin:0;color:var(--mut);font-size:.9rem}.host h3{margin:0;font-weight:600}
.av{flex:0 0 64px;height:64px;border-radius:50%;display:grid;place-items:center;font-family:Montserrat;font-weight:900;background:var(--pb);color:#fff;position:relative}.av.dan{background:#000;border:2px solid var(--bb)}
.host.talk .av::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--bb);animation:ring 1.2s infinite}@keyframes ring{to{inset:-14px;opacity:0}}
.player{display:flex;gap:1rem;align-items:center;background:rgba(49,67,78,.7);border-radius:20px;padding:1rem 1.2rem;border:1px solid rgba(33,140,239,.3)}
.pp{flex:0 0 64px;height:64px;border-radius:50%;border:0;background:var(--pb);color:#fff;font-size:1.5rem;cursor:pointer;box-shadow:0 0 0 4px rgba(33,140,239,.3)}
.pbody{flex:1;min-width:0}#wave{width:100%;height:60px;display:block}#scrub{width:100%;accent-color:var(--bb)}.ptime{display:flex;justify-content:space-between;font-size:.8rem;color:var(--mut)}
.transcript{max-height:460px;overflow:auto;margin-top:1rem;background:rgba(0,0,0,.2);border-radius:16px;padding:1rem 1.2rem}
.transcript p{margin:.3rem 0;padding:.4rem .6rem;border-radius:8px;cursor:pointer;transition:background .3s}.transcript p.on{background:rgba(0,74,173,.55)}.transcript b{color:var(--bbl)}.transcript h4{font-family:Montserrat;margin:1rem 0 .2rem;color:#fff}
.mini{position:fixed;right:1rem;bottom:1rem;z-index:30;display:flex;gap:.8rem;align-items:center;background:var(--pb);color:#fff;padding:.5rem .9rem .5rem .5rem;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.4)}.mini button{width:36px;height:36px;border-radius:50%;border:0;background:#fff;color:var(--pb);cursor:pointer}.mini a{color:#fff}
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.rcard{background:var(--sl);border-radius:16px;padding:1.4rem;text-decoration:none;color:var(--lg);border:1px solid rgba(247,247,247,.1);transition:transform .3s,border-color .3s}.rcard:hover{transform:translateY(-4px);border-color:var(--bb)}.rcard small{color:var(--mut)}.rcard h3{margin-top:.5rem;font-weight:600}
.srcs{columns:2 340px;font-size:.85rem}.srcs li{break-inside:avoid;margin:.25rem 0;overflow-wrap:anywhere}
.foot-main{background:#000;padding:2.5rem clamp(1rem,5vw,4rem);color:var(--mut);font-size:.9rem}.foot-main strong{color:#fff}.disc{max-width:900px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}.ticker-track{flex-wrap:wrap;width:auto}}
.carousel,.stack-wrap>*,.grid2>*,.scen-wrap>*{min-width:0}
.mini[hidden]{display:none}@media(max-width:700px){#campus{opacity:.4}}
