/* ATMOSФERA — styles. Ported from the approved prototype v3. */

/* ---------- FONTS (self-hosted) ---------- */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/cormorant-garamond-cyrillic-300-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/cormorant-garamond-latin-300-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/manrope-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/manrope-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--marquee-h:72px;
  --parchment:#d8cbb8; --linen:#bfb4a3; --stone:#b6ab9c; --walnut:#978e81;
  --espresso:#57514a; --amber-ink:#7a481b; --onyx:#2c2c2c; --midnight:#292622; --saffron:#d49653;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Manrope', -apple-system, 'Segoe UI', sans-serif;
  --ease:cubic-bezier(0.25,0.46,0.45,0.94);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
/* anchor targets clear the fixed header (~72px bar + breathing room) */
section[id],#club,#team,#upcoming,#evenings,#all,#join,#sponsor,main[id]{scroll-margin-top:90px}
body{background:var(--parchment);color:var(--onyx);font-family:var(--sans);font-weight:500;font-size:15px;line-height:1.4;letter-spacing:-0.01em;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
html[lang=ru] body{word-spacing:.08em}
.wrap{max-width:1440px;margin:0 auto;padding:0 clamp(20px,4vw,64px)}
.sprite{position:absolute;width:0;height:0;overflow:hidden}

/* keyboard focus — visible on both parchment and dark sections */
:focus{outline:none}
:focus-visible{outline:2px solid var(--saffron);outline-offset:3px}
.skip{position:absolute;left:16px;top:-80px;z-index:100;background:var(--parchment);color:var(--midnight);padding:12px 18px;font-size:13px;text-transform:uppercase;transition:top .2s var(--ease)}
.skip:focus{top:12px}

/* ---------- NAV ---------- */
nav.top{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px clamp(20px,4vw,64px);transition:background .5s var(--ease),padding .5s var(--ease),box-shadow .5s var(--ease)}
nav.top .mark{display:block;width:38px;height:38px;color:var(--parchment);opacity:0;transform:translateY(-6px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
nav.top .mark svg{width:100%;height:100%;display:block}
nav.top.scrolled,nav.top.solid{background:rgba(41,38,34,.93);backdrop-filter:blur(6px);padding-top:12px;padding-bottom:12px;box-shadow:inset 0 -1px 0 rgba(216,203,184,.18)}
nav.top.scrolled .mark,nav.top.solid .mark{opacity:1;transform:none}
nav.top:not(.scrolled):not(.solid) .mark{visibility:hidden}
nav.top .links{display:flex;gap:28px;font-size:13px;text-transform:uppercase;letter-spacing:-0.011em;color:var(--parchment)}
nav.top .links a{position:relative;padding-bottom:3px}
nav.top .links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--saffron);transition:width .4s var(--ease)}
nav.top .links a[aria-current="page"]::after{width:100%}
.nav-right{display:flex;align-items:center;gap:12px}
.lang{display:flex;gap:2px;border:1px solid var(--parchment);border-radius:0;overflow:hidden}
.lang a{display:block;background:transparent;border:0;color:var(--parchment);font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:-0.012em;padding:8px 12px;cursor:pointer;text-transform:uppercase;transition:all .4s var(--ease)}
.lang a[aria-current="true"]{background:var(--parchment);color:var(--midnight)}
.lang a:focus-visible{outline-offset:-3px}
.menu-btn{display:none;background:transparent;border:1px solid var(--parchment);color:var(--parchment);font-family:var(--sans);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:-0.012em;padding:8px 12px;cursor:pointer}
@media(max-width:820px){
  .menu-btn{display:block}
  nav.top .mark,.nav-right{position:relative;z-index:2}
  nav.top .links{display:none}
  nav.top.open{background:var(--midnight);backdrop-filter:none;box-shadow:none}
  nav.top.open .mark,nav.top.open:not(.scrolled):not(.solid) .mark{opacity:1;transform:none;visibility:visible}
  nav.top.open .links{display:flex;position:fixed;inset:0;z-index:1;flex-direction:column;justify-content:center;gap:0;background:var(--midnight);padding:90px clamp(20px,6vw,48px) 40px;overflow-y:auto}
  nav.top .links a{padding:14px 0;border-bottom:1px solid rgba(216,203,184,.14);font-family:var(--serif);font-weight:300;font-size:clamp(32px,9.5vw,48px);line-height:1.05;letter-spacing:-.015em;text-transform:uppercase}
  nav.top .links a:last-child{border-bottom:0}
  nav.top .links a::after{display:none}
  html.menu-open,html.menu-open body{overflow:hidden}
}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:calc(100vh - var(--marquee-h));min-height:calc(100svh - var(--marquee-h));display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;color:var(--parchment)}
.hero .bg{position:absolute;inset:0}
.hero .bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(41,38,34,.55) 0%,rgba(41,38,34,.25) 40%,rgba(41,38,34,.82) 100%)}
.hero-inner{position:relative;z-index:2;padding:0 clamp(20px,4vw,64px) 40px}
.hero-meta{display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:-0.012em;color:var(--parchment);opacity:.85;border-bottom:1px solid rgba(216,203,184,.35);padding-bottom:14px;margin-bottom:22px}
.hero-emblem{width:clamp(90px,11vw,140px);height:auto;display:block;margin:0 auto 14px;color:var(--parchment)}
.hero-emblem path{opacity:0;transform-box:view-box;transform-origin:center;animation:assemble 1s var(--ease) forwards}
.hero-emblem path:nth-child(1){animation-delay:.15s}
.hero-emblem path:nth-child(2){animation-delay:.35s;animation-name:assembleR}
.hero-emblem path:nth-child(3){animation-delay:.55s}
.hero-emblem path:nth-child(4){animation-delay:.75s;animation-name:assembleR}
.hero-emblem path:nth-child(5){animation-delay:1.05s;animation-name:fadeA}
@keyframes assemble{from{opacity:0;transform:scale(.72) rotate(-14deg)}to{opacity:1;transform:none}}
@keyframes assembleR{from{opacity:0;transform:scale(.72) rotate(14deg)}to{opacity:1;transform:none}}
@keyframes fadeA{from{opacity:0;transform:scale(1.25)}to{opacity:1;transform:none}}
.wordmark{font-family:var(--serif);font-weight:300;font-size:clamp(52px,12.5vw,178px);line-height:.85;letter-spacing:.02em;text-transform:uppercase;text-align:center;opacity:0;animation:rise 1.1s var(--ease) .55s forwards}
.hero-tag span{display:inline-block}
.hero-tag{text-align:center;font-size:clamp(13px,1.4vw,15px);max-width:520px;margin:20px auto 0;opacity:0;animation:rise 1.1s var(--ease) .6s forwards}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:28px 0 34px;opacity:0;animation:rise 1.1s var(--ease) .8s forwards}
.btn{display:inline-block;border:1px solid var(--parchment);border-radius:0;padding:16px 24px;font-size:13px;text-transform:uppercase;letter-spacing:-0.011em;transition:all .4s var(--ease);background:transparent;color:var(--parchment);cursor:pointer;font-family:var(--sans);font-weight:500}
.btn.primary{background:var(--parchment);border-color:var(--parchment);color:var(--midnight)}
.btn:focus-visible{outline:2px solid var(--saffron);outline-offset:3px}
.btn.dark{border-color:var(--onyx);color:var(--onyx)}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* ---------- PAGE HEAD (sub-pages without a hero photo) ---------- */
.page-head{background:var(--midnight);color:var(--parchment);padding:clamp(120px,16vw,200px) 0 clamp(48px,7vw,96px)}
.page-head .caption{color:var(--saffron);margin-bottom:18px;display:block}
.page-head h1{font-family:var(--serif);font-weight:300;font-size:clamp(40px,9vw,140px);line-height:.9;letter-spacing:-.02em;text-transform:uppercase;overflow-wrap:anywhere}
.page-head.long h1{font-size:clamp(28px,6.4vw,100px)}
.page-head p{max-width:560px;margin-top:24px;opacity:.85}

