:root{
  --purple:#4B2173; --plum:#2E1248; --orchid:#B98CDB; --gold:#FFB10A; --dgold:#D89200;
  --cream:#FDECC8; --ink:#161B22; --paper:#ffffff; --maxw:1140px;
  --ease:cubic-bezier(.2,.75,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Lora',Georgia,serif;color:#36283f;background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,.ui{font-family:'Poppins',sans-serif}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
a{color:inherit;text-decoration:none}
.eyebrow{font-family:'Poppins';font-weight:600;letter-spacing:.26em;text-transform:uppercase;font-size:12px;color:var(--dgold)}
.lockname{font-family:'Poppins';font-weight:500;text-transform:uppercase;letter-spacing:.22em;line-height:1.5;color:var(--cream)}
section{position:relative}

#progress{position:fixed;top:0;left:0;height:4px;width:0;z-index:60;background:linear-gradient(90deg,var(--gold),var(--dgold))}

.reveal{transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal{opacity:0;transform:translateY(26px)}
.js .reveal.in{opacity:1;transform:none}

.logo{display:block}
.marksvg{display:block;height:100%;width:auto;overflow:visible}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .35s,box-shadow .35s,padding .35s;padding:18px 0}
header.scrolled{background:rgba(255,255,255,.95);box-shadow:0 6px 30px rgba(46,18,72,.10);backdrop-filter:blur(8px);padding:9px 0}
.bar{display:flex;align-items:center;justify-content:space-between;gap:18px}
.brandmini{display:flex;align-items:center;gap:12px;color:#fff}
header.scrolled .brandmini{color:var(--purple)}
.brandmini .marksvg{height:30px}
nav.menu{display:flex;align-items:center;gap:30px}
nav.menu a{position:relative;font-family:'Poppins';font-weight:500;font-size:14.5px;color:#fff;opacity:.94;transition:color .2s,opacity .2s}
header.scrolled nav.menu a{color:var(--plum)}
nav.menu a:not(.pill):after{content:"";position:absolute;left:0;bottom:-7px;height:2px;width:0;background:var(--gold);transition:width .28s var(--ease)}
nav.menu a:not(.pill):hover:after,nav.menu a.active:not(.pill):after{width:100%}
nav.menu a.active{color:var(--gold)}
header.scrolled nav.menu a.active{color:var(--dgold)}
.pill{font-family:'Poppins';font-weight:600;font-size:13.5px;letter-spacing:.02em;padding:11px 22px;border-radius:100px;background:var(--gold);color:var(--plum);display:inline-block;border:2px solid var(--gold);transition:transform .25s var(--ease),box-shadow .25s}
.pill:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(255,177,10,.4)}
.pill.soon{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);cursor:default}
header.scrolled .pill.soon{color:var(--purple);border-color:var(--purple)}
.pill.soon:hover{transform:none;box-shadow:none}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;z-index:51}
.burger span{width:26px;height:3px;background:#fff;border-radius:3px;transition:.3s}
header.scrolled .burger span{background:var(--purple)}

/* hero */
.hero{background:var(--purple);color:#fff;padding:172px 0 118px;overflow:hidden}
.hero:before{content:"";position:absolute;inset:-5%;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27345%27%20height%3D%27120%27%20viewBox%3D%27-180%20-65%20360%20130%27%3E%3Cg%20opacity%3D%270.06%27%3E%3Crect%20x%3D%22-172.5%22%20y%3D%22-60%22%20width%3D%2233%22%20height%3D%22120%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Crect%20x%3D%22-139.5%22%20y%3D%22-16.5%22%20width%3D%2239%22%20height%3D%2233%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Crect%20x%3D%22-100.5%22%20y%3D%22-60%22%20width%3D%2233%22%20height%3D%22120%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Crect%20x%3D%22-49.5%22%20y%3D%22-12%22%20width%3D%2233%22%20height%3D%2272%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Crect%20x%3D%221.5%22%20y%3D%22-12%22%20width%3D%2233%22%20height%3D%2272%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Cpath%20d%3D%22M159.8%2C36.94%20A60%2C60%200%201%201%20159.8%2C-36.94%20L133.8%2C-16.62%20A27%2C27%200%201%200%20133.8%2C16.62%20Z%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Ccircle%20cx%3D%22-33%22%20cy%3D%22-36%22%20r%3D%2224%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Ccircle%20cx%3D%2218%22%20cy%3D%22-36%22%20r%3D%2224%22%20fill%3D%22%23FDECC8%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-size:300px;animation:drift 60s linear infinite;pointer-events:none}
.hero .glow{position:absolute;width:70%;height:130%;border-radius:50%;filter:blur(10px);pointer-events:none;z-index:0}
.hero .glow.a{left:-18%;bottom:-40%;background:radial-gradient(circle,rgba(185,140,219,.45),transparent 62%);animation:floatglow 14s ease-in-out infinite}
.hero .glow.b{right:-20%;top:-30%;background:radial-gradient(circle,rgba(255,177,10,.16),transparent 60%);animation:floatglow 18s ease-in-out infinite reverse}
.hero .wrap{position:relative;z-index:2;text-align:center}
.hero .eyebrow{color:var(--gold);margin-bottom:30px}
.hero-logo{display:inline-flex;flex-direction:column;align-items:center;gap:24px;color:#fff;margin-bottom:8px}
.hero-logo .marksvg{height:clamp(82px,15vw,150px)}
.hero-logo .name{font-size:clamp(11px,1.55vw,16px)}
.hero h1{font-weight:400;font-family:'Lora';font-style:italic;font-size:clamp(20px,3vw,30px);max-width:760px;margin:30px auto 0;line-height:1.42;color:var(--cream)}
.hero .cta{margin-top:42px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hero .ghost{padding:11px 24px;border-radius:100px;border:2px solid rgba(255,255,255,.55);font-family:'Poppins';font-weight:600;font-size:14px;transition:.25s var(--ease)}
.hero .ghost:hover{background:#fff;color:var(--purple);border-color:#fff;transform:translateY(-2px)}
.hero .host{margin-top:40px;font-family:'Poppins';font-weight:400;font-size:13px;letter-spacing:.04em;color:var(--orchid)}
.confetti{position:absolute;border-radius:50%;background:var(--gold);z-index:1;animation:floaty 7s ease-in-out infinite}
.hero .eyebrow,.hero-logo,.hero h1,.hero .cta,.hero .host{opacity:0;animation:rise .95s var(--ease) forwards}
.hero-logo{animation-delay:.12s}.hero h1{animation-delay:.30s}.hero .cta{animation-delay:.46s}.hero .host{animation-delay:.60s}
.hero .eyebrow{animation-delay:.02s}

@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes drift{from{background-position:0 0}to{background-position:300px 130px}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}
@keyframes floatglow{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(20px,-14px) scale(1.08)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes mscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* facts */
.facts{background:var(--gold);color:var(--plum)}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:32px 24px}
.fact{text-align:center;padding:8px}
.fact b{font-family:'Poppins';font-weight:700;font-size:clamp(18px,2.3vw,27px);display:block}
.fact span{font-family:'Poppins';font-weight:500;font-size:12.5px;letter-spacing:.04em;opacity:.82}
.fact+.fact{border-left:1px solid rgba(46,18,72,.18)}

/* marquee */
.marquee{background:var(--purple);overflow:hidden;padding:18px 0;white-space:nowrap;border-top:3px solid var(--gold);border-bottom:3px solid var(--gold)}
.m-track{display:inline-block;animation:mscroll 34s linear infinite;will-change:transform}
.marquee:hover .m-track{animation-play-state:paused}
.m-name{font-family:'Poppins';font-weight:700;font-size:20px;letter-spacing:.12em;color:var(--cream);text-transform:uppercase}
.m-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--gold);margin:0 28px;vertical-align:middle}

/* sections */
.sec{padding:100px 0;overflow:hidden}
.sec.tint{background:#faf6ef}
.sec-head{max-width:720px;margin-bottom:50px}
.sec-head h2{font-weight:700;font-size:clamp(26px,3.6vw,42px);color:var(--purple);line-height:1.06;margin-top:12px}
.lead{font-size:18px;line-height:1.7}
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:start}
.feat{list-style:none;margin-top:8px}
.feat li{position:relative;padding:14px 0 14px 34px;border-bottom:1px solid #ece2d2;font-size:16px}
.feat li:before{content:"";position:absolute;left:0;top:19px;width:14px;height:14px;border-radius:50%;background:var(--gold);transition:transform .25s var(--ease)}
.feat li:hover:before{transform:scale(1.35)}

/* program timeline */
.program{max-width:880px;margin:0 auto;position:relative}
.slot{position:relative;display:grid;grid-template-columns:26px 162px 1fr;gap:20px;padding:22px 14px;border-radius:12px;transition:background .25s}
.slot:hover{background:#fff}
.node{width:16px;height:16px;border-radius:50%;background:#e2d6c1;justify-self:center;margin-top:4px;transition:background .55s var(--ease),box-shadow .55s,transform .55s}
.slot.in .node{background:var(--gold);box-shadow:0 0 0 5px rgba(255,177,10,.16)}
.slot.key.in .node,.slot.plen.in .node{transform:scale(1.3)}
.slot:not(:last-child)::before{content:"";position:absolute;left:26px;top:30px;bottom:-22px;width:2px;background:#ece2d2;z-index:0}
.slot.in:not(:last-child)::before{background:linear-gradient(var(--gold),#ece2d2)}
.slot>*{position:relative;z-index:1}
.slot-time{font-family:'Poppins';font-weight:600;font-size:14px;color:var(--dgold);padding-top:3px}
.slot-body h4{font-family:'Poppins';font-weight:600;font-size:19px;color:var(--plum);line-height:1.25}
.slot-body ul{margin:9px 0 0 0;list-style:none}
.slot-body li{position:relative;padding-left:18px;font-size:15px;line-height:1.6;color:#54475f}
.slot-body li:before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--orchid)}
.slot.break .slot-body h4{font-size:15px;color:#8a7d97;font-weight:500}
.slot.key,.slot.plen{background:linear-gradient(90deg,rgba(255,177,10,.12),transparent)}
.slot.break1 .slot-body h4,.slot.break2 .slot-body h4{color:var(--purple)}

/* tracks */
.round-label{font-family:'Poppins';font-weight:700;letter-spacing:.04em;color:var(--gold);font-size:15px;margin:14px 0 18px;text-transform:uppercase}
.track-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:42px}
.track{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:30px 26px;transition:transform .3s var(--ease),box-shadow .3s,background .3s}
.track:hover{transform:translateY(-6px);background:rgba(255,255,255,.12);box-shadow:0 22px 50px rgba(0,0,0,.25)}
.track-dot{display:block;width:28px;height:28px;border-radius:50%;background:var(--gold);margin-bottom:18px;transition:transform .3s var(--ease)}
.track:hover .track-dot{transform:scale(1.25)}
.track h4{font-family:'Poppins';font-weight:600;font-size:18px;color:#fff;line-height:1.25;margin-bottom:8px}
.track p{font-size:15px;line-height:1.6;color:var(--cream)}
.sec.purple{background:var(--purple);color:#fff}
.sec.purple .sec-head h2{color:#fff}.sec.purple .eyebrow{color:var(--gold)}

/* sponsor */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:14px}
.tier{background:#fff;border-radius:18px;overflow:hidden;border:1px solid #ece2d2;box-shadow:0 12px 30px rgba(46,18,72,.06);display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s}
.tier:hover{transform:translateY(-8px);box-shadow:0 28px 60px rgba(46,18,72,.16)}
.tier-bar{height:8px}
.tier-name{font-family:'Poppins';font-weight:700;font-size:20px;color:var(--purple);padding:24px 26px 2px}
.tier-price{font-family:'Poppins';font-weight:800;font-size:34px;color:var(--plum);padding:0 26px 12px}
.tier ul{list-style:none;padding:6px 26px 28px;margin:0}
.tier li{position:relative;padding:9px 0 9px 22px;font-size:14.5px;line-height:1.5;border-top:1px solid #f1e8d8;color:#54475f}
.tier li:before{content:"";position:absolute;left:0;top:16px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.inkind{margin-top:26px;font-size:15px;color:#54475f;text-align:center}
.cradle{display:inline-block;width:56px;height:56px;margin-bottom:18px}
.bobdot{animation:bob 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}

/* host */
.host-box{background:var(--cream);border-radius:22px;padding:46px 52px;display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.host-box img{width:100%;max-width:360px}
.host-box h3{font-family:'Poppins';font-weight:700;font-size:22px;color:var(--purple);margin:8px 0 12px}
.host-box p{font-size:16px;line-height:1.7;color:#4a3a55}

/* footer */
footer{background:var(--purple);color:#fff;position:relative;overflow:hidden;padding:96px 0 42px}
footer .rep{position:absolute;inset:-120px;opacity:.09;transform:rotate(-8deg);pointer-events:none}
footer .rep div{white-space:nowrap;font-family:'Poppins';font-weight:700;font-size:30px;letter-spacing:4px;line-height:2;color:var(--cream)}
footer .wrap{position:relative;z-index:2;text-align:center}
footer .flogo{display:inline-flex;flex-direction:column;align-items:center;gap:18px;color:#fff;margin-bottom:34px}
footer .flogo .marksvg{height:60px}
footer .flogo .name{font-size:11.5px}
.hosted{display:inline-flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:34px}
.hosted .lbl{font-family:'Poppins';font-weight:600;letter-spacing:.2em;text-transform:uppercase;font-size:11px;color:var(--orchid)}
.hosted .chip{background:#fff;border-radius:14px;padding:16px 26px;box-shadow:0 14px 36px rgba(0,0,0,.22)}
.hosted .chip img{display:block;height:50px;width:auto}
footer .contact{display:flex;gap:14px 34px;justify-content:center;flex-wrap:wrap;font-family:'Poppins';font-size:15px;margin-bottom:26px}
footer .contact a{transition:color .2s}
footer .contact a:hover{color:var(--gold)}
footer .soon-note{display:inline-block;border:2px solid rgba(255,255,255,.4);border-radius:100px;padding:9px 22px;font-family:'Poppins';font-weight:600;font-size:13px;color:var(--cream)}
footer .legal{margin-top:34px;font-size:12.5px;color:var(--orchid);font-family:'Poppins'}
.dots3{display:flex;gap:10px;justify-content:center;margin:28px 0 0}
.dots3 span{width:13px;height:13px;border-radius:50%;background:var(--gold)}

/* --- extra polish & interactions --- */
h1,h2,h3,.sec-head .lead,.lead{text-wrap:balance}
p{text-wrap:pretty}
.host-box{align-items:center}
.hcir-link{display:flex;justify-content:center;align-items:center;width:100%;transition:transform .35s var(--ease)}
.hcir-link:hover{transform:scale(1.03)}
.hcir-link img{width:90%;max-width:360px;height:auto}
.cradle{cursor:pointer}
.cradle svg{transition:transform 1s var(--ease)}
.cradle:hover svg{transform:rotate(360deg)}
.hero-logo .logo{cursor:default}
.marksvg circle{transform-box:fill-box;transform-origin:center}
.logo:hover .marksvg circle{animation:dotbounce .6s var(--ease)}
.logo:hover .marksvg circle:last-of-type{animation-delay:.09s}
.flogo .logo,.brandmini{cursor:pointer}
/* phantom marks (giant, faint, parallax, animated dots) */
.phantom{position:absolute;pointer-events:none;z-index:0;opacity:.055;transform:translateY(var(--py,0));will-change:transform}
.phantom svg{display:block;width:min(72vw,840px);height:auto;overflow:visible}
.phantom .gdot{transform-box:fill-box;transform-origin:center}
.sec:hover .phantom .gdot{animation:gbob 1.6s ease-in-out infinite}
.sec:hover .phantom .gdot:last-of-type{animation-delay:.4s}
.pt{left:-14%;bottom:-4%;opacity:.09}
.pa{right:-13%;bottom:-8%}
.pstack{left:50%;top:50%;opacity:.05;transform:translate(-50%,calc(-50% + var(--py,0px)))}
.pstack svg{width:min(116vw,1120px);overflow:visible}
@keyframes gbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.sec .wrap{position:relative;z-index:1}
@keyframes d3{0%,65%,100%{transform:translateY(0)}32%{transform:translateY(-10px)}}
.dots3:hover span{animation:d3 1.5s ease-in-out infinite}
.dots3:hover span:nth-child(2){animation-delay:.18s}
.dots3:hover span:nth-child(3){animation-delay:.36s}
@keyframes dotbounce{0%,100%{transform:translateY(0)}42%{transform:translateY(-12px)}}
.sec-head h2::after{content:"";display:block;width:0;height:4px;border-radius:3px;background:var(--gold);margin-top:16px;transition:width .85s var(--ease) .15s}
.sec.purple .sec-head h2::after{background:var(--gold)}
.sec-head.in h2::after{width:66px}
.sec-head.centered h2::after{margin-left:auto;margin-right:auto}
.sec-head.in .cradle svg{animation:assemble .9s var(--ease)}
@keyframes assemble{from{transform:rotate(-150deg) scale(.4);opacity:0}to{transform:none;opacity:1}}
#toTop{position:fixed;right:26px;bottom:26px;width:52px;height:52px;border:none;border-radius:50%;background:var(--gold);box-shadow:0 12px 30px rgba(255,177,10,.4);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(20px) scale(.8);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease);z-index:55}
#toTop.show{opacity:1;transform:none;pointer-events:auto}
#toTop:hover{transform:translateY(-3px) scale(1.06)}
.burst-dot{position:fixed;border-radius:50%;pointer-events:none;z-index:70}
.soon-tip{position:fixed;transform:translate(-50%,-130%);background:var(--plum);color:var(--cream);font-family:'Poppins';font-weight:600;font-size:12px;padding:7px 14px;border-radius:100px;z-index:71;pointer-events:none;white-space:nowrap;box-shadow:0 8px 20px rgba(0,0,0,.25)}

@media(max-width:880px){
  .two{grid-template-columns:1fr;gap:36px}
  .facts .wrap{grid-template-columns:repeat(2,1fr)}
  .fact:nth-child(3){border-left:none}
  .track-grid{grid-template-columns:1fr}
  .tiers{grid-template-columns:1fr}
  .slot{grid-template-columns:1fr;gap:6px;padding:18px 14px;border-top:1px solid #e7ddcd}
  .slot .node,.slot::before{display:none}
  .host-box .hcir-link{margin:0 auto}
  .host-box{grid-template-columns:1fr;text-align:center;padding:34px}
  .host-box img{margin:0 auto}
  nav.menu{position:fixed;inset:0 0 0 auto;width:80%;max-width:340px;background:var(--purple);flex-direction:column;justify-content:center;gap:30px;transform:translateX(100%);transition:transform .4s var(--ease);box-shadow:-20px 0 60px rgba(0,0,0,.35)}
  nav.menu.open{transform:none}
  nav.menu a{color:#fff;font-size:19px}
  header.scrolled nav.menu a{color:#fff}
  .burger{display:flex}
  nav.menu .pill{margin-top:10px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.001s!important}
  .js .reveal{opacity:1!important;transform:none!important}
  .hero .eyebrow,.hero-logo,.hero h1,.hero .cta,.hero .host{opacity:1!important}
}
/* mobile/touch performance pass: keep reveals, drop the expensive continuous effects */
@media (hover:none) and (pointer:coarse){
  .hero:before{animation:none!important}
  .hero .glow{filter:none!important;animation:none!important}
  .confetti{animation:none!important}
  header.scrolled{backdrop-filter:none!important}
}

/* ============================================================
   MULTI-PAGE ADDITIONS (nav, big-button menu, interior heroes, forms)
   ============================================================ */

/* interior page sub-hero */
.subhero{background:var(--purple);color:#fff;padding:150px 0 64px;overflow:hidden;text-align:center}
.subhero:before{content:"";position:absolute;inset:-5%;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27345%27%20height%3D%27120%27%20viewBox%3D%27-180%20-65%20360%20130%27%3E%3Cg%20opacity%3D%270.06%27%3E%3Crect%20x%3D%22-172.5%22%20y%3D%22-60%22%20width%3D%2233%22%20height%3D%22120%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Crect%20x%3D%22-139.5%22%20y%3D%22-16.5%22%20width%3D%2239%22%20height%3D%2233%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Crect%20x%3D%22-100.5%22%20y%3D%22-60%22%20width%3D%2233%22%20height%3D%22120%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Crect%20x%3D%22-49.5%22%20y%3D%22-12%22%20width%3D%2233%22%20height%3D%2272%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Crect%20x%3D%221.5%22%20y%3D%22-12%22%20width%3D%2233%22%20height%3D%2272%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Cpath%20d%3D%22M159.8%2C36.94%20A60%2C60%200%201%201%20159.8%2C-36.94%20L133.8%2C-16.62%20A27%2C27%200%201%200%20133.8%2C16.62%20Z%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Ccircle%20cx%3D%22-33%22%20cy%3D%22-36%22%20r%3D%2224%22%20fill%3D%22%23FDECC8%22%2F%3E%0A%3Ccircle%20cx%3D%2218%22%20cy%3D%22-36%22%20r%3D%2224%22%20fill%3D%22%23FDECC8%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-size:300px;animation:drift 60s linear infinite;pointer-events:none;opacity:.9}
.subhero .wrap{position:relative;z-index:2}
.subhero .eyebrow{color:var(--gold);margin-bottom:14px}
.subhero h1{font-family:'Poppins';font-weight:700;font-size:clamp(34px,6vw,62px);line-height:1.02;letter-spacing:-.01em}
.subhero p{font-family:'Lora';font-size:clamp(16px,2vw,20px);max-width:680px;margin:18px auto 0;color:rgba(255,255,255,.9)}
.subhero .breadcrumb{font-family:'Poppins';font-weight:500;font-size:13px;letter-spacing:.04em;color:var(--orchid);margin-top:26px}
.subhero .breadcrumb a{color:var(--orchid)}
.subhero .breadcrumb a:hover{color:#fff}

/* BIG BUTTON MENU (home) */
.bigmenu{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:880px){.bigmenu{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.bigmenu{grid-template-columns:1fr}}
.bigbtn{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:200px;padding:24px;border-radius:22px;background:linear-gradient(160deg,var(--purple),var(--plum));color:#fff;overflow:hidden;box-shadow:0 18px 40px rgba(46,18,72,.18);transition:transform .3s var(--ease),box-shadow .3s var(--ease);transform-style:preserve-3d}
.bigbtn:nth-child(2){background:linear-gradient(160deg,#5a2a86,#3a1860)}
.bigbtn:nth-child(3){background:linear-gradient(160deg,#6a3494,#42206c)}
.bigbtn:nth-child(4){background:linear-gradient(160deg,#7a3f9f,#4a2676)}
.bigbtn:hover{transform:translateY(-8px);box-shadow:0 30px 60px rgba(46,18,72,.32)}
.bigbtn .bb-ico{position:absolute;top:-14px;right:-14px;opacity:.16;color:var(--gold)}
.bigbtn .bb-ico svg{width:120px;height:120px}
.bigbtn .bb-kicker{font-family:'Poppins';font-weight:600;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.bigbtn .bb-title{font-family:'Poppins';font-weight:700;font-size:clamp(20px,2.4vw,26px);line-height:1.04}
.bigbtn .bb-go{margin-top:14px;font-family:'Poppins';font-weight:600;font-size:13.5px;color:#fff;display:inline-flex;align-items:center;gap:7px;opacity:.92}
.bigbtn .bb-go svg{transition:transform .25s var(--ease)}
.bigbtn:hover .bb-go svg{transform:translateX(5px)}

/* generic CTA row used on interior/home sections */
.ctarow{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.pill.ghost-purple{background:transparent;color:var(--purple);border-color:var(--purple)}
.pill.ghost-purple:hover{background:var(--purple);color:#fff}

/* registration / volunteer FORM */
.formwrap{max-width:760px;margin:0 auto}
.formcard{background:#fff;border:1px solid rgba(75,33,115,.12);border-radius:22px;padding:clamp(22px,4vw,40px);box-shadow:0 24px 60px rgba(46,18,72,.10)}
.tier-pick{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:6px 0 8px}
@media(max-width:560px){.tier-pick{grid-template-columns:1fr}}
.tier-opt{position:relative;cursor:pointer;border:2px solid rgba(75,33,115,.18);border-radius:16px;padding:18px 18px 16px;transition:.2s var(--ease);background:#fff}
.tier-opt:hover{border-color:var(--orchid)}
.tier-opt input{position:absolute;opacity:0;pointer-events:none}
.tier-opt.sel{border-color:var(--purple);box-shadow:0 0 0 3px rgba(75,33,115,.12)}
.tier-opt .to-name{font-family:'Poppins';font-weight:700;color:var(--purple);font-size:17px}
.tier-opt .to-price{font-family:'Poppins';font-weight:800;font-size:30px;color:var(--plum);margin:4px 0 2px}
.tier-opt .to-note{font-family:'Lora';font-size:13.5px;color:#6b5a78}
.tier-opt.disabled{opacity:.5;cursor:not-allowed;background:#faf7fc}
.tier-opt .to-badge{display:inline-block;font-family:'Poppins';font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dgold);background:var(--cream);border-radius:100px;padding:3px 10px;margin-bottom:8px}
.field{margin-top:18px}
.field label{display:block;font-family:'Poppins';font-weight:600;font-size:13.5px;color:var(--plum);margin-bottom:7px}
.field label .req{color:#c0392b}
.field .hint{font-weight:400;color:#8a7a96;font-size:12.5px}
.field input,.field select,.field textarea{width:100%;font-family:'Lora';font-size:16px;color:#36283f;background:#fff;border:1.5px solid rgba(75,33,115,.22);border-radius:12px;padding:13px 14px;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(75,33,115,.12)}
.field textarea{min-height:104px;resize:vertical}
.field.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.field.two{grid-template-columns:1fr}}
.field.two .field{margin-top:0}
.form-foot{margin-top:26px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.btn-submit{font-family:'Poppins';font-weight:700;font-size:16px;letter-spacing:.01em;padding:15px 34px;border-radius:100px;background:var(--gold);color:var(--plum);border:none;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,opacity .2s}
.btn-submit:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(255,177,10,.42)}
.btn-submit:disabled{opacity:.6;cursor:wait;transform:none;box-shadow:none}
.form-note{font-family:'Lora';font-size:13.5px;color:#6b5a78;line-height:1.55}
.amount-line{font-family:'Poppins';font-weight:600;color:var(--purple);font-size:15px}
.amount-line b{color:var(--plum);font-size:18px}
.form-msg{display:none;border-radius:14px;padding:16px 18px;font-family:'Lora';font-size:15px;line-height:1.5;margin-top:18px}
.form-msg.show{display:block}
.form-msg.err{background:#fdeaea;border:1px solid #e7b6b6;color:#9b2c2c}
.form-msg.ok{background:#eaf7ee;border:1px solid #b6e0c2;color:#256b3a}
.fieldset-eyebrow{font-family:'Poppins';font-weight:600;letter-spacing:.18em;text-transform:uppercase;font-size:11.5px;color:var(--dgold);margin:30px 0 2px}

/* ways to support (sponsor page) */
.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
@media(max-width:820px){.ways{grid-template-columns:1fr}}
.way{background:#fff;border:1px solid rgba(75,33,115,.12);border-radius:18px;padding:24px;box-shadow:0 12px 30px rgba(46,18,72,.07)}
.way h4{font-family:'Poppins';font-weight:700;color:var(--purple);font-size:18px;margin-bottom:8px}
.way p{font-family:'Lora';font-size:15px;color:#4a3b54;line-height:1.55}

/* roles list (volunteers) */
.roles{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:8px}
@media(max-width:680px){.roles{grid-template-columns:1fr}}
.role{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid rgba(75,33,115,.12);border-radius:16px;padding:18px 20px;box-shadow:0 10px 26px rgba(46,18,72,.06)}
.role .r-dot{flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:var(--cream);display:grid;place-items:center;color:var(--dgold)}
.role h4{font-family:'Poppins';font-weight:700;color:var(--purple);font-size:16px;margin-bottom:3px}
.role p{font-family:'Lora';font-size:14px;color:#4a3b54;line-height:1.5}

/* checkbox group */
.checks{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:4px}
@media(max-width:560px){.checks{grid-template-columns:1fr}}
.check{display:flex;gap:10px;align-items:flex-start;font-family:'Lora';font-size:15px;color:#36283f;cursor:pointer}
.check input{margin-top:3px;width:17px;height:17px;accent-color:var(--purple);flex:0 0 auto}

/* ---- creator signature (consistent size on every page) ---- */
.credit{display:flex;justify-content:center;align-items:center;padding:24px 16px 8px;color:var(--cream);opacity:.5;transition:opacity .3s ease,color .5s ease}
.credit:hover{opacity:.95}
.credit svg{display:block;height:30px;width:auto}
.credit svg a{cursor:pointer;transition:color .25s ease}
.credit svg a.cw{color:inherit}
.credit svg a.cw:hover{color:var(--gold)}
.credit svg a.cig{color:var(--gold)}
.credit svg a.cig:hover{color:var(--orchid)}

/* ============ v3 updates: hero blocks, scroll-reveal nav, single rate ============ */
/* big buttons now live in the hero (purple) — add definition */
.bigbtn{border:1px solid rgba(255,255,255,.16)}
.hero .bigmenu{margin:46px auto 6px;text-align:left}
#navSentinel{position:absolute;left:0;width:1px;height:1px;pointer-events:none}

/* home: hide header nav + burger until the hero blocks scroll away */
body.home header nav.menu,body.home header .burger{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px);transition:opacity .35s var(--ease),visibility .35s var(--ease),transform .35s var(--ease)}
body.home header.nav-on nav.menu,body.home header.nav-on .burger{opacity:1;visibility:visible;pointer-events:auto;transform:none}

/* single active-rate card (registration) */
.rate-active{border:2px solid var(--purple);border-radius:16px;padding:18px 20px;background:linear-gradient(180deg,#faf5ff,#ffffff);box-shadow:0 0 0 3px rgba(75,33,115,.08);margin-top:6px}
.rate-active .ra-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:6px}
.rate-active .to-name{font-family:'Poppins';font-weight:700;color:var(--purple);font-size:18px}
.rate-active .to-price{font-family:'Poppins';font-weight:800;font-size:32px;color:var(--plum);line-height:1}
.rate-active .to-note{margin-top:8px}

/* ===================== v4: hero centering, nav-reveal fixes, landscape ===================== */

/* safe-area aware container (fixes landscape notch insets so bg fills edge-to-edge) */
.wrap{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}

/* center the hero vertically on load; raise content (less top padding) */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:96px 0 56px}
.hero h1{margin-top:24px}
.hero .cta{margin-top:34px}
.hero .bigmenu{margin:38px auto 0}

/* HOME: little top-bar logo appears only when the nav appears (no double logo in the intro) */
body.home header .brandmini{opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s var(--ease)}
body.home header.nav-on .brandmini{opacity:1;visibility:visible}

/* MOBILE: keep the menu panel off-canvas no matter what (fixes the slide-in-on-scroll glitch);
   only the burger + logo reveal on scroll */
@media(max-width:880px){
  body.home header nav.menu{transform:translateX(100%)!important}
  body.home header nav.menu.open{transform:none!important}

  .hero{min-height:0;padding:84px 0 36px}
  .hero .cta{display:none}              /* drop the yellow button on mobile so the first card shows */
  .hero .bigmenu{margin-top:24px}
}

/* LANDSCAPE phones / short viewports: shrink the hero so it stays readable */
@media (orientation:landscape) and (max-height:560px){
  .hero{min-height:0;padding:78px 0 36px}
  .hero-logo .marksvg{height:78px}
  .subhero{padding:104px 0 44px}
}

/* volunteer / checkbox rows: more breathing room + aligned box and label */
.checks{gap:14px 26px}
.check{gap:13px;align-items:center;line-height:1.35}
.check input{margin-top:0}

/* ===================== v5: mobile polish, watermarks, nav bar, close button ===================== */

/* 1) home: no stray confetti dots over the logo/text on phones */
@media(max-width:880px){ .confetti{display:none!important} }

/* 2) home: the white top bar appears together with the logo + menu (not before) */
body.home header.scrolled:not(.nav-on){background:transparent;box-shadow:none;backdrop-filter:none;padding:18px 0}

/* 3) background watermark logos: pull inward + a touch more visible on phones */
@media(max-width:880px){
  .phantom{opacity:.08;will-change:auto}
  .phantom svg{width:min(86vw,560px)}
  .pa{right:-6%;bottom:-4%}
  .pt{left:-6%;bottom:-2%;opacity:.1}
  .pstack{opacity:.075}
  .pstack svg{width:min(150vw,820px)}
}

/* 4) checkbox rows: aligned box + label with clear spacing */
.check{gap:14px;align-items:center;line-height:1.35}
.check input{margin-top:0;width:18px;height:18px}

/* 5) phones: tighten interior heroes + sections so the main content shows without scrolling */
@media(max-width:880px){
  .sec{padding:56px 0}
  .subhero{padding:96px 0 30px}
}

/* mobile menu: close (X) button + smoother, lighter motion */
.menu-close{display:none}
@media(max-width:880px){
  .menu-close{display:block;position:absolute;top:16px;right:20px;width:44px;height:44px;background:none;border:none;color:#fff;font-size:34px;line-height:1;cursor:pointer;z-index:3}
  .js .reveal{transform:translateY(15px)}
  .reveal{transition-duration:.5s}
  nav.menu{transition:transform .32s var(--ease)}
}

/* ===================== v6: footer legal links + legal document page ===================== */
.flegal{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;font-family:'Poppins';font-weight:500;font-size:13px;margin-top:18px}
.flegal a{color:var(--cream);opacity:.82;transition:opacity .2s,color .2s}
.flegal a:hover{opacity:1;color:var(--gold)}
.flegal span{opacity:.4;color:var(--cream)}
.legal-doc{max-width:760px;margin:0 auto;font-family:'Lora';color:#41354c}
.legal-doc .updated{font-family:'Poppins';font-weight:600;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dgold);margin-bottom:18px}
.legal-doc h2{font-family:'Poppins';font-weight:700;color:var(--purple);font-size:clamp(19px,2.5vw,25px);margin:34px 0 12px;line-height:1.15}
.legal-doc h2:first-of-type{margin-top:0}
.legal-doc p{font-size:16px;line-height:1.7;margin:0 0 14px}
.legal-doc ul{margin:0 0 16px 22px}
.legal-doc li{font-size:16px;line-height:1.6;margin-bottom:7px}
.legal-doc a{color:var(--purple);text-decoration:underline}

/* ===================== v8: definitive checkbox alignment (box center ↔ text center) ===================== */
.check{display:flex;align-items:center;gap:12px}
.check input[type="checkbox"]{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--purple)}
.check span{display:block;line-height:1.25}

/* ===================== v9: checkbox layout A (forced) + mobile two-row date & host ===================== */
.check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:12px;flex-wrap:nowrap}
.check>span{display:inline!important;line-height:1.3}
.check input[type="checkbox"]{flex:0 0 auto!important;width:18px;height:18px;margin:0}

@media(max-width:880px){
  .hero .eyebrow .eb-dot{display:none}
  .hero .eyebrow .eb-ln{display:block}
  .hero .host .hb-lead,.hero .host .hb-org{display:block}
}

/* ===================== v10: two-row logo name & legal on mobile + smoothness ===================== */
@media(max-width:880px){
  .lockname .lk-a,.lockname .lk-b{display:block}
  .legal .lg-a,.legal .lg-b{display:block}
}
/* smoother transforms on devices that actually hover (skip on touch to save memory) */
@media (hover:hover) and (pointer:fine){
  .bigbtn,.pill,.track,.tier{will-change:transform}
}

/* ===================== v11: hide hero Register button; glowing Registration box ===================== */
.hero .cta{display:none!important}
.bigbtn-glow{border:1.5px solid var(--gold);box-shadow:0 0 0 1px rgba(255,177,10,.35),0 0 26px rgba(255,177,10,.50),0 18px 40px rgba(46,18,72,.18);animation:glowpulse 3s ease-in-out infinite}
.bigbtn-glow:hover{animation:none;box-shadow:0 0 0 1.5px rgba(255,177,10,.65),0 0 34px rgba(255,177,10,.65),0 30px 60px rgba(46,18,72,.32)}
@keyframes glowpulse{0%,100%{box-shadow:0 0 0 1px rgba(255,177,10,.30),0 0 20px rgba(255,177,10,.40),0 18px 40px rgba(46,18,72,.18)}50%{box-shadow:0 0 0 1.5px rgba(255,177,10,.55),0 0 32px rgba(255,177,10,.66),0 18px 40px rgba(46,18,72,.18)}}

/* ===================== v12: hide the burger while the menu is open (no overlap with the X) ===================== */
nav.menu.open ~ .burger{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

/* ===================== v13: Steering Committee logos ===================== */
.committee-wrap{margin-top:58px}
.committee-head{font-family:'Poppins';font-weight:700;color:var(--purple);font-size:clamp(18px,2.4vw,24px);text-align:center;margin:8px 0 28px;line-height:1.2}
.committee{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;max-width:1000px;margin:0 auto}
.org{flex:1 1 150px;max-width:185px;min-width:140px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(75,33,115,.12);border-radius:14px;padding:16px;min-height:112px;box-shadow:0 8px 22px rgba(46,18,72,.06);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.org:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(46,18,72,.14)}
.org img{max-width:100%;max-height:80px;width:auto;height:auto;object-fit:contain;display:block}
.org-ph span{font-family:'Poppins';font-weight:600;color:var(--purple);font-size:14px;text-align:center;line-height:1.3}
@media(max-width:420px){.committee{gap:12px}.org{flex:1 1 130px;min-width:128px}}

/* v14b: dark card for the Indivisible logo (white-lettering art) */
.org.org-dark{background:#0b0b0b;border-color:rgba(255,255,255,.14)}
.org.org-dark:hover{box-shadow:0 16px 34px rgba(0,0,0,.32)}

/* ===================== v16: even logo sizing + plum tile for Indivisible ===================== */
.org{flex:1 1 165px;max-width:200px;min-width:150px;min-height:138px;padding:18px}
.org img{max-width:150px;max-height:100px}
.org.org-dark{background:#2E1248;border-color:rgba(255,255,255,.16)}

/* ===================== v18: optical centering of letter-spaced text (trailing-space offset) ===================== */
.hero .eyebrow,.subhero .eyebrow,.sec-head.centered .eyebrow,.committee-wrap .eyebrow{text-indent:.26em}
.lockname{text-indent:.22em}

/* ===================== v21: form validation states ===================== */
.field input.invalid,.field select.invalid,.field textarea.invalid{border-color:#c0392b}
.field input.invalid:focus,.field select.invalid:focus,.field textarea.invalid:focus{border-color:#c0392b;box-shadow:none}
.err-msg{display:none;color:#c0392b;font-family:'Poppins';font-weight:500;font-size:12.5px;line-height:1.35;margin-top:6px}

/* ===================== v25: fix off-canvas menu shadow bleeding onto the page (right edge) ===================== */
@media(max-width:880px){
  nav.menu{box-shadow:none}
  nav.menu.open{box-shadow:-20px 0 60px rgba(0,0,0,.35)}
}

/* ===================== v26: contain the Registration card glow on mobile (so it fades, not a hard line) ===================== */
@media(max-width:880px){
  .bigbtn-glow{animation:none!important;box-shadow:0 0 16px 1px rgba(255,177,10,.55),0 12px 28px rgba(46,18,72,.18)}
}

/* ===================== v27: restore soft blur on hero glows on mobile (gold light fades, no hard edge/line) ===================== */
@media (hover:none) and (pointer:coarse){
  .hero .glow{filter:blur(45px)!important}
}

/* ===================== v28: hover glow on all big-button cards (desktop); Registration keeps its resting glow ===================== */
@media (hover:hover){
  .bigbtn:not(.bigbtn-glow):hover{box-shadow:0 0 0 1.5px rgba(255,177,10,.55),0 0 30px rgba(255,177,10,.55),0 30px 60px rgba(46,18,72,.32)}
}

/* ===================== v29: mobile glow — no heavy blur (it janked the reveal animations); soft gradient instead ===================== */
@media (hover:none) and (pointer:coarse){
  .hero .glow{filter:none!important;animation:none!important}
  .hero .glow.a{background:radial-gradient(circle, rgba(185,140,219,.40) 0%, rgba(185,140,219,.16) 42%, transparent 75%)!important}
  .hero .glow.b{background:radial-gradient(circle, rgba(255,177,10,.14) 0%, rgba(255,177,10,.07) 40%, transparent 78%)!important}
}

/* ===================== v30: mobile scroll performance (lighter shadows, gentler reveal) ===================== */
@media(max-width:880px){
  .bigbtn:not(.bigbtn-glow){box-shadow:0 10px 22px rgba(46,18,72,.16)}
  .tier,.role,.way,.org,.formcard{box-shadow:0 8px 18px rgba(46,18,72,.07)}
  .js .reveal{transform:translateY(10px)}
  .reveal{transition-duration:.45s}
}

/* ===================== v31: mobile hero glow uses pre-rendered dithered PNGs (no blur, no banding edge) ===================== */
@media (hover:none) and (pointer:coarse){
  .hero .glow{filter:none!important;animation:none!important}
  .hero .glow.a{background:url(glow-orchid.png) center/100% 100% no-repeat!important}
  .hero .glow.b{background:url(glow-gold.png) center/100% 100% no-repeat!important}
}

/* ===================== v32: smooth page transitions + clean mobile tap feedback ===================== */
/* Cross-page fade on same-origin navigation (supported browsers; harmless elsewhere) */

/* Mobile tap: remove the hover-lift (caused the crooked upward jump); show a gold glow instead */
@media (hover:none){
  .bigbtn:hover{transform:none}
  .bigbtn:active{transform:scale(.98);box-shadow:0 0 0 1.5px rgba(255,177,10,.6),0 0 26px rgba(255,177,10,.6),0 16px 34px rgba(46,18,72,.22);transition:transform .12s ease, box-shadow .16s ease}
  .pill:active,.btn-submit:active{transform:scale(.97);transition:transform .12s ease}
}

/* ===================== v33: tap glow class (reliable on iOS) ===================== */
.bigbtn.tap{transform:scale(.98)!important;box-shadow:0 0 0 1.5px rgba(255,177,10,.65),0 0 28px rgba(255,177,10,.65),0 16px 34px rgba(46,18,72,.22)!important;transition:transform .1s ease, box-shadow .14s ease}

/* ===================== v37: bigger conference title + registration type selector ===================== */
/* 1) conference title (name under the logo) — larger */
.hero-logo .name{font-size:clamp(14px,2.2vw,24px)}

/* 2) registration type selector (4 options) */
.rate-pick{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
@media(max-width:560px){.rate-pick{grid-template-columns:1fr}}
.rate-opt{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;border:2px solid rgba(75,33,115,.18);border-radius:14px;padding:16px 18px;background:#fff;transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s}
.rate-opt:hover{border-color:var(--orchid)}
.rate-opt input{position:absolute;opacity:0;pointer-events:none}
.rate-opt.sel{border-color:var(--purple);background:linear-gradient(180deg,#faf5ff,#fff);box-shadow:0 0 0 3px rgba(75,33,115,.10)}
.rate-opt .ro-name{font-family:'Poppins';font-weight:600;color:var(--purple);font-size:15.5px;line-height:1.25}
.rate-opt .ro-price{font-family:'Poppins';font-weight:800;color:var(--plum);font-size:26px;line-height:1;flex:0 0 auto}
.rate-opt.invalid{border-color:#c0392b}

/* 3) simple price rows (home teaser) */
.ra-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(75,33,115,.10)}
.ra-row:last-child{border-bottom:none}
.ra-row .to-name{font-family:'Poppins';font-weight:600;color:var(--purple);font-size:15px}
.ra-row .to-price{font-family:'Poppins';font-weight:800;color:var(--plum);font-size:20px}

/* ===================== v39: fit all six committee logos on one line (desktop only; mobile unchanged) ===================== */
@media(min-width:881px){
  .committee{max-width:1160px;flex-wrap:nowrap}
  .org{flex:1 1 0;min-width:0;max-width:none}
}

/* ---- Climate Justice expanding session card ---- */
.track-expand{cursor:pointer}
.track-expand:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.track-more{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);transition:gap .25s var(--ease)}
.track-expand:hover .track-more{gap:11px}
.cj-hidden{visibility:hidden}
body.cj-lock{overflow:hidden}
.cj-backdrop{position:fixed;inset:0;background:rgba(28,10,48,.62);backdrop-filter:blur(6px);z-index:80;opacity:0;pointer-events:none;transition:opacity .42s var(--ease)}
.cj-backdrop.on{opacity:1;pointer-events:auto}
.cj-backdrop.fading{opacity:0}
.cj-modal{position:fixed;z-index:81;left:50%;top:50%;translate:-50% -50%;width:min(92vw,780px);max-height:min(86vh,860px);display:none;flex-direction:column;background:var(--cream);color:var(--plum);border-radius:22px;box-shadow:0 40px 120px rgba(20,6,40,.5);transform-origin:top left;overflow:hidden}
.cj-modal.on{display:flex}
.cj-modal.anim .cj-scroll{opacity:0}
.cj-scroll{overflow-y:auto;padding:44px 46px 40px;opacity:1;transition:opacity .3s ease .12s}
.cj-close{position:absolute;top:16px;right:16px;z-index:2;width:42px;height:42px;border-radius:50%;border:none;cursor:pointer;background:rgba(75,33,115,.10);color:var(--purple);display:flex;align-items:center;justify-content:center;transition:background .2s,transform .25s var(--ease)}
.cj-close:hover{background:var(--gold);transform:rotate(90deg)}
.cj-head .eyebrow{color:var(--dgold);margin-bottom:12px}
.cj-modal h3{font-family:'Poppins';font-weight:700;font-size:clamp(21px,2.6vw,30px);line-height:1.18;color:var(--purple);margin:0 40px 14px 0}
.cj-desc{font-family:'Lora';font-size:15.5px;line-height:1.68;color:#4a3560}
.cj-mod{display:flex;align-items:center;gap:12px;margin-top:18px;padding:12px 16px;border-radius:12px;background:rgba(255,177,10,.16)}
.cj-mod-label{font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dgold)}
.cj-mod-name{font-family:'Poppins';font-weight:600;font-size:15.5px;color:var(--purple)}
.cj-sec{margin-top:28px}
.cj-sec-title{font-weight:700;font-size:15px;color:var(--purple);display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.cj-min{font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dgold)}
.cj-talks{display:grid;gap:10px}
.cj-talk{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid rgba(75,33,115,.14);border-radius:12px;padding:13px 16px}
.cj-talk b{font-family:'Poppins';font-weight:600;font-size:14px;color:var(--purple)}
.cj-talk span{font-family:'Lora';font-style:italic;font-size:14px;line-height:1.5;color:#4a3560}
.cj-themes{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.cj-themes li{font-family:'Lora';font-size:14.5px;line-height:1.55;color:#4a3560;padding-left:22px;position:relative}
.cj-themes li::before{content:"";position:absolute;left:0;top:.52em;width:10px;height:10px;border-radius:50%;background:var(--gold)}
@media (max-width:640px){.cj-scroll{padding:34px 22px 30px}}
@media (prefers-reduced-motion:reduce){.cj-backdrop,.cj-scroll{transition:none}}

/* ---- financial support option ---- */
.support-opt{display:flex;align-items:flex-start;gap:13px;cursor:pointer;margin-top:14px;border:2px dashed rgba(75,33,115,.22);border-radius:14px;padding:15px 18px;background:#fffdf8;transition:border-color .2s var(--ease),background .2s,box-shadow .2s}
.support-opt:hover{border-color:rgba(75,33,115,.4)}
.support-opt.sel{border-style:solid;border-color:var(--dgold);background:linear-gradient(180deg,#fff8e8,#fffdf8);box-shadow:0 0 0 3px rgba(216,146,0,.12)}
.support-opt input{position:absolute;opacity:0;pointer-events:none}
.so-box{flex:0 0 auto;width:24px;height:24px;margin-top:1px;border-radius:7px;border:2px solid rgba(75,33,115,.35);background:#fff;color:#fff;display:flex;align-items:center;justify-content:center;transition:background .18s,border-color .18s}
.support-opt.sel .so-box{background:var(--dgold);border-color:var(--dgold)}
.so-text{display:flex;flex-direction:column;gap:2px}
.so-text b{font-family:'Poppins';font-weight:600;font-size:14.5px;color:var(--purple)}
.so-hint{font-family:'Lora';font-size:13px;color:#6b5a78;line-height:1.5}
.support-opt:focus-within{box-shadow:0 0 0 3px rgba(255,177,10,.4)}
