
@font-face{font-family:'Orleen';src:url('/assets/fonts/Orleen-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Orleen';src:url('/assets/fonts/Orleen-Medium.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Orleen';src:url('/assets/fonts/Orleen-Bold.woff2') format('woff2');font-weight:700;font-display:swap}

:root{
  --nav-h:100px;
  --deep:#01293A; --d800:#013C56; --teal:#015879; --t600:#0B7095; --t400:#3E93B2;
  --t100:#DCEAF1; --t50:#EFF6F9;
  --gold:#C08C2C; --goldL:#F1DCA2; --goldM:#E2C06A;
  --ink:#0E1C24; --body:#41545F; --muted:#7A8B95; --line:#E2E9ED;
  --nav:100px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav) + 16px)}
body{font-family:'Inter','IBM Plex Sans Arabic',system-ui,sans-serif;color:var(--body);
  background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit}
.ar{font-family:'Orleen','IBM Plex Sans Arabic',sans-serif;direction:rtl;unicode-bidi:isolate}
.wrap{width:min(1180px,calc(100% - 44px));margin:0 auto}
@keyframes sheen{to{background-position:200% 0}}
@keyframes sway{from{transform:translate3d(0,0,0)}to{transform:translate3d(26px,-20px,0)}}
@keyframes sway2{from{transform:translate3d(0,0,0)}to{transform:translate3d(-28px,16px,0)}}