/* ---------- MARQUEE ---------- */
.marquee{background:var(--midnight);color:var(--parchment);overflow:hidden;border-top:1px solid rgba(216,203,184,.2);height:var(--marquee-h);display:flex;align-items:center;white-space:nowrap}
.marquee .track{display:inline-block;animation:scroll 55s linear infinite}
.marquee span{font-family:var(--serif);font-weight:300;font-size:clamp(22px,3vw,34px);text-transform:uppercase;letter-spacing:.02em}
.marquee i{font-style:normal;color:var(--saffron);font-size:.55em;vertical-align:middle;margin:0 22px}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- SECTIONS ---------- */
section{padding:clamp(72px,10vw,150px) 0}
section.flush-top{padding-top:0}
.sec-head{font-family:var(--serif);font-weight:300;font-size:clamp(42px,6.5vw,90px);line-height:.9;letter-spacing:-.02em;text-transform:uppercase;margin-bottom:clamp(28px,4vw,56px)}
.caption{font-size:12px;text-transform:uppercase;letter-spacing:-0.012em;color:var(--espresso)}

/* about */
.about-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(28px,5vw,80px);align-items:start}
.about-grid .body-lg{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2.4vw,30px);line-height:1.25;letter-spacing:-0.006em}
.about-photo{position:relative}
.about-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 72%;filter:sepia(.12)}
.about-photo .caption{margin-top:10px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--stone);border-bottom:1px solid var(--stone);margin-top:clamp(36px,5vw,64px)}
.stats>div{padding:26px 8px;text-align:center;border-left:1px solid var(--stone)}
.stats>div:first-child{border-left:0}
.stats .n{font-family:var(--serif);font-weight:300;font-size:clamp(38px,5vw,64px);line-height:1}
.stats .caption{margin-top:6px}
@media(max-width:760px){.about-grid{grid-template-columns:1fr}.about-photo{max-width:340px}}

