/* BioAsia 2027 prototype — shared styles. One colour scheme: violet, from the draft site (bioasia-2027.vercel.app).
   Some token names (--teal, --turmeric) date from the earlier teal scheme; they now hold the violet and sky-blue accents. */
:root{
  --paper:#F6F7FF; --surface:#FFFFFF; --surface-2:#ECEEFD; --ink:#17163F; --ink-2:#57597C; --line:#DADDF3;
  --teal:#7C3AED; --teal-ink:#FFFFFF; --teal-soft:#EDE7FE; --turmeric:#2F95DC; --turmeric-soft:#E2F0FB;
  --night:#0A0A1F; --night-2:#171440; --on-night:#F3F1FB; --on-night-2:#A7A5CF; --glow-a:#7DD3FC; --glow-b:#A78BFA;
  --cta:#7C3AED; --cta-ink:#FFFFFF; --cta-hover:#8B5CF6; --orb-a:#A78BFA; --orb-b:#5B21B6;
  --ribbon:#8B9CF0; --ribbon-ink:#0A0A1F; --hero-glow:#2B2568; --hdr-bg:rgb(10 10 31 / .9); --placeholder:#8E8CB8;
  --helix-a:125,211,252; --helix-b:167,139,250; --helix-rung:243,241,251;
  --ok:#1E8A5A;
  --shadow:0 1px 2px rgb(23 22 63 / .06), 0 10px 28px rgb(23 22 63 / .09);
  --display:"Manrope", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --sans:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --r:14px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0A0A1F; --surface:#131232; --surface-2:#1B1943; --ink:#F3F1FB; --ink-2:#A7A5CF; --line:#2B2568;
    --teal:#A78BFA; --teal-ink:#17163F; --teal-soft:#241C55; --turmeric:#7DD3FC; --turmeric-soft:#15294A;
    --shadow:0 1px 2px rgb(0 0 0 / .3), 0 10px 28px rgb(0 0 0 / .35);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0A0A1F; --surface:#131232; --surface-2:#1B1943; --ink:#F3F1FB; --ink-2:#A7A5CF; --line:#2B2568;
  --teal:#A78BFA; --teal-ink:#17163F; --teal-soft:#241C55; --turmeric:#7DD3FC; --turmeric-soft:#15294A;
  --shadow:0 1px 2px rgb(0 0 0 / .3), 0 10px 28px rgb(0 0 0 / .35);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
@media (prefers-reduced-motion: reduce){html:not(.force-motion){scroll-behavior:auto}html:not(.force-motion) *{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%}
[hidden]{display:none!important}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--turmeric);outline-offset:2px;border-radius:6px}
.wrap{max-width:1200px;margin-inline:auto;padding-inline:24px}
@media (max-width:600px){.wrap{padding-inline:16px}}
.mono{font-family:var(--mono)}
.tnum{font-variant-numeric:tabular-nums}
svg.i{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
svg.spark{fill:currentColor;stroke:none}

/* ribbon + header */
.ribbon{background:var(--ribbon);color:var(--ribbon-ink);font:500 12.5px/1.4 var(--mono);text-align:center;padding:6px 16px;letter-spacing:.02em}
.util{background:var(--night);color:var(--on-night-2);font-size:12px;border-bottom:1px solid rgb(255 255 255 / .07)}
.util .wrap{display:flex;justify-content:space-between;gap:16px;padding-block:7px;flex-wrap:wrap}
.util b{color:var(--on-night);font-weight:500}
.util .u-dash{display:inline-flex;align-items:center;gap:4px 14px;flex-wrap:wrap}.util .u-dash>span{opacity:.75}.util .u-dash a{color:var(--on-night);text-decoration:none;display:inline-flex;align-items:center;gap:5px}.util .u-dash a:hover{text-decoration:underline;text-underline-offset:3px}.util .u-dash svg.li{width:14px;height:14px;flex:none}.util .u-dash .u-mob{padding-left:14px;border-left:1px solid rgb(255 255 255 / .2);color:var(--glow-a,var(--on-night))}@media (max-width:720px){.util .u-dash{display:none}}
.m-dash{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.m-dash>span{grid-column:1/-1;font:500 11px var(--mono,monospace);letter-spacing:.12em;text-transform:uppercase;color:var(--on-night-2)}.m-dash a{display:flex;flex-direction:column;align-items:center;gap:5px;border-radius:12px;padding:10px 6px;font-size:13px;font-weight:600;text-decoration:none;color:var(--on-night);border:1px solid rgb(255 255 255 / .14)}.m-dash a svg.li{width:18px;height:18px}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--hdr-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--on-night);border-bottom:1px solid rgb(255 255 255 / .08)}
header.top .wrap{display:flex;align-items:center;gap:24px;height:76px;max-width:1400px}
.logos{display:flex;align-items:center;gap:16px;text-decoration:none;flex:none;color:var(--on-night)}
.tls{display:flex;align-items:center;gap:9px;font-family:var(--sans);line-height:1.1}
.tls img{width:42px;height:42px;display:block}
.tls-txt span{display:block}
.tls .l1{font-size:12.5px;font-weight:300}.tls .l2{font-size:13.5px;font-weight:700}
.vr{width:1px;height:40px;background:rgb(255 255 255 / .28)}
.ba{display:flex;align-items:center;gap:7px}
.ba .wm{display:flex;flex-direction:column;align-items:flex-end;font-family:"Montserrat","Segoe UI",system-ui,sans-serif}
.ba .w1{font-size:21px;font-weight:700;letter-spacing:-.03em;line-height:.8}
.ba .bio,.ba .w2{color:#34C3D6}
.ba .w2{font-size:11px;font-weight:700;line-height:.8;margin-top:4px}
.ba svg{width:44px;height:45px;display:block}
.ba svg .gap{stroke:var(--night)}
.foot-logos{margin-bottom:18px}
.hdr-actions a.search-btn{white-space:nowrap}
/* phones: keep both logos, Register and the menu; search and My BioAsia stay reachable from the menu */
@media (max-width:600px){#hdr-search,.hdr-actions a[href="my-bioasia.html"]{display:none}header.top .wrap{gap:12px}}
@media (max-width:900px){.tls-txt{display:none}.tls img{width:36px;height:36px}.vr{height:32px}.ba svg{width:38px;height:39px}.ba .w1{font-size:18px}.ba .w2{font-size:10px}.logos{gap:12px}}
nav.main{display:flex;gap:4px;flex:1;min-width:0}
nav.main a{text-decoration:none;font-size:14.5px;color:var(--on-night-2);padding:8px 11px;border-radius:8px;white-space:nowrap}
nav.main a:hover{color:var(--on-night);background:rgb(255 255 255 / .06)}
.hdr-actions{display:flex;gap:10px;align-items:center;margin-left:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:10px 18px;font-weight:600;font-size:14.5px;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .15s ease, background .15s ease}
.btn:active{transform:translateY(1px)}
.btn-gold{background:var(--cta);color:var(--cta-ink)}
.btn-gold:hover{background:var(--cta-hover)}
.btn-ghost-n{background:rgb(255 255 255 / .07);color:var(--on-night);border:1px solid rgb(255 255 255 / .16)}
.btn-ghost-n:hover{background:rgb(255 255 255 / .12)}
.btn-teal{background:var(--teal);color:var(--teal-ink)}
.btn-teal:hover{filter:brightness(1.08)}
.btn-line{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn-line:hover{background:var(--surface-2)}
.btn-sm{padding:7px 13px;font-size:13.5px}
.search-btn{display:inline-flex;align-items:center;gap:8px;background:rgb(255 255 255 / .06);border:1px solid rgb(255 255 255 / .14);color:var(--on-night-2);border-radius:999px;padding:8px 14px;font-size:13.5px;cursor:pointer}
.search-btn kbd{font:500 11px var(--mono);border:1px solid rgb(255 255 255 / .2);border-radius:5px;padding:1px 5px}
.menu-btn{display:none;background:none;border:1px solid rgb(255 255 255 / .2);color:var(--on-night);border-radius:10px;padding:7px 10px;cursor:pointer}
.mobile-nav{background:var(--night);border-top:1px solid rgb(255 255 255 / .08)}
.mobile-nav .wrap{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding-block:10px 14px}
.mobile-nav a{color:var(--on-night);text-decoration:none;padding:10px 8px;border-radius:8px}
@media (max-width:1380px){nav.main{display:none}.menu-btn{display:inline-flex}.search-btn kbd{display:none}}
@media (max-width:520px){.search-btn span{display:none}.hdr-actions .btn-gold{padding:9px 14px}}

/* hero */
.hero{position:relative;background:radial-gradient(1200px 520px at 78% 30%, var(--hero-glow) 0%, transparent 60%), var(--night);color:var(--on-night);overflow:hidden}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px;padding-block:64px 40px}
.helix-box{position:absolute;inset:0 0 0 48%;z-index:1;pointer-events:none}
.helix-box canvas{width:100%;height:100%;display:block}
.eyebrow-n{font:500 12.5px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--glow-a);display:flex;flex-wrap:wrap;gap:6px 14px}
.eyebrow-n span+span::before{content:"·";margin-right:14px;color:var(--on-night-2)}
.hero h1{font:800 clamp(3.1rem,7.4vw,6.1rem)/.92 var(--display);letter-spacing:-.04em;margin:22px 0 20px;text-wrap:balance}
.hero h1 em{font-style:normal;display:block;background:linear-gradient(90deg,#A78BFA,#7DD3FC 50%,#3B82F6);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lede{font-size:clamp(1.02rem,1.5vw,1.15rem);color:var(--on-night-2);max-width:56ch;margin:0 0 28px}
.ask{background:rgb(255 255 255 / .05);border:1px solid rgb(255 255 255 / .14);border-radius:18px;padding:14px;max-width:620px;box-shadow:0 20px 60px rgb(0 0 0 / .25)}
.ask label{display:flex;align-items:center;gap:8px;font:500 12.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--glow-b);margin:2px 4px 10px}
.ask-row{display:flex;gap:8px;background:rgb(0 0 0 / .25);border:1px solid rgb(255 255 255 / .12);border-radius:12px;padding:6px 6px 6px 14px}
.ask-row input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--on-night);font-size:16px}
.ask-row input::placeholder{color:var(--placeholder)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.ask .chips{margin-top:12px}
.chip-n{background:rgb(255 255 255 / .06);border:1px solid rgb(255 255 255 / .13);color:var(--on-night);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}
.chip-n:hover{background:rgb(255 255 255 / .12)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;margin-top:26px}
.countdown{font:500 13px var(--mono);color:var(--on-night-2)}
.countdown b{color:var(--on-night);font-size:15px}
.hero-side{align-self:end;justify-self:end;max-width:320px;background:color-mix(in srgb, var(--night) 72%, transparent);border:1px solid rgb(255 255 255 / .1);border-radius:var(--r);padding:16px 18px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.hero-side h3{margin:0 0 8px;font:600 13px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--glow-a)}
.hero-side ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:14px;color:var(--on-night-2)}
.hero-side li{display:flex;gap:8px}
.hero-side li b{color:var(--on-night);font-weight:500}
.stats{position:relative;z-index:2;border-top:1px solid rgb(255 255 255 / .09)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-block:28px 34px}
.stat .n{font:700 clamp(1.8rem,3.4vw,2.6rem)/1 var(--display);letter-spacing:-.02em}
.stat .l{font-size:13.5px;color:var(--on-night-2);margin-top:6px}
@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;padding-block:44px 32px}
  .helix-box{inset:0;opacity:.28}
  .hero-side{justify-self:start;max-width:none}
  .stats .wrap{grid-template-columns:repeat(2,1fr)}
}

/* sections */
section.sec{padding-block:88px}
@media (max-width:700px){section.sec{padding-block:60px}}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 48px;align-items:end;margin-bottom:40px}
.sec-head.single{grid-template-columns:1fr}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:500 12.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.ai-pill{display:inline-flex;align-items:center;gap:5px;font:600 11px var(--mono);letter-spacing:.06em;background:var(--turmeric-soft);color:var(--ink);border:1px solid color-mix(in srgb, var(--turmeric) 45%, transparent);border-radius:999px;padding:2px 8px}
.ai-pill svg{color:var(--turmeric)}
h2{font:700 clamp(2rem,4.2vw,3.1rem)/1.02 var(--display);letter-spacing:-.025em;margin:12px 0 0;text-wrap:balance}
.sec-head p{margin:0;color:var(--ink-2);max-width:60ch}
@media (max-width:800px){.sec-head{grid-template-columns:1fr}}
.band{background:var(--surface-2)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}

