/* WPS 2026 — shared stylesheet. Light is the default.
   The dark section holds ONLY the declarations that differ from light, so it does
   not outrank page-level overrides in inner.css. */

/* ===== FONTS ===== */
/* Museo 300 (Light) retired: 100-599 render Museo 500 (Regular). */
@font-face{font-family:'museo_sans';src:url('../fonts/museosans_500-webfont.woff2') format('woff2');font-weight:100 599;font-style:normal;font-display:swap}
@font-face{font-family:'museo_sans';src:url('../fonts/museosans_700-webfont.woff2') format('woff2');font-weight:600 900;font-style:normal;font-display:swap}
/* Museo 900 (Black) retired: weights 800-900 now render Museo 700 (Bold), the site's heaviest cut. */

/* ===== LIGHT (default) ===== */
:root{
  --bg:#F7FAFD;            
  --bg-deep:#EDF2F8;       
  --wps-dark:#023689;      /* primary brand blue */
  --wps-light:#009DD9;     /* brochure accent cyan, replacing the pantone-guideline #36A4DD */
  --wps-deep:#0E3178;      /* brochure's darker navy accent */
  --wps-teal:#00CEAF;      /* secondary brand teal */
  --teal-ink:#1C6F62;      /* teal for light surfaces — darkened to clear AA at small sizes */

  --w:#16213A;
  --w55:#5A6B85;           
  --w40:#7C8BA3;

  --glass:rgba(255,255,255,.72);
  --glass-hi:rgba(255,255,255,.92);
  --brd:#E0E9F4;
  --brd-hi:#C7D8EA;
  --card-brd:rgba(0,157,217,.32);      /* thin brand-blue outline — brochure's flat, no-shadow card language */
  --card-brd-hi:rgba(0,157,217,.55);

  --ink:#16213A;           
  --ink-dim:rgba(22,33,58,.45);
  --ink-soft:#5A5A72;
  --line:#E4E8F2;

  --shell:1240px;
  --r-xl:32px;
  --r-lg:28px;
  --r-md:20px;
  --r-sm:14px;
  --r-xs:8px;


  --f-d:'museo_sans',Tahoma,system-ui,sans-serif;
  --f-m:'museo_sans',Tahoma,system-ui,sans-serif;
  --ease:cubic-bezier(.22,.7,.2,1);

  --glow:0 0 32px rgba(0,157,217,.1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{font-family:var(--f-d);color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--wps-teal);outline-offset:3px;border-radius:8px}
::selection{background:rgba(0,157,217,.3)}

.wrap{max-width:var(--shell);margin:0 auto;width:100%}
.sect{padding:88px 28px}

h1,h2,h3{font-family:var(--f-d);font-weight:750;line-height:1.05;letter-spacing:-.025em}
.eyebrow{font-family:var(--f-m);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--wps-deep)}
.eyebrow--teal{color:var(--teal-ink)}
.h2{font-size:clamp(34px,4.6vw,58px);color:var(--ink);margin:16px 0 14px;font-weight:750}
.h2 em{font-style:normal;display:block;color:var(--wps-teal)}
.para{font-size:17px;color:var(--w55);line-height:1.6;max-width:620px}


.head--split{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:56px}
.head--split > div{max-width:640px}
.head--centre{text-align:center;max-width:700px;margin:0 auto 56px}
.head--centre .para{margin:0 auto}
.head--left{max-width:680px;margin-bottom:56px}