/* upcoming */
.up-row{display:grid;grid-template-columns:170px 1fr auto;gap:clamp(16px,3vw,48px);align-items:baseline;padding:clamp(24px,3vw,40px) 0;border-top:1px solid var(--stone)}
.up-list>.up-row:last-child{border-bottom:1px solid var(--stone)}
.up-date{font-size:13px;text-transform:uppercase;color:var(--amber-ink);letter-spacing:-0.011em}
.up-name{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4.5vw,56px);line-height:.95;letter-spacing:-.015em;text-transform:uppercase}
.up-role{margin-top:10px;color:var(--onyx)}
.up-desc{max-width:560px;margin-top:4px;color:var(--espresso)}
.up-venue{font-size:12px;text-transform:uppercase;color:var(--espresso);letter-spacing:-0.012em;text-align:right}
.up-venue .apply{display:block;margin-top:8px;color:var(--amber-ink);border-bottom:1px solid transparent;transition:border-color .4s var(--ease)}
.up-empty{padding:clamp(24px,3vw,40px) 0;border-top:1px solid var(--stone);border-bottom:1px solid var(--stone);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:baseline}
.up-empty p{font-family:var(--serif);font-weight:300;font-size:clamp(24px,3vw,36px);text-transform:uppercase;letter-spacing:-.01em}
.up-empty .apply{font-size:12px;text-transform:uppercase;color:var(--amber-ink)}
[hidden]{display:none!important}
@media(max-width:760px){.up-row{grid-template-columns:1fr;gap:10px}.up-venue{text-align:left}}

/* highlights */
.hl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.5vw,36px) clamp(16px,2vw,28px)}
@media(max-width:1180px){.hl-grid{grid-template-columns:repeat(3,1fr)}}
.hl-card .ph{overflow:hidden;aspect-ratio:3/2;background:var(--linen);position:relative}
.hl-card img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:sepia(.15);transition:transform 1.2s var(--ease),filter .6s var(--ease)}
.ph.empty{display:flex;align-items:center;justify-content:center;color:var(--stone)}
.ph.empty svg{width:34%;max-width:96px;height:auto;opacity:.7}
.hl-card h3{font-family:var(--serif);font-weight:300;font-size:clamp(26px,2.4vw,34px);line-height:1;letter-spacing:-.015em;text-transform:uppercase;margin:16px 0 8px}
.hl-card .meta{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--stone);padding-top:10px;margin-top:12px}
.hl-card .meta .caption{color:var(--espresso)}
.hl-card p{color:var(--espresso);font-size:14px}
.hl-more{margin-top:clamp(28px,4vw,48px);text-align:center}
@media(max-width:980px){.hl-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.hl-grid{grid-template-columns:1fr}}