/* planner */
.planner{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:900px){.planner{grid-template-columns:minmax(0,1fr)}}
.pl-form{padding:22px;display:grid;gap:20px}
.field-l{display:block;font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
select,.txt{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:15px}
textarea.txt{resize:vertical;min-height:112px;line-height:1.5}
.tog{background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13.5px;cursor:pointer}
.tog[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:var(--teal-ink)}
.checks{display:flex;flex-wrap:wrap;gap:8px 16px}
.checks label{display:flex;align-items:center;gap:7px;font-size:14.5px;cursor:pointer}
.checks input{accent-color:var(--teal);width:16px;height:16px}
.pl-out{padding:22px;min-height:420px}
.thinking{display:grid;gap:10px;padding:8px 2px;font:14px var(--mono);color:var(--ink-2)}
.thinking div{display:flex;gap:10px;align-items:center}
.thinking .dot{width:8px;height:8px;border-radius:50%;background:var(--line)}
.thinking .done .dot{background:var(--teal)}
.thinking .now .dot{background:var(--turmeric);animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.3}}
.pl-summary{font-size:15px;color:var(--ink-2);margin:0 0 16px}
.pl-summary b{color:var(--ink);font-weight:600}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:6px;overflow-x:auto}
.tab{background:none;border:0;border-bottom:2px solid transparent;padding:10px 12px 11px;font-size:14.5px;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--teal);font-weight:600}
.tab .c{font:500 11.5px var(--mono);background:var(--surface-2);border-radius:999px;padding:1px 7px;margin-left:6px}
.slots{list-style:none;margin:0;padding:0}
.slot{display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px dashed var(--line)}
.slot:last-child{border-bottom:0}
.slot .tm{font:500 13px/1.5 var(--mono);color:var(--ink-2);padding-top:2px}
.slot .ti{font-weight:600;line-height:1.35}
.slot .me{font-size:13.5px;color:var(--ink-2);margin-top:3px}
.fmt{display:inline-block;font:500 11px var(--mono);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line);border-radius:5px;padding:0 6px;margin-right:6px;color:var(--ink-2)}
.fmt.visit{border-color:var(--turmeric);color:var(--ink);background:var(--turmeric-soft)}
.why{display:flex;gap:6px;align-items:flex-start;font-size:13px;color:var(--teal);margin-top:6px}
.why svg{margin-top:3px}
.clash{margin-top:12px;background:var(--turmeric-soft);border-radius:10px;padding:10px 14px;font-size:13.5px}
.pl-foot{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.pav{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13.5px;color:var(--ink-2)}
.pav span.p{background:var(--teal-soft);color:var(--ink);border-radius:999px;padding:3px 10px}
.row-gap{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:520px){.slot{grid-template-columns:1fr;gap:4px}}

/* matchmaking */
.match{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px;align-items:start}
@media (max-width:900px){.match{grid-template-columns:minmax(0,1fr)}}
.mt-form{padding:22px;display:grid;gap:18px}
.mt-note{font-size:13px;color:var(--ink-2);display:flex;gap:8px}
.mt-res{display:grid;gap:14px}
.understood{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:var(--ink-2);margin-bottom:4px}
.understood .u{font:500 12px var(--mono);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:2px 8px;color:var(--ink)}
.org{padding:18px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 18px}
.org h4{margin:0;font:700 18px/1.2 var(--display);letter-spacing:-.01em}
.org .ty{font-size:13.5px;color:var(--ink-2);margin-top:2px}
.sample{font:500 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px dashed var(--ink-2);color:var(--ink-2);border-radius:4px;padding:0 5px;margin-left:8px;vertical-align:3px}
.score{text-align:right}
.score .pc{font:700 26px/1 var(--display);color:var(--teal)}
.score .bar{width:92px;height:5px;background:var(--surface-2);border-radius:9px;margin-top:8px;overflow:hidden}
.score .bar i{display:block;height:100%;background:var(--teal);border-radius:9px}
.org ul{grid-column:1/-1;margin:8px 0 0;padding:0;list-style:none;display:grid;gap:5px;font-size:14px}
.org li{display:flex;gap:8px}
.org li svg{color:var(--teal);margin-top:4px}
.org .slotline{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding-top:12px;border-top:1px solid var(--line);font:500 13px var(--mono);color:var(--ink-2)}
.empty{padding:28px;text-align:center;color:var(--ink-2)}

/* search */
.search-box{display:flex;gap:10px;align-items:center;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:8px 8px 8px 18px;box-shadow:var(--shadow)}
.search-box:focus-within{border-color:var(--teal)}
.search-box input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:18px;padding:8px 0}
.search-box > svg{color:var(--ink-2);font-size:20px}
.sr-examples{margin-top:14px}
.sr-examples .tog{background:var(--surface)}
.sr-out{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px;align-items:start}
.grp{padding:18px 20px}
.grp h4{margin:0 0 6px;font:600 12.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);display:flex;justify-content:space-between}
.hit{display:block;padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none}
.hit:last-child{border-bottom:0}
.hit .a{font-weight:600;line-height:1.35}
.hit .b{font-size:13px;color:var(--ink-2);margin-top:2px}
.hit mark{background:var(--turmeric-soft);color:inherit;border-radius:3px;padding:0 2px}

/* content */
.streams{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 28px}
.stream{border-top:1px solid var(--line);padding:18px 0 26px}
.stream .code{font:500 11.5px var(--mono);letter-spacing:.1em;color:var(--teal)}
.stream h3{font:700 19px/1.2 var(--display);margin:8px 0 6px;letter-spacing:-.01em}
.stream p{margin:0;font-size:14.5px;color:var(--ink-2)}
@media (max-width:900px){.streams{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.streams{grid-template-columns:1fr}}
.pavilions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:48px}
.pv{padding:16px 18px}
.pv b{display:block;font-weight:600}
.pv span{font-size:14px;color:var(--ink-2)}
@media (max-width:900px){.pavilions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.pavilions{grid-template-columns:1fr}}
h3.sub{font:700 24px/1.2 var(--display);letter-spacing:-.015em;margin:0}

.hyd{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.hyd div{background:var(--surface);padding:24px}
.hyd .n{font:700 clamp(2.1rem,4vw,3rem)/1 var(--display);letter-spacing:-.03em;color:var(--teal)}
.hyd .l{font-size:14.5px;color:var(--ink-2);margin-top:8px}
@media (max-width:760px){.hyd{grid-template-columns:repeat(2,minmax(0,1fr))}}
.last{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;margin-top:56px;align-items:start}
.last .figs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.last .figs b{display:block;font:700 34px/1 var(--display)}
.last .figs span{font-size:13.5px;color:var(--ink-2)}
.last p{margin:0 0 12px;color:var(--ink-2)}
@media (max-width:800px){.last{grid-template-columns:1fr}}

.visit{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.vc{padding:20px;display:flex;flex-direction:column;gap:8px}
.vc .k{font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.vc h3{margin:0;font:700 19px/1.25 var(--display)}
.vc p{margin:0;font-size:14.5px;color:var(--ink-2);flex:1}
.linkbtn{background:none;border:0;padding:0;color:var(--teal);font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;text-align:left}
.linkbtn:hover{text-decoration:underline}
@media (max-width:1000px){.visit{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.visit{grid-template-columns:1fr}}

.spk{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px}
.sp{display:flex;gap:14px;align-items:center;padding:14px 16px}
.av{width:46px;height:46px;border-radius:50%;background:var(--teal-soft);color:var(--teal);display:grid;place-items:center;font:700 16px var(--display);flex:none}
.sp b{display:block;font-weight:600;line-height:1.3}
.sp span{font-size:13px;color:var(--ink-2);line-height:1.35;display:block}

.awards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.aw{display:grid;grid-template-columns:auto 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.aw svg{font-size:22px;color:var(--turmeric);margin-top:2px}
.aw b{display:block;font:700 17px/1.3 var(--display)}
.aw span{font-size:14.5px;color:var(--ink-2)}
@media (max-width:760px){.awards{grid-template-columns:1fr}}

.tracks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tr{padding:22px;display:flex;flex-direction:column;gap:10px}
.tr h3{margin:0;font:700 20px/1.2 var(--display)}
.tr p{margin:0;color:var(--ink-2);font-size:14.5px;flex:1}
.tr .meta{font:500 12px var(--mono);color:var(--teal)}
@media (max-width:1000px){.tracks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.tracks{grid-template-columns:1fr}}
.contact{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:26px;padding:18px 20px}
.contact code{font:500 15px var(--mono);user-select:all;background:var(--surface-2);padding:4px 10px;border-radius:8px;word-break:break-all}

.reg{background:var(--night);color:var(--on-night)}
.reg h2{color:var(--on-night)}
.reg .sec-head p{color:var(--on-night-2)}
.reg .eyebrow{color:var(--glow-a)}
.aud{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.au{background:rgb(255 255 255 / .04);border:1px solid rgb(255 255 255 / .1);border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:10px}
.au h3{margin:0;font:700 19px/1.2 var(--display)}
.au p{margin:0;font-size:14px;color:var(--on-night-2);flex:1}
@media (max-width:1000px){.aud{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.aud{grid-template-columns:1fr}}

footer{background:var(--night);color:var(--on-night-2);border-top:1px solid rgb(255 255 255 / .08);font-size:14px}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px;padding-block:44px}
footer b{color:var(--on-night);font-weight:600;display:block;margin-bottom:8px}
footer p{margin:0 0 8px}
footer a{color:var(--on-night-2)}
@media (max-width:800px){footer .wrap{grid-template-columns:1fr}}

/* concierge */
.launcher{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;align-items:center;gap:10px;background:var(--night);color:var(--on-night);border:1px solid rgb(255 255 255 / .16);border-radius:999px;padding:12px 18px 12px 14px;font-weight:600;cursor:pointer;box-shadow:0 12px 36px rgb(0 0 0 / .3)}
.launcher .orb{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%, var(--orb-a), var(--orb-b));color:var(--cta-ink)}
/* docked side panel: pushes the page left on wide screens, overlays on narrow ones */
:root{--dock-w:400px}
body{transition:margin-right .28s ease}
@media (min-width:900px){html.chat-open body{margin-right:var(--dock-w)}}
.chat{position:fixed;top:0;right:0;bottom:0;z-index:70;width:var(--dock-w);background:var(--surface);border-left:1px solid var(--line);box-shadow:-18px 0 50px rgb(6 28 29 / .12);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);transform:translateX(100%);visibility:hidden;transition:transform .28s ease, visibility 0s linear .28s}
html.chat-open .chat{transform:none;visibility:visible;transition:transform .28s ease, visibility 0s}
@media (max-width:899px){.chat{width:min(var(--dock-w),100vw)}}
@media (max-width:520px){.chat{width:100vw;border-left:0}}
.chat-h{display:flex;align-items:center;gap:8px;padding:14px 12px 12px 18px;border-bottom:1px solid var(--line)}
.chat-h b{font:700 16px/1.2 var(--display)}
.chat-h small{color:var(--ink-2);font-size:13px;margin-left:4px}
.chat-h select{width:auto;padding:5px 8px;font-size:13px;margin-left:auto;border-radius:8px;background:var(--paper)}
.xbtn{background:none;border:0;color:var(--ink);font-size:20px;cursor:pointer;padding:6px;border-radius:8px;display:grid;place-items:center}
.xbtn:hover{background:var(--surface-2)}
.chat-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:16px}
.media{position:relative;flex:none;height:168px;border-radius:14px;overflow:hidden;background:radial-gradient(420px 200px at 70% 30%, var(--hero-glow) 0%, transparent 70%), var(--night);transition:height .3s ease}
.media canvas{position:absolute;inset:0;width:100%;height:100%}
.media .who{position:absolute;left:16px;top:14px;color:var(--on-night)}
.media .who b{display:block;font:700 18px/1.2 var(--display)}
.media .who span{font:500 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--glow-a)}
.speak{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:7px;background:var(--cta);color:var(--cta-ink);border:0;border-radius:999px;padding:7px 14px;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap}
.chat.compact .media{height:56px}
.chat.compact .who{top:50%;transform:translateY(-50%)}
.chat.compact .who b{display:none}
.chat.compact .speak{left:auto;right:10px;bottom:50%;transform:translateY(50%)}
/* the docked panel narrows the page, so collapse the header nav earlier */
@media (max-width:1780px){html.chat-open nav.main{display:none}html.chat-open .menu-btn{display:inline-flex}}
.msgs{display:flex;flex-direction:column;gap:14px}
.msg{font-size:14.5px;line-height:1.55}
.msg p{margin:0 0 8px}.msg p:last-child{margin:0}
.msg.user{align-self:flex-end;max-width:85%;background:var(--teal);color:var(--teal-ink);border-radius:14px 14px 4px 14px;padding:9px 13px}
.msg.bot{align-self:stretch;animation:rise .25s ease}
@keyframes rise{from{transform:translateY(6px);opacity:.4}to{transform:none;opacity:1}}
.msg.bot ul{margin:6px 0;padding-left:18px}
.msg.bot li{margin:3px 0}
.msg .note{font-size:12.5px;color:var(--ink-2);font-style:italic}
.srcs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
.src{display:inline-flex;align-items:center;gap:5px;font:500 11.5px var(--mono);color:var(--teal);text-decoration:none;border:1px solid var(--line);border-radius:6px;padding:2px 7px;background:var(--paper)}
.src:hover{border-color:var(--teal)}
.mini{display:block;margin:6px 0;padding:8px 10px;border-radius:10px;background:var(--paper);border:1px solid var(--line);font-size:13.5px}
.mini .tm{font:500 11.5px var(--mono);color:var(--ink-2)}
.inline-act{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}
.typing{display:flex;gap:4px;padding:14px 16px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--ink-2);animation:bl 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes bl{0%,100%{opacity:.25}50%{opacity:1}}
.chat-foot{flex:none;padding:0 18px 12px;display:grid;gap:10px}
.sugg-h{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;font-weight:600;color:var(--ink)}
.sugg-x{background:none;border:0;color:var(--ink-2);cursor:pointer;font-size:14px;padding:4px;border-radius:6px;display:grid}
.sugg-list{display:grid;justify-items:start;gap:2px}
.sugg-list button{background:none;border:0;padding:3px 0;font-size:14px;color:var(--ink);cursor:pointer;text-align:left}
.sugg-list button:hover{color:var(--teal);text-decoration:underline}
.connect{justify-self:start;background:var(--teal);color:var(--teal-ink);border:0;border-radius:8px;padding:7px 12px;font-size:13.5px;font-weight:600;cursor:pointer}
.chat-f{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:10px;padding:4px 4px 4px 14px;background:var(--surface)}
.chat-f:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb, var(--teal) 18%, transparent)}
.chat-f input{flex:1;min-width:0;border:0;background:none;padding:9px 0;outline:0;font-size:15px}
.ibtn{background:none;border:0;color:var(--ink-2);width:36px;height:36px;border-radius:8px;display:grid;place-items:center;cursor:pointer;font-size:18px}
.ibtn:hover{background:var(--surface-2);color:var(--ink)}
.ibtn.send{background:var(--surface-2);color:var(--teal)}
.disclaim{font-size:11.5px;line-height:1.45;color:var(--ink-2);text-align:center;margin:0}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:90;background:var(--ink);color:var(--paper);padding:11px 18px;border-radius:12px;font-size:14px;box-shadow:var(--shadow);max-width:calc(100vw - 32px)}