/* ─────────── masthead ─────────── */
.masthead{position:relative;z-index:20;background:#fff;padding:15px 0}
.goldtop{position:absolute;top:0;left:0;right:0;height:4px;z-index:3;
  background:linear-gradient(90deg,#8E611A,#C08C2C 22%,#F1DCA2 50%,#C08C2C 78%,#8E611A);
  background-size:200% 100%;animation:sheen 8s linear infinite}
.mh-tex{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.mh-tex svg{width:100%;height:100%;display:block;stroke-width:1;
  animation:sway 30s ease-in-out infinite alternate}
.mh-in{display:flex;align-items:center;gap:20px;position:relative;z-index:6;
  width:min(1340px,calc(100% - 40px));margin:0 auto}
.mh-logo{flex:none}
.mh-logo img{height:71px;width:auto}
.mh-nav{flex:1 1 auto;display:flex;justify-content:center;min-width:0}
.mh-gap{flex:1 1 auto;min-width:20px}
.mh-org{flex:none;display:flex;align-items:center;gap:11px;padding-left:20px;
  border-left:1px solid var(--line)}
.mh-org .k{font-size:14px;font-weight:700;color:var(--t600);white-space:nowrap;
  font-family:'Orleen','IBM Plex Sans Arabic',sans-serif}
.mh-org img{height:71px;width:auto}
.mh-burger{display:none;margin-left:2px;background:none;border:0;cursor:pointer;padding:8px;
  flex-direction:column;gap:5px}
.mh-burger span{width:24px;height:2px;background:var(--d800);border-radius:2px}
.mh-curvewrap{position:absolute;left:0;right:0;top:calc(100% - 1px);height:170px;
  overflow:hidden;z-index:2;pointer-events:none}
.mh-curve{position:absolute;top:0;left:0;width:100%;height:96px;display:block;
  filter:drop-shadow(0 14px 26px rgba(0,16,26,.22))}

/* ─────────── sticky nav ─────────── */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav);z-index:60;
  background:rgba(255,255,255,.97);backdrop-filter:blur(12px);
  transform:translateY(-105%);visibility:hidden;
  transition:transform .38s cubic-bezier(.2,.7,.3,1),visibility .38s}
.nav.show{transform:none;visibility:visible;
  box-shadow:0 1px 0 rgba(0,30,45,.10),0 10px 30px rgba(0,20,32,.08)}
.nav .wrap{display:flex;align-items:center;gap:22px;width:min(1340px,calc(100% - 40px));height:100%}
.nav .brand{display:flex;align-items:center;flex:none}
.nav .brand img{height:64px;width:auto;display:block}
.menubar ul{list-style:none;display:flex;gap:17px;margin:0 auto;align-items:center;flex:none}
.menubar ul li{flex:none;white-space:nowrap}
.menubar ul a{text-decoration:none;font-size:14.5px;font-weight:600;letter-spacing:.2px;
  color:var(--d800);position:relative;padding:6px 0;transition:color .25s}
.menubar ul a::after{content:'';position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:var(--gold);transition:right .28s;border-radius:2px}
.menubar ul a:hover::after,.menubar ul a.on::after{right:0}
.menubar ul a.on{color:var(--teal)}
.cta{display:inline-flex;align-items:center;gap:8px;flex:none;padding:12px 24px;border-radius:999px;
  background:linear-gradient(135deg,var(--gold),#D9A94A);color:#fff!important;text-decoration:none;
  font-weight:700;font-size:13.5px;white-space:nowrap;
  /* the same pill whether it is a link or a submit button */
  border:0;font-family:inherit;cursor:pointer;
  box-shadow:0 6px 18px rgba(192,140,44,.36);transition:transform .2s,box-shadow .2s}
.cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(192,140,44,.46)}
.cta.ghost{background:transparent;border:1.5px solid rgba(255,255,255,.45);box-shadow:none;color:#fff!important}
.cta.ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.menubar ul li a.cta{color:#fff;padding:12px 24px}
.menubar ul li a.cta::after{display:none}
.burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:8px;
  flex-direction:column;gap:5px}
.burger span{width:24px;height:2px;background:var(--d800);border-radius:2px}
/* On a phone the menu is behind a button, so the one action the site is asking
   for would be two taps away. This keeps it one, in the bar that follows the
   page down. It is hidden at every width where the full menu is on show. */
.navreg{display:none}

/* the two actions at the end of the menu: sign in, and register */
.menubar ul li.mh-sep{width:1px;height:24px;background:var(--line);margin:0 8px}
.menubar ul li.act{margin-left:-4px}
.menubar ul li.act:first-of-type{margin-left:0}
.menubar ul li a.signin{font-size:14.5px;font-weight:600;color:var(--muted);
  text-decoration:none;transition:color .25s}
.menubar ul li a.signin:hover{color:var(--teal)}
.nav .signin-li{display:none}
.mh-nav .cta{padding:11px 22px}
.mh-nav .drop{top:calc(100% + 26px)}

/* dropdown */
.has-sub{position:relative;z-index:40}
.carat{display:inline-block;width:6px;height:6px;margin-left:7px;border-right:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.65}
.drop{position:absolute;z-index:40;top:calc(100% + 14px);left:-18px;min-width:246px;background:#fff;
  border-radius:14px;padding:9px 0;list-style:none;flex-direction:column;gap:0;display:flex;
  align-items:stretch;text-align:left;
  box-shadow:0 18px 44px rgba(0,25,40,.16),0 0 0 1px rgba(0,30,45,.06);
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .24s,transform .24s,visibility .24s}
.has-sub:hover .drop,.has-sub.open .drop{opacity:1;visibility:visible;transform:none}
.drop::before{content:'';position:absolute;top:-14px;left:0;right:0;height:14px}
.drop li{width:100%}
.menubar .drop a{display:block;padding:11px 22px;font-size:13.5px;font-weight:600;color:var(--body);
  white-space:nowrap;text-align:left;width:100%}
.menubar .drop a::after{display:none}
.menubar .drop a:hover{background:var(--t50);color:var(--teal)}

/* ─────────── dark bands ─────────── */
.darkbg{position:relative;color:#fff;overflow:hidden;
  background:
    radial-gradient(120% 90% at 82% 4%, rgba(62,147,178,.5) 0%, rgba(1,88,121,0) 58%),
    radial-gradient(90% 70% at 6% 100%, rgba(11,112,149,.45) 0%, rgba(1,41,58,0) 60%),
    linear-gradient(158deg,#01293A 0%,#013C56 40%,#015879 76%,#0B7095 100%)}
.mesh{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.layer{position:absolute;inset:0;width:100%;height:100%;will-change:transform}
.l1{animation:sway 34s ease-in-out infinite alternate}
.l2{animation:sway2 26s ease-in-out infinite alternate}
.l3{animation:sway 44s ease-in-out infinite alternate-reverse}
.rings circle{stroke-width:1;opacity:.10;animation:breathe 14s ease-in-out infinite}
.rings circle:nth-child(2){animation-delay:-4s}
.rings circle:nth-child(3){animation-delay:-8s}
@keyframes breathe{0%,100%{opacity:.10}50%{opacity:.19}}
.net line{stroke:#fff;stroke-width:1;stroke-opacity:.16;
  stroke-dasharray:var(--len);stroke-dashoffset:var(--len);
  animation:draw 2.4s ease-out forwards var(--d), glow 9s ease-in-out infinite var(--d)}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes glow{0%,100%{stroke-opacity:.10}50%{stroke-opacity:.26}}
.dots circle{fill:#fff;opacity:.28;transform-box:fill-box;transform-origin:center;
  animation:twinkle 6s ease-in-out infinite var(--d)}
.dots circle.gold{fill:#E2C06A;opacity:.55}
@keyframes twinkle{0%,100%{opacity:.18;transform:scale(.85)}50%{opacity:.62;transform:scale(1.15)}}
.vir{transform-box:fill-box;transform-origin:center;animation:spin var(--dur) linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;pointer-events:none}
.orb.o1{width:420px;height:420px;left:-120px;top:8%;
  background:radial-gradient(circle,rgba(62,147,178,.55),transparent 70%);
  animation:orb1 22s ease-in-out infinite alternate}
.orb.o2{width:380px;height:380px;right:-100px;bottom:6%;
  background:radial-gradient(circle,rgba(192,140,44,.28),transparent 70%);
  animation:orb2 27s ease-in-out infinite alternate}
@keyframes orb1{to{transform:translate(90px,70px) scale(1.15)}}
@keyframes orb2{to{transform:translate(-80px,-60px) scale(1.12)}}
.curveDown{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:80px;z-index:2}

/* ─────────── home hero ─────────── */
.hero{min-height:82svh;display:flex;align-items:center;padding:116px 0 78px}
.hero .wrap{position:relative;z-index:3;max-width:980px;text-align:center}
.hero .artitle{font-size:clamp(26px,4.6vw,44px);font-weight:700;color:#EFDDB0;line-height:1.4}
.hero h1{margin-top:12px;font-size:clamp(30px,5.2vw,58px);font-weight:800;line-height:1.1;
  letter-spacing:-1.2px;color:#fff}
.hero h1 span{display:block;font-weight:300;color:#CFE6F0}
.dateline{margin:24px auto 0;display:inline-flex;align-items:center;gap:16px;flex-wrap:wrap;
  justify-content:center;font-size:clamp(16px,2.1vw,24px);font-weight:700;color:#EFDDB0;
  padding:13px 30px;border-radius:999px;background:rgba(226,192,106,.10);
  border:1px solid rgba(226,192,106,.34)}
.dateline i{width:5px;height:5px;border-radius:50%;background:var(--goldM);flex:none}
.lede{margin:22px auto 0;max-width:700px;font-size:clamp(15px,1.7vw,18px);color:#D5E8F0}
.heroBtns{margin-top:32px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.count{margin:42px auto 0;display:flex;gap:11px;justify-content:center;flex-wrap:wrap}
.cb{min-width:90px;padding:15px 12px 13px;border-radius:14px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.15)}
.cb b{display:block;font-size:27px;font-weight:800;color:#fff;line-height:1;font-variant-numeric:tabular-nums}
.cb small{display:block;margin-top:6px;font-size:10px;letter-spacing:1.6px;text-transform:uppercase;
  color:#9CC6D8;font-weight:700}
.hero .wrap > *{opacity:0;animation:up .9s cubic-bezier(.2,.7,.3,1) forwards}
.hero .artitle{animation-delay:.16s}.hero h1{animation-delay:.3s}
.hero .dateline{animation-delay:.46s}.hero .lede{animation-delay:.6s}
.hero .heroBtns{animation-delay:.74s}.hero .count{animation-delay:.88s}
@keyframes up{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* ─────────── inner page header ─────────── */
.phead{padding:104px 0 96px;text-align:center}
.phead .wrap{position:relative;z-index:3}
.phead .kick{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:999px;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);
  font-size:11.5px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#EFDDB0}
.phead h1{margin-top:20px;font-size:clamp(30px,4.6vw,50px);font-weight:800;letter-spacing:-1.1px;
  line-height:1.12;color:#fff}
.phead h1 span{font-weight:300;color:#9CC6D8}
.phead p{margin:18px auto 0;max-width:700px;font-size:16.5px;color:#D5E8F0}

/* ─────────── sections ─────────── */
section{padding:88px 0;position:relative}
.tint{background:linear-gradient(180deg,#F5FAFC,#fff 60%)}
.kicker{display:flex;align-items:center;gap:12px;font-size:11.5px;letter-spacing:2.2px;
  text-transform:uppercase;font-weight:800;color:var(--t600);justify-content:center}
.kicker::before,.kicker::after{content:'';width:34px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--gold))}
.kicker::after{background:linear-gradient(90deg,var(--gold),transparent)}
h2{font-size:clamp(26px,3.6vw,40px);font-weight:800;color:var(--d800);letter-spacing:-.9px;
  line-height:1.16;margin-top:16px;text-align:center}
h2 span{font-weight:300;color:var(--t600)}
.sub{margin:16px auto 0;max-width:720px;text-align:center;font-size:16.5px;color:var(--body)}
.grid{display:grid;gap:22px;margin-top:50px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:50px}

.stats{grid-template-columns:repeat(3,1fr)}
.stat{border-radius:18px;padding:34px 28px;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(145deg,#013C56,#015879)}
.stat:nth-child(2){background:linear-gradient(145deg,#015879,#0B7095)}
.stat:nth-child(3){background:linear-gradient(145deg,#0B7095,#3E93B2)}
.stat b{display:block;font-size:46px;font-weight:800;line-height:1;letter-spacing:-2px}
.stat i{display:block;font-style:normal;margin-top:12px;font-size:11.5px;letter-spacing:1.8px;
  text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.85)}
.stat::after{content:'';position:absolute;right:-30px;bottom:-40px;width:130px;height:130px;
  border-radius:50%;border:4px solid rgba(255,255,255,.12)}

.panel{background:var(--t50);border-radius:18px;padding:34px 32px;border-left:4px solid var(--teal)}
.panel.gold{background:#FCF8EF;border-left-color:var(--gold)}
.panel h3{font-size:20px;color:var(--d800);font-weight:700;margin-bottom:14px}
.panel p{font-size:15.5px}
.vm{border-radius:18px;padding:38px 34px;color:#fff;position:relative;overflow:hidden}
.vm.v{background:linear-gradient(145deg,#013C56,#015879)}
.vm.m{background:linear-gradient(145deg,#0B7095,#3E93B2)}
.vm i{display:block;font-style:normal;font-size:11.5px;letter-spacing:2.4px;text-transform:uppercase;
  font-weight:800;color:rgba(255,255,255,.8)}
.vm p{margin-top:16px;font-size:16.5px;color:#fff;line-height:1.7}
.vm::after{content:'';position:absolute;right:-40px;top:-40px;width:150px;height:150px;
  border-radius:50%;border:4px solid rgba(255,255,255,.14)}

.themes{grid-template-columns:repeat(3,1fr)}
.theme{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 26px;
  transition:transform .28s,box-shadow .28s,border-color .28s}
.theme:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,30,45,.10);border-color:#CFE0E8}
.theme .ic{width:56px;height:56px;border-radius:16px;background:var(--t50);color:var(--teal);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.theme .ic svg{width:28px;height:28px}
.theme em{font-style:normal;font-size:11px;letter-spacing:2px;font-weight:800;color:var(--t400)}
.theme h3{margin-top:8px;font-size:18.5px;font-weight:700;color:var(--d800);line-height:1.3}
.theme p{margin-top:10px;font-size:14.5px;color:var(--muted)}

.tabs{display:flex;gap:10px;justify-content:center;margin-top:12px}
.tab{padding:13px 30px;border-radius:999px;border:1.5px solid var(--line);background:#fff;
  font-weight:700;font-size:14.5px;color:var(--t600);cursor:pointer;transition:.25s;font-family:inherit}
.tab.on{background:var(--teal);border-color:var(--teal);color:#fff;box-shadow:0 8px 22px rgba(1,88,121,.28)}
.day{display:none;margin-top:36px}
.day.on{display:block;animation:fade .45s ease both}
@keyframes fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ses{margin:26px 0 4px;padding:14px 22px;border-radius:12px;
  background:linear-gradient(135deg,#013C56,#015879);color:#fff}
.ses span{font-size:13px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}
.slot{display:grid;grid-template-columns:130px 1fr;gap:26px;padding:22px 0;border-top:1px solid var(--line)}
.slot:last-child{border-bottom:1px solid var(--line)}
.slot .t{font-weight:800;color:var(--teal);font-size:14.5px;font-variant-numeric:tabular-nums;padding-top:2px}
.slot h4{font-size:17px;font-weight:700;color:var(--d800)}
.slot .who{display:inline-block;margin-top:8px;font-size:13.5px;font-weight:700;color:var(--teal);
  padding:4px 12px;border-radius:999px;background:var(--t50)}
.slot.pan .who{color:var(--muted);background:#F4F7F9;font-weight:600}
.slot.brk{background:#FAFCFD}
.slot.brk h4{color:var(--t600);font-weight:600}
/* A slot on the programme whose talk is not settled. Saying so is better than
   an empty row, which reads as a mistake, or a made up title, which is worse. */
.slot.tbc h4{color:var(--muted);font-weight:600;font-style:italic}
.note{margin-top:22px;text-align:center;font-size:13px;color:var(--muted)}

.ticks{list-style:none;margin-top:8px}
.ticks li{position:relative;padding-left:28px;font-size:15.5px;margin-bottom:14px;line-height:1.55}
.ticks li:last-child{margin-bottom:0}
.ticks li::before{content:'';position:absolute;left:0;top:8px;width:10px;height:10px;border-radius:50%;
  background:var(--gold)}
.ticks.teal li::before{background:var(--t600)}
.outs{grid-template-columns:repeat(2,1fr);gap:0 40px}
.out{display:flex;gap:16px;padding:20px 0;border-top:1px solid var(--line)}
.out .n{flex:none;width:34px;height:34px;border-radius:50%;background:var(--t50);color:var(--teal);
  font-size:12.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
.out p{font-size:15px}

.spk{grid-template-columns:repeat(4,1fr)}
.card-s{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;
  transition:transform .28s,box-shadow .28s}
.card-s:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,30,45,.10)}
.card-s .ph{aspect-ratio:1/1;background:linear-gradient(145deg,#EAF3F7,#D8E8EF);
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.card-s .ph svg{width:62px;height:62px;stroke:#9DBECD;fill:none;stroke-width:1.3}
.card-s .b{padding:20px}
.card-s h4{font-size:16px;font-weight:700;color:var(--d800)}
.card-s p{font-size:13.5px;color:var(--muted);margin-top:5px}

/* ── leadership, on the home page ─────────────────────────────────────── */
.lead3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:46px}
.lcard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 28px 26px;
  display:flex;flex-direction:column;gap:20px;text-decoration:none;
  transition:transform .3s,box-shadow .3s,border-color .3s}
.lcard:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(0,30,45,.11);
  border-color:var(--t100)}
.lcard .q{display:block;width:30px;height:30px;color:var(--goldM)}
.lcard .q svg{width:100%;height:100%;display:block}
.lcard blockquote{font-size:17.5px;line-height:1.6;color:var(--d800);font-weight:600;
  letter-spacing:-.1px;flex:1}
/* These three outrank everyone further down the page, so their portraits are
   not smaller than the committee's. A gold ring says which three they are. */
/* The three cards sit in a row, so the names have to start on the same line.
   Centring each name against its own portrait put them at three different
   heights, because one name wraps and one role runs to three lines. */
.lcard .who{display:flex;align-items:flex-start;gap:18px;padding-top:22px;
  border-top:1px solid var(--line)}
.lcard .ph{width:104px;height:104px;border-radius:50%;overflow:hidden;flex:none;
  background:var(--t50);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--goldM),
    0 12px 26px rgba(0,30,45,.14)}
.lcard .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 14%;display:block}
.lcard .n{padding-top:7px}
.lcard .n b{display:block;font-size:17.5px;font-weight:800;color:var(--d800);line-height:1.28;
  letter-spacing:-.2px}
.lcard .n span{display:block;font-size:13.6px;color:var(--muted);margin-top:5px;line-height:1.45}
.more{display:inline-flex;align-items:center;gap:9px;margin-top:34px;font-size:14.5px;
  font-weight:700;color:var(--t600);text-decoration:none}
.more::after{content:'';width:18px;height:2px;background:currentColor;border-radius:2px;
  transition:width .25s}
.more:hover::after{width:28px}
@media(max-width:980px){.lead3{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.lcard .ph{width:86px;height:86px}}
@media(max-width:640px){.lead3{grid-template-columns:1fr;gap:18px}
  .lcard{padding:26px 24px 22px}}

/* ── the download page ───────────────────────────────────────────────── */
.dlist{max-width:860px;margin:0 auto;list-style:none;display:grid;gap:16px}
.dl{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 26px;
  transition:transform .28s,box-shadow .28s,border-color .28s}
.dl:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(0,30,45,.10);
  border-color:var(--t100)}
.dl .ic{width:56px;height:56px;border-radius:14px;background:var(--t50);color:var(--t600);
  display:flex;align-items:center;justify-content:center;flex:none}
.dl .ic svg{width:27px;height:27px}
.dl .b{min-width:0}
.dl .b strong{display:block;font-size:17px;font-weight:700;color:var(--d800);line-height:1.3}
.dl .b .d{display:block;font-size:14px;color:var(--muted);margin-top:5px;line-height:1.55}
.dl .b .meta{display:block;font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;
  font-weight:800;color:var(--t400);margin-top:9px}
.dl .get{flex:none;display:inline-flex;align-items:center;gap:9px;padding:12px 22px;
  text-decoration:none;
  border-radius:999px;background:var(--t50);color:var(--t600);font-size:14px;font-weight:700;
  border:1px solid var(--t100);transition:background .2s,color .2s,border-color .2s}
.dl .get svg{width:17px;height:17px}
.dl .get:hover{background:var(--t600);color:#fff;border-color:var(--t600)}
.cta.line{background:transparent;border:1.5px solid var(--t100);box-shadow:none;
  color:var(--t600)!important}
.cta.line:hover{border-color:var(--t600);background:var(--t50);box-shadow:none}

.prices{grid-template-columns:repeat(2,1fr);max-width:760px;margin-left:auto;margin-right:auto}
.price{background:#fff;border-radius:20px;padding:38px 32px;text-align:center;position:relative;
  overflow:hidden;box-shadow:0 20px 50px rgba(0,16,26,.3)}
.price::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,var(--gold),var(--goldL),var(--gold))}
.price i{display:block;font-style:normal;font-size:11px;letter-spacing:2px;text-transform:uppercase;
  font-weight:800;color:var(--t600)}
.price b{display:block;font-size:52px;font-weight:800;color:var(--d800);line-height:1;margin-top:14px;
  letter-spacing:-2.5px}
.price b small{font-size:18px;font-weight:700;color:var(--muted);letter-spacing:0}
.price p{margin-top:12px;font-size:15px;color:var(--muted)}
.dark{background:radial-gradient(90% 80% at 85% 10%, rgba(62,147,178,.4), rgba(1,88,121,0) 60%),
  linear-gradient(158deg,#01293A,#013C56 45%,#015879)}
.dark h2{color:#fff}.dark h2 span{color:#9CC6D8}.dark .kicker{color:#EFDDB0}.dark .sub{color:#CFE6F0}
.regNote{margin-top:28px;text-align:center;font-size:13.5px;color:#9CC6D8}

.venue{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center;margin-top:50px}
.venueCard{border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#fff}
.venueCard .map{height:320px;background:linear-gradient(145deg,#E9F2F6,#D3E6EE)}
.venueCard .map iframe{display:block;width:100%;height:100%;border:0}
.venueCard .maplink{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:14px;
  font-weight:700;color:var(--teal);text-decoration:none}
.venueCard .maplink:hover{text-decoration:underline}
.venueCard .maplink svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none}
.venueCard .b{padding:26px 28px}
.venueCard h3{font-size:20px;color:var(--d800);font-weight:700}
.venueCard p{font-size:15px;margin-top:8px}

.tier{margin-top:42px}
.tierLbl{display:flex;align-items:center;gap:16px;justify-content:center;margin-bottom:22px}
.tierLbl span{font-size:11.5px;letter-spacing:2.4px;text-transform:uppercase;font-weight:800;
  color:var(--t600);white-space:nowrap}
.tierLbl::before,.tierLbl::after{content:'';flex:1;max-width:160px;height:1px;background:var(--line)}
.logos{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;max-width:760px;margin:0 auto}
.logoBox{background:#fff;border:1px solid var(--line);border-radius:16px;height:118px;
  display:flex;align-items:center;justify-content:center;padding:22px 30px;
  transition:transform .28s,box-shadow .28s}
.logoBox:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(0,30,45,.09)}
.logoBox img{max-height:52px;width:auto;object-fit:contain}
/* a single strategic partner stands alone, centred; a pair sits in the
   usual two-up band, with a little of the side padding given back to the
   height because one of the two marks is stacked rather than wide. */
.logos.one{grid-template-columns:1fr;max-width:380px}
.logos.two .logoBox{padding:13px 26px}
/* two sponsors sharing one box: a hairline between them, and each mark may
   shrink so the pair still fits on a narrow phone */
.logoBox.duo{gap:16px;padding:22px 18px}
.logoBox.duo img{min-width:0;max-width:calc(50% - 17px)}
.logoBox.duo i{flex:none;width:1px;height:44px;background:var(--line)}
/* a tier of three, which needs a wider band than a pair does */
.logos.three{grid-template-columns:repeat(3,1fr);max-width:980px}
@media(max-width:1000px){.logos.three{grid-template-columns:1fr 1fr;max-width:760px}}

/* teaser cards on the home page */
.tease{grid-template-columns:repeat(3,1fr)}
.tcard{display:block;text-decoration:none;border:1px solid var(--line);border-radius:18px;
  padding:30px 26px;background:#fff;transition:transform .28s,box-shadow .28s,border-color .28s}
.tcard:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,30,45,.10);border-color:#CFE0E8}
.tcard .ic{width:52px;height:52px;border-radius:15px;background:var(--t50);color:var(--teal);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.tcard .ic svg{width:26px;height:26px}
.tcard h3{font-size:19px;font-weight:700;color:var(--d800)}
.tcard p{font-size:14.5px;color:var(--muted);margin-top:9px}
.tcard .go{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-size:13.5px;
  font-weight:700;color:var(--teal)}
.tcard .go::after{content:'→';transition:transform .25s}
.tcard:hover .go::after{transform:translateX(4px)}

/* ─────────── forms ─────────── */
.formCard{background:#fff;border:1px solid var(--line);border-radius:22px;padding:42px 40px;
  box-shadow:0 22px 58px rgba(0,30,45,.09);max-width:900px;margin:46px auto 0}
.formCard.onDark{border-color:transparent;box-shadow:0 28px 70px rgba(0,16,26,.36)}
.frm{display:grid;grid-template-columns:1fr 1fr;gap:20px 22px;text-align:left}
.fld{display:flex;flex-direction:column;gap:8px;min-width:0}
.fld.full{grid-column:1/-1}
.fld[hidden]{display:none}
.fld label{font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;font-weight:800;
  color:var(--t600)}
.fld label .req{color:var(--gold)}
.fld label .opt{color:var(--muted);letter-spacing:1.2px}
.fld .hint{margin-top:-2px;font-size:12.5px;color:var(--muted);line-height:1.45}
.fld .hint.bad{color:#8E3A34;font-weight:600}
.fld .hint.good{color:#1D6B41;font-weight:600}
.vwrap{display:flex;gap:10px;align-items:stretch;min-width:0}
.vwrap input{flex:1 1 auto;min-width:0}
.frm select.titleSel{flex:none;width:auto;min-width:124px;padding-right:42px}
.vbtn{flex:none;padding:0 18px;border-radius:12px;border:1.5px solid var(--t100);
  background:var(--t50);color:var(--teal);font-family:inherit;font-weight:800;font-size:13px;
  letter-spacing:.3px;white-space:nowrap;cursor:pointer;
  transition:background .22s,border-color .22s,color .22s}
.vbtn:hover:not(:disabled){background:var(--teal);border-color:var(--teal);color:#fff}
.vbtn:disabled{opacity:.5;cursor:default}
.otp{flex:1 1 auto;min-width:0;display:flex;gap:9px}

/* Confirming an address is a small task of its own, so it gets its own window
   rather than six boxes sitting in the middle of the form for ever. */
.vmodal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:20px}
.vmodal[hidden]{display:none}
.vmodal-back{position:absolute;inset:0;background:rgba(3,40,58,.55);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:vfade .22s ease}
.vmodal-card{position:relative;width:min(440px,100%);background:#fff;border-radius:22px;
  padding:38px 34px 26px;text-align:center;box-shadow:0 30px 80px rgba(0,30,45,.28);
  animation:vrise .26s cubic-bezier(.2,.8,.3,1)}
@keyframes vfade{from{opacity:0}to{opacity:1}}
@keyframes vrise{from{opacity:0;transform:translateY(14px) scale(.97)}
  to{opacity:1;transform:none}}
.vmodal-x{position:absolute;top:14px;right:14px;width:34px;height:34px;display:grid;
  place-items:center;border:0;border-radius:50%;background:transparent;color:var(--muted);
  cursor:pointer;transition:background .2s,color .2s}
.vmodal-x:hover{background:var(--t50);color:var(--teal)}
.vmodal-x svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.2;
  stroke-linecap:round}
.vmodal-ic{width:60px;height:60px;margin:0 auto 16px;border-radius:50%;display:grid;
  place-items:center;background:var(--t50);color:var(--teal)}
.vmodal-ic svg{width:27px;height:27px;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linejoin:round}
.vmodal-card h3{font-size:23px;font-weight:800;color:var(--d800);margin:0 0 7px;
  letter-spacing:-.3px}
.vmodal-sub{font-size:14.5px;color:var(--muted);line-height:1.6;margin:0 0 22px}
.vmodal-sub b{color:var(--d800);font-weight:700;overflow-wrap:anywhere}
.vmodal .otp{justify-content:center;margin-bottom:6px}
.vmodal .otp input.vcode{flex:0 0 auto;width:48px;padding:14px 0}
.vmodal-msg{min-height:20px;margin:8px 0 0;font-size:13px;font-weight:600;line-height:1.5}
.vmodal-msg.bad{color:#8E3A34}
.vmodal-msg.good{color:#1D6B41}
.vmodal-go{width:100%;margin-top:14px;border:0;cursor:pointer;font-family:inherit}
.vmodal-go[disabled]{opacity:.55;cursor:default;transform:none;box-shadow:none}
.vmodal-foot{margin:16px 0 0;font-size:12.5px;color:var(--muted);line-height:1.6}
.linkish{border:0;background:none;padding:0;font:inherit;font-size:inherit;color:var(--teal);
  font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.linkish[disabled]{color:var(--muted);text-decoration:none;cursor:default}
@media (max-width:420px){
  .vmodal-card{padding:34px 20px 22px}
  .vmodal .otp{gap:7px}
  .vmodal .otp input.vcode{width:42px;font-size:19px;padding:12px 0}
}
body.vlock{overflow:hidden}
.otp input.vcode{flex:1 1 0;min-width:0;width:auto;padding:13px 2px;text-align:center;
  font-family:'Courier New',Courier,monospace;font-size:22px;font-weight:700;letter-spacing:0;
  caret-color:var(--teal);color:var(--ink);background:#fff;border:1.5px solid var(--line);
  border-radius:12px;line-height:1.5;transition:border-color .2s,box-shadow .2s,background .2s}
.otp input.vcode:focus{outline:none;border-color:var(--t400);
  box-shadow:0 0 0 4px rgba(62,147,178,.15)}
.otp input.vcode.on{border-color:var(--t400);background:#FBFDFE}
.otp input.vcode[readonly]{background:#F7FCF9;border-color:#8FCFAC}
.fld.ok input{border-color:#8FCFAC;background:#F7FCF9}
.vdone{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;
  background:#EAF6EF;border:1px solid #BFE3CD;color:#1D6B41;font-size:12.5px;font-weight:700}
.vdone svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round}
.fld .hint .ar{font-weight:700;color:var(--t600)}
.frm input,.frm select,.frm textarea{width:100%;font-family:inherit;font-size:15.5px;line-height:1.5;
  color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;
  transition:border-color .2s,box-shadow .2s}
.frm textarea{min-height:124px;resize:vertical}
.frm select{appearance:none;cursor:pointer;padding-right:44px;background-repeat:no-repeat;
  background-position:right 18px center;background-size:12px 8px;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%237A8B95' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E")}
.frm input::placeholder,.frm textarea::placeholder{color:#A9B7BF}
.frm input:focus,.frm select:focus,.frm textarea:focus{outline:none;border-color:var(--t400);
  box-shadow:0 0 0 4px rgba(62,147,178,.15)}
.frm .hp{position:absolute;left:-9999px;top:0;width:1px;height:1px;opacity:0;pointer-events:none}
.frm button.cta{border:0;cursor:pointer;font-family:inherit}
.frm button.cta[disabled]{opacity:.55;cursor:default;transform:none;box-shadow:none}
.fRow{grid-column:1/-1;display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:8px}
.fNote{flex:1;min-width:230px;font-size:13px;color:var(--muted);line-height:1.5}
.fMsg{grid-column:1/-1;display:none;border-radius:12px;padding:15px 18px;font-size:14.5px;
  font-weight:600;line-height:1.5}
.fMsg a{color:inherit}
.fMsg.ok{display:block;background:#EAF6EF;color:#1D6B41;border:1px solid #BFE3CD}
.fMsg.err{display:block;background:#FDF1F0;color:#8E3A34;border:1px solid #F0CFCC}
/* ── the confirmation page ──────────────────────────────────────────────
   A guest who arrives from their invitation has already identified
   themselves, so the page asks one question and offers one line. The choices
   are made large enough to answer with a thumb. */
.cfState{text-align:center;padding:10px 4px}
.cfH{font-size:23px;font-weight:800;color:var(--d800);letter-spacing:-.4px}
.cfSeal{width:54px;height:54px;margin:0 auto 14px;border-radius:999px;background:#EAF6EF;
  color:#1D6B41;font-size:26px;font-weight:800;display:flex;align-items:center;
  justify-content:center}
.cfForm{text-align:left}
.cfWho{padding-bottom:20px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.cfName{font-size:22px;font-weight:800;color:var(--d800);letter-spacing:-.4px}
.cfMail{font-size:14.5px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
.cfAsk{font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;font-weight:800;
  color:var(--t600);margin-bottom:13px}
.cfDays{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.cfDay{position:relative;display:flex;align-items:center;gap:13px;padding:16px 18px;
  border:1.5px solid var(--line);border-radius:16px;cursor:pointer;background:#fff;
  transition:border-color .15s ease,background .15s ease}
.cfDay:hover{border-color:var(--t400)}
.cfDay input{position:absolute;opacity:0;width:1px;height:1px}
.cfTick{flex:none;width:21px;height:21px;border-radius:999px;border:2px solid var(--line);
  position:relative;transition:border-color .15s ease}
.cfTick::after{content:'';position:absolute;inset:4px;border-radius:999px;background:var(--teal);
  transform:scale(0);transition:transform .15s ease}
.cfDay input:checked ~ .cfTick{border-color:var(--teal)}
.cfDay input:checked ~ .cfTick::after{transform:scale(1)}
.cfDay:has(input:checked){border-color:var(--teal);background:var(--t50)}
.cfDay input:focus-visible ~ .cfTick{box-shadow:0 0 0 4px rgba(62,147,178,.22)}
.cfTxt b{display:block;font-size:15.5px;font-weight:700;color:var(--d800);line-height:1.3}
.cfTxt i{display:block;font-style:normal;font-size:12.5px;color:var(--muted);margin-top:3px}
.cfNote{margin-top:22px;display:flex;flex-direction:column;gap:8px}
.cfNote label{font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;font-weight:800;
  color:var(--t600)}
.cfNote .opt{color:var(--muted);letter-spacing:1.2px}
.cfNote textarea{width:100%;font-family:inherit;font-size:15.5px;color:var(--ink);
  background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;
  line-height:1.55;resize:vertical;min-height:72px}
.cfNote textarea:focus{outline:none;border-color:var(--t400);
  box-shadow:0 0 0 4px rgba(62,147,178,.14)}
.cfForm .fMsg{grid-column:auto;margin-top:18px}
.cfGo{margin-top:22px;display:flex}
.cfGo .cta{width:100%;justify-content:center;padding:15px 24px;font-size:16px}
@media (max-width:620px){
  .cfDays{grid-template-columns:1fr}
}

/* ── registering, in four steps ─────────────────────────────────────────
   One form, one fieldset visible at a time, under a timeline that says where
   you are. On a phone the timeline keeps the numbers and drops the words for
   the steps you are not on. */
.wsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;list-style:none;
  max-width:860px;margin:36px auto 0;counter-reset:s}
.wsteps li{position:relative;text-align:center;padding-top:42px;font-size:13.5px;
  font-weight:700;color:var(--muted);line-height:1.35}
.wsteps li b{position:absolute;top:0;left:50%;transform:translateX(-50%);width:34px;height:34px;
  border-radius:999px;background:#fff;border:2px solid var(--line);color:var(--muted);
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;z-index:2;
  transition:background .2s,border-color .2s,color .2s}
.wsteps li::before{content:'';position:absolute;top:17px;left:0;width:50%;height:2px;
  background:var(--line)}
.wsteps li::after{content:'';position:absolute;top:17px;left:50%;width:50%;height:2px;
  background:var(--line)}
.wsteps li:first-child::before,.wsteps li:last-child::after{display:none}
.wsteps li.on{color:var(--d800)}
.wsteps li.on b{background:var(--teal);border-color:var(--teal);color:#fff}
.wsteps li.done{color:var(--t600)}
.wsteps li.done b{background:var(--t50);border-color:var(--t400);color:var(--t600)}
.wsteps li.done::after,.wsteps li.on::before{background:var(--t400)}

/* The registration card carries four steps rather than one form, so it is
   given a third more room than the cards that carry a single message. The
   timeline above it keeps the same width, so the two read as one object. */
#register-form .formCard{max-width:1170px}
#register-form .wsteps{max-width:1170px}
/* A step asks questions; the first step labels fields. The labels inside a
   full-width block are therefore set as headings, in sentence case, and the
   small uppercase style is left to the ordinary fields. */
.wiz .fld.full > label{font-size:19px;line-height:1.4;letter-spacing:-.2px;text-transform:none;
  font-weight:700;color:var(--d800);margin-bottom:6px}
.wiz .fld.full > label .opt{font-size:14.5px;font-weight:500;color:var(--muted);
  letter-spacing:0;text-transform:none}
.wiz .fld.full > label .req{color:var(--gold)}
/* An answer is something to read, so it is not shouted. These are labels
   inside a .fld, so the field label's uppercase and tracking reach them; the
   .wiz prefix is what lets this win rather than merely disagree. */
.wiz .chip,.wiz .pick2,.wiz .plan{text-transform:none;letter-spacing:normal;color:var(--ink)}
.wiz .chip{font-size:15.5px;font-weight:500}
.frm.wiz{display:block}
.wiz .step{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:20px 22px}
.wiz .step[hidden]{display:none}
.wiz .wnav{grid-column:1/-1;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:10px;padding-top:22px;border-top:1px solid var(--line)}
.wiz .wnav .cta{margin-left:auto}
.wiz .wnote{flex:1 1 220px;font-size:13px;color:var(--muted);line-height:1.5}
.wiz .back{padding:12px 22px;border-radius:999px;border:1.5px solid var(--line);background:#fff;
  font-family:inherit;font-weight:700;font-size:13.5px;color:var(--body);cursor:pointer}
.wiz .back:hover{border-color:var(--t400);color:var(--t600)}
.wiz .fMsg{margin-top:20px}

/* the chips: an answer you tap rather than a box you tick */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{position:relative;display:inline-flex;align-items:center;gap:9px;padding:12px 18px;
  border:1.5px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;
  font-size:15.5px;font-weight:500;color:var(--ink);transition:border-color .15s,background .15s}
.chip.wide{min-width:160px;justify-content:center}
.chip:hover{border-color:var(--t400)}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip::before{content:'';width:17px;height:17px;border-radius:5px;border:2px solid var(--line);
  flex:none;transition:background .15s,border-color .15s}
.chip:has(input[type=radio])::before{border-radius:999px}
.chip:has(input:checked){border-color:var(--teal);background:var(--t50);color:var(--d800)}
.chip:has(input:checked)::before{background:var(--teal);border-color:var(--teal);
  box-shadow:inset 0 0 0 3px #fff}
.chip input:focus-visible ~ span{text-decoration:underline}

/* the four answers about buying, as cards */
.picks{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pick2{position:relative;display:flex;align-items:flex-start;gap:12px;padding:15px 17px;
  border:1.5px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;
  transition:border-color .15s,background .15s}
.pick2:hover{border-color:var(--t400)}
.pick2 input{position:absolute;opacity:0;width:1px;height:1px}
.pick2 .tick{flex:none;width:20px;height:20px;border-radius:999px;border:2px solid var(--line);
  margin-top:2px;position:relative;transition:border-color .15s}
.pick2 .tick::after{content:'';position:absolute;inset:3px;border-radius:999px;
  background:var(--teal);transform:scale(0);transition:transform .15s}
.pick2:has(input:checked){border-color:var(--teal);background:var(--t50)}
.pick2:has(input:checked) .tick{border-color:var(--teal)}
.pick2:has(input:checked) .tick::after{transform:scale(1)}
.pick2 .txt b{display:block;font-size:15px;font-weight:700;color:var(--d800);line-height:1.3}
.pick2 .txt i{display:block;font-style:normal;font-size:12.5px;color:var(--muted);margin-top:3px}

/* the two registrations, as cards you choose between */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.plan{position:relative;display:flex;align-items:flex-start;gap:13px;padding:20px 20px;
  border:1.5px solid var(--line);border-radius:18px;background:#fff;cursor:pointer;
  transition:border-color .15s,background .15s,box-shadow .15s}
.plan:hover{border-color:var(--t400)}
.plan input{position:absolute;opacity:0;width:1px;height:1px}
.plan .tick{flex:none;width:21px;height:21px;border-radius:999px;border:2px solid var(--line);
  margin-top:4px;position:relative;transition:border-color .15s}
.plan .tick::after{content:'';position:absolute;inset:3px;border-radius:999px;
  background:var(--teal);transform:scale(0);transition:transform .15s}
.plan:has(input:checked){border-color:var(--teal);background:var(--t50);
  box-shadow:0 10px 30px rgba(1,88,121,.10)}
.plan:has(input:checked) .tick{border-color:var(--teal)}
.plan:has(input:checked) .tick::after{transform:scale(1)}
.plan .txt{min-width:0}
.plan .txt i{display:block;font-style:normal;font-size:11.5px;letter-spacing:1.6px;
  text-transform:uppercase;font-weight:800;color:var(--t600)}
.plan .txt b{display:flex;align-items:baseline;gap:6px;font-size:32px;font-weight:800;
  color:var(--d800);letter-spacing:-1px;line-height:1.1;margin:6px 0 4px}
.plan .txt b small{font-size:12.5px;font-weight:700;color:var(--muted);letter-spacing:0}
.plan .txt em{display:block;font-style:normal;font-size:13px;color:var(--muted);line-height:1.55}

/* what it costs */
.fee{grid-column:1/-1;display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  padding:20px 24px;border-radius:18px;background:var(--t50);border:1px solid var(--t100)}
.fee .feeL{font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;font-weight:800;
  color:var(--t600)}
.fee .feeV{display:flex;align-items:baseline;gap:7px;margin-left:auto}
.fee .feeV b{font-size:34px;font-weight:800;color:var(--d800);letter-spacing:-1px}
.fee .feeV span{font-size:13px;font-weight:700;color:var(--muted)}
.fee .feeN{flex-basis:100%;font-size:13px;color:var(--muted)}

/* where it goes */
.bank{grid-column:1/-1;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  background:#fff}
.bank .bankHead{padding:15px 22px;background:var(--deep);color:#fff;font-size:11.5px;
  letter-spacing:1.8px;text-transform:uppercase;font-weight:800}
.bankRow{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 22px;
  border-bottom:1px solid var(--line)}
.bankRow .bk{flex:none;width:118px;font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;
  font-weight:800;color:var(--t600)}
.bankRow .bv{flex:1 1 240px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
.bankRow .bv .big{font-size:19px;font-weight:700;color:var(--d800)}
.bankRow .bv i{font-style:normal;font-size:13px;color:var(--muted)}
.bankRow code{font-family:'Courier New',Courier,monospace;font-size:16px;font-weight:700;
  letter-spacing:.6px;color:var(--d800);overflow-wrap:anywhere}
.bank .bankNote{padding:15px 22px;font-size:13px;color:var(--muted);line-height:1.6}
.copy{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:999px;
  border:1.5px solid var(--t100);background:var(--t50);color:var(--t600);font-family:inherit;
  font-size:12.5px;font-weight:700;cursor:pointer;flex:none}
.copy:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.copy svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.copy.done{background:#EAF6EF;border-color:#BFE3CD;color:#1D6B41}

/* the receipt */
.upl{grid-column:1/-1;display:block;padding:26px 22px;border:2px dashed var(--t100);
  border-radius:18px;background:var(--t50);text-align:center;cursor:pointer;
  transition:border-color .15s,background .15s}
.upl:hover{border-color:var(--t400);background:#EAF3F7}
.upl input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.upl b{display:block;font-size:16px;font-weight:700;color:var(--d800)}
.upl span{display:block;font-size:13px;color:var(--muted);line-height:1.55;margin-top:6px;
  max-width:48ch;margin-left:auto;margin-right:auto}
.upl.has{border-style:solid;border-color:#BFE3CD;background:#F4FBF7}
.upl.has b{color:#1D6B41}

/* the last look */
.sumry{display:grid;grid-template-columns:190px minmax(0,1fr);gap:0;border:1px solid var(--line);
  border-radius:16px;overflow:hidden}
.sumry dt{padding:13px 18px;font-size:12.5px;font-weight:700;color:var(--muted);
  background:#FAFCFD;border-bottom:1px solid var(--line)}
.sumry dd{padding:13px 18px;font-size:14.5px;color:var(--ink);border-bottom:1px solid var(--line);
  overflow-wrap:anywhere}
.sumry dt:last-of-type,.sumry dd:last-of-type{border-bottom:0}

@media (max-width:860px){
  .wiz .step{grid-template-columns:1fr}
  .picks,.plans{grid-template-columns:1fr}
  .wsteps{margin-top:28px}
  .wsteps li span{display:none}
  .wsteps li.on span{display:block}
  .wsteps li{font-size:12.5px}
  .fee .feeV{margin-left:0}
  .bankRow .bk{width:100%}
  .wiz .wnav .cta,.wiz .back{width:100%;justify-content:center;text-align:center}
  .wiz .wnav .cta{margin-left:0}
  .sumry{grid-template-columns:1fr}
  .sumry dt{padding-bottom:0;background:#fff;border-bottom:0}
  .sumry dd{padding-top:4px}
}

/* the panel that replaces a form once it is sent */
/* A form that has been sent goes away. This carries !important because the
   display of a form is set in several places and any one of them winning here
   leaves an empty form sitting under its own confirmation. */
.frm[hidden]{display:none!important}
.sent{text-align:center;padding:14px 6px 8px;outline:none}
.sent .tickwrap{width:62px;height:62px;margin:0 auto 20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:#fff;
  background:linear-gradient(140deg,var(--teal),var(--t400));
  box-shadow:0 12px 28px rgba(1,88,121,.28)}
.sent .tickwrap svg{width:30px;height:30px}
.sent h3{font-size:25px;font-weight:800;color:var(--d800);letter-spacing:-.4px}
.sent p{margin-top:12px;font-size:16px;line-height:1.7;color:var(--body);
  max-width:560px;margin-left:auto;margin-right:auto}
.sent p.to{font-size:14.5px;color:var(--muted)}
.sent p.ref{display:inline-flex;align-items:center;gap:12px;font-size:13px;letter-spacing:2px;
  text-transform:uppercase;font-weight:700;color:var(--t600);background:var(--t50);
  border:1px solid var(--t100);border-radius:999px;padding:10px 20px}
.sent p.ref b{font-family:'Courier New',monospace;font-size:15px;letter-spacing:1.5px;
  color:var(--d800)}
/* a reply that is provisional: gold and a clock, never the green tick */
.sent.pending .tickwrap{background:linear-gradient(140deg,#A8761E,var(--gold));
  box-shadow:0 12px 28px rgba(154,110,31,.3)}
.sent p.state{display:inline-flex;align-items:center;gap:10px;margin-top:14px;
  font-size:12.5px;letter-spacing:2.2px;text-transform:uppercase;font-weight:800;
  color:#8E611A;background:#FBF4E4;border:1px solid #EBD9B2;border-radius:999px;
  padding:9px 18px}
.sent p.state i{width:8px;height:8px;border-radius:50%;background:#C8921F;flex:none;
  box-shadow:0 0 0 0 rgba(200,146,31,.45);animation:waiting 1.9s ease-out infinite}
@keyframes waiting{70%{box-shadow:0 0 0 7px rgba(200,146,31,0)}
  100%{box-shadow:0 0 0 0 rgba(200,146,31,0)}}
@media (prefers-reduced-motion:reduce){.sent p.state i{animation:none}}
.soon .sent{padding:6px 0 0}
.soon .sent .tickwrap{width:50px;height:50px;margin-bottom:14px}
.soon .sent .tickwrap svg{width:24px;height:24px}
.soon .sent h3{font-size:21px}
.soon .sent p{font-size:15px}
/* once the address is given, the box and the invitation to fill it both go */
.soon.done p.ask{display:none}

/* footer */
footer{background:#01212F;color:#BCD6E2;padding:64px 0 34px;position:relative}
footer .top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;padding-bottom:40px;
  border-bottom:1px solid rgba(255,255,255,.12)}
footer img.fl{height:72px;width:auto}
footer .ar-name{margin-top:18px;font-size:17px;color:#fff;font-weight:700;text-align:left}
footer h5{font-size:11.5px;letter-spacing:2.2px;text-transform:uppercase;color:#7FA7BA;font-weight:800;
  margin-bottom:16px}
footer ul{list-style:none}
footer ul li{margin-bottom:10px;font-size:14.5px}
footer a{text-decoration:none;transition:color .2s}
footer a:hover{color:#fff}
footer .org{margin-top:22px}
footer .org img{height:48px;width:auto;margin-top:10px}
footer .bot{padding-top:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:13px;color:#7FA7BA}
.goldbot{position:absolute;bottom:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,#8E611A,#C08C2C 22%,#F1DCA2 50%,#C08C2C 78%,#8E611A)}


/* leader's message */
/* The portrait sits at the top of the message rather than halfway down it:
   centred, a short message leaves the photograph floating in white space. */
.leader{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start;margin-top:48px}
.portrait{aspect-ratio:1/1;border-radius:20px;background:linear-gradient(145deg,#EAF3F7,#D8E8EF);
  display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}
.portrait svg{width:92px;height:92px;stroke:#9DBECD;fill:none;stroke-width:1.2}
.portrait{overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
.leader + .leader{margin-top:56px;padding-top:56px;border-top:1px solid var(--line)}
.leader.flip{grid-template-columns:1fr 300px}
.leader.flip .portrait{order:2}
.msg p{font-size:16.5px}
.msg p + p{margin-top:15px}
.msg .pending{display:inline-block;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;
  font-weight:800;color:var(--gold);background:#FCF8EF;border:1px solid #F0E3C6;
  padding:7px 16px;border-radius:999px;margin-bottom:18px}
.msg .sig{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.msg .sig b{display:block;font-size:16px;color:var(--d800)}
.msg .sig span{font-size:14px;color:var(--muted)}

/* sponsorship packages */
.pkg{border:1px solid var(--line);border-radius:18px;padding:30px 26px;background:#fff;
  display:flex;flex-direction:column;transition:transform .28s,box-shadow .28s}
.pkg .ticks{margin-bottom:28px}
.pick{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 20px;border-radius:999px;border:1.5px solid var(--t100);background:var(--t50);
  color:var(--teal);font-family:inherit;font-weight:800;font-size:13.5px;letter-spacing:.3px;
  text-decoration:none;cursor:pointer;transition:background .25s,border-color .25s,color .25s,
  box-shadow .25s,transform .25s}
.pick::after{content:'↓';font-size:14px;transition:transform .25s}
.pick:hover{background:var(--teal);border-color:var(--teal);color:#fff;transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(1,88,121,.28)}
.pick:hover::after{transform:translateY(3px)}
@keyframes fieldFlash{0%,100%{box-shadow:0 0 0 0 rgba(192,140,44,0)}
  28%,72%{box-shadow:0 0 0 5px rgba(192,140,44,.3)}}
.frm select.flash{border-color:var(--gold);animation:fieldFlash 1.7s ease}
.pkg:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,30,45,.10)}
.lvl{display:inline-block;font-size:11.5px;letter-spacing:2px;text-transform:uppercase;font-weight:800;
  padding:8px 18px;border-radius:999px;margin-bottom:20px;color:#fff}
.pkg .amt{display:flex;align-items:baseline;gap:8px;margin:-4px 0 22px;padding-bottom:22px;
  border-bottom:1px solid var(--line)}
.pkg .amt b{font-size:36px;font-weight:800;color:var(--d800);letter-spacing:-1.6px;line-height:1}
.pkg .amt span{font-size:13.5px;font-weight:700;color:var(--muted);letter-spacing:.4px}
.lvl.plat{background:linear-gradient(135deg,#013C56,#0B7095)}
.lvl.gold{background:linear-gradient(135deg,#C08C2C,#E2C06A)}
.lvl.silv{background:linear-gradient(135deg,#7A8B95,#A8B8C0)}
.pkg .ticks li{font-size:14.5px;margin-bottom:11px}

@media (max-width:860px){
  .leader{grid-template-columns:1fr;gap:26px}
  .leader.flip{grid-template-columns:1fr}
  .leader.flip .portrait{order:0}
  .leader + .leader{margin-top:44px;padding-top:44px}
  .portrait{max-width:230px}
}

.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}

@media (max-width:1520px){
  .mh-in{gap:14px}
  .menubar ul{gap:18px}
  .mh-nav ul a{font-size:13px}
  .mh-nav .cta{padding:10px 19px;font-size:13px}
  .mh-logo img{height:70px}
  .mh-org img{height:67px}
  .mh-org{padding-left:15px;gap:9px}
  .mh-org .k{font-size:13px}
}
@media (max-width:1340px){
  .mh-burger{display:flex}
  .mh-nav{position:static;flex:0 0 auto}
  .mh-org{margin-left:auto}
  .mh-nav ul{position:absolute;top:calc(100% + 13px);left:0;right:0;z-index:40;
    flex-direction:column;gap:0;align-items:stretch;background:#fff;
    padding:8px 20px 20px;border-radius:0 0 18px 18px;
    box-shadow:0 22px 44px rgba(0,20,32,.18);
    opacity:0;visibility:hidden;transform:translateY(-12px);
    transition:opacity .28s,transform .28s,visibility .28s}
  .mh-nav ul.open{opacity:1;visibility:visible;transform:none}
  .mh-nav ul a{display:block;padding:14px 2px;border-bottom:1px solid var(--line);font-size:15px}
  .mh-nav ul a::after{display:none}
  .mh-nav ul a.cta{border-bottom:0}
  .mh-nav ul li:last-child a{border-bottom:0}
  #mhmenu > li:last-child{padding-top:14px}
  .mh-nav ul .cta{justify-content:center;padding:13px 22px;font-size:14px;margin-top:16px}
  /* stacked, the hairline and the tightening are noise */
  .menubar ul li.mh-sep{display:none}
  .menubar ul li.act{margin-left:0}
  .mh-nav .drop{position:static;top:auto;opacity:1;visibility:visible;transform:none;
    box-shadow:none;margin:0;width:100%;padding:0 0 10px 16px;min-width:0;display:none}
  .mh-nav .has-sub.open .drop{display:flex}
  .mh-nav .drop a{display:block;padding:11px 2px;border-bottom:1px dashed var(--line);
    font-size:14px;font-weight:600}
  .mh-nav .has-sub.open .carat{transform:rotate(-135deg) translateY(-2px)}
  .mh-logo img{height:74px}
  .mh-org img{height:70px}
}
@media (max-width:1000px){
  .themes,.spk,.tease{grid-template-columns:repeat(2,1fr)}
  .venue{grid-template-columns:1fr}
}
@media (max-width:860px){
  :root{--nav:76px}
  .nav .brand img{height:46px}
  .masthead{padding:13px 0}
  .mh-logo img{height:50px}
  .mh-org img{height:48px}
  .mh-org{padding-left:12px;gap:8px}
  .mh-org .k{font-size:12px}
  .mh-curve{height:64px}
  .mh-curvewrap{height:120px}
  .nav ul{position:fixed;top:var(--nav);left:0;right:0;flex-direction:column;gap:0;
    background:#fff;padding:10px 22px 22px;box-shadow:0 20px 40px rgba(0,20,32,.14);
    transform:translateY(-160%);transition:transform .35s;align-items:stretch}
  .nav ul.open{transform:none}
  .nav ul a{padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}
  .nav ul a::after{display:none}
  #menu > li:last-child{padding-top:16px}
  .nav ul .cta{justify-content:center;margin-top:16px}
  .nav ul a.cta{border-bottom:0}
  .nav ul li:last-child a{border-bottom:0}
  .mh-logo img{height:50px}
  .mh-org img{height:48px}
  .nav .drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    margin:0;width:100%;padding:0 0 8px 16px;min-width:0;display:none}
  .nav .has-sub.open .drop{display:flex}
  .nav .drop a{padding:11px 0;border-bottom:1px dashed var(--line);font-size:14px}
  .carat{transition:transform .25s}
  .has-sub.open .carat{transform:rotate(-135deg) translateY(-2px)}
  .burger{display:flex}
  .stats,.two,.outs,.prices,.logos{grid-template-columns:1fr}
  .logos.three{grid-template-columns:1fr}
  .frm{grid-template-columns:1fr}
  .formCard{padding:30px 22px;border-radius:18px;margin-top:34px}
  .frm button.cta{width:100%;justify-content:center}
  .slot{grid-template-columns:1fr;gap:8px}
  section{padding:68px 0}
  .orb{display:none}
  .phead{padding:76px 0 74px}
}
@media (max-width:560px){
  .themes,.spk,.tease{grid-template-columns:1fr}
  .frm select.titleSel{min-width:106px}

  .cb{min-width:74px;padding:12px 8px 10px}.cb b{font-size:22px}
}
/* ── speaker request ── */
.srNarrow{width:min(880px,calc(100% - 40px))}
.srThemes{list-style:none;counter-reset:th;margin:26px 0 0;padding:0;display:grid;gap:12px}
.srThemes li{counter-increment:th;position:relative;background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:18px 22px 18px 66px}
.srThemes li::before{content:counter(th,decimal-leading-zero);position:absolute;left:22px;top:18px;
  font-size:13px;font-weight:800;letter-spacing:.5px;color:var(--gold)}
.srThemes b{display:block;font-size:16px;font-weight:800;color:var(--d800);margin-bottom:3px}
.srThemes span{font-size:14px;color:var(--body);line-height:1.6}
.srThemes em{font-style:italic}
.srFacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:12px;margin-top:26px}
.srFacts>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.srFacts i{display:block;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--gold);margin-bottom:7px}
.srFacts b{display:block;font-size:17px;font-weight:800;color:var(--d800);line-height:1.3}
.srFacts span{display:block;margin-top:5px;font-size:13px;color:var(--muted);line-height:1.55}

.gate{margin-top:52px;background:linear-gradient(135deg,var(--t50),#fff);border:1.5px solid var(--t100);
  border-radius:20px;padding:30px 28px;text-align:center}
.gateBox{display:inline-flex;align-items:center;gap:13px;cursor:pointer;user-select:none;
  padding:6px 4px;max-width:100%}
.gateBox input{position:absolute;opacity:0;width:1px;height:1px}
.gateTick{flex:none;width:26px;height:26px;border-radius:8px;border:1.8px solid var(--t100);
  background:#fff;display:grid;place-items:center;transition:background .2s,border-color .2s}
.gateTick svg{width:15px;height:15px;stroke:#fff;fill:none;stroke-width:2.8;stroke-linecap:round;
  stroke-linejoin:round;opacity:0;transform:scale(.6);transition:opacity .18s,transform .18s}
.gateBox input:checked+.gateTick{background:var(--teal);border-color:var(--teal)}
.gateBox input:checked+.gateTick svg{opacity:1;transform:none}
.gateBox input:focus-visible+.gateTick{box-shadow:0 0 0 4px rgba(62,147,178,.2)}
.gateTxt{font-size:16.5px;font-weight:700;color:var(--d800);text-align:left}
.gate .cta{display:block;margin:22px auto 0;border:0;cursor:pointer;font-family:inherit}
.gate .cta[disabled]{opacity:.45;cursor:default;transform:none;box-shadow:none}
.gateHint{margin:14px 0 0;font-size:13px;color:var(--muted)}

.srCols{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:26px;align-items:start;
  margin-top:34px}
.srSide{position:sticky;top:104px}
.steps{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 24px}
.steps h3{font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--gold);margin:0 0 20px}
.steps ol{list-style:none;counter-reset:st;margin:0;padding:0}
.steps li{counter-increment:st;position:relative;padding:0 0 26px 44px}
.steps li:last-child{padding-bottom:0}
.steps li::before{content:counter(st);position:absolute;left:0;top:-2px;width:28px;height:28px;
  border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:800;
  background:#fff;border:1.8px solid var(--line);color:var(--muted)}
.steps li::after{content:'';position:absolute;left:13.5px;top:30px;bottom:6px;width:1.8px;
  background:var(--line)}
.steps li:last-child::after{display:none}
.steps li.on::before{background:var(--teal);border-color:var(--teal);color:#fff}
.steps li.on b{color:var(--teal)}
.steps b{display:block;font-size:14.5px;font-weight:800;color:var(--d800);margin-bottom:5px}
.steps span{display:block;font-size:13px;color:var(--body);line-height:1.6}
.stepsFoot{margin:20px 0 0;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;
  color:var(--muted);line-height:1.6}
.stepsFoot a{color:var(--t600);font-weight:700}

.fSec{grid-column:1/-1;margin:6px 0 2px;font-size:11px;font-weight:800;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--gold)}
.fSec+.fld{margin-top:-2px}
.fIntro{grid-column:1/-1;margin:-4px 0 4px;font-size:13.5px;line-height:1.6;color:var(--muted)}
.picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:9px}
.frm .picks label.topic{display:flex;align-items:center;justify-content:flex-start;gap:11px;
  margin:0;padding:13px 15px;background:#fff;border:1.5px solid var(--line);border-radius:12px;
  cursor:pointer;font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;
  color:var(--body);text-align:left;transition:border-color .2s,background .2s}
.frm .picks label.topic:hover{border-color:var(--t100);background:var(--t50)}
.frm .picks label.topic input{width:17px;height:17px;flex:none;accent-color:var(--teal);margin:0}
.frm .picks label.topic:has(input:checked){border-color:var(--t400);background:#FBFDFE}
.frm .picks label.topic span{line-height:1.4}

@media (max-width:980px){
  .srCols{grid-template-columns:1fr}
  .srSide{position:static;order:-1}
}
@media (max-width:560px){
  .gateTxt{font-size:15px}
  .srThemes li{padding:16px 18px 16px 58px}
  .srThemes li::before{left:18px}
}
/* With animation switched off, anything that begins invisible and is revealed
   by an animation has to be visible from the start, or the hero is a blank
   blue screen. That is on by default on a good number of phones. */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  .hero .wrap > *{opacity:1;transform:none}
}
/* ---- Faculty photo boxes v2 (Sep 2026): framed portrait, gold rule, wider spacing ---- */
.spk{gap:28px}
.card-s.v2{border:0;border-radius:20px;padding:2px;background:linear-gradient(160deg,var(--t600) 0%,var(--teal) 40%,var(--gold) 140%);box-shadow:0 10px 30px rgba(1,60,86,.10);overflow:visible}
.card-s.v2:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(1,60,86,.18)}
.card-s.v2 .in{background:#fff;border-radius:18px;overflow:hidden;height:100%}
.card-s.v2 .ph{position:relative;aspect-ratio:1/1;display:block;background:linear-gradient(180deg,#EAF3F7,#DDEBF1);overflow:hidden}
.card-s.v2 .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.card-s.v2 .ph::after{content:'';position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,rgba(1,41,58,0),rgba(1,41,58,.55));pointer-events:none}
.card-s.v2 .ph .tag{position:absolute;left:14px;bottom:12px;font-size:10.5px;letter-spacing:1.6px;font-weight:700;color:var(--goldL);text-transform:uppercase;z-index:1}
.card-s.v2 .b{padding:18px 20px 20px;border-top:3px solid var(--gold);position:relative}
.card-s.v2 .b::before{content:'';position:absolute;left:20px;top:-3px;width:44px;height:3px;background:var(--d800)}
.card-s.v2 h4{font-size:16.5px;line-height:1.3}
.faculty-list{margin-top:44px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 28px 18px;text-align:left}
.faculty-list ul{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px}
.faculty-list li{display:grid;grid-template-columns:8px 1fr;column-gap:10px;font-size:14.5px;color:var(--body);padding:10px 0;border-bottom:1px dashed var(--line)}
.faculty-list li::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--gold);margin-top:7px;grid-row:1/3}
.faculty-list li strong{grid-column:2;color:var(--d800);font-weight:700;line-height:1.3}
.faculty-list li span{grid-column:2;font-size:12.5px;color:var(--muted);margin-top:2px}
@media(max-width:900px){.faculty-list ul{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.faculty-list ul{grid-template-columns:1fr}}
.card-s.v2 .b p{margin:0}
/* the notice that stands in for the attendee form until registration opens */
.soon{max-width:720px;margin:0 auto;text-align:center;background:#fff;border:1px solid var(--line);
  border-radius:24px;padding:54px 48px 48px;box-shadow:0 18px 44px rgba(1,60,86,.08);position:relative;
  overflow:hidden}
.soon::before{content:'';position:absolute;left:0;right:0;top:0;height:6px;
  background:linear-gradient(90deg,#8E611A,#C08C2C 25%,#F1DCA2 50%,#C08C2C 75%,#8E611A)}
.soon .kicker{justify-content:center}
.soon h2{margin-top:6px}
.soon p{margin-top:16px;color:var(--body);font-size:16.5px;line-height:1.75}
.soon p.ask{margin-top:20px;font-size:15px;color:var(--muted)}
.soon p.ask a{color:var(--t600);font-weight:700}
@media(max-width:600px){.soon{padding:40px 24px 36px}}
.soon .frm.remind{display:block;max-width:520px;margin:26px auto 0;text-align:left}
.soon .frm.remind .fRow,.soon .frm.remind .fld{display:block}
.soon .rrow{display:flex;gap:12px;align-items:stretch}
.soon .rrow input{flex:1;min-width:0;font:inherit;font-size:16px;color:var(--ink);
  border:1.5px solid var(--line);border-radius:12px;padding:15px 18px;background:#fff;
  transition:border-color .2s,box-shadow .2s}
.soon .rrow input:focus{outline:none;border-color:var(--t400);box-shadow:0 0 0 4px rgba(62,147,178,.14)}
.soon .rrow .cta{flex:none;padding:15px 30px;font-size:15.5px;border:0;cursor:pointer}
.soon .rnote{margin-top:12px;font-size:13.5px;color:var(--muted);text-align:center}
.soon .fMsg:not(:empty){margin-top:14px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:560px){.soon .rrow{flex-direction:column}.soon .rrow .cta{width:100%}}
.spk.three{grid-template-columns:repeat(3,1fr);max-width:860px;margin:44px auto 0}
.spk.five{grid-template-columns:repeat(5,1fr);margin:44px auto 0}
@media(max-width:1000px){.spk.five{grid-template-columns:repeat(3,1fr);max-width:860px}}
@media(max-width:700px){.spk.three,.spk.five{grid-template-columns:1fr 1fr}}
/* two across even on a phone: one portrait card per row makes the
   committee a very long scroll on the home page. */
@media(max-width:480px){.spk.three,.spk.five{gap:14px}}
/* the card is half a phone wide there, too narrow for the label over the
   photograph, and the heading above already says who these people are. */
@media(max-width:560px){.spk .card-s.v2 .ph .tag{display:none}}
.card-s.v2 .ph .empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.card-s.v2 .ph .empty svg{width:64px;height:64px;stroke:#9DBECD;fill:none;stroke-width:1.3}


/* ═══════════════════════════ phones ═══════════════════════════
   Everything below is the small-screen dress. Two rules it follows: nothing
   may push the page sideways, and nothing that has to be read is set below
   12px. */

/* A long address in a narrow column is the classic cause of a page that
   scrolls sideways. Nothing on the site needs to stay on one line. */
footer a,.sent p.to b,.fNote strong,.vcard p{overflow-wrap:anywhere}

@media (max-width:860px){
  /* the footer stops being three columns and becomes three blocks */
  footer{padding:52px 0 30px}
  footer .top{grid-template-columns:1fr;gap:34px;padding-bottom:32px}
  footer .bot{flex-direction:column;gap:8px;text-align:left;font-size:12.5px}
  footer ul li{font-size:15px}
  /* one button that matters stays on screen while the page scrolls */
  .navreg{display:inline-flex;margin-left:auto;padding:10px 20px;font-size:13px}
  .nav .burger{margin-left:10px}
  /* a download row stacks: what it is, then the button under it, full width */
  .dl{grid-template-columns:auto 1fr;gap:16px 18px;padding:20px}
  .dl .ic{width:48px;height:48px;border-radius:12px}
  .dl .ic svg{width:24px;height:24px}
  .dl .get{grid-column:1/-1;justify-content:center;padding:13px 22px}
}

@media (max-width:620px){
  /* the masthead: two logos and the menu button, and room to breathe */
  .masthead{padding:11px 0}
  .mh-in{width:calc(100% - 28px);gap:10px}
  .mh-logo img{height:42px}
  .mh-org{padding-left:10px;gap:7px}
  .mh-org img{height:41px}
  .mh-org .k{font-size:11.5px}
  .mh-burger{padding:8px 0 8px 6px}
  .mh-curve{height:58px}
  .mh-curvewrap{height:104px}
  .nav .brand img{height:40px}

  .wrap{width:calc(100% - 32px)}
  section{padding:54px 0}
  .hero{min-height:0;padding:74px 0 62px}
  .phead{padding:60px 0 58px}

  /* the date, the venue and the hours read as three lines, not one run-on */
  .dateline{display:flex;flex-direction:column;gap:7px;padding:15px 24px;
    border-radius:20px;line-height:1.35}
  .dateline i{display:none}
  .lede{font-size:15.5px}
  .heroBtns{flex-direction:column;align-items:stretch;gap:11px}
  .heroBtns .cta{justify-content:center;padding:15px 22px;font-size:14.5px}
  .count{gap:9px}
  .cb{flex:1 1 calc(50% - 5px);min-width:0}

  /* nothing legible below 12px */
  .kicker,.phead .kick,.sub small,footer h5{font-size:12px}
  .lvl,.tag,.frm label,.frm .req,.frm .opt,.fSec{font-size:12px}
  .cb small{font-size:11px;letter-spacing:1.2px}

  /* cards and panels lose the wide padding that squeezes their text */
  .card,.card-s .b,.pkg,.formCard,.vcard{padding-left:20px;padding-right:20px}
  .soon{border-radius:20px}
  .sent h3{font-size:22px}
  .sent p{font-size:15.5px}
  .sent p.ref{padding:9px 16px;font-size:12px}
  h2{letter-spacing:-.5px}
  .phead h1,.hero h1{letter-spacing:-.6px}
}

@media (max-width:400px){
  .mh-org .k{display:none}
  .mh-logo img{height:38px}
  .mh-org img{height:37px}
}