/* dark interlude */
.interlude{position:relative;color:var(--parchment);text-align:center;padding:clamp(110px,16vw,220px) 20px;overflow:hidden}
.interlude .bg{position:absolute;inset:0}
.interlude .bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.interlude .bg::after{content:"";position:absolute;inset:0;background:rgba(41,38,34,.62)}
.interlude p{position:relative;z-index:2;font-family:var(--serif);font-weight:300;font-size:clamp(30px,5vw,64px);line-height:1.05;letter-spacing:-.015em;text-transform:uppercase;max-width:900px;margin:0 auto}

/* index */
.idx-row{display:grid;grid-template-columns:72px 44px 1fr auto;gap:clamp(12px,2.5vw,40px);align-items:baseline;padding:clamp(14px,2vw,22px) 0;border-top:1px solid var(--stone);transition:background .4s var(--ease)}
.idx-row:last-child{border-bottom:1px solid var(--stone)}
.idx-num{font-size:12px;color:var(--espresso);letter-spacing:-0.012em}
.idx-name{font-family:var(--serif);font-weight:300;font-size:clamp(22px,3vw,38px);line-height:1;letter-spacing:-.015em;text-transform:uppercase}
.idx-meta{text-align:right}
.idx-meta .role{font-size:13px;color:var(--espresso)}
.idx-meta .caption{display:block;margin-top:2px;color:var(--espresso)}
@media(max-width:640px){.idx-row{grid-template-columns:44px 1fr}.idx-meta{grid-column:2;text-align:left;margin-top:2px}}
.idx-row[data-img]{cursor:pointer}
#lightbox{position:fixed;inset:0;z-index:60;background:rgba(41,38,34,.92);display:flex;align-items:center;justify-content:center;padding:20px}
#lightbox figure{max-width:min(900px,100%);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--parchment)}
#lightbox img{max-width:100%;max-height:78vh;max-height:78svh;width:auto;height:auto}
#lightbox figcaption{text-align:center}
#lightbox .lb-name{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(24px,5vw,36px);text-transform:uppercase;line-height:1}
#lightbox .lb-meta{color:var(--linen)}
.lb-close{position:absolute;top:14px;right:18px;background:transparent;border:1px solid var(--parchment);color:var(--parchment);width:44px;height:44px;font-size:28px;line-height:1;cursor:pointer}

/* membership */
.join{background:var(--onyx);color:var(--parchment);text-align:center}
.join .sec-head{margin-bottom:16px}
.join p{max-width:480px;margin:0 auto 30px;opacity:.85}
.mem-body{max-width:640px}
.mem-body p{margin-bottom:20px}
.mem-body .mail{font-family:var(--serif);font-weight:300;font-size:clamp(26px,4vw,44px);letter-spacing:-.01em;border-bottom:1px solid var(--saffron);padding-bottom:2px;word-break:break-word}

/* footer */
footer{background:var(--midnight);color:var(--parchment);padding:clamp(56px,8vw,100px) 0 40px}
footer .lockup{display:block;width:min(320px,60vw);height:auto;color:var(--parchment);margin-bottom:40px}
.foot-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;border-top:1px solid rgba(216,203,184,.25);padding-top:24px;font-size:12px;text-transform:uppercase;letter-spacing:-0.012em;color:rgba(216,203,184,.75)}