/* =========================================================
   Multi-page additions: navigation menus, page heroes,
   sub-navigation, Global Leaders, and section components
   ========================================================= */
html{scroll-padding-top:168px}
body.home{--subnav-h:0px}
html:has(body.home){scroll-padding-top:96px}

/* ---- global navigation with menus ---- */
.gnav{display:flex;gap:2px;flex:1;min-width:0;align-self:stretch}
.gnav-item{position:relative;display:flex;align-items:center}
.gnav-item > a{display:inline-flex;align-items:center;gap:5px;text-decoration:none;font-size:14.5px;color:var(--on-night-2);padding:8px 11px;border-radius:8px;white-space:nowrap}
.gnav-item > a:hover,.gnav-item:focus-within > a,.gnav-item:hover > a{color:var(--on-night);background:rgb(255 255 255 / .06)}
.gnav-item > a[aria-current="page"]{color:var(--on-night);box-shadow:inset 0 -2px 0 var(--glow-b);border-radius:8px 8px 0 0}
.gnav-item > a .car{font-size:9px;opacity:.7}
.drop{position:absolute;top:calc(100% - 6px);left:0;min-width:260px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px rgb(0 0 0 / .22);padding:14px;display:none;z-index:45}
.gnav-item:hover .drop,.gnav-item:focus-within .drop{display:grid;gap:2px}
.drop a{display:block;text-decoration:none;padding:7px 10px;border-radius:8px;font-size:14.5px}
.drop a:hover,.drop a:focus-visible{background:var(--surface-2)}
.drop a small{display:block;color:var(--ink-2);font-size:12.5px}
.drop .dh{font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);padding:6px 10px 4px}
.drop.wide{min-width:560px;grid-template-columns:1fr 1fr;column-gap:10px}
.gnav-item:hover .drop.wide,.gnav-item:focus-within .drop.wide{display:grid}
.drop .feat{grid-column:1/-1;display:flex;gap:14px;align-items:center;background:var(--night);color:var(--on-night);border-radius:12px;padding:12px 14px;margin-top:6px}
.drop .feat:hover{background:var(--night);filter:brightness(1.15)}
.drop .feat b{display:block;font:700 15.5px/1.2 var(--display)}
.drop .feat small{color:var(--on-night-2)}
.faces{display:flex;flex:none}
.faces img{width:36px;height:36px;border-radius:50%;border:2px solid var(--night);margin-left:-10px;object-fit:cover}
.faces img:first-child{margin-left:0}
.gnav-item:last-child .drop{left:auto;right:0}
@media (max-width:1240px){.gnav{display:none}.menu-btn{display:inline-flex}.search-btn kbd{display:none}}
@media (max-width:1640px){html.chat-open .gnav{display:none}}

/* mobile menu with accordions */
.mnav{background:var(--night);border-top:1px solid rgb(255 255 255 / .08);max-height:calc(100dvh - 76px);overflow-y:auto}
.mnav .wrap{padding-block:8px 18px;display:grid;gap:2px}
.mnav a{color:var(--on-night);text-decoration:none}
.mnav > .wrap > a,.mnav summary{display:flex;justify-content:space-between;align-items:center;padding:12px 6px;border-bottom:1px solid rgb(255 255 255 / .07);font-weight:600;cursor:pointer;list-style:none}
.mnav summary::-webkit-details-marker{display:none}
.mnav summary::after{content:"+";font:500 18px var(--mono);color:var(--on-night-2)}
.mnav details[open] summary::after{content:"–"}
.mnav details div{display:grid;padding:4px 6px 10px 14px}
.mnav details div a{padding:8px 0;color:var(--on-night-2);font-size:15px}
.mnav .quick{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px}

/* ---- page hero (inner pages) ---- */
.phero{position:relative;overflow:hidden;background:radial-gradient(900px 420px at 85% 0%, var(--hero-glow), transparent 60%), var(--night);color:var(--on-night)}
.phero .wrap{padding-block:52px 44px;position:relative;z-index:1}
.phero::after{content:"";position:absolute;right:-220px;top:-260px;width:560px;height:560px;border-radius:50%;border:26px solid #A58BEE;opacity:.1;pointer-events:none}
.crumbs{font:500 12.5px var(--mono);letter-spacing:.08em;color:var(--on-night-2);display:flex;gap:8px;flex-wrap:wrap}
.crumbs a{color:var(--on-night-2);text-decoration:none}
.crumbs a:hover{color:var(--on-night)}
.phero h1{font:800 clamp(2.4rem,6vw,4.4rem)/.95 var(--display);letter-spacing:-.035em;margin:14px 0 14px;text-wrap:balance}
.phero p{margin:0;color:var(--on-night-2);max-width:62ch;font-size:clamp(1rem,1.4vw,1.1rem)}

/* ---- sticky sub-navigation ---- */
.subnav{position:sticky;top:calc(76px + env(safe-area-inset-top,0px));z-index:30;background:color-mix(in srgb, var(--paper) 92%, transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.subnav .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-block:8px}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav a{flex:none;text-decoration:none;font-size:14px;color:var(--ink-2);padding:7px 12px;border-radius:999px;white-space:nowrap}
.subnav a:hover{color:var(--ink);background:var(--surface-2)}
.subnav a.on{color:var(--teal-ink);background:var(--teal)}
.subnav a .ai{font:600 10px var(--mono);margin-left:4px;opacity:.8}

/* ---- generic section rhythm on inner pages ---- */
.blk{padding-block:72px;border-bottom:1px solid var(--line)}
.blk:last-of-type{border-bottom:0}
.blk.band{background:var(--surface-2)}
.blk.dark{background:var(--night);color:var(--on-night);border-bottom:0}
.blk.dark h2{color:var(--on-night)}
.blk.dark .eyebrow{color:var(--glow-a)}
.blk.dark .sec-head p{color:var(--on-night-2)}
@media (max-width:700px){.blk{padding-block:52px}}
.lead-p{font-size:1.08rem;max-width:66ch;margin:0 0 14px}
.muted{color:var(--ink-2)}
.tbd{display:inline-flex;align-items:center;gap:6px;font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px dashed var(--ink-2);color:var(--ink-2);border-radius:999px;padding:2px 9px}
.blk.dark .tbd{border-color:var(--on-night-2);color:var(--on-night-2)}

/* ---- home hero adjustments ---- */
.hero h1 em{display:inline}
.hero .theme{display:flex;align-items:center;gap:16px;font:600 clamp(1.3rem,2.6vw,1.9rem)/1.2 var(--display);letter-spacing:-.01em;margin:0 0 8px}
.hero .theme::before{content:"";width:40px;height:3px;border-radius:2px;background:var(--glow-b);flex:none}
.hero .tagline{font:500 12.5px var(--mono);letter-spacing:.16em;color:var(--on-night-2);margin:0 0 22px}
.hero .meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 26px;color:var(--on-night-2);font-size:15.5px}
.hero .meta b{color:var(--on-night);font-weight:600}
.hero h1{margin:18px 0 10px}

/* ---- Global Leaders: option A portrait wall ---- */
.leaders{position:relative;overflow:hidden;background:var(--night);color:var(--on-night)}
.leaders::before{content:"";position:absolute;right:-300px;top:-360px;width:640px;height:640px;border-radius:50%;border:30px solid #A58BEE;opacity:.1;pointer-events:none}
.leaders .wrap{position:relative;padding-block:84px 72px}
.ld-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:14px 48px;align-items:end;margin-bottom:34px}
.ld-head .eyebrow{color:var(--glow-a)}
.ld-head h2{font:800 clamp(2.3rem,5vw,3.9rem)/.97 var(--display);letter-spacing:-.03em;color:var(--on-night)}
.ld-head h2 em{font-style:normal;color:var(--glow-b)}
.ld-head p{margin:0;color:var(--on-night-2);max-width:48ch}
@media (max-width:860px){.ld-head{grid-template-columns:1fr}}
.ld-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:rgb(255 255 255 / .06);border:1px solid rgb(255 255 255 / .12);margin-bottom:30px}
.ld-tabs button{border:0;background:none;color:var(--on-night-2);padding:7px 15px;border-radius:999px;font-size:14px;cursor:pointer}
.ld-tabs button[aria-selected="true"]{background:var(--cta);color:var(--cta-ink);font-weight:600}
.ld-soon{border:1px dashed rgb(255 255 255 / .25);border-radius:18px;padding:40px 28px;text-align:center;color:var(--on-night-2)}
.ld-soon b{display:block;color:var(--on-night);font:700 22px var(--display);margin-bottom:6px}
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:44px}
.duo .p{display:flex;align-items:center;gap:26px;background:rgb(255 255 255 / .04);border:1px solid rgb(255 255 255 / .1);border-radius:22px;padding:24px 26px}
.duo .ph{width:180px;flex:none;margin:0}
.duo .nm{font:800 clamp(1.5rem,2.8vw,2.2rem)/1.05 var(--display);letter-spacing:-.02em}
.duo .rl{font-size:16px;margin-top:8px}
.wall{display:flex;flex-wrap:wrap;justify-content:center;gap:38px 22px}
.wall .p{width:calc((100% - 110px) / 6);text-align:center}
.ph{position:relative;width:min(100%,150px);aspect-ratio:1;margin:0 auto 14px;border-radius:50%;padding:4px;background:conic-gradient(from 210deg, #7DD3FC, #A78BFA, #7DD3FC)}
.ph img{width:100%;height:100%;border-radius:50%;display:block;object-fit:cover;border:3px solid var(--night);filter:grayscale(.2);transition:filter .25s, transform .25s}
.p:hover .ph img{filter:none;transform:scale(1.03)}
.nm{font:700 17px/1.2 var(--display);letter-spacing:-.01em}
.rl{font-size:13.5px;color:var(--on-night-2);margin-top:4px;line-height:1.35}
.rl b{display:block;color:var(--on-night);font-weight:600}
.badge{position:absolute;right:0;bottom:6%;background:var(--glow-b);color:var(--night);font:700 10px var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 8px;box-shadow:0 4px 12px rgb(0 0 0 / .3);white-space:nowrap}
.ld-foot{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;justify-content:space-between;margin-top:46px;padding-top:24px;border-top:1px solid rgb(255 255 255 / .1)}
.ld-foot span{color:var(--on-night-2);font-size:14.5px}
@media (max-width:1000px){.wall .p{width:calc((100% - 66px) / 4)}.duo{grid-template-columns:1fr}}
@media (max-width:560px){.wall{gap:28px 14px}.wall .p{width:calc((100% - 14px) / 2)}.duo .p{flex-direction:column;text-align:center;padding:22px 18px}.duo .ph{width:150px}}

/* ---- Global Leaders: option B spotlight (About page) ---- */
.spot{display:grid;grid-template-columns:auto minmax(0,1fr);gap:40px;align-items:center;background:var(--night);color:var(--on-night);border-radius:22px;padding:40px}
.spot .big{width:250px;margin:0}
.spot .k{font:500 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--glow-a)}
.spot h3{font:800 clamp(2rem,4vw,3.1rem)/1 var(--display);letter-spacing:-.03em;margin:12px 0 8px}
.spot .role{font-size:17px;color:var(--on-night-2)}
.spot .role b{color:var(--on-night);font-weight:600}
.spot .prog{height:3px;background:rgb(255 255 255 / .12);border-radius:3px;margin-top:20px;max-width:380px;overflow:hidden}
.spot .prog i{display:block;height:100%;width:0;background:var(--glow-b)}
.spot .prog i.run{animation:fill 6s linear forwards}
@keyframes fill{to{width:100%}}
.spot .thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.spot .thumbs button{padding:0;border:2px solid transparent;border-radius:50%;background:none;cursor:pointer;opacity:.55}
.spot .thumbs button[aria-pressed="true"]{opacity:1;border-color:var(--glow-b)}
.spot .thumbs img{width:46px;height:46px;border-radius:50%;display:block;object-fit:cover}
.spot .ctl{display:flex;gap:8px;margin-top:18px}
@media (max-width:760px){.spot{grid-template-columns:1fr;justify-items:start;padding:28px 22px}.spot .big{width:180px}}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px;margin-top:22px}
.lcard{display:flex;gap:14px;align-items:center;padding:12px 14px}
.lcard img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}
.lcard b{display:block;font-weight:600;line-height:1.3}
.lcard span{font-size:13px;color:var(--ink-2);line-height:1.35;display:block}