.btn{display:inline-flex;align-items:center;gap:10px;padding:16px 30px;border-radius:999px;font-weight:700;font-size:15px;white-space:nowrap;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:#023689;color:#fff;box-shadow:0 8px 24px rgba(2,54,137,.28)}
.btn--primary:hover{background:#0B4BAE;box-shadow:0 10px 28px rgba(2,54,137,.34)}
.btn--ghost{border:1px solid var(--brd-hi);color:var(--wps-dark);background:rgba(255,255,255,.55);backdrop-filter:blur(10px)}
.btn--ghost:hover{border-color:#9FBDD9;background:#fff}
.btn--dark{background:var(--wps-dark);color:#fff;box-shadow:0 8px 22px rgba(20,71,156,.28)}
.btn--dark:hover{background:#3B3790}
.btn .ar,.txtlink .ar{transition:transform .25s var(--ease)}
.btn:hover .ar,.txtlink:hover .ar{transform:translateX(4px)}
.txtlink{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--wps-dark);white-space:nowrap}
.txtlink .ar{color:var(--wps-light)}


.atmo{position:relative}
.atmo > *{position:relative;z-index:2}
.atmo::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(900px 520px at 82% 0%, rgba(0,157,217,.08), transparent 65%),
    radial-gradient(760px 500px at 8% 68%, rgba(20,71,156,.05), transparent 65%),
    radial-gradient(520px 380px at 60% 96%, rgba(0,157,217,.04), transparent 70%)}


.nav{position:fixed;top:16px;left:0;right:0;z-index:100;padding:0 20px;transition:top .4s var(--ease),padding .4s var(--ease)}

.nav.is-stuck{top:0;padding:0}
.nav__pill{max-width:var(--shell);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:10px 24px;border-radius:999px;background:rgba(7,6,26,.4);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:background .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease),max-width .4s var(--ease),border-radius .4s var(--ease),padding .4s var(--ease)}
.nav.is-stuck .nav__pill{max-width:100vw;border-radius:0;padding:10px 24px;background:rgba(255,255,255,.9);border-color:#D7E2F0;box-shadow:0 18px 42px rgba(20,71,156,.1),0 0 24px rgba(0,157,217,.04)}
.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
.brand img{height:30px;width:auto}
.brand .logo-on-light{display:none}
.nav.is-stuck .brand .logo-on-dark{display:none}
.nav.is-stuck .brand .logo-on-light{display:block}
.brand__sep{width:1px;height:22px;background:rgba(255,255,255,.22);transition:background .4s var(--ease)}
.nav.is-stuck .brand__sep{background:rgba(22,33,58,.16)}

.brand__dp{display:flex;align-items:center}
.nav__links{display:flex;align-items:center;gap:26px;font-weight:600;font-size:14px;color:rgba(255,255,255,.75);transition:color .4s var(--ease)}
.nav__links a{position:relative;padding:4px 0;white-space:nowrap;transition:color .25s var(--ease)}
/* The pill's own width is capped at --shell (1240px) no matter how wide the viewport
   gets, so the nine-item row plus both toggles never actually gains extra room above
   1330px — it only looked fine there because nothing had tested past a laptop screen.
   This spacing must stay in effect at every width from the burger breakpoint upward,
   not just up to an arbitrary desktop size, or the toggles spill out past the pill. */
@media (min-width:1181px){
  .nav__pill{gap:14px;padding:10px 18px}
  .nav__links{gap:13px;font-size:13px}
}
.nav__links a:hover{color:#fff}
.nav.is-stuck .nav__links{color:#3A4A66}
.nav.is-stuck .nav__links a:hover{color:var(--ink)}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:var(--wps-light);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease)}
.nav__links a:hover::after,.nav__links a:focus-visible::after{transform:scaleX(1)}
/* Current page marker */
.nav__links a[aria-current="page"]{color:#fff}
.nav.is-stuck .nav__links a[aria-current="page"]{color:var(--ink)}
.nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.nvi{position:relative;display:inline-flex;align-items:center}
.nvi__car{font-style:normal;font-size:8px;margin-left:5px;color:rgba(255,255,255,.4);transition:transform .25s var(--ease)}
.nvi:hover .nvi__car,.nvi:focus-within .nvi__car{transform:rotate(180deg)}
.nvi__dd{position:absolute;top:calc(100% + 16px);left:50%;transform:translate(-50%,8px);min-width:200px;padding:8px;border-radius:14px;background:rgba(10,9,32,.94);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 18px 42px rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;z-index:110}
.nvi__dd::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
.nvi:hover .nvi__dd,.nvi:focus-within .nvi__dd{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nvi__dd span,.nvi__dd a{display:block;padding:8px 14px;border-radius:9px;font-size:13px;font-weight:600;color:rgba(255,255,255,.72);cursor:pointer;white-space:nowrap;transition:background .2s var(--ease),color .2s var(--ease)}
.nvi__dd span:hover,.nvi__dd a:hover,.nvi__dd a:focus-visible{background:rgba(255,255,255,.08);color:#fff}
.nav.is-stuck .nvi__dd{background:rgba(255,255,255,.96);border-color:#D7E2F0;box-shadow:0 18px 42px rgba(20,71,156,.14)}
.nav.is-stuck .nvi__dd span,.nav.is-stuck .nvi__dd a{color:#3A4A66}
.nav.is-stuck .nvi__dd span:hover,.nav.is-stuck .nvi__dd a:hover,.nav.is-stuck .nvi__dd a:focus-visible{background:rgba(20,71,156,.07);color:var(--ink)}
.nav.is-stuck .nvi__car{color:rgba(58,74,102,.55)}
.nav__end{display:flex;align-items:center;gap:16px}


.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding:150px 28px 90px}
.hero__vid{position:absolute;inset:0;z-index:1;overflow:hidden}
.hero__vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform}

.hero__veil{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(247,250,253,0) 0%,rgba(247,250,253,0) 72%,rgba(247,250,253,.55) 87%,rgba(247,250,253,.96) 97%,var(--bg) 100%),
    linear-gradient(180deg,rgba(7,6,26,.62) 0%,rgba(7,6,26,.5) 34%,rgba(7,6,26,.72) 68%,rgba(7,6,26,.85) 100%)}
.hero__tint{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(1100px 640px at 24% 42%, rgba(20,71,156,.3), transparent 68%)}
.hero__in{position:relative;z-index:4;max-width:var(--shell);margin:0 auto;width:100%}
.hero__col{max-width:1180px}
/* Plain eyebrow label, not a boxed badge — matches the unboxed eyebrow treatment
   used above every other section heading on the page (Router, About, Stats…). */
.hero__eyebrow{font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.92);text-shadow:0 1px 14px rgba(0,0,0,.4);margin-bottom:22px}
.hero h1{font-size:clamp(54px,8.6vw,104px);font-weight:750;line-height:.96;letter-spacing:-.04em;color:#fff;margin-bottom:28px}
.hero h1 em{font-style:normal;display:block}
.hero h1 .dim{color:var(--wps-teal)}
.hero h1 .grad{color:#fff}
.hero__p{font-size:clamp(17px,1.9vw,21px);line-height:1.55;color:rgba(255,255,255,.55);max-width:560px;margin-bottom:34px}
.hero__p strong{color:#fff;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:46px}
.chip{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:var(--r-sm);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:14px;font-weight:600;color:#fff}
.chip i{display:inline-flex;flex-shrink:0;color:rgba(255,255,255,.8)}
.chip i svg{width:15px;height:15px;display:block}
.hero__row{display:flex;flex-wrap:wrap;align-items:center;gap:30px}
.hero__actions{display:flex;align-items:center;gap:14px;flex-wrap:nowrap}
.cd__wrap{display:flex;flex-direction:column;gap:10px}
.cd__cap{font-family:var(--f-m);font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.cd{display:flex;gap:10px}
.cd__u{text-align:center;min-width:82px;padding:14px 10px 12px;border-radius:18px;background:rgba(7,6,26,.28);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.cd__n{font-family:var(--f-m);font-size:clamp(28px,3.6vw,40px);font-weight:600;color:#fff;line-height:1;font-variant-numeric:tabular-nums}
.cd__l{font-family:var(--f-m);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-top:8px}
.scroll{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:9px;color:var(--w40)}
.scroll span:first-child{font-family:var(--f-m);font-size:9px;letter-spacing:.26em}
.mouse{width:22px;height:34px;border:1.5px solid rgba(22,33,58,.3);border-radius:12px;position:relative;display:block}
.mouse::after{content:"";position:absolute;left:50%;top:7px;transform:translateX(-50%);width:3px;height:7px;border-radius:2px;background:var(--wps-teal);animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translate(-50%,0)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,12px)}}


.router{position:relative;padding:88px 28px;overflow:hidden}
.router__in{position:relative;max-width:var(--shell);margin:0 auto}
.router__head{max-width:700px;margin-bottom:56px}
.router__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:28px;align-items:stretch}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.tile{display:flex;flex-direction:column;text-align:left;padding:20px;border-radius:var(--r-md);border:1px solid var(--card-brd);background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);min-height:138px;transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}
.tile:hover{background:var(--glass-hi);border-color:var(--card-brd-hi);transform:translateY(-3px)}
.tile__ic{width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;border-radius:15px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.14);margin-bottom:10px}
.tile__ic img{width:42px;height:42px;object-fit:contain;display:block}
.tile__n{font-family:var(--f-m);font-size:11px;font-weight:500;letter-spacing:.14em;color:#8CA0B8}
.tile__l{display:block;margin-top:auto;font-weight:700;font-size:18px;line-height:1.15;color:var(--ink)}
.tile__r{display:block;font-size:12.5px;color:var(--w55);margin-top:5px}
.tile[aria-selected="true"]{background:var(--wps-dark);border-color:var(--wps-dark);transform:translateY(-3px)}
.tile[aria-selected="true"] .tile__n{color:rgba(255,255,255,.55)}
.tile[aria-selected="true"] .tile__l{color:#fff}
.tile[aria-selected="true"] .tile__r{color:rgba(255,255,255,.75)}
.panel{position:relative;border-radius:var(--r-lg);padding:44px;background:radial-gradient(560px 340px at 92% -6%,rgba(64,189,168,.16),transparent 60%),radial-gradient(520px 360px at 4% 108%,rgba(0,157,217,.2),transparent 62%),linear-gradient(155deg,#FFFFFF,#F2F7FC 55%,#E9F1F9);border:1px solid var(--card-brd);overflow:hidden}
.panel__body{position:relative;z-index:2;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.panel__body.is-out{opacity:0;transform:translateY(10px)}
.panel__k{display:inline-block;font-family:var(--f-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal-ink);margin-bottom:12px}
.panel h3{color:var(--ink);font-size:clamp(24px,2.4vw,30px);line-height:1.12;margin-bottom:14px;font-weight:750}
.panel__p{color:var(--w55);font-size:15.5px;line-height:1.6;margin-bottom:24px}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.fact{font-family:var(--f-m);font-size:11px;color:#46587A;border:1px solid #D7E4F2;border-radius:var(--r-sm);padding:7px 13px;background:rgba(255,255,255,.55)}
.rows{display:flex;flex-direction:column;gap:11px}
.row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid var(--brd);font-weight:600;font-size:15px;color:var(--ink);transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}
.row:hover{background:#fff;border-color:var(--brd-hi);transform:translateX(4px)}
.row .ar{color:var(--teal-ink);font-size:18px;transition:transform .25s var(--ease)}
.row:hover .ar{transform:translateX(4px)}
.row--go{background:var(--wps-light);border-color:var(--wps-light);color:#fff;box-shadow:0 8px 22px rgba(0,157,217,.18)}
.row--go:hover{background:#54B8E8}
.row--go .ar{color:#fff}
.router__else{margin-top:28px;font-size:14px;color:var(--w40)}
.router__else a{color:var(--wps-deep);font-weight:600;border-bottom:1px solid rgba(14,49,120,.3)}


.about__grid{max-width:var(--shell);margin:0 auto;display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}
.about p.body{font-size:17.5px;line-height:1.68;color:var(--w55);margin-bottom:20px}
.about p.body strong{color:var(--ink);font-weight:600}
.callout{display:flex;align-items:center;gap:16px;padding:20px 24px;border:1px solid #CFE4F4;border-radius:var(--r-md);background:rgba(0,157,217,.06);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);margin-top:14px}
.callout__i{width:60px;height:60px;flex:none;border-radius:16px;background:#fff;border:1px solid rgba(0,157,217,.3);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.callout__i img{width:44px;height:44px;object-fit:contain}
.callout p{font-size:14px;line-height:1.55;color:var(--w55)}
.callout strong{color:var(--ink)}
.about__art{position:relative}

.about__ph{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 30px 70px rgba(20,71,156,.16),var(--glow)}
.about__ph img{display:block;width:100%;height:auto}
.about__ph::after{content:"";position:absolute;inset:0;background:linear-gradient(165deg,rgba(20,71,156,.18),rgba(14,49,120,.08) 55%,rgba(20,71,156,.16));mix-blend-mode:multiply}
.about__ph::before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(200deg,rgba(0,157,217,.1),transparent 45%)}
.float-card{position:absolute;bottom:26px;left:-22px;z-index:3;border-radius:var(--r-md);padding:18px 24px;background:rgba(255,255,255,.86);border:1px solid var(--brd);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 18px 42px rgba(20,71,156,.14)}
.float-card b{display:block;font-family:var(--f-d);font-weight:800;font-size:28px;color:var(--ink);line-height:1}
.float-card span{font-family:var(--f-m);font-size:11px;color:var(--w55);letter-spacing:.06em}


.stats{padding:0 24px}
.stats__panel{position:relative;max-width:1400px;margin:0 auto;border-radius:var(--r-xl);overflow:hidden;padding:88px 72px;box-shadow:0 42px 100px rgba(0,0,0,.35)}
.stats__bg{position:absolute;inset:0}
.stats__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stats__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(165deg,rgba(7,6,26,.88) 0%,rgba(20,71,156,.72) 52%,rgba(14,49,120,.85) 100%)}
.stats__in{position:relative;z-index:2}
.stats__head{max-width:640px;margin-bottom:70px}
.stats__head .h2{margin-bottom:0}

.stats__panel .h2{color:#fff}
.stats__panel .h2 em{color:var(--wps-teal)}
.stats__panel .eyebrow{color:#9BD6F7}
.stats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 40px}
.stat{border-left:1px solid rgba(255,255,255,.18);padding-left:26px}
.stat__n{font-family:var(--f-m);font-size:clamp(44px,5vw,72px);font-weight:600;color:#fff;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.stat__n sup{color:var(--wps-teal);font-size:.42em;position:relative;top:-.9em;left:.06em}
.stat__l{font-family:var(--f-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:14px;line-height:1.5}

.speakers{padding:88px 24px}
.white-panel{max-width:1400px;margin:0 auto;background:#fff;border:1px solid #E4EAF4;border-radius:var(--r-xl);padding:88px 72px;color:var(--ink);box-shadow:0 30px 80px rgba(20,71,156,.08)}
.white-panel .eyebrow{color:var(--wps-deep)}
.white-panel .h2{color:var(--ink)}
.white-panel .h2 em{color:#00A896}
#spkH em{display:inline}
.white-panel .para{color:var(--ink-soft)}
.white-panel .txtlink{color:var(--wps-dark)}
.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:44px}
.tab{padding:11px 20px;border-radius:var(--r-sm);border:1px solid var(--line);background:#fff;font-size:13.5px;font-weight:600;color:#4a4a63;transition:all .25s var(--ease)}
.tab:hover{border-color:var(--wps-light);color:var(--wps-dark)}
.tab[aria-selected="true"]{background:var(--wps-dark);border-color:var(--wps-dark);color:#fff;box-shadow:0 6px 16px rgba(20,71,156,.18)}
.spk__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.spk__more{text-align:center;margin-top:48px}
.spk{border:1px solid var(--card-brd);border-radius:var(--r-md);overflow:hidden;background:#fff;transition:transform .35s var(--ease),border-color .35s var(--ease)}
.spk:hover{transform:translateY(-5px);border-color:var(--card-brd-hi)}
.spk__ph{position:relative;aspect-ratio:1/1;overflow:hidden;background:linear-gradient(160deg,#E8EFF9,#D4E3F4)}
.spk__ph img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .6s var(--ease)}
.spk:hover .spk__ph img{transform:scale(1.04)}
.spk__badge{position:absolute;top:12px;left:12px;z-index:5;background:rgba(20,71,156,.92);color:#fff;font-family:var(--f-m);font-size:9.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:6px 11px;border-radius:var(--r-xs);backdrop-filter:blur(6px)}
.spk__b{padding:20px 20px 22px}
.spk__n{font-weight:700;font-size:16px;color:var(--ink);line-height:1.22}
.spk__r{font-size:13.5px;color:var(--ink-soft);margin-top:5px;line-height:1.4}
.spk__o{font-size:13px;color:var(--wps-deep);font-weight:600;margin-top:7px}
/* Country name row — the flag now sits right next to the name it belongs to,
   instead of floating as a corner chip on the photo. */
.spk__c{display:flex;align-items:center;gap:6px;font-family:var(--f-m);font-size:10.5px;color:#8a8a9e;margin-top:9px;letter-spacing:.08em;text-transform:uppercase}
.spk__flag{flex:none;width:16px;height:11px;border-radius:2px;background-color:rgba(0,0,0,.06);background-size:cover;background-position:center;box-shadow:0 1px 3px rgba(0,0,0,.25);border:1px solid rgba(0,0,0,.08)}
.home .spk__grid{align-items:stretch}
.home .spk{display:flex;flex-direction:column;align-self:stretch}
.home .spk__ph{flex:none}
.home .spk__b{display:flex;flex-direction:column;padding:20px 20px 22px}
.home .spk__n{min-height:0;font-size:17px;line-height:1.22}
.home .spk__r{min-height:0;margin-top:12px;line-height:1.4}
.home .spk__o{min-height:0;margin-top:12px;line-height:1.45}
.home .spk__c{margin-top:16px;padding-top:0}
html[dir="rtl"] .home .spk__b{text-align:right}
html[dir="rtl"] .home .spk__c{justify-content:flex-start}


.seg{display:flex;justify-content:center;margin-bottom:52px}
.seg__in{display:inline-flex;gap:4px;padding:5px;background:rgba(255,255,255,.72);border:1px solid var(--brd);border-radius:var(--r-sm);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.seg button{padding:12px 26px;border-radius:var(--r-sm);font-size:14px;font-weight:700;color:var(--w55);transition:all .3s var(--ease)}
.seg button:hover{color:var(--ink)}
.seg button[aria-selected="true"]{background:var(--wps-dark);color:#fff;box-shadow:0 5px 16px rgba(20,71,156,.22)}
.pane[hidden]{display:none}

.trk__grid{display:grid;grid-template-columns:1.15fr 1fr;gap:26px;align-items:stretch}

.trk__list{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}
.trk__b{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-sm);border:1px solid var(--brd);background:var(--glass);text-align:left;transition:all .25s var(--ease)}
.trk__b:hover{border-color:var(--brd-hi);background:var(--glass-hi)}
.trk__b span:first-child{flex:0 0 56px;width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.14)}
.trk__b span:first-child img,.trk__b span:first-child svg{width:40px;height:40px;object-fit:contain;display:block}
.trk__b span:last-child{font-weight:600;font-size:14.5px;line-height:1.3;color:#2C3A55}
.trk__b[aria-selected="true"]{background:var(--wps-dark);border-color:var(--wps-dark);box-shadow:0 8px 18px rgba(20,71,156,.18)}
.trk__b[aria-selected="true"] span:first-child{color:rgba(255,255,255,.7)}
.trk__b[aria-selected="true"] span:last-child{color:#fff}
.trk__card{position:relative;border-radius:var(--r-lg);padding:52px;background:#fff;color:var(--ink);overflow:hidden;min-height:460px;border:1px solid var(--card-brd);display:flex;flex-direction:column;justify-content:center}
.trk__in{position:relative;z-index:2;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.trk__in.is-out{opacity:0;transform:translateY(10px)}
.trk__ghost{font-family:var(--f-m);font-size:clamp(56px,6vw,84px);font-weight:600;line-height:1;letter-spacing:-.04em;background:linear-gradient(120deg,rgba(0,157,217,.8),rgba(20,71,156,.35));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:8px}
.trk__card h3{font-size:clamp(24px,2.6vw,34px);line-height:1.12;margin-bottom:18px;font-weight:750;color:var(--ink)}
.trk__card p{font-size:16.5px;line-height:1.62;color:var(--w55);margin-bottom:30px;max-width:520px}
.trk__card p.trk__meta{font-family:var(--f-m);font-size:12px;letter-spacing:.06em;color:var(--teal-ink);margin:-16px 0 26px;font-weight:600}
html[data-theme="dark"] .trk__card p.trk__meta{color:var(--wps-teal)}

.exp__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.exp{background:#fff;border:1px solid var(--card-brd);border-radius:var(--r-md);padding:26px 24px;transition:transform .3s var(--ease),border-color .3s var(--ease)}
.exp:hover{transform:translateY(-4px);border-color:var(--card-brd-hi)}
.exp__ic{display:flex;align-items:center;justify-content:center;flex:0 0 56px;width:56px;height:56px;border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.14);margin-bottom:14px}
.exp__ic svg{width:40px;height:40px}
.exp__tag{display:inline-block;margin-bottom:16px;font-family:var(--f-m);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#1F6FA8;background:rgba(0,157,217,.1);border:1px solid rgba(0,157,217,.3);border-radius:var(--r-xs);padding:6px 11px}
.exp__tag[data-t="invite"]{color:var(--teal-ink);background:rgba(64,189,168,.08);border-color:rgba(64,189,168,.35)}
.exp__tag[data-t="delegate"]{color:var(--wps-dark);background:rgba(20,71,156,.06);border-color:rgba(20,71,156,.18)}
.exp h3{font-size:16.5px;color:var(--ink);font-weight:700}
.exp p{margin-top:9px;font-size:13.5px;color:var(--w55);line-height:1.55}

.awd__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:40px}
.awd{background:#fff;border:1px solid var(--card-brd);border-radius:var(--r-md);padding:22px 20px;text-align:left;display:flex;align-items:center;gap:15px;transition:transform .3s var(--ease),border-color .3s var(--ease)}
.awd:hover{transform:translateY(-4px);border-color:var(--card-brd-hi)}
.awd__i{width:48px;height:48px;flex:none;display:flex;align-items:center;justify-content:center}
.awd__i img{width:100%;height:auto;display:block}
.awd span:last-child{font-weight:600;font-size:14.5px;color:#22304C;line-height:1.3}


/* Supported By — single-logo showcase (Ministry of Interior), below the About section,
   styled like the site's other white logo cards (e.g. .plogo) rather than a bare image. */
.supp__row{display:flex;justify-content:center}
.supp-logo{background:#fff;border:1px solid var(--card-brd);border-radius:20px;padding:32px 56px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px rgba(20,71,156,.07)}
.supp-logo img{max-height:100px;max-width:240px;object-fit:contain;display:block}
/* Supported by — dark card, same treatment as the 2025 stats panel */
.supp{margin-bottom:32px}
.supp__head{max-width:700px;margin:0 auto 48px;text-align:center}
.supp__panel .supp-logo{border-color:transparent;box-shadow:0 18px 44px rgba(0,0,0,.28)}
.supp__panel .pcar__label{color:rgba(255,255,255,.6)}

/* Partners & Sponsors — two independent infinite-scroll logo carousels, same technique
   as the hero .marquee ticker (duplicated track, animate to -50%, pause on hover). */
.pcar__group{margin-bottom:36px}
.pcar__group:last-child{margin-bottom:0}
.pcar__label{display:block;font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--w40);text-align:center;margin-bottom:18px}
.pcar{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.pcar__track{display:flex;width:max-content;gap:14px;animation:pcarScroll 75s linear infinite}
.pcar__track--reverse{animation-name:pcarScrollReverse}
.pcar:hover .pcar__track{animation-play-state:paused}
@keyframes pcarScroll{to{transform:translateX(-50%)}}
@keyframes pcarScrollReverse{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.plogo{flex:none;background:#fff;border:1px solid var(--card-brd);border-radius:16px;padding:14px 22px;display:flex;align-items:center;justify-content:center;min-height:74px;min-width:140px;transition:transform .3s var(--ease),border-color .3s var(--ease)}
.plogo:hover{transform:translateY(-4px);border-color:var(--card-brd-hi)}
.plogo img{max-height:36px;max-width:120px;width:auto;height:auto;object-fit:contain}
.banner{position:relative;margin-top:64px;border-radius:var(--r-lg);padding:48px;background:linear-gradient(130deg,rgba(0,157,217,.12),rgba(255,255,255,.7) 60%,rgba(20,71,156,.06));border:1px solid var(--card-brd);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px;overflow:hidden;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.banner::before{content:"";position:absolute;inset:-30%;pointer-events:none;opacity:.55;
  background:repeating-radial-gradient(circle at 80% 0%,rgba(20,71,156,0) 0 20px,rgba(20,71,156,.035) 20px 21px)}
.banner__t{position:relative;max-width:580px}
.banner h3{color:var(--ink);font-size:clamp(22px,2.6vw,30px);line-height:1.15;margin-bottom:10px;font-weight:750}
.banner p{color:var(--w55);font-size:15.5px;line-height:1.55}
.banner .btn{position:relative}


/* Exhibition — three organised sections (Exhibitors / Startups / Academics), icon-only
   tiles (logo links out to the company site; name is the title-attribute tooltip). */
.ex__group{margin-bottom:40px}
.ex__group:last-child{margin-bottom:0}
.ex__groupLabel{font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--w40);margin-bottom:16px}
.ex__empty{font-size:13.5px;color:var(--w40);padding:18px 0}
.ex__grid{display:grid;grid-template-columns:repeat(8,1fr);gap:12px}
.head__btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.ex{display:flex;align-items:center;justify-content:center;border:1px solid var(--card-brd);border-radius:var(--r-sm);padding:14px;background:#fff;min-height:64px;transition:transform .3s var(--ease),border-color .3s var(--ease)}
.ex:hover{transform:translateY(-4px);border-color:var(--card-brd-hi)}
.ex__i{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.ex__i img{max-width:100%;max-height:32px;object-fit:contain;display:block}


.awards{padding:88px 24px}
.awards__panel{position:relative;max-width:var(--shell);margin:0 auto;border-radius:var(--r-xl);overflow:hidden;padding:84px 72px;
  background:#181c4d;
  border:1px solid rgba(64,189,168,.16);box-shadow:0 34px 80px rgba(0,0,0,.28),0 0 37px rgba(64,189,168,.04)}

/* The trophy photo already carries its own full teal-to-blue gradient backdrop, so it's
   used as a single uniform cover image rather than being pieced together with separate
   synthetic side-gradients (that approach left a visible seam where the two didn't match). */
.awards__panel::before{content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(10,9,37,.42) 0%,rgba(10,9,37,.14) 26%,rgba(10,9,37,0) 42%),
    url('../images/wps-award-trophy-wide.png') 20% center/cover no-repeat}
.awards__panel::after{content:"";position:absolute;inset:-30%;pointer-events:none;opacity:.5;
  background:repeating-radial-gradient(circle at 12% 100%,rgba(64,189,168,0) 0 23px,rgba(64,189,168,.05) 23px 24px)}
.awards__in{position:relative;z-index:2;display:grid;grid-template-columns:1.02fr 280px .55fr;gap:40px;align-items:center}
.awards h2{color:#fff;font-size:clamp(32px,4.4vw,54px);margin:16px 0 18px;font-weight:750}
.awards h2 em{font-style:normal;display:block;color:#4FE3CF}
.awards__p{color:var(--w55);font-size:17px;line-height:1.62;margin-bottom:34px;max-width:520px}
.awards__p strong{color:#fff}
.awards__cta{display:flex;flex-wrap:wrap;gap:14px}
.astat__grid{grid-column:3;display:grid;grid-template-columns:1fr;gap:14px}
.astat{background:rgba(7,6,26,.55);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md);padding:28px 26px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.astat b{display:block;font-family:var(--f-m);font-size:clamp(26px,3vw,36px);font-weight:600;color:#fff;line-height:1;letter-spacing:-.02em}
.astat span{display:block;font-family:var(--f-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:11px;line-height:1.5}
.astat--hero{grid-column:1 / -1;display:flex;align-items:center;gap:28px;background:rgba(3,36,40,.6);border-color:rgba(64,189,168,.25)}
.astat--hero b{font-size:clamp(64px,6.5vw,104px);background:linear-gradient(120deg,#4FE3CF 0%,#9BD6F7 60%,#fff 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.astat--hero span{margin-top:0;font-size:11.5px;color:rgba(255,255,255,.65)}

.awards .eyebrow--teal{color:var(--wps-teal)}
.awards .btn--ghost{border-color:rgba(255,255,255,.28);color:#fff;background:rgba(255,255,255,.04)}
.awards .btn--ghost:hover{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.1)}


.voices{padding:88px 28px}
.voices__in{max-width:1150px;margin:0 auto}
.voice__card{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:620px;display:flex;align-items:center;border:1px solid var(--brd);background:#fff}
.voice__bg{position:absolute;inset:0}
.voice__bg img{width:55%;height:100%;object-fit:cover;object-position:top center}
.voice__bg img.voice__portrait--cutout{position:absolute;left:0;bottom:0;width:52%;height:92%;object-fit:contain;object-position:center bottom}
.voice__fade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 18%,rgba(255,255,255,.92) 52%,#fff 68%)}
.voice__body{position:relative;min-width:0;margin-left:auto;width:57%;padding:48px 56px 48px 0;text-align:left}
.voice__mark{font-family:Georgia,serif;font-size:64px;line-height:.6;color:var(--wps-light);margin:34px 0 20px}
.voice__w{transition:opacity .45s var(--ease),transform .45s var(--ease)}
.voice__w.is-out{opacity:0;transform:translateY(8px)}
.voice__q{font-family:var(--f-d);font-size:clamp(19px,1.7vw,24px);line-height:1.45;color:var(--ink);font-weight:500;min-height:270px;overflow:visible;letter-spacing:-.014em}
.voice__n{font-weight:800;font-size:17px;color:var(--ink);margin-top:24px}
.voice__r{font-size:14px;color:var(--w55);margin-top:4px}
.voices .dots{justify-content:flex-start}
@media (max-width:840px){
  .voice__card{height:auto;min-height:490px}
  .voice__bg img{width:100%;opacity:.35}
  .voice__bg img.voice__portrait--cutout{width:100%;height:100%;object-position:center bottom;opacity:.28}
  .voice__fade{background:rgba(255,255,255,.8)}
  .voice__body{width:100%;padding:44px 26px}
  .voice__q{height:auto;min-height:0;overflow:visible}
}
.dots{display:flex;justify-content:center;gap:9px;margin-top:34px}
.dot{width:8px;height:8px;border-radius:50%;background:#C9D6E6;transition:all .3s var(--ease)}
.dot:hover{background:#A9BDD4}
.dot[aria-current="true"]{background:var(--wps-light);width:28px;border-radius:999px;box-shadow:0 0 7px rgba(0,157,217,.25)}


.venue__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:26px;align-items:stretch}
.zones{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.zone{text-align:left;padding:22px;border-radius:var(--r-md);border:1px solid var(--card-brd);background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:all .25s var(--ease)}
.zone:hover{border-color:var(--brd-hi);transform:translateY(-2px);background:var(--glass-hi)}
.zone__z{font-family:var(--f-m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--w40)}
.zone__n{display:block;font-weight:700;font-size:16px;margin-top:7px;line-height:1.22;color:var(--ink)}
.zone[aria-selected="true"]{background:var(--wps-dark);border-color:var(--wps-dark)}
.zone[aria-selected="true"] .zone__z{color:rgba(255,255,255,.7)}
.zone[aria-selected="true"] .zone__n{color:#fff}
.venue__card{position:relative;border-radius:var(--r-lg);overflow:hidden;color:#fff;padding:44px;display:flex;flex-direction:column;justify-content:flex-end;min-height:380px;border:1px solid var(--card-brd)}
.venue__card > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.venue__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,71,156,.35) 0%,rgba(7,6,26,.55) 45%,rgba(14,49,120,.92) 100%)}
.venue__b{position:relative;z-index:2;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.venue__b.is-out{opacity:0;transform:translateY(8px)}
.venue__k{font-family:var(--f-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--wps-teal);margin-bottom:12px;display:block}
.venue__card h3{font-size:clamp(22px,2.4vw,28px);line-height:1.12;margin-bottom:12px;font-weight:750}
.venue__card p{font-size:15px;line-height:1.6;color:rgba(255,255,255,.75);margin-bottom:24px}


.reg{position:relative;padding:96px 28px;overflow:hidden}
.reg::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(1000px 560px at 50% 0%, rgba(0,157,217,.09), transparent 65%),
    radial-gradient(700px 480px at 85% 90%, rgba(20,71,156,.06), transparent 65%),
    radial-gradient(560px 400px at 12% 78%, rgba(0,157,217,.05), transparent 70%)}
.reg__in{position:relative;max-width:var(--shell);margin:0 auto;z-index:2}
.reg__head{text-align:center;max-width:680px;margin:0 auto 60px}
.reg h2{color:var(--ink);font-size:clamp(34px,4.8vw,58px);line-height:1.04;margin:16px 0 14px;font-weight:750}
.reg__head .para{margin:0 auto}
.pass__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}
/* All five passes in a single row on wide screens — the grid otherwise
   wraps 2-up once minmax(250px) no longer divides the shell evenly. */
@media (min-width:1150px){
  .pass__grid{grid-template-columns:repeat(5,1fr);gap:14px}
  .pass{padding:26px 18px}
  .pass__n{font-size:15.5px}
  .pass__p{font-size:28px;margin:10px 0 4px}
  .pass__vat{font-size:9.5px}
  .pass__onsite{font-size:11px}
  .pass__f{font-size:12px;margin-bottom:16px}
  .pass ul{gap:9px;margin-bottom:20px}
  .pass li{font-size:12.5px;gap:7px}
  .pass__badge{font-size:8.5px;padding:5px 9px;top:14px;right:14px}
  .pass .btn{padding:14px 12px;font-size:13px;min-height:0}
  .pass--visitor .vpass__i{width:38px;height:38px;margin-bottom:12px}
  .pass--visitor .vpass__i svg{width:19px;height:19px}
  .pass--visitor .vpass__h{font-size:13.5px}
  .pass--visitor .vpass__p{font-size:11.5px;margin-bottom:18px}
}
.pass{position:relative;display:flex;flex-direction:column;padding:36px 30px;border-radius:24px;background:var(--glass);border:1px solid var(--card-brd);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform .35s var(--ease),border-color .35s var(--ease)}
.pass:hover{transform:translateY(-5px);border-color:var(--card-brd-hi)}

.pass--hero{background:linear-gradient(155deg,var(--wps-dark),var(--wps-deep));border-color:transparent;box-shadow:0 0 18px rgba(20,71,156,.1),0 12px 28px rgba(20,71,156,.16)}
.pass--hero:hover{box-shadow:0 0 24px rgba(20,71,156,.13),0 16px 34px rgba(20,71,156,.19)}
.pass__badge{position:absolute;top:18px;right:18px;background:var(--wps-teal);color:#04222b;font-family:var(--f-m);font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:var(--r-xs);box-shadow:0 0 10px rgba(64,189,168,.2)}
.pass__n{font-weight:700;font-size:18px;color:var(--ink)}
.pass--hero .pass__n{color:#fff}
.pass__p{font-family:var(--f-d);font-weight:700;font-size:38px;margin:12px 0 5px;color:var(--ink);line-height:1;letter-spacing:-.02em}
.pass--hero .pass__p{color:#fff}
.pass__vat{display:block;font-family:var(--f-d);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-ink);margin-top:6px}
.pass__onsite{font-size:12.5px;color:var(--w55);margin:2px 0 8px}
.reg__rates{max-width:760px;margin:56px auto 0;text-align:center;font-size:13.5px;line-height:1.65;color:var(--w55)}
.reg__rates a{color:var(--wps-deep);font-weight:600}
.reg__rates strong{color:var(--ink);font-weight:700}
.pass__f{font-size:13.5px;color:var(--w55);margin-bottom:24px}
.pass--hero .pass__onsite{color:rgba(255,255,255,.68)}
.pass--hero .pass__f{color:rgba(255,255,255,.6)}
.pass ul{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:30px}
.pass li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;color:#46587A;line-height:1.45}
.pass--hero li{color:rgba(255,255,255,.78)}
.pass li i{font-style:normal;color:var(--teal-ink);font-weight:800;flex:none}
.pass--hero li i{color:var(--wps-teal)}
.pass li.pass__no{color:var(--w40)}
.pass li.pass__no i{color:#D6455A}
.pass .btn{margin-top:auto;justify-content:center;width:100%}
/* This card's own background is now the same navy as the default button —
   keep this one CTA white so it doesn't disappear against its own card. */
.pass--hero .btn--primary{background:#fff;color:var(--wps-dark);box-shadow:0 8px 22px rgba(0,0,0,.18)}
.pass--hero .btn--primary:hover{background:#EAF2FB}

/* Visitor pass, folded into the same card stack as the paid passes —
   keeps its own gradient tint and leading icon so it still reads as the
   free-entry option, but shares the .pass card's chrome, sizing and hover. */
.pass--visitor{background:#fff}
.pass--visitor .vpass__i{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);background:#fff;border:1px solid rgba(0,157,217,.3);color:var(--wps-dark);margin-bottom:18px}
.pass--visitor .vpass__i svg{width:22px;height:22px}
.pass--visitor .vpass__h{font-size:15px;font-weight:750;color:var(--ink);line-height:1.3;margin-bottom:6px}
.pass--visitor .vpass__p{font-size:13px;line-height:1.55;color:var(--w55);margin-bottom:26px}
html[data-theme="dark"] .pass--visitor{background:linear-gradient(150deg,rgba(0,157,217,.16),rgba(20,71,156,.22) 60%,rgba(14,49,120,.18))}
html[data-theme="dark"] .pass--visitor .vpass__i{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(0,157,217,.4)}
html[data-theme="dark"] .pass--visitor .vpass__h{color:#fff}


.foot{position:relative;background:var(--bg-deep);color:var(--w55);padding:clamp(48px,5vw,64px) 28px 40px}
.foot::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(0,157,217,.35) 50%,transparent 100%);
  box-shadow:0 0 12px rgba(0,157,217,.15)}
.foot__grid{max-width:var(--shell);margin:0 auto;display:grid;grid-template-columns:1.45fr 1fr 1fr 1.25fr auto;gap:clamp(30px,3.2vw,48px);padding-bottom:44px;border-bottom:1px solid rgba(22,33,58,.1)}
.foot h4{color:#2C3A55;font-family:var(--f-m);font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px}
.foot ul{list-style:none;display:flex;flex-direction:column;gap:11px;font-size:14px}
.foot__contact-p{font-size:14px;color:var(--w55);margin-bottom:11px}
.foot a{color:var(--w55);transition:color .25s var(--ease)}
.foot a:hover{color:var(--wps-deep)}
.foot__logo img{height:36px;width:auto}
.foot__brand{display:flex;align-items:center;gap:16px}
.foot__sep{width:1px;height:26px;background:rgba(22,33,58,.14)}

.foot__dp{display:flex;align-items:center}
.foot__dp img{height:32px;width:auto}
.foot__org a{display:inline-block}
.foot__org-logo{height:72px;width:auto;display:block}
.foot__org-logo--dark{display:none}
html[data-theme="dark"] .foot__org-logo--light{display:none}
html[data-theme="dark"] .foot__org-logo--dark{display:block}
.foot__p{font-size:14px;line-height:1.65;max-width:320px;margin:22px 0 14px}
.foot__d{font-family:var(--f-m);font-size:11.5px;color:var(--w40);letter-spacing:.06em}
.social{display:flex;gap:10px;margin-top:22px}
.social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(22,33,58,.18);display:flex;align-items:center;justify-content:center;color:#3A4A66;transition:all .25s var(--ease)}
.social a svg{width:16px;height:16px;fill:currentColor;display:block}
.social a:hover{background:var(--wps-light);border-color:var(--wps-light);color:#04243c;box-shadow:0 0 12px rgba(0,157,217,.2)}
.foot__podcast{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px}
.foot__podcast-label{font-family:var(--f-m);font-size:9.5px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:#2C3A55}
.foot__podcast-links{display:flex;gap:8px}
.foot__podcast-links a{width:32px;height:32px;border-radius:50%;border:1px solid rgba(22,33,58,.18);display:flex;align-items:center;justify-content:center;color:#3A4A66;transition:all .25s var(--ease)}
.foot__podcast-links svg{width:15px;height:15px;fill:currentColor;display:block}
.foot__podcast-links a:hover{background:var(--wps-light);border-color:var(--wps-light);color:#04243c;box-shadow:0 0 12px rgba(0,157,217,.2)}
[dir="rtl"] .foot__podcast-label{letter-spacing:0;text-transform:none}
.foot__bar{max-width:var(--shell);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:28px;font-family:var(--f-m);font-size:11px;letter-spacing:.05em;color:var(--w40)}




html.is-loading{overflow:hidden}
html.is-loading body{overflow:hidden}
.loader{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;background:#07061A;cursor:pointer;transition:transform .75s cubic-bezier(.76,0,.24,1)}
.loader::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(760px 500px at 50% 42%,rgba(20,71,156,.5),transparent 70%),
             radial-gradient(520px 360px at 50% 62%,rgba(0,157,217,.1),transparent 70%)}
.loader.is-done{transform:translateY(-101%)}
.loader__in{position:relative;display:flex;flex-direction:column;align-items:center;gap:28px;width:min(300px,72vw)}

.loader__brand{display:flex;align-items:center;justify-content:center;gap:18px;filter:drop-shadow(0 0 22px rgba(0,157,217,.22))}
.loader__brand img{height:clamp(30px,11vw,44px);width:auto}
.loader__sep{width:1px;height:clamp(24px,8vw,34px);background:rgba(255,255,255,.28);flex-shrink:0}
.loader__bar{width:100%;height:2px;border-radius:2px;background:rgba(255,255,255,.12);overflow:hidden}
.loader__bar span{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--wps-light),var(--wps-teal));transform:scaleX(0);transform-origin:left}
.loader__pct{font-family:var(--f-m);font-size:12px;font-weight:500;letter-spacing:.34em;color:rgba(255,255,255,.75);font-variant-numeric:tabular-nums}


.hero .btn--ghost{border-color:rgba(255,255,255,.3);color:#fff;background:rgba(255,255,255,.05)}
.hero .btn--ghost:hover{border-color:rgba(255,255,255,.65);background:rgba(255,255,255,.12)}


/* A compact branded ticker band — bold, legible and in motion, replacing the
   old oversized near-invisible outline text that read as texture, not content. */
.marquee{overflow:hidden;padding:15px 0;pointer-events:none;background:linear-gradient(90deg,var(--wps-dark),var(--wps-light));box-shadow:0 2px 20px rgba(20,71,156,.18)}
.marquee__track{display:flex;width:max-content;animation:marq 26s linear infinite}
.marquee__seq{display:inline-flex;align-items:center;white-space:nowrap;font-weight:700;font-size:clamp(14px,1.6vw,18px);line-height:1;letter-spacing:.04em;text-transform:uppercase;color:#fff}
.marquee__seq i{font-style:normal;display:inline-flex;align-items:center;margin:0 1.3em;opacity:.9}
.marquee__seq i img{display:block;width:.85em;height:.85em}
@keyframes marq{to{transform:translateX(-50%)}}


/* A desk-calendar page: two binder rings, a coloured month band with a
   torn-off dashed edge, then the day count like a calendar's date number. */
.fab-reg{position:fixed;top:84px;right:22px;z-index:90;display:flex;flex-direction:column;align-items:center;width:106px;padding:0;border-radius:16px;background:#fff;border:1px solid rgba(20,71,156,.14);box-shadow:0 18px 40px rgba(20,71,156,.3),0 4px 14px rgba(0,0,0,.14);text-align:center;transform:scale(1.1);transform-origin:top right;transition:transform .3s var(--ease),box-shadow .55s var(--ease),background .55s var(--ease),border-color .55s var(--ease)}
.fab-reg.is-closed{background:transparent;border:none;box-shadow:none;width:auto;padding:0}
.fab-reg::before,.fab-reg::after{content:"";position:absolute;z-index:2;top:-5px;width:9px;height:13px;border-radius:5px;background:#CCD6E6;box-shadow:0 2px 4px rgba(0,0,0,.18);pointer-events:none}
.fab-reg::before{left:18px}
.fab-reg::after{right:18px}
.fab-reg:hover{transform:scale(1.1) translateY(-2px);box-shadow:0 22px 46px rgba(20,71,156,.36),0 6px 18px rgba(0,0,0,.18)}
.fab-reg__head{display:block;position:relative;z-index:1;width:100%;padding:12px 0;border-radius:16px;background:linear-gradient(135deg,var(--wps-dark),var(--wps-light));color:#fff;font-family:var(--f-m);font-size:9.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;transition:border-radius .55s var(--ease),padding .55s var(--ease)}
.fab-reg.is-closed .fab-reg__head{border-radius:16px;padding:12px 18px}
.fab-reg:not(.is-closed) .fab-reg__head{border-radius:16px 16px 0 0;padding:8px 0 7px}
.fab-reg__head::after{content:"";position:absolute;left:12px;right:12px;bottom:0;border-bottom:1.5px dashed rgba(255,255,255,.4);opacity:0;transition:opacity .3s var(--ease)}
.fab-reg:not(.is-closed) .fab-reg__head::after{opacity:1;transition:opacity .3s var(--ease) .25s}
.fab-reg__body{display:grid;grid-template-rows:1fr;width:100%;transition:grid-template-rows .6s var(--ease)}
.fab-reg__body-in{overflow:hidden;min-height:0;display:flex;flex-direction:column;align-items:center;padding-bottom:10px;transition:opacity .35s var(--ease),transform .45s var(--ease)}
.fab-reg.is-closed .fab-reg__body{grid-template-rows:0fr}
.fab-reg.is-closed .fab-reg__body-in{opacity:0;transform:translateY(-6px);transition:opacity .25s var(--ease),transform .25s var(--ease)}
.fab-reg__num{margin-top:9px;font-family:var(--f-m);font-size:28px;font-weight:800;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
.fab-reg__lbl{font-family:var(--f-m);font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--w55);margin:4px 0 9px;white-space:nowrap}
.fab-reg__go{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:calc(100% - 16px);background:#023689;color:#fff;font-weight:800;font-size:10.5px;border-radius:999px;padding:7px 8px;transition:background .25s var(--ease)}
.fab-reg:hover .fab-reg__go{background:#0B4BAE}
.fab-reg .ar{display:inline-block;transition:transform .25s var(--ease)}
.fab-reg:hover .ar{transform:translateX(3px)}


/* Agenda "at a glance" widget — modelled on the WPS 2026 Speakers Portal agenda
   view: a header banner, a day picker, a view toolbar, and a two-column
   track-list + detail card. The detail card is white in light mode and the dark
   portal-style navy in dark mode; the banner and toolbar always use their own
   fixed treatment (like the site's other always-colored chrome, e.g. .marquee). */
.agd__hero{max-width:900px;margin:0 auto 22px;padding:32px 40px;border-radius:var(--r-lg);background:linear-gradient(120deg,#0A2E7A,#123B9E 45%,#0B63B8);display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.agd__heroEyebrow{display:block;font-family:var(--f-m);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--wps-teal);margin-bottom:9px}
.agd__heroTitle{font-size:clamp(26px,3vw,34px);font-weight:800;color:#fff;margin:0 0 6px;line-height:1.05}
.agd__heroSub{font-size:13.5px;color:rgba(255,255,255,.7)}
.agd__heroStat{font-family:var(--f-m);font-size:12.5px;color:rgba(255,255,255,.85);white-space:nowrap;padding-top:8px}

.agd__days{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:900px;margin:0 auto 20px}
.agd__day{text-align:left;padding:16px 18px;border-radius:var(--r-md);border:1px solid var(--brd);background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:all .25s var(--ease)}
.agd__day:hover{background:var(--glass-hi);border-color:var(--brd-hi)}
.agd__day span{display:block}
.agd__d{font-family:var(--f-m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#8CA0B8}
.agd__t{font-weight:750;font-size:15px;color:var(--ink);margin-top:6px;line-height:1.2}
.agd__desc{margin-top:6px;font-size:11px;color:var(--w55);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.agd__day[aria-selected="true"]{background:linear-gradient(135deg,var(--wps-light),#0C5B90);border-color:rgba(0,157,217,.7);box-shadow:0 0 18px rgba(0,157,217,.14)}
.agd__day[aria-selected="true"] .agd__d{color:rgba(255,255,255,.75)}
.agd__day[aria-selected="true"] .agd__t{color:#fff}
.agd__day[aria-selected="true"] .agd__desc{color:rgba(255,255,255,.78)}
html[data-theme="dark"] .agd__d{color:rgba(255,255,255,.45)}
html[data-theme="dark"] .agd__t{color:#fff}
html[data-theme="dark"] .agd__desc{color:rgba(255,255,255,.5)}

/* Toolbar: view sub-tabs + topic filter + search — sit on the page background,
   so they simply inherit the theme's own text color rather than being hardcoded. */
.agd__toolbar{max-width:900px;margin:0 auto 18px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.agd__subtabs{display:flex;flex-wrap:wrap;gap:4px;background:var(--glass);border:1px solid var(--brd);border-radius:999px;padding:4px}
.agd__subtab{font-family:var(--f-m);font-size:11.5px;font-weight:600;padding:8px 14px;border-radius:999px;color:var(--w55);background:transparent;white-space:nowrap;transition:all .2s var(--ease)}
.agd__subtab[aria-selected="true"]{background:var(--wps-dark);color:#fff}
.agd__subtab:disabled{opacity:.45;cursor:not-allowed}
.agd__tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.agd__select{font-family:var(--f-m);font-size:12px;padding:9px 14px;border-radius:var(--r-sm);border:1px solid var(--brd);background:var(--glass);color:var(--w55)}
.agd__select:disabled{opacity:.55;cursor:not-allowed}
.agd__search{display:flex;align-items:center;gap:8px;border:1px solid var(--brd);border-radius:999px;padding:9px 16px;background:var(--glass);color:var(--w40)}
.agd__search svg{width:15px;height:15px;flex:none}
.agd__search input{border:0;background:transparent;outline:0;font-size:13px;color:inherit;width:160px;font-family:var(--f-d)}
.agd__search input::placeholder{color:var(--w40)}

.agd__card{position:relative;max-width:900px;margin:0 auto;border-radius:var(--r-lg);background:#fff;border:1px solid var(--card-brd);overflow:hidden}
html[data-theme="dark"] .agd__card{background:linear-gradient(155deg,#101C6E,#0A1152 55%,#070D3F);border:1px solid rgba(0,157,217,.35)}
.agd__layout{display:grid;grid-template-columns:250px 1fr}

/* Left: track list */
.agd__side{border-right:1px solid rgba(22,33,58,.09);padding:14px;max-height:520px;overflow-y:auto}
html[data-theme="dark"] .agd__side{border-right:1px solid rgba(255,255,255,.1)}
.agd__sideitem{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 12px;border-radius:var(--r-sm);font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.3}
html[data-theme="dark"] .agd__sideitem{color:rgba(255,255,255,.8)}
.agd__sideitem:hover{background:rgba(20,71,156,.06)}
html[data-theme="dark"] .agd__sideitem:hover{background:rgba(255,255,255,.06)}
.agd__sideitem[aria-selected="true"]{background:rgba(0,206,175,.12);color:var(--teal-ink)}
html[data-theme="dark"] .agd__sideitem[aria-selected="true"]{background:rgba(0,206,175,.14);color:var(--wps-teal)}
.agd__side_n{flex:none;font-family:var(--f-m);font-size:11px;color:var(--w40)}
.agd__sideitem[aria-selected="true"] .agd__side_n{color:inherit}
.agd__side_star{flex:none;color:var(--wps-teal);font-size:13px}
.agd__sideEmpty{padding:20px 12px;font-size:13px;color:var(--w40)}

/* Right: session detail */
.agd__detail{padding:36px 40px;min-width:0}
.agd__in{position:relative;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.agd__in.is-out{opacity:0;transform:translateY(10px)}
.agd__dtag{display:inline-block;font-family:var(--f-m);font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--wps-teal);background:rgba(0,206,175,.12);border:1px solid rgba(0,206,175,.3);border-radius:999px;padding:5px 11px;margin-bottom:14px}
.agd__dtag--track{color:var(--teal-ink);background:rgba(20,71,156,.08);border-color:rgba(20,71,156,.22)}
html[data-theme="dark"] .agd__dtag--track{color:var(--wps-light);background:rgba(0,157,217,.14);border-color:rgba(0,157,217,.3)}
.agd__dhead{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.agd__dhead h3{color:var(--ink);font-size:clamp(20px,2.2vw,26px);font-weight:750;margin:0}
html[data-theme="dark"] .agd__dhead h3{color:#fff}
.agd__ddate{font-size:12.5px;color:var(--w40);white-space:nowrap}
.agd__dblurb{font-size:13.5px;color:var(--w55);line-height:1.55;margin-bottom:18px;max-width:56ch}
html[data-theme="dark"] .agd__dblurb{color:rgba(255,255,255,.6)}
.agd__statrow{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 22px}
.agd__stat{flex:1 1 120px;padding:14px 16px;border-radius:var(--r-md);background:rgba(20,71,156,.05);border:1px solid rgba(22,33,58,.08)}
html[data-theme="dark"] .agd__stat{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
.agd__stat b{display:block;font-size:20px;font-weight:800;color:var(--ink)}
html[data-theme="dark"] .agd__stat b{color:#fff}
.agd__stat span{display:block;margin-top:4px;font-family:var(--f-m);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--w40)}
.agd__sessTitle{font-family:var(--f-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--w40);margin-bottom:8px}
.agd__nations{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.agd__nation{display:inline-flex;align-items:center;gap:7px;padding:7px 13px 7px 9px;border-radius:999px;background:rgba(20,71,156,.05);border:1px solid rgba(22,33,58,.08);font-size:12.5px;font-weight:600;color:var(--ink)}
html[data-theme="dark"] .agd__nation{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:#fff}
.agd__list{list-style:none}
.agd__row{display:flex;gap:22px;padding:15px 0;border-top:1px solid rgba(22,33,58,.09);align-items:center}
.agd__row:first-child{border-top:0}
.agd__time{font-family:var(--f-m);font-size:12.5px;font-weight:600;color:var(--teal-ink);flex:0 0 56px}
.agd__dur{font-family:var(--f-m);font-size:11.5px;color:var(--w40);flex:0 0 30px}
.agd__row .agd__body{flex:1}
.agd__row b{display:block;font-weight:700;font-size:16px;color:var(--ink);line-height:1.3}
.agd__row p{font-size:13.5px;color:var(--w55);margin-top:4px;line-height:1.5}
html[data-theme="dark"] .agd__row{border-top:1px solid rgba(255,255,255,.1)}
html[data-theme="dark"] .agd__time{color:var(--wps-teal)}
html[data-theme="dark"] .agd__row b{color:#fff}
html[data-theme="dark"] .agd__row p{color:rgba(255,255,255,.55)}
.agd__tag{flex:none;font-family:var(--f-m);font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--wps-teal);background:rgba(0,206,175,.12);border:1px solid rgba(0,206,175,.3);border-radius:999px;padding:5px 11px}
.agd__tag--tbc{color:var(--w40);background:rgba(124,139,163,.12);border-color:rgba(124,139,163,.28)}
html[data-theme="dark"] .agd__tag--tbc{color:rgba(255,255,255,.5);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}

.agd__foot{max-width:900px;margin:22px auto 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}
.agd__note{font-size:13px;color:var(--w40)}
.agd__soon{display:inline-flex;align-items:center;font-family:var(--f-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#46587A;border:1px dashed #B9CCE0;border-radius:var(--r-sm);padding:9px 16px}
html[data-theme="dark"] .agd__soon{color:rgba(255,255,255,.6);border:1px dashed rgba(255,255,255,.28)}

@media (max-width:760px){
  .agd__days{grid-template-columns:1fr}
  .agd__hero{padding:26px 24px}
  .agd__layout{grid-template-columns:1fr}
  .agd__side{border-right:0;border-bottom:1px solid rgba(22,33,58,.09);max-height:240px}
  html[data-theme="dark"] .agd__side{border-bottom:1px solid rgba(255,255,255,.1)}
  .agd__detail{padding:26px 22px}
}


.ai{position:fixed;right:22px;bottom:22px;z-index:95}
.ai__fab{position:relative;width:56px;height:56px;border-radius:50%;background:linear-gradient(150deg,var(--wps-light),var(--wps-dark));border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;box-shadow:0 14px 34px rgba(20,71,156,.28),0 0 20px rgba(0,157,217,.14);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.ai__fab:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(20,71,156,.34),0 0 24px rgba(0,157,217,.2)}
.ai__fab img{width:26px;height:26px;object-fit:cover;object-position:left}
.ai__dot{position:absolute;top:2px;right:2px;width:11px;height:11px;border-radius:50%;background:var(--wps-teal);border:2px solid #F7FAFD;box-shadow:0 0 6px rgba(64,189,168,.5)}
.ai__panel{position:absolute;right:0;bottom:calc(100% + 14px);width:min(330px,calc(100vw - 44px));border-radius:22px;padding:22px;background:rgba(255,255,255,.96);border:1px solid #D7E2F0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 30px 70px rgba(20,71,156,.2),0 0 30px rgba(0,157,217,.06)}
.ai__head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ai__head b{font-size:15.5px;font-weight:800;color:var(--ink)}
.ai__soon{font-family:var(--f-m);font-size:8.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-ink);border:1px solid rgba(0,150,135,.35);background:rgba(64,189,168,.07);border-radius:var(--r-xs);padding:4px 9px}
.ai__soon.is-nudge{animation:nudge .45s var(--ease)}
@keyframes nudge{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}55%{transform:translateX(4px)}80%{transform:translateX(-2px)}}
.ai__x{margin-left:auto;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--w55);font-size:12px;transition:all .25s var(--ease)}
.ai__x:hover{color:var(--ink);background:rgba(22,33,58,.06)}
.ai__p{font-size:13.5px;color:var(--w55);line-height:1.55;margin-bottom:16px}
.ai__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.ai__chip{font-size:12.5px;font-weight:600;color:#2C3A55;border:1px solid #D7E4F2;background:rgba(255,255,255,.7);border-radius:999px;padding:8px 14px;transition:all .25s var(--ease)}
.ai__chip:hover{border-color:var(--wps-light);background:rgba(0,157,217,.08)}
.ai__input{width:100%;padding:12px 16px;border-radius:999px;border:1px solid #D7E4F2;background:#F2F7FC;color:#5A6B85;font-family:var(--f-d);font-size:13px}
.ai__input::placeholder{color:#93A5BC}
.ai__input:disabled{cursor:not-allowed}


/* Matches the .banner recipe used in Partners — a gradient-tinted card with
   a real heading, not a flat single-line strip of gray chips. */
.avail{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px;padding:40px 44px;border-radius:var(--r-lg);border:1px solid var(--card-brd);background:linear-gradient(130deg,rgba(0,157,217,.12),rgba(255,255,255,.7) 60%,rgba(20,71,156,.06));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.avail__body{flex:1;min-width:280px}
.avail__eyebrow{font-family:var(--f-m);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-ink);margin-bottom:10px}
.avail__h{font-size:clamp(20px,2.2vw,26px);font-weight:750;color:var(--ink);letter-spacing:-.01em;margin-bottom:8px}
.avail__p{font-size:15px;color:var(--w55);max-width:480px;margin-bottom:20px}
.avail__chips{display:flex;flex-wrap:wrap;gap:10px}
.avail__chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-m);font-size:12px;font-weight:600;color:var(--wps-dark);border:1px solid rgba(0,157,217,.3);border-radius:var(--r-sm);padding:9px 15px;background:#fff}
.avail__chip b{color:var(--wps-teal);font-weight:700}
.avail .btn{padding:16px 30px;font-size:15px;flex-shrink:0}


html.is-locked{overflow:hidden}
html.is-locked body{overflow:hidden}
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}
.modal[hidden]{display:none}
.modal__back{position:absolute;inset:0;background:rgba(22,33,58,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.modal__card{position:relative;z-index:2;width:min(560px,100%);max-height:calc(100svh - 40px);overflow:auto;border-radius:var(--r-lg);padding:40px 40px 32px;background:#fff;border:1px solid #E4EAF4;box-shadow:0 40px 90px rgba(22,33,58,.28),0 0 40px rgba(0,157,217,.06)}
.modal__x{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--w55);transition:all .25s var(--ease)}
.modal__x:hover{color:var(--ink);background:rgba(22,33,58,.06)}
.modal__h{color:var(--ink);font-size:clamp(22px,2.6vw,28px);font-weight:750;margin:10px 0 8px}
.modal__p{font-size:14px;color:var(--w55);line-height:1.55;margin-bottom:22px}
.modal form{display:flex;flex-direction:column;gap:14px}
.modal__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.modal label{display:flex;flex-direction:column;gap:6px;font-family:var(--f-m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#7C8BA3}
.modal input,.modal select,.modal textarea{width:100%;padding:12px 15px;border-radius:14px;border:1px solid #D7E4F2;background:#F7FAFC;color:var(--ink);font-family:var(--f-d);font-size:14px;resize:none}
.modal input::placeholder,.modal textarea::placeholder{color:#9AABC2}
.modal form .btn{margin-top:6px;justify-content:center}
.modal__alt{margin-top:18px;font-size:13px;color:var(--w40);text-align:center}
.modal__alt a{color:var(--wps-deep);font-weight:600;border-bottom:1px solid rgba(14,49,120,.3)}
.modal__done{text-align:center;padding:22px 0 8px}
.modal__tick{display:flex;width:64px;height:64px;margin:0 auto 18px;border-radius:50%;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:#04222b;background:var(--wps-teal);box-shadow:0 0 26px rgba(64,189,168,.3)}
.modal__done h3{color:var(--ink);font-size:22px;margin-bottom:8px}
.modal__done p{font-size:14px;color:var(--w55);margin-bottom:22px}


.lang{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);transition:border-color .4s var(--ease),background .4s var(--ease)}
.lang__b{padding:6px 11px;border-radius:999px;font-size:11.5px;font-weight:700;color:rgba(255,255,255,.6);transition:all .25s var(--ease)}
/* EN is a short word and Arabic is a longer one — equal padding alone leaves the two
   halves visibly mismatched next to the evenly-balanced Light/Dark toggle. Give both
   a shared minimum width so the pill reads as one balanced control. */
.nav__end .lang[aria-label="Language"] .lang__b{min-width:54px;text-align:center}
.lang__b:hover{color:#fff}
.lang__b[aria-pressed="true"]{background:rgba(255,255,255,.14);color:#fff}
.nav.is-stuck .lang{border-color:rgba(22,33,58,.14);background:rgba(22,33,58,.04)}
.nav.is-stuck .lang__b{color:#5A6B85}
.nav.is-stuck .lang__b:hover{color:var(--ink)}
.nav.is-stuck .lang__b[aria-pressed="true"]{background:rgba(20,71,156,.1);color:var(--wps-dark)}
.lang__tip{position:fixed;top:138px;right:20px;z-index:120;width:max-content;max-width:min(340px,calc(100vw - 40px));text-align:center;font-size:12.5px;font-weight:600;line-height:1.5;color:var(--ink);background:rgba(255,255,255,.97);border:1px solid #C7D8EA;border-radius:14px;padding:11px 16px;box-shadow:0 14px 34px rgba(20,71,156,.18);opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.lang__tip.is-on{opacity:1;transform:none}


.reg__fast{display:inline-flex;align-items:center;margin-top:18px;padding:9px 17px;border-radius:var(--r-sm);border:1px solid rgba(0,150,135,.3);background:rgba(64,189,168,.06);font-family:var(--f-m);font-size:10.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:#22304C}


@media (max-width:1080px){
  .agd__days{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .fab-reg{top:72px;right:14px;min-width:68px;padding:7px 9px 6px;border-radius:11px}
  .fab-reg__num{font-size:15px}
  .fab-reg__lbl{font-size:7px;margin:2px 0 5px}
  .fab-reg__go{font-size:10px;padding:4px 7px}
  .ai{right:14px;bottom:14px}
  .agd__row{flex-direction:column;gap:5px}
  .agd__time{flex:none}
  .marquee{padding:11px 0}
  .modal__card{padding:28px 22px}
  .modal__row{grid-template-columns:1fr}
}
@media (max-width:480px){
  .lang__b{padding:5px 8px;font-size:10.5px}
}




.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:140;pointer-events:none}
.progress span{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--wps-light),var(--wps-teal));box-shadow:0 0 8px rgba(0,157,217,.3)}


.vloop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s var(--ease)}
.vloop.is-playing{opacity:1}
@media (prefers-reduced-motion:reduce){.vloop{display:none}}


.motion{position:relative;padding:88px 0;overflow:hidden}
.motion__head{padding:0 28px}
.motion__head .head--split{margin-bottom:46px}
.motion__band{display:flex;flex-direction:column;gap:14px}
.motion__row{display:flex;gap:14px;justify-content:center;width:max-content;margin:0 auto;will-change:transform}
.mtile{position:relative;flex:none;height:224px;margin:0;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--brd);background:var(--glass);box-shadow:0 16px 40px rgba(20,71,156,.14)}
.mtile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%;transition:transform .5s var(--ease)}
.mtile:hover img{transform:scale(1.035)}
.mtile::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(20,71,156,.05),rgba(22,33,58,.16));mix-blend-mode:multiply}
.mtile--video::after{background:linear-gradient(180deg,rgba(20,71,156,.03),rgba(22,33,58,.08))}
.mtile__tag{position:absolute;left:12px;bottom:12px;z-index:3;display:inline-flex;align-items:center;gap:7px;font-family:var(--f-m);font-size:9px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.88);background:rgba(7,6,26,.55);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-xs);padding:5px 10px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}


.about__mosaic{display:grid;grid-template-columns:1.744fr 1fr;grid-template-rows:356fr 357fr;gap:14px;aspect-ratio:639/720;will-change:transform}
.am{position:relative;margin:0;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--brd);background:var(--glass);box-shadow:0 22px 54px rgba(20,71,156,.16),var(--glow)}
.am--wide{grid-column:1 / -1}
.am--sq{min-height:0}
.am img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 26%;transition:transform .5s var(--ease)}
.am:hover img{transform:scale(1.03)}
.am::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(165deg,rgba(20,71,156,.18),rgba(14,49,120,.08) 55%,rgba(20,71,156,.16));mix-blend-mode:multiply}
.am--video::after{background:linear-gradient(165deg,rgba(20,71,156,.1),rgba(20,71,156,.08))}


.stats__bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.venue__card > video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}


.awards__strip{position:relative;z-index:2;margin-top:46px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.strip__track{display:flex;width:max-content;animation:stripdrift 72s linear infinite}
.awards__strip:hover .strip__track{animation-play-state:paused}
.strip__ph{flex:none;width:186px;aspect-ratio:41/28;margin:0 12px 0 0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04)}
.strip__ph img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
@keyframes stripdrift{to{transform:translateX(-50%)}}


@media (prefers-reduced-motion:no-preference){
  .stagger>*{opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .stagger.is-in>*{opacity:1;transform:none}
  .stagger.is-in>*:nth-child(2){transition-delay:.05s}
  .stagger.is-in>*:nth-child(3){transition-delay:.1s}
  .stagger.is-in>*:nth-child(4){transition-delay:.15s}
  .stagger.is-in>*:nth-child(5){transition-delay:.2s}
  .stagger.is-in>*:nth-child(6){transition-delay:.25s}
  .stagger.is-in>*:nth-child(7){transition-delay:.3s}
  .stagger.is-in>*:nth-child(8){transition-delay:.35s}
  .stagger.is-in>*:nth-child(n+9){transition-delay:.4s}
}
.foot ul a{position:relative}
.foot ul a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease)}
.foot ul a:hover::after{transform:scaleX(1)}
.txtlink{position:relative}
.txtlink::after{content:"";position:absolute;left:0;bottom:-3px;height:1.5px;width:100%;background:var(--wps-light);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease)}
.txtlink:hover::after{transform:scaleX(1)}
.awd__i img{transition:transform .3s var(--ease)}
.awd:hover .awd__i img{transform:translateY(-2px)}
.trk__b span:first-child{transition:transform .25s var(--ease)}
.trk__b:hover span:first-child{transform:translateX(3px)}
.pass li i{transition:transform .3s var(--ease)}
.pass:hover li i{transform:scale(1.15)}
.stat__n.is-set{animation:settle .5s var(--ease)}
@keyframes settle{0%{transform:scale(1.014)}100%{transform:scale(1)}}


.about__art .float-card{bottom:-16px;left:-14px;padding:12px 18px;border-radius:16px}
.about__art .float-card b{font-size:19px}
.about__art .float-card span{font-size:10px}


@media (max-width:1080px){
  .motion{padding:72px 0}
  .motion__head{padding:0 24px}
  .mtile{height:180px}
}
@media (max-width:760px){
  .motion{padding:60px 0}
  .motion__head{padding:0 18px}
  .motion__row{gap:10px}
  .motion__band{gap:10px}
  .mtile{height:138px;border-radius:16px}
  .mtile__tag{left:8px;bottom:8px;padding:4px 8px}
  .about__mosaic{gap:10px}
  
  .about__art .float-card{position:static;display:inline-block;margin-top:14px}
  .strip__ph{width:150px}
}


[data-reveal]{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}


/* Burger takes over at 1180px: below that the nine-item row cannot sit on one line
   alongside the brand and the display/language toggles. */
@media (max-width:1180px){ .nav__links{display:none} }
@media (max-width:1080px){
  .sect{padding:72px 24px}
  .router{padding:72px 24px}
  .router__grid{grid-template-columns:1fr;gap:22px}
  .about__grid{grid-template-columns:1fr;gap:52px}
  .stats__panel{padding:68px 44px}
  .stats__grid{grid-template-columns:repeat(2,1fr);gap:44px 32px}
  .white-panel{padding:68px 44px}
  .spk__grid{grid-template-columns:repeat(2,1fr)}
  .ex__grid{grid-template-columns:repeat(5,1fr)}
  .trk__grid{grid-template-columns:1fr}
  .awards__panel{padding:64px 44px}
  .awards__panel::before{background:
    linear-gradient(180deg,rgba(10,9,37,.86) 0%,rgba(10,9,37,.52) 46%,rgba(10,9,37,.72) 100%),
    url('../images/wps-award-trophy-web.jpg') center/cover no-repeat}
  .awards__in{grid-template-columns:1fr;gap:44px}
  .astat__grid{grid-column:auto;grid-template-columns:1fr 1fr;gap:16px}
  .venue__grid{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr 1fr}
  .voices{padding:72px 24px}
  .reg{padding:80px 24px}
}
@media (max-width:760px){
  .sect{padding:60px 18px}
  .nav{top:10px;padding:0 12px}
  .nav__pill{padding:9px 14px 9px 18px}
  .brand img{height:24px}
  .brand{gap:10px}
  .hero{padding:130px 18px 72px}
  .router,.voices,.reg{padding-left:18px;padding-right:18px}
  .speakers,.stats,.awards{padding-left:14px;padding-right:14px}
  .stats__panel{padding:52px 26px;border-radius:26px}
  .stats__grid{gap:36px 22px}
  .stat{padding-left:18px}
  .white-panel{padding:52px 24px;border-radius:26px}
  .awards__panel{padding:52px 26px;border-radius:26px}
  .tiles{grid-template-columns:1fr 1fr}
  .tile{min-height:116px}
  .panel,.trk__card,.banner,.venue__card{padding:28px}
  .zones{grid-template-columns:1fr}
  .astat__grid{grid-template-columns:1fr}
  .astat--hero{flex-direction:column;align-items:flex-start;gap:10px}
  .cd{gap:8px;flex-wrap:wrap}
  .cd__u{min-width:64px;padding:11px 8px 10px}
  .hero__row{gap:22px}
  .hero__actions{width:100%;flex-direction:column;align-items:stretch}
  .hero__actions .btn{width:100%;justify-content:center}
  .foot__grid{grid-template-columns:1fr}
  .float-card{left:12px;bottom:12px}
  .seg__in{width:100%;justify-content:center;flex-wrap:wrap}
  .voice__q{min-height:0}
  .spk__grid{gap:14px}
  .ex__grid{grid-template-columns:repeat(4,1fr)}
  .trk__list{grid-template-columns:1fr}
  .head__btns{width:100%}
  .head__btns .btn{flex:1;justify-content:center}
}
@media (max-width:480px){
  .spk__grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  [data-reveal]{opacity:1;transform:none}
}

/* ===== DARK (differences only) ===== */
html[data-theme="dark"]{--bg:#07061A;--bg-deep:#040312;--w:#FFFFFF;--w55:rgba(255,255,255,.55);--w40:rgba(255,255,255,.4);--glass:rgba(255,255,255,.05);--glass-hi:rgba(255,255,255,.08);--brd:rgba(255,255,255,.1);--brd-hi:rgba(255,255,255,.2);--ink:#131230;--glow:0 0 40px rgba(0,157,217,.12)}
html[data-theme="dark"] body{color:#fff}
html[data-theme="dark"] ::selection{background:rgba(0,157,217,.4)}
html[data-theme="dark"] .eyebrow{color:var(--wps-light)}
html[data-theme="dark"] .eyebrow--teal{color:var(--wps-teal)}
html[data-theme="dark"] .h2{color:#fff}
html[data-theme="dark"] .btn--ghost{border:1px solid rgba(255,255,255,.25);color:#fff;background:rgba(255,255,255,.03)}
html[data-theme="dark"] .btn--ghost:hover{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.08)}
html[data-theme="dark"] .txtlink{color:#fff}
html[data-theme="dark"] .atmo::before{background:radial-gradient(900px 520px at 82% 0%, rgba(20,71,156,.2), transparent 65%),
    radial-gradient(760px 500px at 8% 68%, rgba(14,49,120,.17), transparent 65%),
    radial-gradient(520px 380px at 60% 96%, rgba(0,157,217,.05), transparent 70%)}
html[data-theme="dark"] .nav.is-stuck .nav__pill{background:rgba(7,6,26,.82);border-color:rgba(255,255,255,.14);box-shadow:0 18px 42px rgba(0,0,0,.36),0 0 28px rgba(0,157,217,.05)}
/* The stuck nav turns near-black in dark mode, so everything the light-mode stuck rules
   darkened has to be turned back up: links, the current-page marker, the brand marks,
   the caret, the dropdown and the display/language toggles. */
html[data-theme="dark"] .nav.is-stuck .brand .logo-on-dark{display:block}
html[data-theme="dark"] .nav.is-stuck .brand .logo-on-light{display:none}
html[data-theme="dark"] .nav.is-stuck .brand__sep{background:rgba(255,255,255,.18)}
html[data-theme="dark"] .nav.is-stuck .nav__links{color:rgba(255,255,255,.75)}
html[data-theme="dark"] .nav.is-stuck .nav__links a:hover{color:#fff}
html[data-theme="dark"] .nav.is-stuck .nav__links a[aria-current="page"]{color:#fff}
html[data-theme="dark"] .nav.is-stuck .nvi__car{color:rgba(255,255,255,.4)}
html[data-theme="dark"] .nav.is-stuck .nvi__dd{background:rgba(10,9,32,.94);border-color:rgba(255,255,255,.12);box-shadow:0 18px 42px rgba(0,0,0,.45)}
html[data-theme="dark"] .nav.is-stuck .nvi__dd span,html[data-theme="dark"] .nav.is-stuck .nvi__dd a{color:rgba(255,255,255,.72)}
html[data-theme="dark"] .nav.is-stuck .nvi__dd span:hover,html[data-theme="dark"] .nav.is-stuck .nvi__dd a:hover,html[data-theme="dark"] .nav.is-stuck .nvi__dd a:focus-visible{background:rgba(255,255,255,.08);color:#fff}
html[data-theme="dark"] .nav.is-stuck .lang{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.06)}
html[data-theme="dark"] .nav.is-stuck .lang__b{color:rgba(255,255,255,.6)}
html[data-theme="dark"] .nav.is-stuck .lang__b:hover{color:#fff}
html[data-theme="dark"] .nav.is-stuck .lang__b[aria-pressed="true"]{background:rgba(255,255,255,.14);color:#fff}
html[data-theme="dark"] .hero__veil{background:linear-gradient(180deg,rgba(7,6,26,.62) 0%,rgba(7,6,26,.5) 34%,rgba(7,6,26,.72) 68%,var(--bg) 100%)}
html[data-theme="dark"] .hero__p{color:var(--w55)}
html[data-theme="dark"] .cd__u{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)}
html[data-theme="dark"] .scroll{color:rgba(255,255,255,.5)}
html[data-theme="dark"] .mouse{border:1.5px solid rgba(255,255,255,.3)}
html[data-theme="dark"] .tile__n{color:rgba(255,255,255,.4)}
html[data-theme="dark"] .tile__l{color:#fff}
html[data-theme="dark"] .tile[aria-selected="true"]{background:linear-gradient(135deg,var(--wps-light),#0C5B90);border-color:rgba(0,157,217,.7);box-shadow:0 0 26px rgba(0,157,217,.16)}
html[data-theme="dark"] .tile[aria-selected="true"] .tile__n{color:rgba(255,255,255,.65)}
html[data-theme="dark"] .tile[aria-selected="true"] .tile__r{color:rgba(255,255,255,.8)}
html[data-theme="dark"] .panel{background:radial-gradient(560px 340px at 92% -6%,rgba(64,189,168,.35),transparent 60%),radial-gradient(520px 360px at 4% 108%,rgba(0,157,217,.4),transparent 62%),linear-gradient(155deg,#101C6E,#0A1152 55%,#070D3F);border:1px solid rgba(0,157,217,.35)}
html[data-theme="dark"] .panel__k{color:var(--wps-teal)}
html[data-theme="dark"] .panel h3{color:#fff}
html[data-theme="dark"] .panel__p{color:rgba(255,255,255,.68)}
html[data-theme="dark"] .fact{color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.03)}
html[data-theme="dark"] .row{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#fff}
html[data-theme="dark"] .row:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35)}
html[data-theme="dark"] .row .ar{color:var(--wps-teal)}
html[data-theme="dark"] .router__else a{color:var(--wps-light);border-bottom:1px solid rgba(0,157,217,.4)}
html[data-theme="dark"] .about p.body strong{color:#fff}
html[data-theme="dark"] .callout{border:1px solid rgba(0,157,217,.28)}
html[data-theme="dark"] .callout strong{color:#fff}
html[data-theme="dark"] .about__ph{box-shadow:0 36px 84px rgba(0,0,0,.38),var(--glow)}
html[data-theme="dark"] .about__ph::after{background:linear-gradient(165deg,rgba(20,71,156,.34),rgba(14,49,120,.14) 55%,rgba(7,6,26,.34))}
html[data-theme="dark"] .about__ph::before{background:linear-gradient(200deg,rgba(0,157,217,.12),transparent 45%)}
html[data-theme="dark"] .float-card{background:rgba(7,6,26,.6);border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 42px rgba(0,0,0,.36)}
html[data-theme="dark"] .float-card b{color:#fff}
html[data-theme="dark"] .white-panel{background:#FBFCFE;box-shadow:0 42px 100px rgba(0,0,0,.32)}
html[data-theme="dark"] .seg__in{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)}
html[data-theme="dark"] .seg button:hover{color:#fff}
html[data-theme="dark"] .seg button[aria-selected="true"]{background:#fff;color:#0B0A26;box-shadow:0 5px 16px rgba(0,0,0,.24)}
html[data-theme="dark"] .trk__b:hover{border-color:rgba(0,157,217,.5)}
html[data-theme="dark"] .trk__b span:last-child{color:rgba(255,255,255,.85)}
html[data-theme="dark"] .trk__b[aria-selected="true"]{background:linear-gradient(135deg,var(--wps-light),#0C5B90);border-color:rgba(0,157,217,.7);box-shadow:0 0 18px rgba(0,157,217,.14)}
html[data-theme="dark"] .trk__b[aria-selected="true"] span:first-child{color:rgba(255,255,255,.75)}
html[data-theme="dark"] .trk__card{background:radial-gradient(560px 340px at 92% -6%,rgba(64,189,168,.35),transparent 60%),radial-gradient(520px 360px at 4% 108%,rgba(0,157,217,.4),transparent 62%),linear-gradient(155deg,#101C6E,#0A1152 55%,#070D3F);color:#fff;border:1px solid rgba(0,157,217,.35)}
html[data-theme="dark"] .trk__ghost{background-image:linear-gradient(120deg,rgba(155,214,247,.5),rgba(255,255,255,.12))}
html[data-theme="dark"] .trk__card p{color:rgba(255,255,255,.7)}
html[data-theme="dark"] .exp{background:var(--glass);border:1px solid var(--brd);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease)}
html[data-theme="dark"] .exp:hover{border-color:rgba(0,157,217,.45);background:var(--glass-hi)}
html[data-theme="dark"] .exp__tag{color:#9BD6F7;background:rgba(0,157,217,.12)}
html[data-theme="dark"] .exp__tag[data-t="invite"]{color:var(--wps-teal);background:rgba(64,189,168,.1);border-color:rgba(64,189,168,.4)}
html[data-theme="dark"] .exp__tag[data-t="delegate"]{color:rgba(255,255,255,.8);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22)}
html[data-theme="dark"] .exp h3{color:#fff}
html[data-theme="dark"] .awd{background:var(--glass);border:1px solid var(--brd);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .3s var(--ease),border-color .3s var(--ease)}
html[data-theme="dark"] .awd:hover{border-color:rgba(64,189,168,.4)}
html[data-theme="dark"] .awd span:last-child{color:rgba(255,255,255,.9)}
html[data-theme="dark"] .plogo:hover{border-color:rgba(0,157,217,.55)}
html[data-theme="dark"] .banner{background:linear-gradient(130deg,rgba(20,71,156,.55),rgba(14,49,120,.5));border:1px solid rgba(0,157,217,.35)}
html[data-theme="dark"] .avail{background:linear-gradient(130deg,rgba(20,71,156,.55),rgba(14,49,120,.5));border:1px solid rgba(0,157,217,.35)}
html[data-theme="dark"] .avail__chip{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(0,157,217,.4)}
html[data-theme="dark"] .banner::before{background:repeating-radial-gradient(circle at 80% 0%,rgba(255,255,255,0) 0 20px,rgba(255,255,255,.045) 20px 21px)}
html[data-theme="dark"] .banner h3{color:#fff}
html[data-theme="dark"] .avail__h{color:#fff}
/* Exhibitor logo tiles stay a white card in dark mode, exactly as .plogo does.
   The third-party artwork is single-version: 31 of these SVGs wrap a bitmap with a
   baked white background, so on a dark tile they render as white boxes. Keeping the
   tile white makes that background blend instead of clash, and keeps dark-ink marks
   (Dahua, INKAS, MVP) legible. Opaque, so the blur is dropped. */
html[data-theme="dark"] .ex{border:1px solid rgba(255,255,255,.14);background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}
html[data-theme="dark"] .ex:hover{border-color:rgba(0,157,217,.55);background:#fff;box-shadow:0 14px 34px rgba(0,0,0,.28),0 0 18px rgba(0,157,217,.12)}
html[data-theme="dark"] .voice__card{background:#0D0C26}
html[data-theme="dark"] .voice__fade{background:linear-gradient(90deg,rgba(13,12,38,0) 18%,rgba(13,12,38,.9) 52%,#0D0C26 68%)}
html[data-theme="dark"] .voice__q{color:#fff}
html[data-theme="dark"] .voice__n{color:#fff}
html[data-theme="dark"] .dot{background:rgba(255,255,255,.2)}
html[data-theme="dark"] .dot:hover{background:rgba(255,255,255,.45)}
html[data-theme="dark"] .zone:hover{border-color:rgba(0,157,217,.5)}
html[data-theme="dark"] .zone__n{color:#fff}
html[data-theme="dark"] .zone[aria-selected="true"]{background:linear-gradient(135deg,var(--wps-light),#0C5B90);border-color:rgba(0,157,217,.7);box-shadow:0 0 18px rgba(0,157,217,.14)}
html[data-theme="dark"] .zone[aria-selected="true"] .zone__z{color:rgba(255,255,255,.75)}
html[data-theme="dark"] .venue__card{border:1px solid rgba(0,157,217,.35)}
html[data-theme="dark"] .reg::before{background:radial-gradient(1000px 560px at 50% 0%, rgba(20,71,156,.22), transparent 65%),
    radial-gradient(700px 480px at 85% 90%, rgba(14,49,120,.2), transparent 65%),
    radial-gradient(560px 400px at 12% 78%, rgba(0,157,217,.06), transparent 70%)}
html[data-theme="dark"] .reg h2{color:#fff}
html[data-theme="dark"] .pass--hero{background:#fff;border-color:#fff;box-shadow:0 0 20px rgba(0,157,217,.1),0 14px 30px rgba(0,0,0,.2)}
html[data-theme="dark"] .pass--hero:hover{box-shadow:0 0 26px rgba(0,157,217,.13),0 18px 36px rgba(0,0,0,.24)}
html[data-theme="dark"] .pass__n{color:#fff}
html[data-theme="dark"] .pass--hero .pass__n{color:var(--wps-dark)}
html[data-theme="dark"] .pass__p{color:#fff}
html[data-theme="dark"] .pass--hero .pass__p{color:var(--wps-dark)}
html[data-theme="dark"] .pass__vat{color:var(--wps-teal)}
html[data-theme="dark"] .pass__onsite{color:rgba(255,255,255,.5)}
html[data-theme="dark"] .pass--hero .pass__onsite{color:var(--ink-soft)}
html[data-theme="dark"] .reg__rates{color:rgba(255,255,255,.55)}
html[data-theme="dark"] .reg__rates a{color:var(--wps-light)}
html[data-theme="dark"] .reg__rates strong{color:rgba(255,255,255,.8)}
html[data-theme="dark"] .pass--hero .pass__f{color:var(--ink-soft)}
html[data-theme="dark"] .pass li{color:rgba(255,255,255,.75)}
html[data-theme="dark"] .pass--hero li{color:var(--ink-soft)}
/* Card flips to a white background in dark mode, so flip the CTA back to
   navy-on-white here too, instead of white-on-white. */
html[data-theme="dark"] .pass--hero .btn--primary{background:#023689;color:#fff}
html[data-theme="dark"] .pass--hero .btn--primary:hover{background:#0B4BAE}
html[data-theme="dark"] .pass li i{color:var(--wps-teal)}
html[data-theme="dark"] .pass li.pass__no{color:rgba(255,255,255,.45)}
html[data-theme="dark"] .pass li.pass__no i{color:#FF6B7A}
html[data-theme="dark"] .foot::before{background:linear-gradient(90deg,transparent 0%,rgba(0,157,217,.38) 50%,transparent 100%);box-shadow:0 0 14px rgba(0,157,217,.2)}
html[data-theme="dark"] .foot__grid{border-bottom:1px solid rgba(255,255,255,.08)}
html[data-theme="dark"] .foot h4{color:rgba(255,255,255,.85)}
html[data-theme="dark"] .foot a:hover{color:var(--wps-light)}
html[data-theme="dark"] .foot__sep{background:rgba(255,255,255,.14)}
html[data-theme="dark"] .social a{border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.8)}
html[data-theme="dark"] .fab-reg{border-color:rgba(255,255,255,.16);box-shadow:0 10px 30px rgba(0,0,0,.5),0 4px 14px rgba(0,0,0,.3)}
html[data-theme="dark"] .fab-reg:hover{box-shadow:0 14px 36px rgba(0,0,0,.55),0 6px 16px rgba(0,0,0,.32)}
html[data-theme="dark"] .fab-reg::before,html[data-theme="dark"] .fab-reg::after{background:#3A4A66}
html[data-theme="dark"] .agd__soon{color:rgba(255,255,255,.6);border:1px dashed rgba(255,255,255,.28)}
html[data-theme="dark"] .ai__fab{background:rgba(13,12,42,.74);border:1px solid rgba(0,157,217,.4);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 14px 34px rgba(0,0,0,.4),0 0 20px rgba(0,157,217,.12);transition:transform .3s var(--ease),border-color .3s var(--ease)}
html[data-theme="dark"] .ai__fab:hover{border-color:rgba(0,157,217,.75)}
html[data-theme="dark"] .ai__dot{border:2px solid #07061A}
html[data-theme="dark"] .ai__panel{background:rgba(10,9,32,.94);border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 70px rgba(0,0,0,.5),0 0 30px rgba(0,157,217,.08)}
html[data-theme="dark"] .ai__head b{color:#fff}
html[data-theme="dark"] .ai__soon{color:var(--wps-teal);border:1px solid rgba(64,189,168,.4);background:rgba(64,189,168,.08)}
html[data-theme="dark"] .ai__x:hover{color:#fff;background:rgba(255,255,255,.08)}
html[data-theme="dark"] .ai__chip{color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05)}
html[data-theme="dark"] .ai__chip:hover{border-color:rgba(0,157,217,.6);background:rgba(0,157,217,.1)}
html[data-theme="dark"] .ai__input{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:rgba(255,255,255,.5)}
html[data-theme="dark"] .ai__input::placeholder{color:rgba(255,255,255,.35)}
html[data-theme="dark"] .avail__chip{color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.03)}
html[data-theme="dark"] .modal__back{background:rgba(4,3,18,.68)}
html[data-theme="dark"] .modal__card{background:rgba(13,12,40,.97);border:1px solid rgba(255,255,255,.14);box-shadow:0 40px 90px rgba(0,0,0,.5),0 0 40px rgba(0,157,217,.08)}
html[data-theme="dark"] .modal__x:hover{color:#fff;background:rgba(255,255,255,.08)}
html[data-theme="dark"] .modal__h{color:#fff}
html[data-theme="dark"] .modal label{color:rgba(255,255,255,.5)}
html[data-theme="dark"] .modal input{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#fff}
html[data-theme="dark"] .modal select{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#fff}
html[data-theme="dark"] .modal textarea{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#fff}
html[data-theme="dark"] .modal input::placeholder{color:rgba(255,255,255,.3)}
html[data-theme="dark"] .modal textarea::placeholder{color:rgba(255,255,255,.3)}
html[data-theme="dark"] .modal select{color:rgba(255,255,255,.9)}
html[data-theme="dark"] .modal select option{color:#131230;background:#fff}
html[data-theme="dark"] .modal__alt a{color:var(--wps-light);border-bottom:1px solid rgba(0,157,217,.4)}
html[data-theme="dark"] .modal__done h3{color:#fff}
html[data-theme="dark"] .lang__tip{color:#fff;background:rgba(13,12,40,.96);border:1px solid rgba(0,157,217,.4);box-shadow:0 14px 34px rgba(0,0,0,.4)}
html[data-theme="dark"] .reg__fast{border:1px solid rgba(64,189,168,.35);background:rgba(64,189,168,.07);color:rgba(255,255,255,.85)}
html[data-theme="dark"] .mtile{box-shadow:0 18px 44px rgba(0,0,0,.26)}
html[data-theme="dark"] .mtile::after{background:linear-gradient(180deg,rgba(20,71,156,.06),rgba(7,6,26,.24))}
html[data-theme="dark"] .mtile--video::after{background:linear-gradient(180deg,rgba(20,71,156,.04),rgba(7,6,26,.14))}
html[data-theme="dark"] .am{box-shadow:0 24px 60px rgba(0,0,0,.3),var(--glow)}
html[data-theme="dark"] .am::after{background:linear-gradient(165deg,rgba(20,71,156,.3),rgba(14,49,120,.12) 55%,rgba(7,6,26,.3))}
html[data-theme="dark"] .am--video::after{background:linear-gradient(165deg,rgba(20,71,156,.16),rgba(7,6,26,.14))}
@media (max-width:840px){
html[data-theme="dark"] .voice__bg img{opacity:.22}
html[data-theme="dark"] .voice__fade{background:rgba(13,12,38,.6)}
}

/* Dark copies of contextual light rules. Without these, the flat
   html[data-theme="dark"] .x rules above outrank them and the context is lost. */
html[data-theme="dark"] .tile[aria-selected="true"] .tile__l{color:#fff}
html[data-theme="dark"] .stats__panel .h2{color:#fff}
html[data-theme="dark"] .stats__panel .eyebrow{color:#9BD6F7}
html[data-theme="dark"] .white-panel .eyebrow{color:var(--wps-deep)}
html[data-theme="dark"] .white-panel .h2{color:var(--ink)}
html[data-theme="dark"] .white-panel .txtlink{color:var(--wps-dark)}
html[data-theme="dark"] .awards .eyebrow--teal{color:var(--wps-teal)}
html[data-theme="dark"] .awards .btn--ghost{color:#fff;background:rgba(255,255,255,.04)}
html[data-theme="dark"] .zone[aria-selected="true"] .zone__n{color:#fff}
html[data-theme="dark"] .hero .btn--ghost{color:#fff;background:rgba(255,255,255,.05)}

/* ============================== FOLLOW US — INSTAGRAM RAIL ==============================
   Redesign of an Instagram feed carousel: WPS head + CTA, full-bleed rail of square posts
   with post-type badges, hover caption, arrow paging and drag-to-scroll. */
.ig{padding:96px 0 104px;overflow:hidden}
.ig__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:44px;padding:0 28px;box-sizing:border-box}
.ig__head > div:first-child{max-width:640px}
.ig__head .h2 em{font-size:.62em;letter-spacing:-.015em;margin-top:6px;color:var(--wps-light)}
.ig__actions{display:flex;align-items:center;gap:14px}
.ig__btn-i{width:18px;height:18px;fill:currentColor}
.ig__nav{display:flex;gap:8px}
.ig__arrow{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #D9E3F0;color:var(--wps-dark);cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),opacity .25s var(--ease)}
.ig__arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ig__arrow:hover:not(:disabled){background:var(--wps-dark);border-color:var(--wps-dark);color:#fff}
.ig__arrow:disabled{opacity:.4;cursor:default}

.ig__track{--gap:16px;list-style:none;margin:0;display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:6px max(28px,calc((100vw - var(--shell)) / 2 + 28px)) 18px;scroll-padding-inline:max(28px,calc((100vw - var(--shell)) / 2 + 28px));
  scrollbar-width:none;cursor:grab;-webkit-user-select:none;user-select:none}
.ig__track::-webkit-scrollbar{display:none}
.ig__track.is-drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.ig__track.is-drag .ig__post{pointer-events:none}
.ig__track li{flex:0 0 clamp(220px,22vw,300px);scroll-snap-align:start}

.ig__post{position:relative;display:block;aspect-ratio:1;border-radius:22px;overflow:hidden;background:#0A1152;isolation:isolate;
  box-shadow:0 14px 34px rgba(20,71,156,.12);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.ig__post img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ig__post::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,6,26,0) 38%,rgba(7,13,63,.88) 100%);opacity:0;transition:opacity .4s var(--ease)}
.ig__post:hover,.ig__post:focus-visible{transform:translateY(-4px);box-shadow:0 22px 44px rgba(20,71,156,.22)}
.ig__post:hover img,.ig__post:focus-visible img{transform:scale(1.06)}
.ig__post:hover::after,.ig__post:focus-visible::after{opacity:1}

.ig__type{position:absolute;top:12px;right:12px;z-index:2;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(7,13,63,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.22)}
.ig__type svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
.ig__type svg .f{fill:#fff;stroke:none}

.ig__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 18px 16px;color:#fff;display:flex;flex-direction:column;gap:5px;
  transform:translateY(10px);opacity:0;transition:transform .4s var(--ease),opacity .4s var(--ease)}
.ig__post:hover .ig__cap,.ig__post:focus-visible .ig__cap{transform:none;opacity:1}
.ig__cap-t{font-weight:700;font-size:15px;line-height:1.3}
.ig__cap-h{font-family:var(--f-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--wps-teal)}
.ig .u-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (hover:none){.ig__post::after,.ig__cap{opacity:1;transform:none}.ig__cap-t{font-size:13.5px}}
@media (max-width:760px){
  .ig{padding:68px 0 76px}
  .ig__head{padding:0 18px;margin-bottom:30px}
  .ig__actions{width:100%;justify-content:space-between}
  .ig__arrow{width:46px;height:46px}
  .ig__track{--gap:12px;padding-inline:18px;scroll-padding-inline:18px}
  .ig__track li{flex-basis:72vw}
}
@media (max-width:420px){.ig__actions .btn{padding:14px 20px;font-size:14px}}
@media (prefers-reduced-motion:reduce){.ig__track{scroll-behavior:auto}.ig__post,.ig__post img,.ig__cap{transition:none}}

html[data-theme="dark"] .ig__arrow{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.18);color:#fff}
html[data-theme="dark"] .ig__arrow:hover:not(:disabled){background:var(--wps-light);border-color:var(--wps-light)}
html[data-theme="dark"] .ig__post{box-shadow:0 18px 40px rgba(0,0,0,.4)}

/* ============================== HOMEPAGE SPACING SYSTEM ==============================
   One vertical rhythm for every homepage section (scoped to body.home so inner pages
   that share this sheet are untouched).
   --sp-sect  gap between any two consecutive blocks (each section carries half top + bottom,
              so open sections, panels and full-bleed bands all sit the same distance apart)
   --sp-head  heading block → its content
   --sp-panel inner padding of the dark / white card panels */
.home{--sp-sect:128px;--sp-head:56px;--sp-panel:88px;--sp-panel-x:72px;--sp-gutter:28px}
@media (max-width:1080px){.home{--sp-sect:104px;--sp-head:44px;--sp-panel:68px;--sp-panel-x:44px;--sp-gutter:24px}}
@media (max-width:760px){.home{--sp-sect:80px;--sp-head:36px;--sp-panel:52px;--sp-panel-x:24px;--sp-gutter:18px}}

.home .router,.home .sect,.home .stats,.home .speakers,.home .awards,
.home .voices,.home .motion,.home .reg,.home .ig{padding-top:calc(var(--sp-sect) / 2);padding-bottom:calc(var(--sp-sect) / 2);margin:0}
/* first block after the hero ticker and the last block before the footer get the full gap */
.home .marquee + section{padding-top:var(--sp-sect)}
.home .ig{padding-bottom:clamp(24px,3vw,40px)}

/* side gutters: open sections match the shell gutter, card panels keep their slimmer inset */
.home .router,.home .sect,.home .voices,.home .reg{padding-left:var(--sp-gutter);padding-right:var(--sp-gutter)}
.home .ig__head,.home .motion__head{padding-left:var(--sp-gutter);padding-right:var(--sp-gutter)}

/* card panels */
.home .stats__panel,.home .white-panel,.home .awards__panel{padding:var(--sp-panel) var(--sp-panel-x)}

/* heading → content */
.home .head--split,.home .head--centre,.home .router__head,.home .reg__head,
.home .stats__head,.home .supp__head,.home .ig__head,.home .motion__head .head--split{margin-bottom:var(--sp-head)}
.home .spk__more{margin-top:var(--sp-head)}
.home .supp .pcar__group{margin-top:var(--sp-head)}
/* a heading that opens its block (no eyebrow above it) shouldn't add its 16px top margin to the section gap */
.home section h2:first-child{margin-top:0}

/* ============================== AWARDS — READABILITY ==============================
   The awards panel is always dark, but several parts inherited light-theme tokens or sat
   teal-on-teal over the trophy image's glow. Fixes apply in both themes. */
/* a deeper scrim under the copy column so the image's teal glow doesn't wash out the text */
@media (min-width:1081px){
  .awards__panel::before{background:
    linear-gradient(90deg,rgba(8,9,38,.82) 0%,rgba(8,9,38,.62) 30%,rgba(8,9,38,.18) 50%,rgba(8,9,38,0) 60%),
    url('../images/wps-award-trophy-wide.png') 20% center/cover no-repeat}
}
html .awards__panel .eyebrow.eyebrow--teal{color:#A8F5E9;font-weight:600}
html .awards__panel h2 em{color:#5EEBD6}
/* was var(--w55): light-theme grey (#5A6B85) on a dark panel */
html .awards__panel .awards__p{color:rgba(255,255,255,.84)}
html .awards__panel .awards__p strong{color:#fff;font-weight:700}
/* navy-on-navy primary button → light button so the main action stands out */
html .awards__panel .btn--primary{background:#fff;color:var(--wps-dark);box-shadow:0 10px 28px rgba(0,0,0,.28)}
html .awards__panel .btn--primary:hover{background:#E4F6FF;color:var(--wps-dark)}
html .awards__panel .btn--ghost{border-color:rgba(255,255,255,.55);color:#fff;background:rgba(8,9,38,.35)}
html .awards__panel .btn--ghost:hover{border-color:#fff;background:rgba(8,9,38,.55)}
/* stat labels: larger, higher-contrast, less tracking */
.awards__panel .astat{background:rgba(8,9,38,.68);border-color:rgba(255,255,255,.18)}
.awards__panel .astat span{font-size:12px;letter-spacing:.1em;color:rgba(255,255,255,.8);line-height:1.45}
/* the "13" card sits in a narrow column — stack number over label instead of squeezing
   the label into a sliver that broke "CATEGORIES" mid-word */
.awards__panel .astat--hero{flex-direction:column;align-items:flex-start;gap:10px;background:rgba(3,36,40,.72)}
.awards__panel .astat--hero b{font-size:clamp(56px,5.2vw,84px)}
.awards__panel .astat--hero span{font-size:12px;color:rgba(255,255,255,.85)}
/* 2025 stats card: shadow 20% lighter (was 0 42px 100px rgba(0,0,0,.35)) */
.stats:not(.supp) .stats__panel{box-shadow:0 34px 80px rgba(0,0,0,.28)}

/* ---------- Brand lockup (assets/Logo/WPS-logo.svg) ----------
   One SVG now carries WPS + divider + Dubai Police, replacing the old four-image
   block. The .logo-on-dark / .logo-on-light classes are kept on the nav pair so
   every existing swap rule (nav.is-stuck, dark theme, mobile-menu-open) keeps
   working untouched. Height comes from .brand img / .foot__logo img.
   The footer uses its own classes so the global mobile-menu rules can't reach it. */
.brand__lock{display:block;width:auto}
.foot__lock{display:block;width:auto;height:34px}
.foot__lock--dark{display:none}
html[data-theme="dark"] .foot__lock--light{display:none}
html[data-theme="dark"] .foot__lock--dark{display:block}

/* ---------- Social icon hover ----------
   .social sits inside .foot, so `.foot a:hover` (0,2,1) and its dark variant
   `html[data-theme="dark"] .foot a:hover` (0,3,2) both outranked `.social a:hover`
   (0,2,1) and won `color` — while `.social a:hover` still won `background`. In dark
   that painted the glyph --wps-light on a --wps-light circle: contrast 1.00, the
   icon disappeared entirely. Scoping to `.foot .social` lifts these above the
   generic footer link rule in both themes. */
.foot .social a:hover{background:var(--wps-light);border-color:var(--wps-light);
  color:#04243c;box-shadow:0 0 12px rgba(0,157,217,.2)}
html[data-theme="dark"] .foot .social a:hover{background:var(--wps-light);
  border-color:var(--wps-light);color:#04243c}
/* Approved 2026 navigation structure: nine desktop items plus compact utility controls. */
.nav__pill{max-width:min(1560px,calc(100vw - 40px));gap:12px;padding-inline:18px}
.nav.is-stuck .nav__pill{max-width:100vw}
.nav__links{flex:1;justify-content:center;gap:clamp(7px,.72vw,14px);font-size:clamp(11.5px,.82vw,13px);min-width:0}
.nav__end{gap:8px;flex-shrink:0}
.brand img{height:28px}
.theme-toggle,.language-link{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 36px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.05);color:rgba(255,255,255,.76);transition:color .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease)}
.theme-toggle{padding:0;cursor:pointer}
.theme-toggle:hover,.language-link:hover{color:#fff;background:rgba(255,255,255,.12)}
.theme-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle__sun{display:none}
html[data-theme="dark"] .theme-toggle__sun{display:block}
html[data-theme="dark"] .theme-toggle__moon{display:none}
.language-link{width:auto;min-width:42px;padding:0 10px;font-size:11.5px;font-weight:800;white-space:nowrap}
.nav.is-stuck :is(.theme-toggle,.language-link){border-color:rgba(22,33,58,.14);background:rgba(22,33,58,.04);color:#5A6B85}
.nav.is-stuck :is(.theme-toggle,.language-link):hover{color:var(--ink);background:rgba(20,71,156,.1)}
html[data-theme="dark"] .nav.is-stuck :is(.theme-toggle,.language-link){border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:rgba(255,255,255,.72)}
html[data-theme="dark"] .nav.is-stuck :is(.theme-toggle,.language-link):hover{color:#fff;background:rgba(255,255,255,.12)}
[dir="rtl"] .nvi__car{margin-left:0;margin-right:5px}
[dir="rtl"] .nvi__dd{text-align:right}
.mobile-menu__utility{margin-top:24px;padding-top:8px}
.mobile-menu__utility a{color:var(--wps-dark)}
html[data-theme="dark"] .mobile-menu__utility a{color:var(--wps-light)}
@media (min-width:1101px) and (max-width:1366px){
  .nav__pill{gap:9px;padding-inline:14px}
  .nav__links{gap:7px;font-size:11.5px}
  .brand img{height:26px}
  .theme-toggle,.language-link{height:32px;flex-basis:32px}
  .theme-toggle{width:32px}
  .language-link{width:auto;min-width:38px;padding-inline:8px;font-size:10.5px}
  .nvi__car{margin-left:3px}
  [dir="rtl"] .nvi__car{margin-left:0;margin-right:3px}
}
@media (min-width:1101px) and (max-width:1180px){
  .nav__links{display:flex}
  .burger{display:none}
}
@media (max-width:1100px){
  .nav__links{display:none}
  .burger{display:flex;margin-left:auto}
  [dir="rtl"] .burger{margin-left:0;margin-right:auto}
}
@media (max-width:560px){
  .nav__end .language-link{display:none}
}
html[data-theme="dark"] .foot__podcast-label{color:rgba(255,255,255,.72)}
html[data-theme="dark"] .foot__podcast-links a{border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.8)}
html[data-theme="dark"] .foot .foot__podcast-links a:hover{background:var(--wps-light);border-color:var(--wps-light);color:#fff}
/* Role typography (sizes, weights, tracking) lives in typography.css. */