/* reveals (only hidden once JS is running; noscript shows everything) */
.js .rv{opacity:0;transform:translateY(12px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv,.hero-emblem path,.wordmark,.hero-tag,.hero-cta{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .marquee .track{animation:none}
  .hl-card img,.hl-card:hover img{transition:none;transform:none}
}

/* legal pages */
.legal{max-width:720px}
.legal h2{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,40px);line-height:1;text-transform:uppercase;letter-spacing:-.015em;margin:44px 0 14px}
.legal h2:first-child{margin-top:0}
.legal p{margin-bottom:12px;color:var(--onyx)}
.legal p.caption{margin-top:40px;color:var(--espresso)}
.foot-links{display:flex;gap:20px}
.foot-credit{margin-top:18px;font-size:12px;text-transform:uppercase;letter-spacing:-0.012em;color:rgba(216,203,184,.75);text-align:right}
@media(max-width:640px){.foot-credit{text-align:left}}

/* ---------- CORE TEAM ---------- */
.team-grid{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,72px)}
.team-card{display:flex;align-items:center;gap:clamp(16px,2.5vw,28px)}
.team-card .portrait{width:clamp(110px,14vw,160px);aspect-ratio:1;flex:none;overflow:hidden;background:var(--linen);border-radius:50%}
.team-card .portrait img{width:100%;height:100%;object-fit:cover;filter:sepia(.12)}
.team-card .ph.empty{width:100%;height:100%}
.team-card h3{font-family:var(--serif);font-weight:300;font-size:clamp(26px,2.6vw,36px);line-height:1;letter-spacing:-.015em;text-transform:uppercase}
.team-card .role{margin-top:8px;color:var(--espresso)}
.team-card .li{display:inline-flex;margin-top:12px;color:var(--espresso);transition:color .3s var(--ease)}
.team-card .li svg{width:22px;height:22px}

/* ---------- PARTNERS ---------- */
.partners-lead{max-width:720px}
.partners-lead .body-lg{font-size:clamp(21px,2.2vw,28px);line-height:1.25}
.partners-lead .more{margin:18px 0 28px;color:var(--espresso);font-size:16px;line-height:1.5}
.page-head.sentences h1{font-size:clamp(38px,6vw,84px);line-height:.98;text-wrap:balance}
.page-head.sentences h1 span{display:block}
.sub-head{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,44px);line-height:1;text-transform:uppercase;letter-spacing:-.015em;margin:clamp(40px,6vw,80px) 0 20px}
\.audience{list-style:none;max-width:760px;border-top:1px solid var(--stone)}
.audience li{display:grid;grid-template-columns:minmax(120px,210px) 1fr 56px;align-items:center;gap:clamp(12px,2vw,24px);padding:14px 0;border-bottom:1px solid var(--stone)}
.audience .lbl{font-size:13px;text-transform:uppercase;letter-spacing:-0.011em}
.audience .bar{display:block;height:8px;background:rgba(97,91,83,.18)}
.audience .bar i{display:block;height:100%;background:var(--saffron);transform-origin:left;transform:scaleX(0);transition:transform 1.1s var(--ease) .2s}
.js .audience.in .bar i{transform:none}
html:not(.js) .audience .bar i{transform:none}
.audience .val{font-family:var(--serif);font-weight:300;font-size:clamp(24px,2.6vw,32px);text-align:right;line-height:1}
@media(max-width:560px){.audience li{grid-template-columns:1fr 48px}.audience .bar{grid-column:1/-1;grid-row:2}}
@media(prefers-reduced-motion:reduce){.audience .bar i{transform:none!important;transition:none}}
.zedra p{max-width:560px;color:var(--espresso)}
.zedra .mail-link{color:var(--amber-ink);border-bottom:1px solid currentColor}
.zedra-logo{display:inline-block;margin:0 0 16px}
.zedra-big{width:min(230px,60vw);height:auto}
.cta-row{margin-top:clamp(40px,6vw,72px);display:flex;flex-direction:column;align-items:flex-start;gap:20px}
details.sponsor{width:100%;max-width:640px}
details.sponsor summary{list-style:none;display:inline-block}
details.sponsor summary::-webkit-details-marker{display:none}
details.sponsor[open] summary{background:var(--onyx);color:var(--parchment)}
.sponsor form,.apply-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}
.sponsor label,.apply-form label{display:block}
.sponsor label>span,.apply-form label>span{display:block;font-size:12px;text-transform:uppercase;color:var(--espresso);margin-bottom:6px}
.sponsor input,.sponsor textarea,.apply-form input,.apply-form textarea{width:100%;font:inherit;color:var(--onyx);background:rgba(255,255,255,.35);border:1px solid var(--stone);border-radius:0;padding:12px 14px}
.sponsor input:focus,.sponsor textarea:focus,.apply-form input:focus,.apply-form textarea:focus{outline:2px solid var(--saffron);outline-offset:1px}
.sponsor .wide,.apply-form .wide{grid-column:1/-1}
.sponsor .hp,.apply-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sponsor .consent,.apply-form .consent{margin-top:12px;font-size:13px;color:var(--espresso)}
.sponsor .consent a,.apply-form .consent a{border-bottom:1px solid currentColor}
.apply-form{max-width:640px;margin-top:8px}
.apply-form textarea{resize:vertical;min-height:120px}
#apply{scroll-margin-top:90px}
.form-errors{max-width:640px}
.form-error{display:none;margin:0 0 20px;padding:14px 16px;border:1px solid var(--espresso);font-size:15px}
.form-error:target{display:block}
.form-status{grid-column:1/-1;font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);line-height:1.2}
@media(max-width:600px){.sponsor form,.apply-form{grid-template-columns:1fr}}