/* ---- theme / ecosystem ---- */
.eco{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.eco span{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:14.5px}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}
.pillars div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.pillars b{display:block;font:800 26px/1.1 var(--display);letter-spacing:-.02em;color:var(--teal)}
.pillars span{display:block;color:var(--ink-2);margin-top:4px}
@media (max-width:760px){.pillars{grid-template-columns:1fr}}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr;gap:24px}}
.bul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.bul li{display:flex;gap:12px;align-items:flex-start}
.bul li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--teal);margin-top:9px;flex:none}
.blk.dark .bul li::before{background:var(--glow-b)}

/* ---- figure rows ---- */
.figrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.figrow div{background:var(--surface);padding:22px}
.figrow b{display:block;font:700 clamp(1.9rem,3.6vw,2.7rem)/1 var(--display);letter-spacing:-.03em;color:var(--teal)}
.figrow span{display:block;font-size:14px;color:var(--ink-2);margin-top:8px}
.blk.dark .figrow{background:rgb(255 255 255 / .1);border-color:rgb(255 255 255 / .1)}
.blk.dark .figrow div{background:var(--night)}
.blk.dark .figrow b{color:var(--on-night)}
.blk.dark .figrow span{color:var(--on-night-2)}

/* ---- cards grid ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px}
.cards.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1000px){.cards.c4{grid-template-columns:repeat(2,minmax(0,1fr))}.cards.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cards.c3,.cards.c4{grid-template-columns:1fr}}
.ic{padding:22px;display:flex;flex-direction:column;gap:8px}
.ic .k{font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.ic h3{margin:0;font:700 20px/1.2 var(--display);letter-spacing:-.01em}
.ic p{margin:0;color:var(--ink-2);font-size:14.5px;flex:1}
.ic .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ic .ex{font-size:13.5px;border-top:1px dashed var(--line);padding-top:10px;margin-top:4px;color:var(--ink-2)}
.ic .ex b{color:var(--ink);font-weight:600}
.blk.dark .card{background:rgb(255 255 255 / .04);border-color:rgb(255 255 255 / .1);color:var(--on-night)}
.blk.dark .ic p,.blk.dark .ic .ex{color:var(--on-night-2)}
.blk.dark .ic .k{color:var(--glow-a)}

/* anchored sub-section headings */
.subsec{padding-top:44px;margin-top:44px;border-top:1px solid var(--line)}
.subsec:first-child{padding-top:0;margin-top:0;border-top:0}
.subsec h3.sub{margin-bottom:12px}

/* ---- agenda preview (home) ---- */
.days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.day{padding:20px}
.day h3{margin:0 0 14px;font:600 12.5px var(--mono);letter-spacing:.1em;color:var(--ink-2)}
.day ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.day li{display:flex;gap:12px;align-items:center;font-weight:600}
.day li i{width:34px;height:34px;border-radius:10px;background:var(--teal-soft);color:var(--teal);display:grid;place-items:center;flex:none;font-style:normal}
.day li i svg{font-size:17px}
@media (max-width:860px){.days{grid-template-columns:1fr}}

