/* $100k Foundation – shared page styles (home, mission, about, contact) */
:root{--bg:#000;--ink:#fff;--muted:#bdbdbd;--gold:#E2B935;--line:#222;--card:#0b0b0b}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{overflow-x:clip}
body{background:var(--bg);color:var(--ink);font-family:Outfit,system-ui,sans-serif;font-weight:300;font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.wrap{width:min(1180px,100% - 32px);margin-inline:auto}
h1,h2,h3,.big{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase;line-height:.92;letter-spacing:-.01em}
.swoosh{position:relative;display:inline-block;white-space:nowrap}
.swoosh::after{content:"";position:absolute;left:30%;right:-4%;bottom:-.2em;height:.1em;min-height:4px;background:var(--gold);border-radius:99px;transform:rotate(-1.6deg)}
.eyebrow{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.btn{display:inline-block;background:var(--gold);color:#000;text-decoration:none;font-weight:600;border-radius:999px;padding:14px 28px;transition:transform .15s;text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid #555}
section.block{padding:110px 0;border-top:1px solid var(--line)}
.sec-head{margin-bottom:56px}
.sec-head .num{font-family:Anton,sans-serif;color:var(--gold);font-size:1.1rem;letter-spacing:.06em}
.sec-head h2{font-size:clamp(2.8rem,7vw,5.6rem);margin:.15em 0 .3em}
.sec-head p{font-size:clamp(1.1rem,2vw,1.35rem);max-width:640px;color:var(--muted)}

/* nav */
nav{position:fixed;inset:0 0 auto;z-index:20;transition:background .3s}
nav.solid{background:#000e;backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
nav .logo img{height:32px;width:auto}
nav ul{display:flex;gap:28px;list-style:none;font-size:.95rem}
nav ul a{text-decoration:none;opacity:.85}
nav ul a:hover{opacity:1;color:var(--gold)}
nav .btn{padding:10px 18px;font-size:.92rem}
.menu-btn{display:none;width:40px;height:40px;align-items:center;justify-content:center}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:22px;height:2px;background:#fff;position:relative;content:""}
.menu-btn span::before{position:absolute;top:-7px}.menu-btn span::after{position:absolute;top:7px}

/* 1 slideshow */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1s;display:flex;align-items:flex-end;padding:110px 0 120px}
.slide.on{opacity:1;z-index:1}
.slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transform:scale(1.06);transition:transform 7s linear}
.slide.on>img{transform:scale(1)}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(#0009 0%,#0000 35%,#000 95%)}
.slide .wrap{position:relative;z-index:1}
.slide h1,.slide .h1{font-size:min(clamp(3rem,9.5vw,8.5rem),12.5vh);margin:.15em 0 .3em;max-width:13ch}
.slide p.lead{max-width:600px;font-size:clamp(1.1rem,2.2vw,1.4rem)}
.slide .ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.dots{position:absolute;z-index:3;left:0;right:0;bottom:44px}
.dots .wrap{display:flex;gap:10px;align-items:center}
.dots button{width:36px;height:4px;border-radius:9px;background:#fff4;overflow:hidden;position:relative}
.dots button i{position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left}
.dots button.on i{animation:fill 9s linear forwards}
.dots button.done i{transform:scaleX(1)}
.dots .arrows{margin-left:auto;display:flex;gap:8px}
.dots .arrows button{width:44px;height:44px;border-radius:50%;border:1px solid #555;background:#0006;font-size:1.2rem;line-height:1}
@keyframes fill{to{transform:scaleX(1)}}

/* 2 speakers carousel */
.spc{position:relative;aspect-ratio:21/9;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#050505}
.spc-track{display:flex;height:100%;transition:transform .7s cubic-bezier(.65,0,.35,1)}
.spc-slide{flex:0 0 100%;height:100%;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center}
.spc-slide .photo{position:absolute;inset:0 0 0 38%;}
.spc-slide .photo img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.spc-slide .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050505 0%,#050505cc 18%,#0000 55%),linear-gradient(0deg,#050505aa,#0000 40%)}
.spc-slide .txt{position:relative;z-index:1;padding:0 0 0 96px;max-width:660px}
.spc-slide .count{font-family:Anton,sans-serif;color:var(--gold);letter-spacing:.06em;font-size:1rem}
.spc-slide h3{font-size:clamp(2.6rem,6.4vw,6rem);margin:.18em 0 .3em}
.spc-slide .co{font-size:clamp(1.15rem,2vw,1.5rem);font-weight:600;color:var(--gold)}
.spc-slide .ind{font-size:clamp(1rem,1.6vw,1.2rem);color:var(--muted);margin-top:2px}
.spc-slide .bio{margin-top:18px;max-width:460px;font-size:1.05rem}
.spc-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid #555;background:#000a;font-size:1.6rem;line-height:1;backdrop-filter:blur(6px);transition:background .2s}
.spc-arrow:hover{background:var(--gold);color:#000;border-color:var(--gold)}
.spc-arrow.prev{left:16px}.spc-arrow.next{right:16px}
.spc-dots{position:absolute;z-index:3;left:96px;bottom:32px;display:flex;gap:8px}
.spc-dots button{width:28px;height:4px;border-radius:9px;background:#fff4}
.spc-dots button.on{background:var(--gold);width:44px}
.profile-link{display:inline-block;margin:16px 0 40px;font-size:.95rem;text-underline-offset:4px;opacity:.85}.profile-link:hover{color:var(--gold);opacity:1}
.spc-ctas{position:absolute;z-index:3;right:96px;bottom:24px;display:flex;gap:10px;flex-wrap:wrap}
.spc-ctas .btn.ghost{background:#000a;backdrop-filter:blur(6px)}
.report{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:48px 56px;margin-bottom:96px}
.report-cover{position:relative;transform:rotate(-2.5deg);background:#f4f0e6;padding:10px;box-shadow:0 18px 40px #0009}
.report-cover img{width:100%;aspect-ratio:16/9;object-fit:cover}
.report-txt h3{font-size:clamp(2.2rem,4.6vw,3.8rem);margin:.25em 0 .45em}
.report-txt p:not(.eyebrow){font-size:1.15rem;color:#ddd;max-width:460px;margin-bottom:26px}
.tc .spc-slide h3{font-size:clamp(2rem,3.6vw,3.4rem);line-height:.98}
.tc .spc-slide .txt{max-width:620px;padding-bottom:48px}
.tc .spc-slide .photo img{object-position:center 22%}
.tc .who{margin-top:14px;font-weight:600;color:var(--gold)}
.mc{margin-bottom:96px}
.mc .spc-slide h3{font-size:clamp(2rem,3.6vw,3.4rem);line-height:.98}
.mc .spc-slide .txt{max-width:600px;padding-bottom:48px}




/* 5 contact */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px}
.contact h2{font-size:clamp(2.8rem,7vw,5.6rem);margin:.15em 0 .4em}
.contact .info p{font-size:1.2rem;margin-bottom:1em;max-width:460px}
.contact .info a.mail{font-size:1.3rem;color:var(--gold);font-weight:600;text-decoration:none;word-break:break-all}
form{display:grid;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:32px}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:6px;font-size:.9rem;color:var(--muted)}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink);background:#000;border:1px solid #333;border-radius:8px;padding:12px 14px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}
textarea{min-height:130px;resize:vertical}
form .btn{border:0;cursor:pointer;justify-self:start}
.hidden{display:none}

footer.site{border-top:1px solid var(--line);padding:40px 0;color:var(--muted);font-size:.9rem}
footer.site .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
footer.site img{height:30px;width:auto}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.slide,.slide>img{transition:none}}

@media (max-width:900px){
  nav ul{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;gap:0;background:#000;border-bottom:1px solid var(--line);padding:8px 16px 16px}
  nav ul.open{display:flex}
  nav ul a{display:block;padding:12px 0;font-size:1.1rem}
  .menu-btn{display:flex}
  .report{grid-template-columns:1fr;padding:36px 24px;gap:36px}
  .spc{aspect-ratio:auto}
  .spc-slide{display:block}
  .spc-slide .photo{position:relative;inset:auto;aspect-ratio:4/3}
  .spc-slide .photo::after{background:linear-gradient(0deg,#050505 0%,#0000 45%)}
  .spc-slide .txt{padding:0 24px 24px;margin-top:-56px}
  .spc-arrow{top:calc((100vw - 32px)*.375);width:44px;height:44px}
  .spc-arrow.prev{left:10px}.spc-arrow.next{right:10px}
  .spc-dots{left:24px;bottom:auto;top:20px}
  .spc-slide .txt{padding-bottom:24px}
  .spc-ctas{position:static;padding:0 24px 24px;flex-direction:column}
  .spc-ctas .btn{width:100%}
  .contact{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:17px}
  section.block{padding:80px 0}
  nav .btn{display:none}
  form .row{grid-template-columns:1fr}
  .dots .arrows{display:none}
  .slide{padding-bottom:100px}
}


/* =========================================================
   Strips: content sits on the page edge to edge, no rounded boxes
   ========================================================= */
:root{--gutter:max(16px, calc((100vw - 1180px) / 2))}
.spc{width:100vw;margin-left:calc(50% - 50vw);border:0;border-radius:0;background:#060606;border-block:1px solid var(--line);aspect-ratio:auto;height:clamp(500px,44vw,680px)}
.spc-slide .photo{inset:0 0 0 42%}
.spc-slide .photo::after{background:linear-gradient(90deg,#060606 0%,#060606d9 16%,#0000 52%),linear-gradient(0deg,#060606b3,#0000 38%)}
.spc-slide .txt{padding-left:max(88px, var(--gutter))}
.spc-dots{left:max(88px, var(--gutter))}
.spc-ctas{right:max(88px, var(--gutter))}
.spc-arrow{border-radius:0;width:56px;height:56px}
.mc,.tc{margin-bottom:0}
.report{width:100vw;margin:0 0 0 calc(50% - 50vw);border:0;border-radius:0;background:#0b0b0b;padding:96px var(--gutter);border-block:1px solid var(--line)}
.report-cover{transform:rotate(-2deg)}
.strip-label{padding:72px 0 20px}
form{background:none;border:0;border-radius:0;padding:0}
input,select,textarea{border-radius:0;background:#0b0b0b}
@media (max-width:900px){
  .spc{height:auto}
  .spc-slide .photo{inset:auto}
  .spc-slide .txt,.spc-ctas{padding-left:16px;padding-right:16px}
  .spc-dots{left:16px}
  .report{padding:64px 16px}
}

/* ---------- page header strip (mission, about, contact) ---------- */
.page-hero{position:relative;min-height:62svh;display:flex;align-items:flex-end;padding:140px 0 72px;overflow:hidden;border-bottom:1px solid var(--line)}
.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.45;filter:grayscale(1)}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(#0009,#0000 30%,#000 96%)}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{font-size:clamp(3.4rem,10vw,8.4rem);margin:.15em 0 .3em}
.page-hero p.lead{font-size:clamp(1.15rem,2.2vw,1.5rem);max-width:640px}
.page-hero.plain{min-height:0;padding:150px 0 64px}

/* ---------- about ---------- */
.story{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:start}
.story h2{font-size:clamp(2.4rem,5vw,4.2rem)}
.story .copy p{font-size:clamp(1.1rem,1.8vw,1.3rem);margin-bottom:1.1em;color:#e6e6e6}
.story .copy p:first-child{font-size:clamp(1.3rem,2.3vw,1.7rem);color:#fff;line-height:1.4}
.facts{width:100vw;margin-left:calc(50% - 50vw);border-block:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr)}
.facts>div{padding:56px 28px 52px;border-right:1px solid var(--line)}
.facts>div:first-child{padding-left:var(--gutter)}
.facts>div:last-child{border-right:0;padding-right:var(--gutter)}
.facts .big{font-size:clamp(3.2rem,6vw,5.4rem);color:var(--gold)}
.facts p{margin-top:10px;color:#ddd;max-width:260px}
.day{display:grid;grid-template-columns:repeat(2,1fr);gap:0;width:100vw;margin-left:calc(50% - 50vw);border-block:1px solid var(--line)}
.day>div{position:relative;min-height:420px;display:flex;align-items:flex-end;padding:48px var(--gutter);overflow:hidden}
.day>div:first-child{padding-right:48px;border-right:1px solid var(--line)}
.day>div:last-child{padding-left:48px}
.day img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1);opacity:.4}
.day>div::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#000 8%,#0000 70%)}
.day .in{position:relative;z-index:1;max-width:460px}
.day .tag{font-family:Anton,sans-serif;color:var(--gold);letter-spacing:.06em}
.day h3{font-size:clamp(2rem,3.6vw,3rem);margin:.2em 0 .35em}
.newsletter{width:100vw;margin-left:calc(50% - 50vw);background:var(--gold);color:#000;padding:88px var(--gutter)}
.newsletter .in{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:end;max-width:1180px}
.newsletter h2{font-size:clamp(2.6rem,6vw,5rem)}
.newsletter p{font-size:1.2rem;max-width:520px;margin-top:14px}
.newsletter form{display:flex;gap:0;flex-wrap:wrap}
.newsletter input{flex:1 1 240px;background:#fff;color:#000;border:2px solid #000;border-right:0;padding:16px 18px;font-size:1.05rem}
.newsletter input:focus{outline:3px solid #000;outline-offset:2px}
.newsletter button{background:#000;color:var(--gold);border:2px solid #000;padding:16px 26px;font-weight:600;border-radius:0}
.newsletter small{display:block;margin-top:12px;font-size:.85rem;opacity:.75}
.newsletter .ok{font-weight:600;margin-top:14px}
.support{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.support h2{font-size:clamp(2.2rem,5vw,4rem)}
.support .ctas{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:900px){
  .story{grid-template-columns:1fr;gap:28px}
  .facts{grid-template-columns:1fr 1fr}
  .facts>div{padding:36px 16px!important;border-bottom:1px solid var(--line)}
  .facts>div:nth-child(2){border-right:0}
  .day{grid-template-columns:1fr}
  .day>div{padding:40px 16px!important;min-height:340px;border-right:0!important}
  .day>div:first-child{border-bottom:1px solid var(--line)}
  .newsletter{padding:64px 16px}
  .newsletter .in{grid-template-columns:1fr;gap:28px}
  .newsletter input{border-right:2px solid #000}
  .newsletter button{width:100%;margin-top:-2px}
}

/* page-specific bits */
.page-top{padding-top:150px!important;border-top:0!important}
.contact h1.h2{font-size:clamp(2.8rem,7vw,5.6rem);margin:.15em 0 .4em}
#menu .menu-cta{display:none}
@media (max-width:560px){ nav .nav-cta{display:none} }

/* ---------- impact report opt-in lightbox ---------- */
#reportGate{margin:auto;padding:0;border:1px solid #2a2a2a;border-radius:0;background:#050505;color:var(--ink);width:min(880px,100% - 24px);max-height:calc(100svh - 24px);overflow:auto}
#reportGate::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(4px)}
#reportGate[open]{animation:gateIn .45s cubic-bezier(.2,.75,.2,1)}
#reportGate[open]::backdrop{animation:gateFade .35s ease}
#reportGate.closing{animation:gateOut .3s ease forwards}
#reportGate.closing::backdrop{animation:gateFadeOut .3s ease forwards}
@keyframes gateIn{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
@keyframes gateOut{to{opacity:0;translate:0 16px}}
@keyframes gateFade{from{opacity:0}}
@keyframes gateFadeOut{to{opacity:0}}
.gate-in{display:grid;grid-template-columns:.8fr 1.2fr}
.gate-in>.gate-coverwrap{background:#000;display:flex;align-items:center;justify-content:center;padding:28px}
.gate-cover{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;box-shadow:0 18px 40px #000;rotate:-2deg}
.gate-body{padding:44px 40px}
.gate-body h3{font-size:clamp(2.2rem,4.4vw,3.2rem);margin:.25em 0 .4em}
.gate-lead{color:#ddd;margin-bottom:22px}
#gateForm{display:grid;gap:14px}
#gateForm .btn{justify-self:stretch;margin-top:6px}
#gateForm .btn[disabled]{opacity:.6;cursor:progress}
.gate-note{font-size:.82rem;color:var(--muted)}
.gate-close{position:absolute;top:10px;right:12px;width:40px;height:40px;font-size:1.6rem;line-height:1;color:#ddd;z-index:2;background:#000c;border-radius:50%}
.gate-close:hover{color:var(--gold)}
@media (max-width:700px){
  .gate-in{grid-template-columns:1fr}
  .gate-in>.gate-coverwrap{padding:22px 48px 6px}
  .gate-cover{rotate:0deg}
  .gate-body{padding:28px 20px}
  #gateForm .row{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){#reportGate[open],#reportGate.closing,#reportGate::backdrop{animation:none!important}}

footer.site .by{display:inline-block;margin-left:14px;padding-left:14px;border-left:1px solid #333;color:#8a8a8a}
@media (max-width:560px){footer.site .by{display:block;margin:6px 0 0;padding:0;border:0}}

.sec-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.gate-dlg{margin:auto;padding:0;border:1px solid #2a2a2a;border-radius:0;background:#050505;color:var(--ink);width:min(600px,100% - 24px);max-height:calc(100svh - 24px);overflow:auto}
.gate-dlg::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(4px)}
.gate-dlg[open]{animation:gateIn .45s cubic-bezier(.2,.75,.2,1)}
.gate-dlg.closing{animation:gateOut .3s ease forwards}
.club-in{padding:48px 44px;border-top:4px solid var(--gold)}
.club-in h3{font-size:clamp(2.4rem,5vw,3.4rem);margin:.25em 0 .4em}
#clubForm{display:grid;gap:14px}
#clubForm .btn{justify-self:stretch;margin-top:6px}
.newsletter form .nl-half{flex:1 1 140px}
.newsletter form input+input{border-left:0}
@media (max-width:700px){.club-in{padding:32px 20px}#clubForm .row{grid-template-columns:1fr}}
@media (max-width:900px){.newsletter form input+input{border-left:2px solid #000;border-top:0}}
.newsletter form .nl-half+.nl-half{border-left:2px solid #000}

/* =========================================================
   $100k Club band: polished, beveled gold
   ========================================================= */
.newsletter{position:relative;overflow:hidden;color:#221a00;
  background:
    linear-gradient(180deg,rgba(255,250,225,.55) 0,rgba(255,250,225,0) 3px),
    linear-gradient(0deg,rgba(80,60,0,.55) 0,rgba(80,60,0,0) 4px),
    linear-gradient(115deg,#9c7806 0%,#e2b522 14%,#fdf68a 30%,#eecb47 44%,#c9a012 58%,#faef79 74%,#d9ad1e 88%,#8a6904 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(100,76,0,.45),inset 0 0 120px rgba(110,82,0,.3)}
/* a slow shine that sweeps across the gold */
.newsletter::before{content:"";position:absolute;inset:-20% -40%;pointer-events:none;
  background:linear-gradient(105deg,transparent 42%,rgba(255,252,235,.55) 50%,transparent 58%);
  transform:translateX(-60%);animation:goldSweep 7s cubic-bezier(.45,0,.25,1) 1.2s infinite}
@keyframes goldSweep{0%{transform:translateX(-60%)}38%,100%{transform:translateX(60%)}}
/* fine brushed-metal grain */
.newsletter::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;mix-blend-mode:overlay;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(0,0,0,.25) 0 1px,transparent 1px 7px)}
.newsletter .in{position:relative;z-index:1}
/* engraved lettering */
.newsletter h2{color:#221a00;text-shadow:0 1px 0 rgba(255,244,200,.65),0 -1px 0 rgba(80,60,0,.35)}
.newsletter p,.newsletter .eyebrow{color:#2c2200!important;text-shadow:0 1px 0 rgba(255,244,200,.45)}
.newsletter .eyebrow{opacity:.85!important;letter-spacing:.24em}
.newsletter small{color:#3a2808;opacity:.85}
/* inset, engraved form fields */
.newsletter form{gap:10px!important;flex-wrap:wrap}
.newsletter input,.newsletter form input+input,.newsletter form .nl-half+.nl-half{
  background:linear-gradient(180deg,rgba(22,17,0,.84),rgba(38,30,4,.78));color:#faef9a;
  border:1px solid rgba(80,60,0,.65)!important;border-radius:6px;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.55),0 1px 0 rgba(255,244,200,.55)}
.newsletter input::placeholder{color:rgba(250,239,154,.55)}
.newsletter input:focus{outline:2px solid #fff3c4;outline-offset:2px}
/* polished black button with a gold rim */
.newsletter button{flex:1 1 100%;border-radius:999px;border:1px solid #e2b522!important;margin-top:4px;
  background:linear-gradient(180deg,#2b2b2b 0%,#0b0b0b 55%,#000 100%);color:#e2b522;letter-spacing:.04em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 6px 18px rgba(80,60,0,.45);transition:transform .15s,box-shadow .2s}
.newsletter button:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 24px rgba(80,60,0,.55)}
@media (max-width:900px){.newsletter button{width:100%;margin-top:4px}}
@media (prefers-reduced-motion:reduce){.newsletter::before{animation:none;opacity:0}}
/* $100k Club pop-up: same polished gold as the banner */
#clubGate{border:0;background:transparent;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.club-in{position:relative;overflow:hidden;color:#221a00;border-top:0;
  background:
    linear-gradient(180deg,rgba(255,250,225,.6) 0,rgba(255,250,225,0) 3px),
    linear-gradient(0deg,rgba(80,60,0,.55) 0,rgba(80,60,0,0) 4px),
    linear-gradient(115deg,#9c7806 0%,#e2b522 14%,#fdf68a 30%,#eecb47 44%,#c9a012 58%,#faef79 74%,#d9ad1e 88%,#8a6904 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(100,76,0,.45),inset 0 0 90px rgba(110,82,0,.3)}
.club-in::before{content:"";position:absolute;inset:-20% -40%;pointer-events:none;
  background:linear-gradient(105deg,transparent 42%,rgba(255,252,235,.55) 50%,transparent 58%);
  transform:translateX(-60%);animation:goldSweep 7s cubic-bezier(.45,0,.25,1) .6s infinite}
.club-in::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;mix-blend-mode:overlay;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(0,0,0,.25) 0 1px,transparent 1px 7px)}
.club-in>*{position:relative;z-index:1}
.club-in h3{color:#221a00;text-shadow:0 1px 0 rgba(255,244,200,.65),0 -1px 0 rgba(80,60,0,.35)}
.club-in h3 .swoosh::after{background:#221a00;box-shadow:0 1px 0 rgba(255,244,200,.5)}
.club-in .eyebrow,.club-in .gate-lead,.club-in .gate-note,.club-in label{color:#2c2200!important;text-shadow:0 1px 0 rgba(255,244,200,.4)}
.club-in .eyebrow{letter-spacing:.24em}
.club-in input{background:linear-gradient(180deg,rgba(22,17,0,.84),rgba(38,30,4,.78))!important;color:#faef9a;
  border:1px solid rgba(80,60,0,.65)!important;border-radius:6px;box-shadow:inset 0 2px 6px rgba(0,0,0,.55),0 1px 0 rgba(255,244,200,.55)}
.club-in input:focus{outline:2px solid #fff3c4;outline-offset:2px}
.club-in .btn{background:linear-gradient(180deg,#2b2b2b 0%,#0b0b0b 55%,#000 100%)!important;color:#e2b522!important;border:1px solid #e2b522!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 6px 18px rgba(80,60,0,.45);letter-spacing:.04em}
.club-in .btn.ghost{background:transparent!important;color:#221a00!important;border:1px solid #221a00!important;box-shadow:none}
#clubGate .gate-close{color:#221a00;background:rgba(255,244,200,.35);z-index:3}
#clubGate .gate-close:hover{color:#000;background:rgba(255,244,200,.6)}
@media (prefers-reduced-motion:reduce){.club-in::before{animation:none;opacity:0}}

.newsletter form .nl-half+.nl-half{border-left:2px solid #000}
/* Jerusalem's quote stays on one line, closing quote stays with "level." */
.tc .spc-slide h3.one-line{white-space:nowrap;max-width:100%;font-size:clamp(1.55rem,6.4vw,3.4rem)}
.tc .spc-slide .txt{min-width:0;max-width:100%}
@media (min-width:901px){.tc .spc-slide h3.one-line{font-size:clamp(2rem,3.3vw,3.4rem)}}

/* =========================================================
   Carousel arrows: hand-drawn gold strokes, like the underline
   ========================================================= */
.spc-arrow,.dots .arrows button{border:0!important;background:none!important;backdrop-filter:none!important;border-radius:0!important;
  width:64px!important;height:44px!important;color:var(--gold);display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.65));transition:transform .25s cubic-bezier(.2,.75,.2,1),color .2s}
.spc-arrow svg,.dots .arrows button svg{width:54px;height:26px;overflow:visible}
.spc-arrow.prev svg,.dots .arrows #prev svg{transform:scaleX(-1) rotate(1.6deg)}
.spc-arrow.next svg,.dots .arrows #next svg{transform:rotate(-1.6deg)}
.spc-arrow:hover,.dots .arrows button:hover{color:#f6dc8a;background:none!important}
.spc-arrow.next:hover,.dots .arrows #next:hover{transform:translateY(-50%) translateX(5px)}
.spc-arrow.prev:hover,.dots .arrows #prev:hover{transform:translateY(-50%) translateX(-5px)}
.dots .arrows #next:hover{transform:translateX(5px)}
.dots .arrows #prev:hover{transform:translateX(-5px)}
.dots .arrows{gap:14px!important}
@media (max-width:900px){.spc-arrow{width:52px!important}.spc-arrow svg{width:44px;height:22px}}
.spc-slide{min-width:0}

/* =========================================================
   Other forms: same finish as the gold club, in shiny black
   (impact report pop-up, contact form)
   ========================================================= */
#reportGate{border:0;background:transparent;box-shadow:0 30px 80px rgba(0,0,0,.8)}
#reportGate .gate-in,form[name="contact"]{position:relative;overflow:hidden;color:#f3f3f3;
  background:
    linear-gradient(180deg,rgba(255,255,255,.22) 0,rgba(255,255,255,0) 2px),
    linear-gradient(0deg,rgba(0,0,0,.9) 0,rgba(0,0,0,0) 4px),
    linear-gradient(115deg,#050505 0%,#1c1c1c 16%,#3a3a3a 30%,#141414 44%,#060606 58%,#262626 74%,#0d0d0d 88%,#000 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.8),inset 0 0 120px rgba(0,0,0,.6),0 0 0 1px #262626}
#reportGate .gate-in::before,form[name="contact"]::before{content:"";position:absolute;inset:-20% -40%;pointer-events:none;z-index:0;
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.12) 50%,transparent 58%);
  transform:translateX(-60%);animation:goldSweep 8s cubic-bezier(.45,0,.25,1) .8s infinite}
#reportGate .gate-in>*,form[name="contact"]>*{position:relative;z-index:1}
#reportGate .gate-coverwrap{background:transparent!important}
#reportGate h3{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.9),0 -1px 0 rgba(255,255,255,.12)}
#reportGate .eyebrow,#reportGate .gate-lead,#reportGate .gate-note,#reportGate label,form[name="contact"] label{color:#c9c9c9}
form[name="contact"]{padding:36px!important;border-radius:0}
/* inset fields, same rounding as the gold forms */
#reportGate input,form[name="contact"] input,form[name="contact"] select,form[name="contact"] textarea{
  background:linear-gradient(180deg,#000,#0c0c0c)!important;color:#faef9a;
  border:1px solid #2c2c2c!important;border-radius:6px!important;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.9),0 1px 0 rgba(255,255,255,.08)}
#reportGate input::placeholder,form[name="contact"] input::placeholder,form[name="contact"] textarea::placeholder{color:rgba(248,231,176,.4)}
#reportGate input:focus,form[name="contact"] input:focus,form[name="contact"] select:focus,form[name="contact"] textarea:focus{outline:2px solid var(--gold);outline-offset:2px}
/* polished gold button (the reverse of the gold form's black button) */
#reportGate .btn,form[name="contact"] .btn{color:#221a00!important;border:1px solid #eecb47!important;letter-spacing:.04em;justify-self:stretch;
  background:radial-gradient(120% 70% at 30% 0%,rgba(255,248,210,.26),rgba(255,248,210,0) 60%),linear-gradient(180deg,#f0d462 0%,#e8c240 18%,#e2b522 38%,#c39710 60%,#d4a618 78%,#e0b52a 88%,#a07a06 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(100,76,0,.5),0 6px 18px rgba(0,0,0,.6);text-shadow:0 1px 0 rgba(255,244,200,.5)}
#reportGate .btn:hover,form[name="contact"] .btn:hover{filter:brightness(1.06)}
#reportGate .gate-close{color:#ddd;background:rgba(255,255,255,.08);z-index:3}
@media (max-width:560px){form[name="contact"]{padding:24px 18px!important}}
@media (prefers-reduced-motion:reduce){#reportGate .gate-in::before,form[name="contact"]::before{animation:none;opacity:0}}

.slide p.lead strong{font-weight:700;color:#fff}

/* even spacing: sections that end in a full-width strip don't add bottom padding */
section.block:has(> .wrap > .spc:last-child),#speakers,#mission{padding-bottom:0!important}

/* =========================================================
   Desktop strips: photo panel shaped closer to the photos,
   so they show at a natural size instead of being cropped in
   ========================================================= */
@media (min-width:901px){
  .spc{--stripH:clamp(500px,44vw,680px)}
  .spc-slide .photo{left:auto!important;right:0;width:min(60%, calc(var(--stripH) * 1.12))}
  .spc-slide .photo::after{background:
    linear-gradient(90deg,#060606 0%,rgba(6,6,6,.75) 10%,rgba(6,6,6,0) 32%),
    linear-gradient(0deg,rgba(6,6,6,.7),rgba(6,6,6,0) 30%)}
  .spc-slide .photo img{object-position:center 22%}
}

/* =========================================================
   Hero on wide screens: portrait photos show at their own
   shape on the right instead of being blown up to fill
   ========================================================= */
.slide>img{transform:scale(1.02)!important}
.slide.on>img{transform:scale(1)!important}
@media (min-width:901px) and (min-aspect-ratio:1/1){
  .slide.portrait>img{left:auto;right:0;width:min(64%, calc(100svh * .8 + 120px));height:100%;
    object-fit:cover;object-position:center 18%;opacity:.72;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34%);mask-image:linear-gradient(90deg,transparent 0,#000 34%)}
  .slide.portrait::after{background:linear-gradient(#0008 0%,#0000 30%,#000 97%),linear-gradient(90deg,#000 0%,rgba(0,0,0,.55) 30%,rgba(0,0,0,0) 55%)}
}

/* =========================================================
   Ultrawide screens: text keeps its width no matter how big
   the side margin gets; photos stay near the content area
   ========================================================= */
.spc-slide .txt{box-sizing:content-box}
.spc-slide .txt{max-width:620px}
.mc .spc-slide .txt,.tc .spc-slide .txt{max-width:600px}
@media (min-width:1700px){
  .spc-slide .photo{right:max(0px, calc(var(--gutter) - 160px))!important}
  .spc-slide .photo img{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 82%,transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 82%,transparent 100%)}
  .slide.portrait>img{right:max(0px, calc((100vw - 1180px) / 2 - 160px))!important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%,#000 82%,transparent 100%)!important;mask-image:linear-gradient(90deg,transparent 0,#000 30%,#000 82%,transparent 100%)!important}
  .slide>img:not(.portrait img){}
}
@media (min-width:1700px){
  .spc-slide .photo img{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 26%,#000 82%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 26%,#000 82%,transparent 100%)}
  .spc-arrow.prev{left:max(16px, calc(var(--gutter) - 96px))!important}
  .spc-arrow.next{right:max(16px, calc(var(--gutter) - 96px))!important}
}

/* =========================================================
   About page on wide screens
   ========================================================= */
@media (min-width:901px){
  /* stats: side margin goes outside the four columns, not inside the first */
  .facts{padding-inline:var(--gutter);grid-template-columns:repeat(4,minmax(0,1fr))}
  .facts>div{padding:56px 28px 52px!important}
  .facts>div:first-child{padding-left:0!important;border-left:0}
  .facts>div:last-child{padding-right:0!important}
}
@media (min-width:1700px){
  /* period one / two: keep the pair close to the content width so photos aren't sliced thin */
  .day{padding-inline:max(0px, calc(var(--gutter) - 160px));border-inline:0}
  .day>div{min-height:520px;padding:56px 48px!important}
  .day img{object-position:center 30%}
}
/* short pages (contact): footer sits at the bottom of the screen */
body{min-height:100svh;display:flex;flex-direction:column}
body>footer.site{margin-top:auto}