/* draft badge */
.zedra-text{font-weight:500}
b.draft{color:var(--saffron);font-weight:500}

/* founders: hover / focus effect */
.team-card .portrait{position:relative;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.team-card .portrait img{transition:transform 1s var(--ease),filter .6s var(--ease)}
.team-card h3{transition:color .4s var(--ease)}
.team-card .li{transition:color .3s var(--ease),transform .4s var(--ease)}
@media(prefers-reduced-motion:reduce){.team-card .portrait,.team-card .portrait img,.team-card .li{transition:none}.team-card:hover .portrait,.team-card:hover .portrait img,.team-card:hover .li{transform:none}}

.mem-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}

/* partners: phone polish */
.partners-lead .body-lg{font-family:var(--serif);font-weight:400;font-size:clamp(23px,2.2vw,28px);line-height:1.2;letter-spacing:-.006em}
@media(max-width:600px){
  .page-head.sentences{padding:104px 0 36px}
  .page-head.sentences h1{font-size:clamp(36px,11.5vw,52px)}
  .partners-lead .more{font-size:15px;margin:14px 0 22px}
  .partners-lead .btn,details.sponsor summary{display:block;text-align:center;padding:16px 12px}
  .partners-lead+.stats,.stats{margin-top:32px}
  .sub-head{margin-top:44px;font-size:clamp(28px,8vw,36px)}
  .audience li{padding:11px 0;gap:8px 12px}
  .audience .val{font-size:24px}
  .zedra-big{width:190px}
  .zedra p{font-size:15px}
  .cta-row{margin-top:36px}
}

/* partners: light hero (replaces the dark banner) */
.p-hero{padding:clamp(112px,11vw,150px) 0 clamp(36px,5vw,64px)}
.p-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,6vw,96px);align-items:end}
.p-eyebrow{display:block;color:var(--amber-ink);margin-bottom:18px}
.p-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(40px,6vw,92px);line-height:.92;letter-spacing:-.02em;text-transform:uppercase}
.p-hero h1 span{display:block}
.p-hero .partners-lead{max-width:none;padding-bottom:6px}
.p-hero .stats{margin-top:clamp(40px,6vw,72px)}
section.tight{padding-top:clamp(8px,2vw,24px)}
section.tight .sub-head:first-child{margin-top:clamp(24px,3vw,40px)}
@media(max-width:860px){.p-hero-grid{grid-template-columns:1fr;gap:26px}}
@media(max-width:600px){.p-hero{padding:100px 0 28px}.p-hero h1{font-size:clamp(38px,12vw,56px)}}