/* ---- pavilion chips (home) ---- */
.pvg{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.pvg a{display:block;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;font-weight:600;font-size:14px;min-height:74px}
.pvg a:hover{border-color:var(--teal)}
.pvg small{display:block;font:500 11px var(--mono);color:var(--teal);margin-bottom:6px}
@media (max-width:1000px){.pvg{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.pvg{grid-template-columns:repeat(2,minmax(0,1fr))}}
.row2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:14px;margin-top:14px}
@media (max-width:860px){.row2{grid-template-columns:1fr}}
.statbox{background:var(--night);color:var(--on-night);border-radius:var(--r);padding:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.statbox b{display:block;font:700 30px/1 var(--display)}
.statbox span{font-size:13px;color:var(--on-night-2)}

/* ---- sponsor marquee + logo walls ---- */
.marq{overflow:hidden;background:#fff;border-block:1px solid var(--line);padding:12px 0}
.marq + .marq{border-top:0}
.marq .track{display:flex;width:max-content;animation:slide 90s linear infinite}
.marq.rev .track{animation-direction:reverse;animation-duration:100s}
.marq:hover .track{animation-play-state:paused}
.marq img{height:56px;width:auto;max-width:none;display:block}
@keyframes slide{to{transform:translateX(-50%)}}
.walls{display:grid;gap:18px}
.walls figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px}
.walls figcaption{font:600 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#4A5E60;margin-bottom:8px}

/* ---- news ---- */
.news{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.nw{padding:18px;display:flex;flex-direction:column;gap:10px}
.nw .y{font:600 12px var(--mono);color:var(--teal)}
.nw b{font:600 16px/1.35 var(--sans)}
.nw .src{font-size:12.5px;color:var(--ink-2);margin-top:auto}
@media (max-width:1000px){.news{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.news{grid-template-columns:1fr}}

/* ---- action band ---- */
.actband{display:grid;grid-template-columns:1fr 1fr}
.actband > div{padding:56px max(24px, calc((100vw - 1200px) / 2 + 24px))}
.actband > div:first-child{background:var(--night);color:var(--on-night);padding-right:48px}
.actband > div:last-child{background:var(--teal);color:var(--teal-ink);padding-left:48px}
.actband h2{color:inherit;font-size:clamp(1.8rem,3.4vw,2.6rem)}
.actband p{margin:10px 0 20px;opacity:.85;max-width:44ch}
.btn-inv{background:transparent;color:inherit;border:1.5px solid currentColor}
@media (max-width:760px){.actband{grid-template-columns:1fr}.actband > div{padding:44px 16px!important}}

/* ---- timeline (themes over the years) ---- */
.tl{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px}
.tl li{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.tl li b{display:block;font:700 18px var(--display);color:var(--teal)}
.tl li span{font-size:14px}
.tl li.now{background:var(--night);color:var(--on-night);border-color:var(--night)}
.tl li.now b{color:var(--glow-b)}
figure.img{margin:22px 0 0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px}
figure.img img{display:block;width:100%;height:auto;border-radius:8px}
figure.img figcaption{font:500 12px var(--mono);color:#4A5E60;padding:8px 4px 0}

/* ---- forms ---- */
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;padding:24px}
.form .full{grid-column:1/-1}
.form label{display:block;font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.form input,.form select,.form textarea{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:15px}
.form textarea{min-height:110px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--teal);outline-offset:0;border-color:var(--teal)}
.form .actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.form .fine{font-size:13px;color:var(--ink-2)}
.form .done{grid-column:1/-1;background:var(--teal-soft);border-radius:10px;padding:12px 14px;font-size:14.5px}
@media (max-width:640px){.form{grid-template-columns:1fr}}

/* ---- FAQ ---- */
.faq{display:grid;gap:10px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 18px}
.faq summary{cursor:pointer;padding:16px 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:500 18px var(--mono);color:var(--ink-2)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0 0 12px;color:var(--ink-2)}
.faq details .linkbtn{margin-bottom:16px}

/* ---- footer sitemap ---- */
footer .fmap{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:28px;padding-block:48px 28px}
footer .fmap a{display:block;text-decoration:none;padding:3px 0;color:var(--on-night-2)}
footer .fmap a:hover{color:var(--on-night)}
footer .fbase{border-top:1px solid rgb(255 255 255 / .08);padding-block:18px 26px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:13px}
@media (max-width:900px){footer .fmap{grid-template-columns:1fr 1fr}footer .fmap > div:first-child{grid-column:1/-1}}

.blk.dark .lcard span{color:var(--on-night-2)}
.blk.dark .lcard b{color:var(--on-night)}
.blk.dark .spot{padding:32px 0 24px}

/* =========================================================
   Menus v2: grouped mega menus with Lucide icons coloured by group
   (option A: 1st group sky blue, 2nd violet, 3rd amber; no tiles)
   ========================================================= */
:root{--g1:#0284C7;--g2:#7C3AED;--g3:#C77700}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--g1:#38BDF8;--g2:#A78BFA;--g3:#FBBF24}}
:root[data-theme="dark"]{--g1:#38BDF8;--g2:#A78BFA;--g3:#FBBF24}
svg.li{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

header.top .wrap{position:relative}
.gnav-item{position:static}
.gnav-item > a svg.car{width:14px;height:14px;opacity:.7;transition:transform .2s}
.gnav-item:hover > a svg.car,.gnav-item:focus-within > a svg.car{transform:rotate(180deg)}
.mega{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:min(calc(100% - 32px),1120px);padding-top:8px;display:none;z-index:45}
.mega.mega-2{width:min(calc(100% - 32px),900px)}
.gnav-item:hover .mega,.gnav-item:focus-within .mega{display:block}
.gnav-item.shut .mega{display:none!important}
.m-panel{display:grid;grid-template-columns:minmax(0,1fr) 300px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 70px rgb(0 0 0 / .28);overflow:hidden}
.m-cols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px 22px;padding:22px 24px}
.m-gh{display:flex;align-items:center;gap:7px;margin:0 0 8px;padding-left:10px;font:600 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.m-gh i{width:8px;height:8px;border-radius:50%;background:var(--gc)}
.m-grp.g1{--gc:var(--g1)}.m-grp.g2{--gc:var(--g2)}.m-grp.g3{--gc:var(--g3)}
.m-item{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;padding:9px 10px;border-radius:12px;text-decoration:none;color:inherit}
.m-item:hover,.m-item:focus-visible{background:var(--surface-2)}
.m-ico{color:var(--gc);display:grid;place-items:center;height:22px;transition:transform .15s}
.m-ico svg.li{width:22px;height:22px}
.m-item:hover .m-ico{transform:scale(1.12)}
.m-item b{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-weight:600;font-size:14.5px;line-height:1.3}
.m-item small{display:block;color:var(--ink-2);font-size:12.8px;line-height:1.35;margin-top:2px}
.m-ai{font:600 10px var(--mono);letter-spacing:.06em;background:var(--turmeric-soft);border:1px solid color-mix(in srgb, var(--turmeric) 45%, transparent);border-radius:999px;padding:0 6px;color:var(--ink)}
.m-foot{grid-column:1;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between;padding:12px 24px;border-top:1px solid var(--line);background:var(--paper);font-size:13.5px;color:var(--ink-2)}
.m-foot a{color:var(--teal);font-weight:600;text-decoration:none;display:inline-flex;gap:6px;align-items:center}
.m-foot a svg.li{width:15px;height:15px}
.m-feat{grid-column:2;grid-row:1 / span 2;position:relative;overflow:hidden;background:radial-gradient(420px 260px at 90% 0%, var(--hero-glow), transparent 70%), var(--night);color:var(--on-night);padding:22px;display:flex;flex-direction:column;gap:10px}
.m-feat::after{content:"";position:absolute;right:-90px;bottom:-110px;width:240px;height:240px;border-radius:50%;border:16px solid #A58BEE;opacity:.14;pointer-events:none}
.m-feat .k{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--glow-a)}
.m-feat .h{font:800 21px/1.12 var(--display);letter-spacing:-.015em}
.m-feat .p{font-size:13.5px;color:var(--on-night-2)}
.m-faces{display:flex;margin:4px 0}
.m-faces img{width:46px;height:46px;border-radius:50%;border:2px solid var(--night);margin-left:-12px;object-fit:cover}
.m-faces img:first-child{margin-left:0}
.m-big{font:800 44px/1 var(--display);letter-spacing:-.03em}
.m-chips{display:flex;flex-wrap:wrap;gap:6px}
.m-chips span{font-size:12px;border:1px solid rgb(255 255 255 / .18);border-radius:999px;padding:3px 9px}
.m-dates{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;text-align:center}
.m-dates span{background:rgb(255 255 255 / .06);border:1px solid rgb(255 255 255 / .1);border-radius:10px;padding:8px 4px}
.m-dates b{display:block;font:800 22px/1 var(--display)}
.m-dates small,.m-month{font:500 10.5px var(--mono);color:var(--on-night-2)}
.m-month{text-align:center}
.m-askbox{display:flex;gap:6px;align-items:center;background:rgb(0 0 0 / .25);border:1px solid rgb(255 255 255 / .14);border-radius:10px;padding:8px 10px;font-size:13px;color:var(--on-night-2)}
.m-askbox svg.li{width:15px;height:15px;color:var(--glow-b)}
.m-cta{margin-top:auto;display:inline-flex;align-self:flex-start;align-items:center;gap:6px;background:var(--cta);color:var(--cta-ink);border-radius:999px;padding:8px 14px;font-weight:600;font-size:13.5px;text-decoration:none;position:relative;z-index:1}
.m-cta svg.li{width:15px;height:15px}
.m-cta:hover{background:var(--cta-hover)}

/* mobile menu v2: section icons, monochrome item icons */
.mnav .wrap{gap:0}
.m-srch{display:flex!important;gap:8px;align-items:center;background:rgb(255 255 255 / .06);border:1px solid rgb(255 255 255 / .14)!important;border-radius:12px;padding:11px 12px!important;color:var(--on-night-2)!important;font-weight:400!important;margin:4px 0 8px;text-decoration:none}
.m-srch svg.li{width:17px;height:17px}
.mnav .m-row,.mnav summary{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid rgb(255 255 255 / .08);font-weight:600;color:var(--on-night);text-decoration:none;cursor:pointer;list-style:none}
.mnav summary::after{content:none}
.m-sico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgb(255 255 255 / .07);color:var(--glow-a);flex:none}
.m-sico svg.li{width:18px;height:18px}
.m-chev{margin-left:auto;color:var(--on-night-2);width:18px;height:18px;transition:transform .2s}
.mnav details[open] .m-chev{transform:rotate(180deg)}
.mnav .m-sub{display:grid;gap:0;padding:4px 0 10px 46px;border-bottom:1px solid rgb(255 255 255 / .08)}
.mnav .m-sub a{display:flex;align-items:center;gap:10px;padding:8px 0;color:var(--on-night-2);font-size:15px;text-decoration:none}
.mnav .m-sub a svg.li{width:16px;height:16px}
.m-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.m-quick a{display:flex;align-items:center;justify-content:center;gap:6px;border-radius:12px;padding:11px;font-weight:600;font-size:14px;text-decoration:none;background:rgb(255 255 255 / .07);color:var(--on-night);border:1px solid rgb(255 255 255 / .14)}
.m-quick a.pri{background:var(--cta);color:var(--cta-ink);border-color:transparent;grid-column:1/-1}
.m-quick a svg.li{width:16px;height:16px}
.mnav > .wrap > a.m-row,.mnav details > summary{justify-content:flex-start}
/* the mobile menu sits inside header.top; don't inherit the header bar's one-row layout */
header.top .mnav .wrap{display:grid;grid-template-columns:1fr;height:auto;align-items:stretch;gap:0;max-width:1200px;padding-block:8px 18px}
.mnav details summary::after,.mnav details[open] summary::after{content:none}
.mnav > .wrap > a.m-srch{justify-content:flex-start}

/* =========================================================
   Home hero — two demo versions (html[data-hero="1" | "2"])
   Hero 1: paths on the left, leader spotlight in the crescent on the right
   Hero 2: four wide path tiles, each with a proof point
   ========================================================= */
.hero-v .hwrap{display:grid;gap:0 40px;padding-block:52px 12px;max-width:1280px}
.hero-v .h-head{grid-area:head}
.hero-v .paths{grid-area:paths;display:grid;gap:10px}
.hero-v .status{grid-area:status}
.hero-v .stage{grid-area:stage}
.hero-v .h-mini{grid-area:mini}
.hero-v h1{margin:14px 0 10px}
.hero-v .meta{margin-bottom:22px}

/* path tiles */
.path{position:relative;display:flex;flex-direction:column;gap:5px;padding:16px 16px 14px;border-radius:16px;background:rgb(255 255 255 / .05);border:1px solid rgb(255 255 255 / .13);text-decoration:none;color:var(--on-night);transition:background .15s,border-color .15s,transform .15s}
.path:hover{background:rgb(255 255 255 / .09);border-color:var(--pc);transform:translateY(-2px)}
.path .pi{color:var(--pc);display:flex}
.path .pi svg.li{width:24px;height:24px}
.path .who{font:500 10.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-night-2)}
.path b{font:700 18px/1.2 var(--display)}
.path small{font-size:13px;color:var(--on-night-2);line-height:1.4}
.path .go{margin-top:auto;padding-top:8px;display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13.5px;color:var(--pc)}
.path .go svg.li{width:15px;height:15px}
.path.pri{background:var(--cta);border-color:var(--cta);color:var(--cta-ink)}
.path.pri .who,.path.pri small,.path.pri .proof{color:color-mix(in srgb, var(--cta-ink) 76%, transparent)}
.path.pri .pi,.path.pri .go{color:var(--cta-ink)}
.path.pri:hover{background:var(--cta-hover)}
.p1{--pc:#5FD3C3}.p2{--pc:#A78BFA}.p3{--pc:#F2B544}.p4{--pc:#7DD3FC}
.proof{display:none;margin-top:8px;padding-top:10px;border-top:1px dashed rgb(255 255 255 / .16);font-size:12.5px;line-height:1.4;color:var(--on-night-2)}
.path.pri .proof{border-top-color:color-mix(in srgb, var(--cta-ink) 25%, transparent)}
.proof .fcs{display:flex;margin-bottom:6px}
.proof .fcs img{width:30px;height:30px;border-radius:50%;border:2px solid var(--cta);margin-left:-8px;object-fit:cover}
.proof .fcs img:first-child{margin-left:0}
.proof .num{display:block;font:800 26px/1 var(--display);color:var(--on-night);margin-bottom:3px}
.proof .logos2{display:block;height:28px;border-radius:6px;background:#fff url(img/sponsors-strip-a.jpg) left center / auto 28px no-repeat;margin-bottom:6px}

/* status line: changes with the event phase */
.status{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:14px 0 26px;font:500 13px var(--mono);color:var(--on-night-2)}
.status b{color:var(--on-night);font-variant-numeric:tabular-nums}
.status .dot{width:8px;height:8px;border-radius:50%;background:var(--sc,#4ADE80);box-shadow:0 0 0 4px color-mix(in srgb, var(--sc,#4ADE80) 22%, transparent)}
.status.live .dot{animation:pulse 1.2s infinite}
.status:not(.has-bar) a,.status:not(.has-bar) button{color:var(--on-night);text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;font:inherit;cursor:pointer}

/* leader spotlight (hero 1) */
/* hero 1 · constellation: all 13 leaders orbit the featured one (photos are shown near their native size, so they stay sharp) */
.stage{position:relative;justify-self:center;align-self:center;width:min(100%,440px);display:grid;justify-items:center;gap:22px}
.stage .orbit{position:relative;width:86%;aspect-ratio:1;margin-top:4%}
.stage .orbit::before,.stage .orbit::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.stage .orbit::before{inset:0;border:1px dashed rgb(255 255 255 / .16)}
.stage .orbit::after{inset:15%;border:1px solid rgb(255 255 255 / .08)}
.stage .core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40%;aspect-ratio:1;border-radius:50%;padding:4px;background:conic-gradient(from 200deg,var(--glow-a),var(--glow-b),var(--glow-a));box-shadow:0 20px 60px rgb(0 0 0 / .5)}
.stage .core img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:4px solid var(--night);transition:opacity .35s}
.stage .core img.fade{opacity:0}
.stage .sat{position:absolute;width:13.5%;aspect-ratio:1;transform:translate(-50%,-50%);padding:0;border:2px solid var(--night);border-radius:50%;background:var(--night);box-shadow:0 0 0 1.5px rgb(255 255 255 / .22);cursor:pointer;opacity:.78;transition:transform .25s,box-shadow .25s,opacity .25s}
.stage .sat img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.stage .sat:hover{opacity:1}
.stage .sat.on{opacity:1;transform:translate(-50%,-50%) scale(1.14);box-shadow:0 0 0 2.5px var(--glow-b)}
.stage .sat:focus-visible{outline:2px solid var(--glow-a);outline-offset:3px}
.stage .sp-cap{text-align:center;display:grid;justify-items:center;gap:2px}
.stage .onstage{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--glow-a)}
.stage .sp-cap b{font:800 22px/1.2 var(--display);letter-spacing:-.01em;margin-top:4px}
.stage .sp-cap>span:not(.onstage){font-size:13.5px;color:var(--on-night-2)}
.stage .sp-cap strong{color:var(--on-night);font-weight:600}
.stage .sp-all{margin-top:10px;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--on-night);text-decoration:none;background:rgb(255 255 255 / .07);border:1px solid rgb(255 255 255 / .16);border-radius:999px;padding:6px 13px}
.stage .sp-all:hover{background:rgb(255 255 255 / .12)}
.stage .sp-all svg.li{width:14px;height:14px}
.stage .badge2{display:inline-block;margin-left:6px;background:var(--glow-b);color:var(--night);font:700 9.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 7px;vertical-align:3px}
.sp-dots{display:flex;justify-content:center;gap:5px;margin-top:9px}
.sp-dots i{width:6px;height:6px;border-radius:50%;background:rgb(255 255 255 / .25);transition:width .2s}
.sp-dots i.on{background:var(--glow-b);width:16px;border-radius:3px}

/* leaders pill (hero 2) */
.h-mini{display:none;align-self:end;align-items:center;gap:12px;margin-bottom:22px;padding:10px 16px 10px 10px;border-radius:999px;background:rgb(255 255 255 / .05);border:1px solid rgb(255 255 255 / .12);font-size:13px;color:var(--on-night-2);text-decoration:none;line-height:1.35}
.h-mini:hover{background:rgb(255 255 255 / .09)}
.h-mini .fcs{display:flex}
.h-mini .fcs img{width:34px;height:34px;border-radius:50%;border:2px solid var(--night);margin-left:-10px;object-fit:cover}
.h-mini .fcs img:first-child{margin-left:0}
.h-mini b{color:var(--on-night);font-weight:600}

/* layout: hero 1 */
:root[data-hero="1"] .hero-v .hwrap{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);grid-template-areas:"head status" "head stage" "paths stage";grid-template-rows:auto auto 1fr}
:root[data-hero="1"] .hero-v .paths{grid-template-columns:repeat(2,minmax(0,1fr));max-width:600px}
:root[data-hero="1"] .hero-v .helix-box{display:none}   /* the constellation is the visual on this side */
/* layout: hero 2 */
:root[data-hero="2"] .hero-v .hwrap{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);grid-template-areas:"head status" "mini status" "paths paths"}
:root[data-hero="2"] .hero-v .paths{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
:root[data-hero="2"] .hero-v .path{min-height:250px}
:root[data-hero="2"] .hero-v .proof{display:block}
:root[data-hero="2"] .hero-v .h-mini{display:flex}
:root[data-hero="2"] .hero-v .stage{display:none}
:root[data-hero="2"] .hero-v .helix-box{inset:0 0 0 60%;opacity:.45}
@media (max-width:900px){
  :root[data-hero="1"] .hero-v .hwrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "status" "paths" "stage"}
  :root[data-hero="1"] .hero-v .stage{width:min(100%,360px);margin:8px 0 28px}
  :root[data-hero="1"] .hero-v .helix-box{display:none!important}
  :root[data-hero="2"] .hero-v .hwrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "status" "mini" "paths"}
  :root[data-hero="2"] .hero-v .h-mini{justify-self:start}
  :root[data-hero="2"] .hero-v .paths{grid-template-columns:repeat(2,minmax(0,1fr))}
  :root[data-hero="2"] .hero-v .path{min-height:0}
  .hero-v .helix-box{inset:0!important;opacity:.25!important}
}
@media (max-width:520px){.hero-v .paths{grid-template-columns:minmax(0,1fr)!important}}

/* demo switches in the prototype ribbon (home page only) */
.ribbon .demo{display:inline-flex;align-items:center;gap:4px;margin-left:10px;vertical-align:1px}
.ribbon .demo button{font:600 11.5px var(--mono);border:1px solid currentColor;background:transparent;color:inherit;border-radius:999px;padding:1px 9px;cursor:pointer}
.ribbon .demo button[aria-pressed="true"]{background:var(--ribbon-ink);color:var(--ribbon);border-color:var(--ribbon-ink)}

/* presenter mode: the prototype ribbon only shows when presenter controls are on (press D) */
:root[data-demo="off"] .ribbon{display:none}
.ribbon .pres button[data-pres="hide"]{opacity:.8}

/* presenter dialogs: QR code, invitation links, guest briefing */
.pres-dlg{margin:auto;border:0;padding:0;border-radius:20px;background:var(--surface);color:var(--ink);width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 32px);box-shadow:0 30px 80px rgb(0 0 0 / .45)}
.pres-dlg.is-brief{width:min(820px,calc(100vw - 24px))}
.pres-dlg::backdrop{background:rgb(4 16 17 / .62);backdrop-filter:blur(3px)}
#pres-body{padding:28px 28px 24px;position:relative}
.pres-dlg h2{font:700 clamp(22px,3.2vw,28px)/1.15 var(--display);margin:10px 0 8px;padding-right:32px;text-wrap:balance}
.pres-dlg .sub{color:var(--ink-2);margin:0 0 16px}
.pres-dlg .eyebrow .spark{width:15px;height:15px}
.pres-dlg .eyebrow{padding-right:44px;flex-wrap:wrap}
.dlg-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.dlg-x .i{width:16px;height:16px}
.dlg-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.pres-dlg.is-qr{text-align:center}
.pres-dlg.is-qr #pres-body{display:grid;justify-items:center}
.pres-dlg.is-qr h2{padding:0 28px}
.qr-box{background:#fff;padding:16px;border-radius:16px;margin:10px 0 6px;min-width:292px;min-height:292px;display:grid;place-items:center;border:1px solid var(--line)}
.qr-box img,.qr-box canvas{display:block}
.qr-off{color:#333;max-width:240px}
.qr-url{font:500 14px var(--mono);word-break:break-all;margin:6px 0 0;color:var(--ink)}
.qr-base{display:grid;gap:6px;text-align:left;width:100%;font-size:13px;color:var(--ink-2);margin-top:14px}
.qr-base input{font:500 14px var(--mono);padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}
.qr-note{font-size:12.5px;color:var(--ink-2);text-align:left;margin:6px 0 0}
.inv{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.inv li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.inv small{display:block;color:var(--ink-2);font-size:13px}
.inv .acts{display:flex;gap:6px}
.inv-now{background:var(--teal-soft);border-radius:10px;padding:9px 12px;font-size:14px}
.inv-own{margin-top:16px;display:grid;gap:6px;font-size:13.5px;color:var(--ink-2)}
.inv-own div{display:flex;gap:8px}
.inv-own input{flex:1;min-width:0;font:inherit;font-size:15px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink)}
.bf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.bf section{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--paper)}
.bf h3{font:600 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin:0 0 10px}
.bf ol,.bf ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.bf li{display:grid;gap:2px}
.bf li small{color:var(--ink-2);font-size:13px}
.bf-s .tm{font:500 12.5px var(--mono);color:var(--ink-2)}
.bf-m li>span:not(.samp){font-size:14px}
.bf-m .btn{justify-self:start;margin-top:4px}
.bf-m .samp{font:500 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:0 6px;vertical-align:2px;justify-self:start}
.bf-pav{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 0 0;font-size:14px}
.bf-pav>span:first-child{color:var(--ink-2);margin-right:4px}
.bf-pav .p{background:var(--teal-soft);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:13px}
.bf-visa{display:flex;gap:8px;align-items:flex-start;margin:12px 0 0;font-size:14px;color:var(--ink-2)}
.bf-visa .i{color:var(--ok);flex:none;margin-top:3px;width:16px;height:16px}
.bf-note{font-size:12px;color:var(--ink-2);margin:14px 0 0}
@media (max-width:640px){#pres-body{padding:22px 18px 18px}.inv li{grid-template-columns:minmax(0,1fr)}.bf{grid-template-columns:minmax(0,1fr)}.dlg-acts .btn{flex:1}}

/* guest welcome bar, under the header on every page */
.guest-bar{background:linear-gradient(90deg,var(--night-2),var(--night));color:var(--on-night);border-bottom:1px solid rgb(255 255 255 / .1)}
.guest-bar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:9px}
.gb-t{display:flex;align-items:center;gap:10px;font-size:14.5px;min-width:0}
.gb-t .spark{color:var(--glow-b);flex:none;width:18px;height:18px}
.gb-t b{color:#fff}
.gb-x{color:var(--on-night-2)}
.gb-a{display:flex;align-items:center;gap:6px;flex:none}
.gb-close{width:32px;height:32px;border-radius:50%;border:0;background:transparent;color:var(--on-night-2);display:grid;place-items:center;cursor:pointer}
.gb-close:hover{background:rgb(255 255 255 / .08);color:var(--on-night)}
.gb-close .i{width:15px;height:15px}
@media (max-width:760px){.gb-x{display:none}}

/* home hero · launch bar: live countdown to the opening session (before and during registration) */
.status.has-bar{display:block;margin:18px 0 26px;font:inherit}
.lbar{border-radius:20px;padding:2px;background:linear-gradient(90deg,#7C3AED,#7DD3FC,#A78BFA,#7C3AED);background-size:300% 100%;animation:lbflow 8s linear infinite;box-shadow:0 20px 60px -24px rgb(124 58 237 / .7)}
@keyframes lbflow{to{background-position:300% 0}}
.lbar-in{border-radius:18px;background:linear-gradient(90deg,#120F33,#0C0B25);display:flex;align-items:center;gap:14px 26px;flex-wrap:wrap;padding:16px 20px}
.lb-when{display:grid;gap:3px}
.lb-l{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-night-2)}
.lb-when b{font:600 14px var(--sans);color:var(--on-night)}
.lb-clock{display:flex;align-items:baseline;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.lb-clock .n{display:inline-block;font:600 clamp(30px,4.2vw,50px)/1 var(--mono);letter-spacing:-.04em;color:#fff}
.lb-clock .n.roll{animation:lbroll .35s cubic-bezier(.2,.8,.2,1)}
@keyframes lbroll{from{transform:translateY(-35%);opacity:0}}
.lb-clock .u{font:500 15px var(--mono);color:#A78BFA;margin-left:3px}
.lb-clock .sep{align-self:center;display:inline-grid;gap:6px;margin:0 10px;animation:lbblink 1s steps(2) infinite}
.lb-clock .sep i{width:6px;height:6px;border-radius:50%;background:#7DD3FC;box-shadow:0 0 10px #7DD3FC}
.lb-clock .sep i+i{background:#A78BFA;box-shadow:0 0 10px #A78BFA}
@keyframes lbblink{50%{opacity:.35}}
.lb-side{margin-left:auto;display:grid;gap:8px;justify-items:end}
.lb-state{display:inline-flex;align-items:center;gap:8px;font:500 12.5px var(--mono);color:var(--on-night)}
.lb-state .dot{width:8px;height:8px;border-radius:50%;background:var(--sc,#4ADE80);box-shadow:0 0 0 4px color-mix(in srgb, var(--sc,#4ADE80) 22%, transparent)}
.lb-acts{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:760px){
  .lbar-in{padding:14px}
  .lb-side{margin-left:0;justify-items:start;width:100%}
  .lb-acts{width:100%}
  .lb-acts .btn{flex:1}
}
@media (max-width:420px){
  .lb-clock .n{font-size:33px}
  .lb-clock .u{font-size:13px;margin-left:2px}
  .lb-clock .sep{margin:0 6px;gap:4px}
  .lb-clock .sep i{width:4px;height:4px}
}
@media (prefers-reduced-motion:reduce){html:not(.force-motion) .lbar,html:not(.force-motion) .lb-clock .sep{animation:none}}

/* =========================================================
   Header menus: finish (every page)
   Top items get a hover underline; mega-menus unfold in 3D, their columns cascade in, and each item's icon sits in a
   tile tinted with its group colour that fills on hover, with an arrow sliding in beside the item.
   ========================================================= */
.gnav-item > a{position:relative;transition:color .25s ease,background .25s ease}
.gnav-item > a:not([aria-current="page"])::after{content:"";position:absolute;left:11px;right:11px;bottom:3px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--glow-a),var(--glow-b));transform:scaleX(0);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.gnav-item:hover > a::after,.gnav-item:focus-within > a::after{transform:scaleX(1)}

.mega{perspective:1400px}
.gnav-item:hover .m-panel,.gnav-item:focus-within .m-panel{animation:mega-in .45s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 0}
@keyframes mega-in{from{opacity:0;transform:translateY(10px) rotateX(-12deg) scale(.985)}}
.m-panel{box-shadow:0 2px 6px rgb(0 0 0 / .08),0 40px 90px -20px color-mix(in srgb,var(--night) 55%,transparent)}
.gnav-item:hover .m-grp,.gnav-item:focus-within .m-grp{animation:mega-col .5s cubic-bezier(.16,1,.3,1) both}
.m-grp.g2{animation-delay:.05s!important}.m-grp.g3{animation-delay:.1s!important}
.gnav-item:hover .m-feat,.gnav-item:focus-within .m-feat{animation:mega-col .6s cubic-bezier(.16,1,.3,1) .12s both}
@keyframes mega-col{from{opacity:0;transform:translateY(12px)}}

/* item: icon tile + text, with an arrow that slides in right after the title on hover (inline, so it takes no width) */
.m-item{grid-template-columns:38px minmax(0,1fr);gap:13px;align-items:center;transition:background .25s ease}
.m-item b{display:block}
.m-item b .m-ai{display:inline-block;margin-left:6px;vertical-align:1px}
.m-item b::after{content:"";display:inline-block;vertical-align:-2px;width:0;height:14px;margin-left:0;background:var(--gc);opacity:0;transform:translateX(-6px);
  transition:opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1),width .3s cubic-bezier(.16,1,.3,1),margin .3s cubic-bezier(.16,1,.3,1);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center/contain no-repeat}
.m-item:hover b::after,.m-item:focus-visible b::after{opacity:1;transform:none;width:14px;margin-left:6px}
.m-ico{width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--gc) 11%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gc) 24%,transparent);
  transition:transform .45s cubic-bezier(.34,1.56,.64,1),background .25s ease,color .25s ease,box-shadow .35s ease}
.m-ico svg.li{width:19px;height:19px;stroke-width:1.9}
.m-item:hover .m-ico,.m-item:focus-visible .m-ico{transform:scale(1.08) rotate(-8deg);background:var(--gc);color:var(--surface);
  box-shadow:0 8px 18px -6px color-mix(in srgb,var(--gc) 75%,transparent)}
.m-item b{transition:color .25s ease}
.m-item:hover b,.m-item:focus-visible b{color:color-mix(in srgb,var(--gc) 70%,var(--ink))}
.m-feat .m-cta{transition:background .25s ease,transform .25s ease}
.m-feat .m-cta svg.li{transition:transform .35s cubic-bezier(.16,1,.3,1)}
.m-feat .m-cta:hover svg.li{transform:translateX(4px)}
.m-foot a svg.li{transition:transform .35s cubic-bezier(.16,1,.3,1)}
.m-foot a:hover svg.li{transform:translateX(4px)}

/* BioAsia 2027 logo image (header and footer lockups) */
.ba-logo{display:block;height:46px;width:auto}
.foot-logos .ba-full{height:96px}
@media (max-width:900px){.ba-logo{height:38px}.foot-logos .ba-full{height:84px}}

/* header action buttons: an icon each, with a small hover motion (user icon lifts; the ticket tilts as a sheen crosses Register) */
.hdr-actions .hdr-me,.hdr-actions .hdr-reg{gap:8px}
.hdr-actions .hdr-me,.hdr-actions .hdr-reg,.hdr-actions svg.li{transition:background-color .25s ease,border-color .25s ease,color .25s ease,box-shadow .3s ease,transform .45s cubic-bezier(.34,1.56,.64,1),background-position .8s cubic-bezier(.16,1,.3,1)}
.hdr-actions svg.li{width:16px;height:16px;stroke-width:2}
.hdr-actions .hdr-me:hover{background:rgb(255 255 255 / .1);border-color:color-mix(in srgb,var(--glow-a) 45%,transparent)}
.hdr-actions .hdr-me:hover svg.li{transform:translateY(-2px) scale(1.1);color:var(--glow-a)}
.hdr-actions .hdr-reg,.hdr-actions .hdr-reg:hover{background-image:linear-gradient(105deg,transparent 38%,rgb(255 255 255 / .35) 50%,transparent 62%);
  background-size:250% 100%;background-repeat:no-repeat;background-position:130% 0}
.hdr-actions .hdr-reg:hover{background-color:var(--cta-hover);background-position:-30% 0;transform:translateY(-1px);
  box-shadow:0 10px 24px -10px color-mix(in srgb,var(--cta) 90%,transparent)}
.hdr-actions .hdr-reg:hover svg.li{transform:rotate(-14deg) scale(1.12)}
.menu-btn svg{transition:transform .35s cubic-bezier(.16,1,.3,1)}
.menu-btn[aria-expanded="true"] svg{transform:rotate(90deg)}
/* the smallest phones (up to 380px): a slightly smaller logo, and Register without its icon, so the header fits in one row */
@media (max-width:380px){
  header.top .wrap{gap:8px;padding-inline:12px}
  .tls img{width:32px;height:32px}.vr{height:28px}.logos{gap:8px}
  .ba-logo{height:32px}
  .hdr-actions{gap:6px}.hdr-actions .hdr-reg svg.li{display:none}.hdr-actions .btn-gold{padding:8px 12px}
}

/* between 1241px and 1360px the full menu and both buttons are tight: My BioAsia becomes a round icon button there */
@media (min-width:1241px) and (max-width:1360px){
  .hdr-actions .hdr-me{font-size:0;gap:0;width:40px;height:40px;padding:0;justify-content:center}
  .hdr-actions .hdr-me svg.li{width:18px;height:18px}
}


/* =========================================================
   Footer (every page): three rows
   1. logo on the left, event title and facts on the right
   2. four equal link columns with small spaced headings
   3. small print on the left, quick links on the right
   ========================================================= */
footer{position:relative;border-top:0;
  background:radial-gradient(1000px 340px at 10% 0%,color-mix(in srgb,var(--glow-b) 10%,transparent),transparent 70%),var(--night)}
footer::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--glow-b) 55%,transparent),color-mix(in srgb,var(--glow-a) 45%,transparent),transparent)}
footer .ftop{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px;padding-block:52px 36px;border-bottom:1px solid rgb(255 255 255 / .07)}
footer .foot-logos{margin:0}
footer .foot-logos .ba-full{height:76px}
footer .tls-txt span{white-space:nowrap}
footer .fmeta{display:grid;gap:12px;justify-items:end;text-align:right}
footer .ftitle{margin:0;font:700 17px/1.3 var(--display);letter-spacing:-.01em;color:var(--on-night)}
footer .finfo{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 22px;font-size:14px;line-height:1.4}
footer .finfo li{display:inline-flex;align-items:center;gap:8px}
footer .finfo svg.li{width:16px;height:16px;flex:none;color:var(--glow-a);stroke-width:1.9}

footer .fmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 32px;padding-block:44px}
footer .fcol{display:flex;flex-direction:column;align-items:flex-start;gap:13px}
footer .fh{display:block;margin:0 0 6px;font:600 11.5px/1.2 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--on-night)}
footer .fh::after{content:"";display:block;width:22px;height:2px;margin-top:12px;border-radius:2px;background:linear-gradient(90deg,var(--glow-a),var(--glow-b))}
footer .fmap .fcol a{display:inline-block;padding:0;font-size:14.5px;line-height:1.45;color:var(--on-night-2);transition:color .2s ease,transform .3s cubic-bezier(.16,1,.3,1)}
footer .fmap .fcol a:hover{color:var(--on-night);transform:translateX(3px)}

footer .fbase{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px 48px;padding-block:24px 32px;border-top:1px solid rgb(255 255 255 / .07);font-size:13px}
footer .fsmall{display:grid;gap:6px;max-width:72ch}
footer .fsmall p{margin:0;line-height:1.6;color:color-mix(in srgb,var(--on-night-2) 78%,transparent)}
footer .flinks{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 22px;max-width:520px}
footer .flinks a{text-decoration:none;color:var(--on-night-2);transition:color .2s ease}
footer .flinks a:hover{color:var(--on-night);text-decoration:underline;text-underline-offset:3px}

@media (max-width:1000px){
  footer .fmap > div:first-child{grid-column:auto}
  footer .ftop{flex-direction:column;align-items:flex-start}
  footer .fmeta{justify-items:start;text-align:left}
  footer .finfo{justify-content:flex-start}
  footer .fbase{grid-template-columns:1fr}
  footer .flinks{justify-content:flex-start;max-width:none}
}
@media (max-width:700px){
  footer .ftop{padding-block:40px 28px}
  footer .finfo{flex-direction:column;gap:10px}
  footer .fmap{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 20px;padding-block:36px}
  footer .foot-logos .ba-full{height:68px}
}
@media (max-width:900px){footer .fmap{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px}}

/* =========================================================
   Utility bar (every page): one calm row. Event facts with icons on the left; team dashboards as small chips on the right.
   On narrower screens the date (also in the hero and footer) gives way first, then the dashboards, so it never wraps.
   ========================================================= */
.util{font-size:12.5px;background:color-mix(in srgb,var(--night) 92%,#000);border-bottom-color:rgb(255 255 255 / .06)}
.util .wrap{max-width:1400px;align-items:center;flex-wrap:nowrap;gap:24px;min-height:40px;padding-block:6px}
.util .u-info{display:flex;align-items:center;min-width:0;color:color-mix(in srgb,var(--on-night-2) 92%,#fff)}
.util .u-info > span{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.util .u-info > span + span{margin-left:18px;padding-left:18px;border-left:1px solid rgb(255 255 255 / .12)}
.util .u-info svg.li{width:14px;height:14px;flex:none;color:var(--glow-a)}
.util .u-dash{flex:none;gap:4px}
.util .u-dash > span{margin-right:6px;opacity:1;font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--on-night-2) 70%,transparent)}
.util .u-dash a{padding:5px 10px;border-radius:999px;gap:6px;color:var(--on-night);transition:background .2s ease,color .2s ease}
.util .u-dash a:hover{background:rgb(255 255 255 / .08);text-decoration:none}
.util .u-dash svg.li{color:color-mix(in srgb,var(--on-night-2) 85%,#fff)}
.util .u-dash .u-live::after{content:"";width:6px;height:6px;margin-left:2px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 0 rgb(74 222 128 / .6);animation:u-live 2s ease-out infinite}
@keyframes u-live{0%{box-shadow:0 0 0 0 rgb(74 222 128 / .55)}70%,100%{box-shadow:0 0 0 6px rgb(74 222 128 / 0)}}
.util .u-dash .u-mob{margin-left:6px;padding-left:14px;border-left:1px solid rgb(255 255 255 / .14);border-radius:0 999px 999px 0}
@media (max-width:380px){.util .wrap{padding-inline:12px}.util .u-info > span{white-space:normal;text-align:center;line-height:1.4}}
/* which utility items show, so the bar is always one clean row (measured: facts 643px, dashboards 642px) */
@media (max-width:1359px){.util .u-date{display:none!important}}
@media (max-width:1060px){.util .u-dash{display:none!important}.util .wrap{justify-content:center}.util .u-date{display:inline-flex!important}}
@media (max-width:700px){.util .u-date{display:none!important}.util{font-size:12px}}
/* footer column headings: the heading font in a clean semibold, normal case (not the spaced monospace label style) */
footer .fh{font:650 16px/1.3 var(--display);letter-spacing:-.01em;text-transform:none;color:var(--on-night)}
footer .fh::after{margin-top:10px;width:20px}
/* mega-menu column headings: the heading font in normal case, like the footer; the dot keeps the column colour */
.m-gh{gap:8px;margin:0 0 10px;font:650 14px/1.3 var(--display);letter-spacing:-.005em;text-transform:none;color:var(--ink)}
.m-gh i{width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb,var(--gc) 18%,transparent)}

/* =========================================================
   Client review, 24 Sep 2026
   ========================================================= */
/* header: International Trade Show is the only entry with a dropdown (Exhibition, Product Launchpad) */
.gnav-item.has-drop{position:relative}
.drop.dd{--gc:var(--g1);top:100%;left:50%;min-width:330px;padding:14px 10px 10px;border-radius:16px;transform:translateX(-50%);
  box-shadow:0 2px 6px rgb(0 0 0 / .08),0 40px 90px -20px color-mix(in srgb,var(--night) 55%,transparent)}
.gnav-item:hover .drop.dd,.gnav-item:focus-within .drop.dd{display:grid;gap:2px;animation:mega-in .4s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 0}
.gnav-item.shut .drop{display:none!important}
.drop.dd .m-gh{margin-bottom:6px}
.drop.dd a.m-item{display:grid;padding:9px 10px}
.drop.dd .m-item small{font-size:12.8px}

/* logos: every logo sits in the same white tile and is scaled to the same box, so none looks bigger than the rest */
.logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:10px}
.logo-tile{display:grid;place-items:center;height:96px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;
  transition:border-color .25s,box-shadow .35s var(--ease-out,ease),transform .35s var(--ease-out,ease)}
.logo-tile img{max-width:100%;max-height:52px;width:auto;height:auto;object-fit:contain}
.logo-tile:hover{border-color:color-mix(in srgb,var(--glow-b) 45%,var(--line));box-shadow:0 18px 36px -24px color-mix(in srgb,var(--night) 60%,transparent);transform:translateY(-2px)}
.logo-group + .logo-group{margin-top:30px}
.logo-group h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font:650 15px/1.3 var(--display);color:var(--ink)}
.logo-group h3 svg.li{width:18px;height:18px;color:var(--glow-b)}
/* moving rows of individual logos (home) */
.marq.logos-marq{padding:14px 0;background:var(--surface)}
.logos-marq .track{gap:12px;padding-right:12px}
.logos-marq .logo-tile{width:170px;height:84px;flex:none}
.logos-marq .logo-tile img{max-height:44px}
.logos-marq .logo-tile:hover{transform:none}

/* pavilion cards: an image per pavilion, set in PAVILIONS (site.js); until one is supplied the card shows its artwork tile */
.pv-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.pv-card{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:inherit;text-decoration:none;
  transition:border-color .3s,box-shadow .45s var(--ease-out,ease),transform .45s var(--ease-out,ease)}
.pv-card:hover{border-color:color-mix(in srgb,var(--pv) 55%,var(--line));box-shadow:0 26px 50px -30px color-mix(in srgb,var(--pv) 70%,transparent);transform:translateY(-4px)}
.pv-media{position:relative;aspect-ratio:16/10;overflow:hidden;
  background:radial-gradient(120% 90% at 85% 10%,color-mix(in srgb,var(--pv) 55%,transparent),transparent 60%),linear-gradient(150deg,#15123A,#0A0A1F)}
.pv-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out,ease)}
.pv-card:hover .pv-media img{transform:scale(1.06)}
.pv-media .pv-art{position:absolute;right:-6%;bottom:-18%;width:62%;height:auto;color:color-mix(in srgb,var(--pv) 80%,#fff);opacity:.9;stroke-width:1.1;
  transition:transform .8s var(--ease-out,ease)}
.pv-card:hover .pv-art{transform:rotate(-8deg) scale(1.08)}
.pv-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgb(10 10 31 / .55))}
/* with a photo: a light shade only at the top, so the number stays readable, and a thin pavilion-colour rule under the image */
.pv-media:has(img){background:var(--surface-2);border-bottom:3px solid var(--pv)}
.pv-media:has(img)::after{background:linear-gradient(180deg,rgb(10 10 31 / .38),transparent 38%)}
.pv-no{position:absolute;left:14px;top:12px;z-index:1;font:600 11px var(--mono);letter-spacing:.14em;color:#fff;background:rgb(255 255 255 / .12);border:1px solid rgb(255 255 255 / .22);border-radius:999px;padding:4px 9px;backdrop-filter:blur(6px)}
.pv-body{display:grid;gap:6px;padding:16px 18px 18px}
.pv-body h3{margin:0;font:700 17px/1.25 var(--display);letter-spacing:-.01em}
.pv-body p{margin:0;font-size:14px;line-height:1.5;color:var(--ink-2)}
.pv-cards.compact{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.pv-cards.compact .pv-media{aspect-ratio:4/3}
.pv-cards.compact .pv-body{padding:12px 14px 14px}
.pv-cards.compact .pv-body h3{font-size:14.5px}
.pv-cards.compact .pv-body p{display:none}
@media (max-width:1100px){.pv-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.pv-cards.compact{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.pv-cards,.pv-cards.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.pv-cards:not(.compact){grid-template-columns:minmax(0,1fr)}}

/* enquiry forms share one layout: name, organisation, email, phone, the eight 2027 streams, and a free-text note */
/* a chevron on every form select; page styles set the field background with the shorthand, so the image is kept with !important */
.form select{appearance:none;-webkit-appearance:none;padding-right:40px!important;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B6F8A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:16px!important}
.form .req{color:var(--glow-b);margin-left:2px}
.mail-tbc{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px dashed var(--line);font-size:14px;color:var(--ink-2)}
.mail-tbc svg.li{width:16px;height:16px;color:var(--glow-b)}
.pv-media .pv-art{aspect-ratio:1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* home hero: the countdown sits in the top-right corner of the banner, level with the headline */
@media (min-width:901px){
  .hero-v .status.has-bar{justify-self:end;align-self:start;width:100%;max-width:470px;margin:6px 0 26px}
  .hero-v .status:not(.has-bar){justify-self:end;align-self:start;margin-top:8px}
  :root[data-hero="2"] .hero-v .h-mini{justify-self:start;align-self:start}
}
/* the path cards keep their natural height instead of stretching to the height of the leader constellation beside them */
@media (min-width:901px){
  .hero-v .paths{align-self:start;align-content:start}
  /* the constellation sits right under the countdown, a little smaller, so both columns end together */
  :root[data-hero="1"] .hero-v .stage{align-self:start;width:min(100%,400px);margin-top:-4px}
}
/* pavilion cards: titles take two lines' height so every description in a row starts on the same line; bodies fill the card */
.pv-card .pv-body{flex:1;align-content:start}
.pv-cards:not(.compact) .pv-body h3{min-height:2.5em;display:flex;align-items:flex-start}
.pv-body p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* phones: pavilion cards stay two per row, with smaller type and a shorter photo */
@media (max-width:560px){
  .pv-cards:not(.compact){grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  .pv-cards:not(.compact) .pv-media{aspect-ratio:4/3}
  .pv-cards:not(.compact) .pv-body{padding:12px 12px 14px;gap:4px}
  .pv-cards:not(.compact) .pv-body h3{font-size:14px}
  .pv-cards:not(.compact) .pv-body p{font-size:12.5px;line-height:1.45}
  .pv-no{left:10px;top:8px;font-size:10px;padding:3px 7px}
}
/* Partners till Now (Sponsors page): one grid in the deck's order, seven logos per row as on the deck's pages */
.logo-grid.logo-deck{grid-template-columns:repeat(7,minmax(0,1fr))}
@media (max-width:1100px){.logo-grid.logo-deck{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:760px){.logo-grid.logo-deck{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:420px){.logo-grid.logo-deck{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* International Trade Show dropdown: links on the left, a photo panel on the right that follows the hovered link */
.drop.dd.has-media{min-width:0;width:600px;padding:12px;grid-template-columns:minmax(0,1fr) 250px;gap:12px}
.gnav-item:hover .drop.dd.has-media,.gnav-item:focus-within .drop.dd.has-media{display:grid}
.drop.dd .dd-list{display:grid;align-content:start;gap:2px;padding:4px 0 0 2px}
.drop.dd .dd-media{position:relative;min-height:190px;overflow:hidden;border-radius:12px;background:var(--surface-2)}
.drop.dd .dd-fig{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .35s ease}
.drop.dd .dd-fig:first-child{opacity:1}
.drop.dd .dd-fig img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform .8s cubic-bezier(.16,1,.3,1)}
.drop.dd .dd-fig figcaption{position:absolute;inset:auto 0 0 0;display:grid;gap:3px;padding:44px 14px 12px;color:#fff;
  background:linear-gradient(180deg,transparent,rgb(10 10 31 / .6) 40%,rgb(10 10 31 / .88))}
.drop.dd .dd-fig b{font:700 14.5px/1.2 var(--display)}
.drop.dd .dd-fig span{font:500 12.5px/1.4 var(--sans);color:rgb(255 255 255 / .85)}
/* the hovered or focused link's photo takes over */
.drop.dd:has(.dd-list .m-item:nth-of-type(2):is(:hover,:focus-visible)) .dd-fig:first-child{opacity:0}
.drop.dd:has(.dd-list .m-item:nth-of-type(2):is(:hover,:focus-visible)) .dd-fig:nth-child(2){opacity:1}
.gnav-item:hover .drop.dd .dd-fig img{transform:scale(1)}
@media (max-width:1100px){.drop.dd.has-media{width:520px;grid-template-columns:minmax(0,1fr) 200px}}
.form .done.err{background:color-mix(in srgb,#DC2626 10%,var(--surface));color:color-mix(in srgb,#DC2626 75%,var(--ink))}
.form button[type="submit"]:disabled{opacity:.7;cursor:progress}

/* emailed forms outside the main enquiry cards: "Notify me" on Attend, and the concierge's small forms */
.notify-f{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;max-width:520px}
.notify-f input{flex:1 1 240px;min-height:48px;padding:0 16px;border-radius:12px;border:1px solid rgb(255 255 255 / .18);background:rgb(255 255 255 / .06);color:var(--on-night);font:inherit}
.notify-f input::placeholder{color:var(--on-night-2)}
.notify-f .done{flex-basis:100%;padding:10px 14px;border-radius:10px;font-size:14px;background:rgb(255 255 255 / .08);color:var(--on-night)}
.notify-f .done.err{background:rgb(220 38 38 / .18)}
.chat-mail{display:grid;gap:6px;margin-top:10px}
.chat-mail label{font-size:12.5px;font-weight:600}
.chat-mail input{min-height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit}
.chat-mail .btn{justify-self:start;margin-top:4px}
.chat-mail .done{padding:8px 12px;border-radius:10px;font-size:13.5px;background:var(--teal-soft)}
.chat-mail .done.err{background:color-mix(in srgb,#DC2626 10%,var(--surface))}

/* form validation: a red edge on the field and a short message right under it */
.f-err{display:flex;align-items:flex-start;gap:6px;margin-top:6px;font:500 13px/1.4 var(--sans);color:#B91C1C}
.f-err::before{content:"!";flex:none;display:grid;place-items:center;width:15px;height:15px;margin-top:1px;border-radius:50%;background:#DC2626;color:#fff;font:700 10px/1 var(--sans)}
.form [aria-invalid="true"],.chat-mail [aria-invalid="true"]{border-color:#DC2626;background:color-mix(in srgb,#DC2626 4%,var(--surface))}
.form [aria-invalid="true"]:focus,.chat-mail [aria-invalid="true"]:focus{outline-color:#DC2626;border-color:#DC2626}
.notify-f .f-err{flex-basis:100%;color:#FCA5A5}
.notify-f .f-err::before{background:#F87171;color:#0A0A1F}
.notify-f [aria-invalid="true"]{border-color:#F87171;background:rgb(248 113 113 / .08)}
.chat-mail .f-err{margin-top:-2px}

/* sent: a green success state. On the enquiry cards the fields give way to a centred panel; elsewhere a green line */
.form .done.ok,.notify-f .done.ok,.chat-mail .done.ok{display:flex;align-items:center;gap:10px;color:#065F46;
  background:linear-gradient(135deg,#ECFDF5,#D1FAE5);box-shadow:inset 0 0 0 1px #A7F3D0}
.ok-ic{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#10B981,#059669);
  box-shadow:0 6px 16px -6px rgb(5 150 105 / .7)}
.ok-ic svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;animation:ok-draw .5s .15s ease-out forwards}
@keyframes ok-draw{to{stroke-dashoffset:0}}
@keyframes ok-pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.form.is-sent > :not(.done){display:none}
.form.is-sent .done.ok{grid-column:1/-1;flex-direction:column;text-align:center;gap:10px;padding:40px 24px 34px;border-radius:18px;animation:mega-in .45s cubic-bezier(.16,1,.3,1) both}
.form.is-sent .ok-ic{width:64px;height:64px;margin-bottom:6px;animation:ok-pop .5s cubic-bezier(.16,1,.3,1) both;box-shadow:0 14px 32px -12px rgb(5 150 105 / .75),0 0 0 8px rgb(16 185 129 / .12)}
.form.is-sent .ok-ic svg{width:32px;height:32px}
.form.is-sent .done.ok b{font:750 22px/1.25 var(--display);color:#064E3B}
.form.is-sent .done.ok > span:not(.ok-ic){max-width:40ch;font-size:15px;line-height:1.55;color:#065F46}
.form.is-sent .ok-again{margin-top:8px;border-color:#6EE7B7;color:#065F46;background:#fff}
.form.is-sent .ok-again:hover{background:#ECFDF5}
.notify-f .done.ok{color:#D1FAE5;background:rgb(16 185 129 / .16);box-shadow:inset 0 0 0 1px rgb(110 231 183 / .35)}
/* the pages' older confirmation styles (a dot, left-aligned) give way to the success state */
body[data-page] .form .done.ok::before,body[data-page] .form .done.err::before{display:none}
body[data-page] .form .done.ok{align-items:center;border:0;color:#065F46;background:linear-gradient(135deg,#ECFDF5,#D1FAE5);box-shadow:inset 0 0 0 1px #A7F3D0}
body[data-page] .form.is-sent .done.ok{flex-direction:column;justify-content:center;text-align:center;padding:40px 24px 34px;border-radius:18px}
body[data-page] .form .done.err{border:0}
.form .cf-turnstile,.notify-f .cf-turnstile,.chat-mail .cf-turnstile{grid-column:1/-1;flex-basis:100%}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* phone fields: a compact country picker (flag + dialling code) joined to the number box */
.tel-wrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px}
.tel-cc{position:relative;display:grid;place-items:center;min-width:92px;padding:0 26px 0 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);
  font:600 15px/1 var(--sans);color:var(--ink);white-space:nowrap;cursor:pointer;transition:border-color .25s ease,box-shadow .3s ease}
.tel-cc::after{content:"";position:absolute;right:11px;top:50%;width:7px;height:7px;margin-top:-5px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg)}
.tel-cc select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:15px}
.tel-cc:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px color-mix(in srgb,var(--teal) 16%,transparent)}
.tel-wrap:has([aria-invalid="true"]) .tel-cc{border-color:#DC2626}