/* hero legibility (text over the light parts of the photo) */
.hero-tag,.wordmark{text-shadow:0 1px 14px rgba(41,38,34,.55)}
@media(max-width:760px){
  .hero .bg::after{background:linear-gradient(180deg,rgba(41,38,34,.6) 0%,rgba(41,38,34,.5) 30%,rgba(41,38,34,.82) 55%,rgba(41,38,34,.92) 100%)}
  .hero-tag{font-size:15px;color:#f0e6d6}
}

/* quiet one-line notes (club rule, membership recommendation) */
.club-note{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(18px,1.7vw,21px);line-height:1.3;color:var(--espresso);max-width:560px;margin-top:18px}

/* ---------- hover effects: mouse/trackpad only, so touch never keeps a stuck hover ---------- */
@media (hover:hover) and (pointer:fine){
  nav.top .links a:hover::after{width:100%}
  .btn:hover{background:var(--parchment);color:var(--midnight)}
  .btn.primary:hover{background:#ece1cf;border-color:#ece1cf;color:var(--midnight)}
  .btn.dark:hover{background:var(--onyx);color:var(--parchment)}
  .up-venue .apply:hover{border-color:currentColor}
  .hl-card:hover img{transform:scale(1.045);filter:sepia(0)}
  .idx-row:hover{background:rgba(191,180,163,.35)}
  .foot-grid a:hover,.foot-credit a:hover{color:var(--saffron)}
  .team-card .li:hover{color:var(--amber-ink)}
  .team-card:hover .portrait,.team-card:focus-within .portrait{transform:translateY(-4px);box-shadow:0 0 0 3px var(--parchment),0 0 0 4px var(--saffron),0 16px 36px rgba(41,38,34,.28)}
  .team-card:hover .portrait img,.team-card:focus-within .portrait img{transform:scale(1.08);filter:sepia(.35) saturate(1.1)}
  .team-card:hover h3{color:var(--amber-ink)}
  .team-card:hover .li{transform:translateX(4px)}
}
@media(prefers-reduced-motion:reduce){.hl-card:hover img,.team-card:hover .portrait,.team-card:focus-within .portrait,.team-card:hover .portrait img,.team-card:focus-within .portrait img,.team-card:hover .li{transform:none!important}}

/* ---------- feedback round 1 ---------- */
/* hero buttons: identical size and style */
.hero-cta .btn{display:flex;align-items:center;justify-content:center;width:272px;max-width:100%;min-height:54px;padding:14px 20px;text-align:center;line-height:1.2}
/* keep the emblem/wordmark clear of the fixed header on every phone */
.hero-inner{padding-top:104px}
/* index thumbnails (desktop/tablet) */
.idx-row{align-items:center}
.idx-thumb{display:block;width:72px;height:48px;background:var(--linen);overflow:hidden}
.idx-thumb img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:sepia(.15)}
@media(max-width:640px){.idx-thumb{display:none}.idx-row{align-items:baseline}}

/* past events: align names, roles and meta lines across each row of cards */
.hl-card{display:flex;flex-direction:column}
.hl-card p{margin-bottom:12px}
.hl-card .meta{margin-top:auto}
@media(min-width:601px){.hl-card h3{min-height:2em}}

/* membership: light two-column hero; the form sits next to the text (below the intro on phones) */
.m-hero{padding:clamp(104px,10vw,140px) 0 clamp(56px,7vw,96px)}
.m-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-areas:"head form" "more form";grid-template-rows:auto 1fr;column-gap:clamp(32px,6vw,96px);align-items:start}
.m-head{grid-area:head}
.m-more{grid-area:more}
.m-form{grid-area:form}
.m-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(38px,5.2vw,76px);line-height:.95;letter-spacing:-.02em;text-transform:uppercase;margin-bottom:clamp(18px,2.4vw,28px)}
.m-hero .mem-body{max-width:none}
.m-hero .body-lg{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2.1vw,27px);line-height:1.25;letter-spacing:-.006em}
.m-form .sub-head{margin-top:0;font-size:clamp(26px,2.8vw,36px)}
.m-form .apply-form{max-width:none;margin-top:0}
.m-form .form-errors{max-width:none}
@media(max-width:860px){.m-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "form" "more";row-gap:8px}.m-form{margin-top:12px}.m-more{margin-top:36px}}
@media(max-width:600px){.m-hero{padding:100px 0 48px}.m-hero h1{font-size:clamp(34px,11vw,48px)}}

.m-more{align-self:start}
.m-form .apply-form{gap:14px}
.m-form .apply-form textarea{min-height:92px;height:92px}
.m-form .apply-form input{padding:10px 12px}
@media(max-width:860px){.m-grid{grid-template-rows:auto}.m-form .apply-form textarea{min-height:120px;height:auto}}
