/* ===== Design-Packs/partnersswingersclub.com/sections/_base.css (unchanged) ===== */
/* partnersswingersclub.com shared base. Every rule here is copied byte for byte from the source index.html, in source order. Load this first, then the section file(s). Paste inline or fix the art/ paths: url(art/...) resolves against the stylesheet if linked as a file. */
:root{
  --night:#0d0618; --night-2:#170a2b; --plum:#22103d; --violet:#9747ff; --violet-2:#c49bff; --violet-3:#5a18c9; --pink:#ffc4d6; --pink-2:#ff9dbb;
  --fg:#fbf8ff; --mist:#c4bad6; --line:rgba(196,155,255,.28); --glass:rgba(23,10,43,.76);
  --display:"Sora","Helvetica Neue",Arial,sans-serif; --body:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif; --title:var(--display);
  --gold:var(--pink); --marble:var(--pink); --ink:#190a2e; --ink-2:#4b3a60; --bronze:#8d7aa3; --sheet:linear-gradient(180deg,#351266,#190b2e 36%,#0d0618);
  --dock:62px; --max:1320px; --r:22px; color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--night);color:var(--fg);font:400 1.0625rem/1.55 var(--body);padding-bottom:calc(var(--dock) + 22px + env(safe-area-inset-bottom,0px));overflow-x:hidden}
[hidden]{display:none!important}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
button,input{font:inherit;color:inherit}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--pink);outline-offset:3px;border-radius:4px}
svg.i{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:clamp(18px,4vw,48px)}
.logo{font:600 1.375rem/1 var(--display);letter-spacing:-.02em;text-decoration:none;display:flex;align-items:baseline;gap:.4em}
.dot{width:9px;height:9px;border-radius:50%;background:var(--pink);box-shadow:0 0 12px var(--pink);flex:none}
.eyebrow{font:600 .8125rem/1.2 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--violet-2);margin-bottom:14px}
h2{font:600 clamp(2.5rem,9.4vw,5.5rem)/1.02 var(--display);letter-spacing:-.035em}
h2 em{font-style:normal;color:var(--pink)}
h3{font:600 1.5rem/1.15 var(--display);letter-spacing:-.02em}
.lead{color:var(--mist);font-size:1.1875rem;max-width:56ch;margin-top:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:54px;padding:12px 26px;border-radius:999px;border:0;background:var(--pink);color:var(--ink);font:700 1.0625rem/1.15 var(--body);text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 40px rgba(255,196,214,.35)}
.btn.ghost{background:transparent;color:var(--fg);border:1.5px solid rgba(196,155,255,.6)}
.btn.ghost:hover{background:rgba(196,155,255,.14);box-shadow:none}
.row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.band{padding:clamp(68px,10vw,136px) 0;position:relative}
html.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}
html.js .reveal.in{opacity:1;transform:none}
.art{position:relative;overflow:hidden;background:#150a26}
.art img{width:100%;height:100%;object-fit:cover}
.neon{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;fill:none;stroke:var(--violet);stroke-width:.34;filter:drop-shadow(0 0 3px var(--violet)) drop-shadow(0 0 12px var(--violet))}
html.js .neon path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s ease}
html.js .in>.neon path,html.js .in .neon path{stroke-dashoffset:0}
.wm{position:relative;z-index:4;padding-top:18px;font:600 clamp(3.75rem,19.4vw,10.5rem)/.94 var(--display);letter-spacing:-.05em}
.wm span{display:block;font-size:.455em;line-height:1.08;letter-spacing:-.04em;color:var(--pink);font-weight:500}
.ph{position:relative;z-index:2;width:100vw;margin-left:calc(50% - 50vw);margin-top:-22vw;aspect-ratio:2/3;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16%,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 16%,#000 78%,transparent 100%)}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 24%}
html.js .ph .ph-img{filter:brightness(.68) saturate(.9)}
.ph .ph-lit{display:none}
html.js .ph .ph-lit{display:block;-webkit-mask-image:radial-gradient(circle var(--lr,260px) at var(--mx,50%) var(--my,36%),#000 0,rgba(0,0,0,.8) 45%,transparent 100%);mask-image:radial-gradient(circle var(--lr,260px) at var(--mx,50%) var(--my,36%),#000 0,rgba(0,0,0,.8) 45%,transparent 100%);filter:brightness(1.06) saturate(1.04)}
.touch-hint{position:absolute;z-index:4;left:50%;transform:translateX(-50%);bottom:30%;white-space:nowrap;font-size:.8125rem;color:var(--fg);background:rgba(13,6,24,.62);padding:5px 11px;border-radius:999px;pointer-events:none;transition:opacity .4s}
.tick{display:flex;gap:10px;align-items:flex-start;font-weight:500!important;font-size:.875rem!important;min-height:44px}
.tick input{width:22px;height:22px;flex:none;accent-color:var(--violet-3)}
.form-status{font-weight:600;margin-top:10px;color:var(--violet-3)}
.note{color:var(--mist);font-size:.9375rem;margin-top:14px}
.arc{position:absolute;right:-1px;top:-1px;width:120px;height:120px;stroke:var(--violet);fill:none;stroke-width:1.4;filter:drop-shadow(0 0 6px var(--violet))}
.prac{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.prac li{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.9375rem;font-weight:500}
.prac svg.i{color:var(--pink)}
.find-grid .art{border-radius:var(--r);aspect-ratio:1}
.kage .art img{object-position:50% 18%}
html.menu-open{overflow:hidden}
.form-note a,.m-note a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}
.email-form-wrap{min-width:0}
.email-help{font-size:.875rem;line-height:1.5;color:var(--ink-2)}
.email-status:not([hidden]){display:block;margin-top:12px}
.email-status strong{display:block;font:400 1.75rem/1.1 var(--title);margin-bottom:6px;text-transform:uppercase}
.email-submit:disabled{cursor:wait;opacity:.7}
@media (min-width:700px){
.ph{width:min(100vw,720px);margin-inline:auto;margin-top:-90px}
}
@media (min-width:1000px){
body{padding-bottom:0}
.wm{padding-top:0;font-size:clamp(5rem,9vw,10.5rem)}
.ph{position:absolute;right:0;top:0;bottom:0;width:50vw;max-width:none;height:auto;aspect-ratio:auto;margin:0;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16%),linear-gradient(180deg,#000 0,#000 88%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 16%),linear-gradient(180deg,#000 0,#000 88%,transparent 100%);mask-composite:intersect}
.ph img{object-position:50% 16%}
.touch-hint{bottom:7%}
.ball img{object-position:50% 12%}
}
@media (min-width:1700px){
:root{--max:1600px}
.wm{font-size:clamp(10.5rem,9vw,15rem)}
}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
html.js .neon path{stroke-dashoffset:0;transition:none}
html.js .reveal{opacity:1;transform:none;transition:none}
}
.form-status{scroll-margin-block:110px}
.form-status:focus{outline:none}
.form-status strong{display:block;font:600 1.5rem/1.15 var(--display);letter-spacing:-.02em;margin-bottom:6px}
.art video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
html:not(.js) .art video{display:none}
html.js [data-lit] .art video,html.js .art[data-lit] video{filter:brightness(.5) saturate(.75);transition:filter 1.4s ease}
html.js [data-lit].in .art video,html.js .art[data-lit].in video{filter:none}
.vip .art video,.ball video,.first-grid .art video,.kage .art video,.faces .art video{object-position:50% 0}
@media (max-width:699px){
.band{padding-block:34px}
.band[style*="padding-top:0"]{padding-top:34px!important}
}
section.partners-section.partners-plan{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:clamp(44px,7vw,92px) 0}
@media (min-width:700px) and (max-width:1045px){
.partners-grid--four:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
}
.partners-rich--two>:last-child:nth-child(odd){grid-column:1/-1}
@media (min-width:1000px){
.partners-rich--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.partners-grid:not(.partners-grid--two):not(.partners-grid--four):has(>:nth-child(3n):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:900px){
.partners-split>.partners-card:last-child{position:sticky;top:96px}
}
.partners-grid+.partners-callout,.partners-rich--two+.partners-callout{margin-top:14px}
.partners-callout+.partners-form-panel{margin-top:clamp(28px,4vw,44px)}
@media (min-width:700px){
.band{padding-block:clamp(40px,5vw,56px)}
.band[style*="padding-top:0"]{padding-top:clamp(40px,5vw,56px)!important}
.partners-section,section.partners-section.partners-plan{padding-block:clamp(40px,5vw,56px)}
}
@media (max-width:699px){
.partners-section,section.partners-section.partners-plan{padding-block:34px}
}
.glb{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(10,4,20,.94);color:#fff;color-scheme:dark}
.glb::backdrop{background:rgba(10,4,20,.94)}
.glb[open]{display:grid;place-items:center}
.glb-fig{margin:0;display:grid;justify-items:center;gap:10px;padding:64px 16px 24px;max-width:100vw}
.glb-img{display:block;max-width:min(100vw - 32px,1200px);max-height:calc(100dvh - 120px);width:auto;height:auto;object-fit:contain;border-radius:12px}
.glb-count{font-size:.875rem;color:rgba(255,255,255,.8)}
.glb-btn{position:fixed;display:grid;place-items:center;width:48px;height:48px;border-radius:999px;border:1.5px solid rgba(255,255,255,.5);background:rgba(25,10,46,.7);color:#fff;font-size:1.75rem;line-height:1;cursor:pointer}
.glb-btn:focus-visible{outline:3px solid var(--pink,#f9b8d6);outline-offset:2px}
.glb-close{top:12px;right:12px}
.glb-prev{left:12px;top:50%;transform:translateY(-50%)}
.glb-next{right:12px;top:50%;transform:translateY(-50%)}
.glb-btn[hidden]{display:none}

/* ===== Design-Packs/partnersswingersclub.com/sections/01-header.css (unchanged) ===== */
/* partnersswingersclub.com section 01-header. Rules used by this section only, copied byte for byte from the source index.html, in source order. Load after _base.css. */
.logo small{font:500 .8125rem/1 var(--display);letter-spacing:0;color:var(--pink)}
.top{position:absolute;left:0;right:0;z-index:6;display:none}
.top .wrap{display:flex;align-items:center;min-height:72px}
.nav{display:flex;gap:22px;margin-left:30px;font-weight:600;font-size:.9375rem}
.nav a{text-decoration:none;min-height:44px;display:flex;align-items:center}
.nav a:hover{color:var(--pink)}
.top-tel{margin-left:auto;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:8px;min-height:44px}
@media (min-width:1000px){
.top{display:block;top:30px}
.top-tel{text-shadow:0 1px 8px rgba(13,6,24,.9)}
}
.top{position:sticky;top:calc(env(safe-area-inset-top,0px) + 8px);left:auto;right:auto;z-index:20;height:0;display:block}
.top .wrap{display:flex;align-items:center;gap:12px;height:56px;min-height:0;width:min(var(--max),calc(100% - 20px));max-width:none;margin-inline:auto;padding:0 8px 0 18px;background:rgba(13,6,24,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:999px}
.top .nav{display:none}
.top-tel{font-size:0;gap:0;width:44px;justify-content:center;color:var(--pink)}
.top-tel svg.i{width:22px;height:22px}
html.js:not(.bar-on) body:not(.inner) .top{visibility:hidden;opacity:0}
.top{transition:opacity .25s}
@media (min-width:1000px){
.top .wrap{padding:0 18px}
.top .nav{display:flex}
.top-tel{font-size:.9375rem;gap:8px;width:auto;color:inherit}
.top-tel svg.i{width:1.25em;height:1.25em}
html.js:not(.bar-on) body:not(.inner) .top{visibility:visible;opacity:1}
}
html.js:not(.bar-on) body:not(.inner) .top{visibility:visible;opacity:1}

/* ===== Design-Packs/partnersswingersclub.com/sections/02-hero.css (unchanged) ===== */
/* partnersswingersclub.com section 02-hero. Rules used by this section only, copied byte for byte from the source index.html, in source order. Load after _base.css. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hero{position:relative;overflow:hidden;background:radial-gradient(70% 50% at 72% 22%,rgba(151,71,255,.32),transparent 72%),var(--night)}
.hero-grid{position:relative;display:grid}
.intro{position:relative;z-index:4;margin-top:-108px}
.social{font:600 .9375rem/1.3 var(--display);color:var(--pink)}
.intro h1{font:600 clamp(2.125rem,8.6vw,3.5rem)/1.08 var(--display);letter-spacing:-.03em;margin-top:10px}
.intro p.d{color:var(--mist);margin-top:12px;font-size:1.125rem;max-width:54ch}
.status{position:relative;z-index:4;margin-top:20px;border:1px solid var(--line);background:var(--glass);border-radius:var(--r);padding:18px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.st-head{display:flex;gap:10px;align-items:center;font:600 1.3125rem/1.15 var(--display);letter-spacing:-.02em}
.st-sub{color:var(--mist);margin-top:8px;font-size:.9688rem}
.st-night{margin-top:8px;font-weight:600;color:var(--pink);font-size:.9688rem}
.st-foot{font-size:.8125rem;color:var(--mist);margin-top:12px}
.stats{position:relative;z-index:5;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border-block:1px solid var(--line);margin-top:30px}
.stats li{background:var(--night);padding:16px 14px;text-align:center}
.stats b{display:block;font:600 1.5625rem/1.1 var(--display);letter-spacing:-.03em}
.stats span{font-size:.8125rem;color:var(--mist)}
@media (min-width:700px){
.intro{margin-top:-130px}
.stats{grid-template-columns:repeat(4,1fr)}
}
@media (min-width:1000px){
.hero{min-height:calc(100svh - 30px);display:flex;flex-direction:column;justify-content:flex-end;padding-top:84px}
.hero-grid{position:static;width:100%;margin-block:auto}
.wm,.intro,.status{max-width:min(50vw,760px)}
.intro{margin-top:26px}
}
@media (min-width:1700px){
.intro h1{font-size:4.75rem}
.intro p.d{font-size:1.375rem}
.status{padding:24px}
}
.hero{isolation:isolate;background:#0d0618}
#wall{position:absolute;inset:0;width:100%;height:100%;z-index:-2;display:block;touch-action:pan-y}
html:not(.js) #wall{display:none}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:70px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(13,6,24,0),var(--night))}
.hero-grid{padding-top:calc(env(safe-area-inset-top,0px) + 76px)}
.wm-slot{position:relative;z-index:1;width:100%;aspect-ratio:60/14;display:grid;place-items:center}
.wm-fallback{display:none;text-align:center;font:600 clamp(3.25rem,17vw,8rem)/.94 var(--display);letter-spacing:-.05em}
.wm-fallback span{display:block;font-size:.455em;line-height:1.08;letter-spacing:-.04em;color:var(--pink);font-weight:500}
.no-gl .wm-fallback,html:not(.js) .wm-fallback{display:block}
.no-gl .wm-slot,html:not(.js) .wm-slot{aspect-ratio:auto}
.st-slot{position:relative;width:min(88%,540px);aspect-ratio:853/1280;margin:-24% auto 0}
.st-img{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.no-gl .st-img,html:not(.js) .st-img{display:block}
.no-gl .st-slot,html:not(.js) .st-slot{margin-top:12px}
.intro{margin-top:-6px}
.intro h1,.intro p{text-shadow:0 2px 18px rgba(13,6,24,.95),0 0 4px rgba(13,6,24,.6)}
@media (min-width:700px){
.st-slot{margin-top:-14%}
.wm-slot{width:min(100%,720px);margin-inline:auto}
.intro{margin-top:0}
}
@media (min-width:1000px){
.hero-grid{padding-top:0}
.wm-slot{width:auto;max-width:min(50vw,760px);margin-inline:0}
.st-slot{position:absolute;margin:0;right:max(2vw,calc(50vw - 700px));top:64px;bottom:96px;height:auto;width:auto;max-width:48vw}
.no-gl .st-slot,html:not(.js) .st-slot{margin:0}
.intro{margin-top:22px}
}

/* ===== Design-Packs/partnersswingersclub.com/sections/03-vip.css (unchanged) ===== */
/* partnersswingersclub.com section 03-vip. Rules used by this section only, copied byte for byte from the source index.html, in source order. Load after _base.css. */
.vip{position:relative;background:var(--pink);color:var(--ink);padding:clamp(36px,7vw,88px) 0;color-scheme:light}
.vip-grid{display:grid;gap:24px;align-items:center}
.vip .art{position:relative;border-radius:var(--r);aspect-ratio:4/5;box-shadow:0 24px 70px rgba(90,24,201,.4)}
.vip .eyebrow{color:var(--violet-3)}
.vip h2{color:var(--ink);font-size:clamp(2.75rem,10vw,5.75rem)}
.vip h2 em{color:var(--violet-3)}
.perks{display:grid;gap:8px;margin-top:18px}
.perks li{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:1.0938rem}
.perks svg.i{color:var(--violet-3);margin-top:3px}
.vip .btn{background:var(--ink);color:#fff;width:100%;min-height:60px;font-size:1.125rem;margin-top:20px}
.vip .btn:hover{box-shadow:0 10px 40px rgba(25,10,46,.4)}
.small{font-size:.875rem;color:var(--ink-2);margin-top:10px}
.mail{margin-top:22px;padding-top:20px;border-top:1.5px solid rgba(25,10,46,.2)}
.mail form{display:grid;gap:10px;margin-top:10px}
.mail label{font-size:.9375rem;font-weight:600}
.mail input[type=email]{width:100%;height:52px;border:1.5px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);padding:0 14px;font-size:1rem}
.mail .btn{background:transparent;color:var(--ink);border:1.5px solid var(--ink);margin-top:0;min-height:54px}
@media (min-width:700px){
.vip-grid{grid-template-columns:.8fr 1.2fr;gap:36px}
}
@media (min-width:1000px){
.vip-grid{grid-template-columns:.55fr 1fr .8fr;gap:44px}
.mail{margin-top:0;padding-top:0;padding-left:44px;border-top:0;border-left:1.5px solid rgba(25,10,46,.2)}
}
.vip-wa .btn{margin-top:20px}
@media (max-width:699px){
.vip-grid{gap:0}
.vip-grid>.art{margin-bottom:24px}
.vip-wa .btn{margin-top:24px}
}
@media (min-width:700px) and (max-width:999px){
.vip-grid{row-gap:0}
.vip-grid>.art{grid-column:1;grid-row:1/span 2}
.vip-copy{grid-column:2;grid-row:1;align-self:end}
.vip-wa{grid-column:2;grid-row:2;align-self:start}
.vip-grid>.mail{grid-column:1;grid-row:3;margin-top:58px}
}
@media (min-width:1000px){
.vip-grid>.art{grid-column:1;grid-row:1/span 2}
.vip-copy{grid-column:2;grid-row:1;align-self:end}
.vip-wa{grid-column:2;grid-row:2;align-self:start}
.vip-grid{row-gap:0}
.vip-grid>.mail{grid-column:3;grid-row:1/span 2;align-self:center}
}
@media (min-width:700px) and (max-width:999px){
.vip h2{font-size:clamp(2.75rem,6.4vw,4rem)}
.vip-grid>.mail{grid-column:1/-1;margin-top:36px;display:grid;grid-template-columns:.8fr 1.2fr;grid-template-rows:auto auto 1fr;column-gap:36px;align-items:start}
.vip-grid>.mail>h3,.vip-grid>.mail>.small{grid-column:1}
.vip-grid>.mail>form,.vip-grid>.mail>.form-status{grid-column:2}
.vip-grid>.mail>form{grid-row:1/span 3;margin-top:0}
}
@media (min-width:1000px) and (max-width:1318px){
.vip h2{font-size:clamp(2.75rem,6.6vw,5.75rem)}
}
@media (min-width:700px) and (max-width:999px){
.vip-grid>.art{grid-row:1}
.vip-copy{grid-row:1;align-self:center}
.vip-grid>.mail{grid-row:2}
.vip-wa{grid-column:1/-1;grid-row:3;margin-top:28px;padding-top:24px;border-top:1.5px solid rgba(25,10,46,.2);display:grid;grid-template-columns:auto 1fr;column-gap:28px;align-items:center}
.vip-wa .btn{margin-top:0;width:auto;padding-inline:28px}
.vip-wa .small{margin:0}
}
@media (min-width:1000px){
.vip-copy{grid-row:1;align-self:center}
.vip-grid>.mail{grid-row:1;align-self:center}
.vip-grid>.art{grid-row:1/span 2;align-self:center}
.vip-wa{grid-column:2/-1;grid-row:2;margin-top:32px;padding-top:24px;border-top:1.5px solid rgba(25,10,46,.2);display:grid;grid-template-columns:auto 1fr;column-gap:28px;align-items:center}
.vip-wa .btn{margin-top:0;width:auto;padding-inline:32px}
.vip-wa .small{margin:0}
}

/* ===== Design-Packs/partnersswingersclub.com/sections/13-venues.css (unchanged) ===== */
/* partnersswingersclub.com section 13-venues. Rules used by this section only, copied byte for byte from the source index.html, in source order. Load after _base.css. */
.venues{display:grid;gap:10px;margin-top:26px}
.venues a{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:16px;padding:16px;text-decoration:none;transition:background .2s,border-color .2s}
.venues a:hover{background:rgba(196,155,255,.1);border-color:var(--pink)}
.venues b{display:block;font:600 1.25rem/1.15 var(--display);letter-spacing:-.02em}
.venues span{color:var(--mist);font-size:.9375rem}
.venues svg.i{margin-left:auto}
@media (min-width:700px){
.venues{grid-template-columns:1fr 1fr}
}
@media (min-width:1000px){
.venues{grid-template-columns:repeat(4,1fr)}
}

/* ===== Design-Packs/partnersswingersclub.com/sections/14-footer.css (unchanged) ===== */
/* partnersswingersclub.com section 14-footer. Rules used by this section only, copied byte for byte from the source index.html, in source order. Load after _base.css. */
footer{border-top:1px solid var(--line);padding:38px 0 30px;color:var(--mist);font-size:.9375rem}
footer .logo{font-size:2.25rem;margin-bottom:12px;color:var(--fg)}
footer a{min-height:44px;display:inline-flex;align-items:center}
.f-links{display:flex;flex-wrap:wrap;gap:0 18px;margin-top:10px}

/* ===== Design-Packs/partnersswingersclub.com/sections/16-dock.css (unchanged) ===== */
/* partnersswingersclub.com section 16-dock. Rules used by this section only, copied byte for byte from the source index.html, in source order. Load after _base.css. */
.dock{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:20;display:flex;background:rgba(13,6,24,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.dock a,.dock button{flex:1 1 0;min-width:0;height:var(--dock);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:0;text-decoration:none;font:600 .75rem/1 var(--body);cursor:pointer}
.dock a:first-child{color:var(--pink)}
.dock svg.i{width:22px;height:22px}
.dock button{padding:0}
#up.is-down svg{transform:rotate(180deg)}
@media (min-width:1000px){
.dock{display:none}
}

/* ===== Design-Packs/partnersswingersclub.com/sections/17-to-top.css (unchanged) ===== */
/* partnersswingersclub.com section 17-to-top. Rules used by this section only, copied byte for byte from the source index.html, in source order. Load after _base.css. */
.to-top{display:none}
@media (min-width:1000px){
.to-top{display:grid;place-items:center;position:fixed;right:22px;bottom:22px;width:52px;height:52px;background:rgba(13,6,24,.92);border:1px solid var(--line);color:var(--pink);border-radius:50%;z-index:20}
.to-top:hover{border-color:var(--pink)}
.to-top[hidden]{display:none}
}

/* ===== Design-Packs/partnersswingersclub.com/sections/18-menu.css (unchanged) ===== */
/* partnersswingersclub.com section 18-menu. Rules used by this section only, copied byte for byte from the source index.html, in source order. Load after _base.css. */
dialog{position:fixed;inset:0;border:0;padding:0;margin:0;width:100%;max-width:none;height:100%;max-height:none;background:transparent;color:var(--fg);overflow:hidden}
dialog::backdrop{background:rgba(5,4,10,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sheet{position:absolute;inset:calc(env(safe-area-inset-top,0px) + 10px) 0 0;max-width:560px;margin-inline:auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--sheet);border-radius:26px 26px 0 0;box-shadow:0 -10px 50px rgba(0,0,0,.5);padding:8px 16px calc(env(safe-area-inset-bottom,0px) + 28px);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Hanken Grotesk","Helvetica Neue",Arial,sans-serif;outline:0;transition:transform .28s cubic-bezier(.32,.72,0,1)}
dialog[open] .sheet{animation:sheetIn .42s cubic-bezier(.32,.72,0,1)}
dialog.closing .sheet{transform:translateY(100%)!important;transition:transform .25s cubic-bezier(.4,0,1,1)}
dialog.closing::backdrop{opacity:0;transition:opacity .25s}
@keyframes sheetIn{from{transform:translateY(100%)}to{transform:none}}
.grab{width:38px;height:5px;border-radius:3px;background:rgba(255,255,255,.28);margin:2px auto 12px}
.sheet-head{display:flex;align-items:center;justify-content:space-between;padding-inline:4px}
.sheet .logo{font-size:2.125rem;letter-spacing:-.015em}
.m-sub{font-size:.8125rem;color:var(--mist);margin-top:3px}
.m-close{position:relative;width:32px;height:32px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.14);color:var(--fg);display:grid;place-items:center;cursor:pointer}
.m-close::after{content:"";position:absolute;inset:-8px}
.m-close svg.i{width:16px;height:16px;stroke-width:2.6}
.m-status{display:flex;gap:8px;align-items:center;font-size:.9375rem;font-weight:600;margin-top:12px;padding-inline:4px}
.m-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.m-actions a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;border-radius:14px;background:rgba(255,255,255,.09);font-size:.75rem;font-weight:600;color:#fff;text-decoration:none;transition:background .15s}
.m-actions svg.i{width:23px;height:23px;color:var(--gold)}
.m-actions a:active,.m-list a:active{background:rgba(255,255,255,.14)}
.m-list{margin-top:14px;border-radius:14px;background:rgba(255,255,255,.085);overflow:hidden}
.m-list li{position:relative}
.m-list li+li::before{content:"";position:absolute;left:53px;right:0;top:0;height:1px;background:rgba(255,255,255,.12)}
.m-list-2 li+li::before{left:14px}
.m-list a{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 12px;text-decoration:none;font-size:1.0625rem;letter-spacing:-.01em;transition:background .15s}
.sq{width:29px;height:29px;border-radius:7px;display:grid;place-items:center;color:#fff;flex:none}
.sq svg.i{width:18px;height:18px;stroke-width:2.1}
.s-red{background:linear-gradient(180deg,#b5352a,#7a1712)}
.s-gold{background:linear-gradient(180deg,#f4d27f,#c9952f);color:#2b1d03}
.s-bronze{background:linear-gradient(180deg,#ab8138,#8a6222)}
.s-pink{background:linear-gradient(180deg,#f78fc9,#d6448c)}
.s-indigo{background:linear-gradient(180deg,#8088ff,#4a4ed6)}
.s-green{background:linear-gradient(180deg,#52dc6c,#21a547)}
.s-coral{background:linear-gradient(180deg,#ff8f70,#e55a39)}
.s-slate{background:linear-gradient(180deg,#a8998a,#6d5f52)}
svg.i.chev{margin-left:auto;width:14px;height:14px;color:rgba(255,255,255,.34);stroke-width:2.8}
.m-vip{margin-top:16px;border-radius:18px;padding:18px 16px;background:var(--marble);color:var(--ink);color-scheme:light}
.m-vip h2{font:400 1.875rem/1.05 var(--title);text-transform:uppercase}
.m-vip>p{color:var(--ink-2);font-size:.9375rem;margin-top:6px}
.m-vip form{margin-top:12px;gap:10px}
.m-vip label[for="em2"]{font-size:.9375rem;font-weight:600}
#em2{width:100%;height:48px;border:1px solid var(--bronze);border-radius:12px;background:#fff;color:var(--ink);padding:0 14px;font-size:1rem}
.m-join{width:100%;min-height:50px;border-radius:14px;background:var(--ink);color:#fff;font-size:1.0625rem;font-weight:600}
.m-note{color:var(--ink-2);font-size:.8125rem}
.m-cap{margin:20px 14px -6px;font-size:.8125rem;font-weight:400;color:var(--mist)}
.m-2 b{display:block;font-weight:500}
.m-2 small{display:block;font-size:.8125rem;color:var(--mist);letter-spacing:0;margin-top:1px}
@media (prefers-reduced-motion:reduce){
dialog[open] .sheet{animation:none}
.sheet{transition:none}
}
.sheet .logo{font:600 2rem/1 var(--display);letter-spacing:-.03em}
.m-vip h2{font:600 1.5rem/1.1 var(--display);letter-spacing:-.03em;text-transform:none}
.m-vip .m-join{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;margin-top:12px}
.m-mail{margin-top:16px;padding-top:14px;border-top:1px solid rgba(25,10,46,.22)}
.m-mail h3{font:600 1.125rem/1.2 var(--display);letter-spacing:-.02em;color:var(--ink)}
.m-mail form{display:grid}
.m-mail .tick{color:var(--ink)}
.m-mail .tick input{accent-color:var(--violet-3)}
.m-mail .m-join{margin-top:0;background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.m-mail+.m-join{margin-top:16px}

/* ===== Biphoria r1 layer (src/biphoria.css) ===== */
/* Biphoria r1 layer, loaded after the Partners pack CSS (copied unchanged above this file in assets/site.css).
   Palette and type are Biphoria's own, read from the R6 source CSS and the Website Bible design facts (section 4):
   near-black #0a0a0a, white #ffffff, mist #f4f4f4, panel #202023, greys #b9b9bd / #48484b / #5f5f5f; purple only as the
   accent the source already uses (eyebrow and Back to Top #7040aa, the brand orb gradient, the colour hero picture).
   Fonts: the source's self-hosted Anton for headings and wordmark, the source's Arial body stack. No web-font request. */
@font-face{font-family:Anton;src:url('biphoria/biphoria.co.uk-template-anton.ttf') format('truetype');font-display:swap;font-weight:400}
:root{
  --night:#0a0a0a; --night-2:#141414; --plum:#202023; --violet:#7040aa; --violet-2:#ffffff; --violet-3:#7040aa; --pink:#ffffff; --pink-2:#f4f4f4;
  --fg:#ffffff; --mist:#b9b9bd; --line:rgb(255 255 255 / 16%); --glass:rgba(10,10,10,.78);
  --display:Anton,Impact,'Arial Narrow',sans-serif; --body:Arial,Helvetica,sans-serif; --title:var(--display);
  --gold:#ffffff; --marble:#ffffff; --ink:#0a0a0a; --ink-2:#48484b; --bronze:#b9b9bd; --sheet:linear-gradient(180deg,#1a1a1c,#0a0a0a 40%);
}
/* Anton has one weight: the Partners display rules ask for 600, which would be synthesised. */
.logo,h1,h2,h3,h4,.wm-fallback,.st-head,.sheet .logo,.m-vip h2,.m-mail h3,.venues b,footer .logo{font-weight:400!important}
h2{font-size:clamp(2.5rem,8.4vw,4.75rem);line-height:1.04;letter-spacing:-.01em}
h3{letter-spacing:0}
.eyebrow{font:700 .8125rem/1.55 var(--body);letter-spacing:1.3px;color:#fff}
.lead{font-size:1.0625rem;line-height:1.65}
.btn{background:#fff;color:var(--ink)}
.btn:hover{box-shadow:0 10px 40px rgba(255,255,255,.18)}
.btn.ghost{border-color:rgba(255,255,255,.6)}
.btn.ghost:hover{background:rgba(255,255,255,.1)}
:focus-visible{outline-color:#fff}
.dot{background:#fff;box-shadow:0 0 12px rgba(255,255,255,.6)}
/* The preview notice: one line at the top. */
.demo-line{margin:0;padding:8px 16px;text-align:center;font-size:.8125rem;color:var(--mist);background:#141414;border-bottom:1px solid var(--line)}
.skip-link{position:fixed;left:15px;top:-80px;padding:12px 20px;z-index:99;background:#fff;color:var(--ink);border-radius:999px;text-decoration:none;font-weight:700}
.skip-link:focus{top:10px}
/* Header: the Partners pill bar in Biphoria's black and white, with the source's purple orb beside the wordmark. */
.top .wrap{background:rgba(10,10,10,.86)}
.top .logo{align-items:center;gap:10px;font-size:1.625rem;letter-spacing:.005em}
.brand-orb{display:inline-block;width:25px;height:25px;border-radius:50%;flex-shrink:0;border:1px solid rgb(68 26 140 / 22%);background:radial-gradient(circle at 29% 24%,#f1eaff 0 8%,transparent 26%),radial-gradient(circle at 34% 28%,#cdb4ff 0%,#8b52f6 38%,#5b24c7 72%,#371079 100%);box-shadow:inset 1px 1px 0 rgb(255 255 255 / 72%),inset -5px -7px 12px rgb(39 5 91 / 28%),0 8px 18px rgb(86 36 194 / 24%)}
.nav a:hover,.top-tel:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}
.top-tel{color:#fff}
/* Hero: the Partners hero plan with Biphoria's landscape group picture (1536x1024). */
.hero{background:#0a0a0a}
.hero::after{background:linear-gradient(180deg,rgba(10,10,10,0),var(--night))}
.wm-fallback{font-size:clamp(3.75rem,20vw,9rem);line-height:1;letter-spacing:.01em;text-transform:uppercase}
.st-slot{width:100%;aspect-ratio:1536/1024;margin:-6% auto 0}
.st-img{object-fit:contain;object-position:center bottom}
.hero:not(.gl-pic) .st-img{display:block}
.social{font:700 .8125rem/1.55 var(--body);letter-spacing:1.3px;text-transform:uppercase;color:#fff}
.intro h1{font-size:clamp(3rem,13vw,5rem);line-height:1;letter-spacing:.01em;text-transform:uppercase}
.intro p.d{color:#e6e6e8}
.intro .row{margin-top:20px}
.intro .row .btn{flex:1 1 0;min-width:0;padding-inline:16px}
.status .st-head{font-size:1.5rem}
.status .st-foot{font-size:.875rem;color:#e6e6e8}
.status .st-foot strong{color:#fff}
.status .st-foot a{color:#fff;text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:44px}
.status{background:var(--glass)}
@media (min-width:700px){
.st-slot{width:min(100%,720px);margin-top:-5%}
.intro .row .btn{flex:0 0 auto;padding-inline:28px}
}
@media (min-width:1000px){
.st-slot{right:max(2vw,calc(50vw - 700px));top:120px;bottom:auto;width:48vw;max-width:48vw;aspect-ratio:1536/1024}
.intro h1{font-size:4.5rem}
.wm-slot{max-width:min(40vw,640px)}
}
/* VIP: one white email-first panel, as the source's Free VIP card, in the Partners VIP block. No WhatsApp: the source has none. */
.vip{background:#ffffff;color:var(--ink)}
.vip .eyebrow{color:#7040aa}
.vip h2 em{color:var(--ink)}
.vip .lead{color:#48484b}
.vip-grid{grid-template-columns:1fr}
.vip .mail h3{font:400 1.75rem/1.1 var(--display);color:var(--ink)}
.vip .mail .form-note{margin-top:4px}
@media (min-width:700px){
.vip-grid{grid-template-columns:1fr 1fr;gap:36px}
.vip-copy{grid-column:1;grid-row:1;align-self:center}
.vip .mail{border-top:0;padding-top:0}
.vip-grid>.mail{grid-column:2;grid-row:1;margin-top:0;display:block;align-self:center}
.vip h2{font-size:clamp(2.75rem,6.4vw,4rem)}
}
@media (min-width:1000px){
.vip-grid{grid-template-columns:1fr 1fr;gap:44px}
.vip-copy{grid-column:1;grid-row:1}
.vip-grid>.mail{grid-column:2;grid-row:1}
}
/* The source signup form, kept byte for byte, styled here. */
.hero-signup{display:grid;gap:10px;margin-top:10px}
.hero-signup>label:first-child{font-size:.9375rem;font-weight:700}
.hero-signup-row{display:flex;gap:8px}
.hero-signup input[type=email]{flex:1 1 auto;min-width:0;height:54px;border:1.5px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);padding:0 18px;font-size:1rem}
.hero-signup .primary-button{flex:none;min-height:54px;padding:0 26px;border-radius:999px;border:0;background:var(--ink);color:#fff;font:700 1rem/1 var(--body);cursor:pointer}
.hero-signup .primary-button:disabled{opacity:.7;cursor:wait}
.hero-consent{display:flex;gap:10px;align-items:flex-start;font-size:.875rem;font-weight:500;min-height:44px;color:var(--ink)}
.hero-consent input{width:22px;height:22px;flex:none;accent-color:#7040aa;margin:0}
.hero-form-note{font-size:.875rem;color:#48484b;line-height:1.5}
.hero-signup-success{display:grid;gap:4px;padding:14px 0;color:var(--ink)}
.hero-signup-success strong{font:400 1.75rem/1.1 var(--display)}
.hero-signup-error{color:#a3122b;font-weight:700;font-size:.9375rem}
.form-note a{color:#48484b}
/* Thursday events: four venue cards on the source's light card style. */
#events{background:var(--night)}
.ev-grid{display:grid;gap:14px;margin-top:22px}
.ev,.ev-pair{background:#f4f4f4;color:var(--ink);border-radius:24px;padding:22px}
.ev .eyebrow{color:#7040aa;margin-bottom:8px}
.ev h3,.ev-pair>h3{font:400 clamp(1.75rem,6vw,2.25rem)/1.05 var(--display);color:var(--ink)}
.empire-launch-intro{margin-top:10px;color:#48484b}
.launch-details{display:grid;gap:16px;margin-top:18px}
.empire-launch-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-top:1px solid rgb(0 0 0 / 14%);padding-top:14px}
.empire-session-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.empire-launch-facts span{display:grid;gap:2px;font-size:.875rem;color:#48484b}
.empire-launch-facts strong{font:400 clamp(1.375rem,5vw,1.75rem)/1.1 var(--display);color:var(--ink);white-space:nowrap}
.empire-launch-welcome,.empire-launch-shows{border-top:1px solid rgb(0 0 0 / 14%);padding-top:14px}
.empire-launch-welcome strong,.empire-launch-shows>strong{display:block;font-size:.8125rem;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:6px}
.empire-launch-welcome p{color:#48484b;font-size:.9688rem}
.empire-launch-shows div{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.9688rem}
.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.primary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:12px 24px;border-radius:999px;font:700 1rem/1.15 var(--body);text-decoration:none;transition:transform .15s}
.primary-button:hover,.ghost-button:hover{transform:translateY(-2px)}
.ev .primary-button,.ev-pair .primary-button{background:var(--ink);color:#fff}
.ev .ghost-button{border:1.5px solid var(--ink);color:var(--ink)}
.ev-pair{display:grid;gap:14px;background:#fff}
.ev-pair .ev{padding:18px;background:#f4f4f4}
.timeline li{display:grid;gap:4px}
.timeline strong{font:400 1.75rem/1.1 var(--display)}
.timeline span{display:grid;gap:2px;color:#48484b}
.timeline b{color:var(--ink);font-size:1.0625rem}
@media (min-width:700px){
.ev-grid{grid-template-columns:1fr 1fr}
.ev-pair{grid-column:1/-1;grid-template-columns:1fr 1fr}
.ev-pair>h3{grid-column:1/-1}
}
@media (min-width:1000px){
.ev,.ev-pair{padding:30px}
}
/* What to expect and Bury facilities: the source's cards. */
.section-heading .eyebrow{margin-bottom:10px}
.section-intro,.about-copy p{color:var(--mist);font-size:1.0625rem;line-height:1.65;max-width:62ch;margin-top:14px}
.feature-grid,.facilities-grid{display:grid;gap:14px;margin-top:22px}
.feature-card,.facility-card{background:#202023;border-radius:24px;padding:24px}
.feature-card h3,.facility-card h3{font:400 1.75rem/1.15 var(--display);margin-bottom:12px}
.feature-card p,.facility-card p{color:var(--mist);font-size:1rem;line-height:1.6}
.feature-card:nth-child(2){background:#f4f4f4;color:#0a0a0a}
.feature-card:nth-child(2) p{color:#48484b}
.facility-card>span{display:block;font-size:.8125rem;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--mist);margin-bottom:10px}
.facilities-actions .primary-button{background:#fff;color:var(--ink)}
.facilities-actions .ghost-button{border:1.5px solid rgba(255,255,255,.6);color:#fff}
@media (min-width:700px){
.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.facilities-grid{grid-template-columns:1fr 1fr}
}
/* Venue and event-brand lists: the Partners venue list. */
.venues a{border-color:var(--line)}
.venues a:hover{background:rgba(255,255,255,.06);border-color:#fff}
.venues b{font:400 1.5rem/1.1 var(--display);letter-spacing:.005em}
.venues span{display:block;margin-top:4px}
.venues small{display:block;margin-top:8px;font-size:.8125rem;font-weight:700;color:#fff}
@media (min-width:1000px){
.venues{grid-template-columns:repeat(3,1fr)}
}
/* Footer: the Partners footer with the source's own footer content. */
footer .logo{font-size:2.5rem;align-items:center;gap:12px}
footer .f-desc{max-width:52ch;margin-top:6px}
.f-groups{display:grid;gap:18px;margin-top:22px}
.f-groups strong{display:block;color:#fff;font-size:.8125rem;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:2px}
.f-groups .f-links{flex-direction:column;gap:0;margin-top:0}
.f-bottom{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center;justify-content:space-between;margin-top:22px;padding-top:12px;border-top:1px solid var(--line);font-size:.875rem}
@media (min-width:700px){
.f-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1000px){
.f-groups{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* Dock and Back to Top in Biphoria's colours; Back to Top keeps the source's purple. */
.dock{background:rgba(10,10,10,.94)}
.dock a:first-child{color:#fff}
@media (min-width:1000px){
.to-top{background:#7040aa;border-color:rgba(255,255,255,.55);color:#fff;box-shadow:0 6px 30px rgba(0,0,0,.22)}
.to-top:hover{border-color:#fff}
}
/* Phone menu: the Partners sheet, black, with the source's white VIP card. */
.m-actions svg.i{color:#fff}
.m-vip>p{color:#48484b}
.m-vip .m-mail h3{font:400 1.375rem/1.15 var(--display);color:var(--ink)}
.m-vip .hero-signup-row{flex-direction:column}
.m-vip .hero-signup .primary-button{width:100%}
.m-note a{color:#48484b}
.sheet .logo{font:400 2.125rem/1 var(--display)!important;align-items:center;gap:10px}
.m-vip h2{font:400 1.75rem/1.1 var(--display)!important}
/* 404 */
.nf{padding:150px 0 60px}
.nf h1{font:400 clamp(3rem,12vw,5.5rem)/1 var(--display);text-transform:uppercase}
.nf p{color:var(--mist);margin-top:14px;font-size:1.0625rem}

/* ===== Biphoria r2 layer (src/r2.css) ===== */
/* Biphoria r2 layer, appended after src/biphoria.css (r1 is frozen without it). */
/* 1. The hero name is one box in both states. r1 showed the HTML name only without JavaScript (the Partners rule html:not(.js)
      .wm-fallback{display:block}) and display:none once scripts ran, so the raw and loaded pages had different visible text
      (demo-page-check: "JavaScript changes text outside data-live: Biphoria"). Now the HTML name always fills the wordmark slot, at the
      slot's own 60:14 shape, with or without JavaScript; when WebGL has drawn the same name in tiles in that box (hero.gl-name) its
      letters turn transparent. It is never removed or hidden, so the visible text is the same raw and loaded, and the layout does not
      move when the effect starts. */
.wm-slot,.no-gl .wm-slot,html:not(.js) .wm-slot{aspect-ratio:60/14;container-type:inline-size}
.wm-fallback,.no-gl .wm-fallback,html:not(.js) .wm-fallback{display:block;width:100%;font-size:19cqw;line-height:1;letter-spacing:.02em;text-align:center}
.hero.gl-name .wm-fallback{color:transparent}
/* 2. Codex/hub, 10 Nov: at 768 the Acqua card's "8pm–late" and "£15" crowded each other. Below 1000px the Thursday cards run one per
      row (the Bury pair keeps its two cards side by side from 700px), and the stats get a wider gap. */
.empire-launch-facts{column-gap:18px}
@media (min-width:700px) and (max-width:999px){
.ev-grid{grid-template-columns:1fr}
}

/* ===== Biphoria r4 layer (src/r4.css) ===== */
/* Biphoria r4 layer, appended after src/r2.css (r1 to r3 are frozen without it).
   Mark, 10 Nov 2026 (iPhone Safari): "the menu jumps". Root cause, in the shared Partners menu (18-menu.css + the page script):
   showModal() runs the dialog focusing steps, which focus the sheet (tabindex=-1, the first focusable element) in the same task that
   starts the sheetIn animation, while the sheet is still translated 100% down, below the dialog. Focusing scrolls the nearest scroll
   container to reveal it, and the dialog was one: overflow:hidden clips but can still be scrolled by script and by focus. So the dialog
   scrolled by the sheet's height (834px at 390x844); the sheet then slid up inside an already-scrolled dialog and sat above the screen,
   showing its lower part (Contact us, the VIP card) at the top with its bottom edge a third of the way down, until the animation ended
   and the scroll snapped back (WebKit). Chrome hides it by moving the scroll back each frame, so there the slide never shows.
   Fix: the dialog is not a scroll container at all. overflow:clip clips exactly as hidden did but cannot be scrolled, by focus or by
   script, so the sheet slides up from the bottom in every frame. The sheet keeps its own scrolling (overflow-y:auto), unchanged. */
dialog{overflow:clip}

/* ===== Biphoria r5 layer (src/r5.css) ===== */
/* Biphoria r5 layer, appended after src/r4.css (r1 to r4 are frozen without it). Mark approved the agreed scope, 10 Nov 2026. */
/* Title (A20, item 6): no tile name in the wall; the hero shows the name once, as the plain H1, plus the header brand. Without the name
   slot the picture starts the hero on phones and tablets. */
.hero-grid{padding-top:calc(env(safe-area-inset-top,0px) + 84px)}
.st-slot{margin-top:0}
@media (min-width:700px){.st-slot{margin-top:0}}
@media (min-width:1000px){.hero-grid{padding-top:0}.st-slot{top:120px}.intro{margin-top:0}}
/* Locations (item 1): three cards in one style. */
.locations .section-heading h2{margin-bottom:4px}
.loc-grid{display:grid;gap:14px;margin-top:22px}
.loc{display:flex;flex-direction:column;gap:16px;background:#f4f4f4;color:var(--ink);border-radius:24px;padding:22px}
.loc .eyebrow{color:#7040aa;margin:0}
.loc h3{font:400 clamp(1.75rem,6vw,2.25rem)/1.05 var(--display);color:var(--ink);margin-top:-8px}
.loc .empire-launch-facts{margin:0}
.loc .button-row{margin-top:auto;padding-top:4px}
.loc .primary-button{background:var(--ink);color:#fff}
.loc .ghost-button{border:1.5px solid var(--ink);color:var(--ink)}
.loc-sessions{grid-template-columns:1fr!important;row-gap:18px}
@media (min-width:700px){.loc-sessions{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.loc-sessions>div{display:grid;gap:4px;align-content:start}
.loc-sessions strong{font:400 clamp(1.375rem,5vw,1.75rem)/1.1 var(--display);color:var(--ink);white-space:nowrap}
.loc-sessions span{display:grid;gap:2px;font-size:.9375rem;color:#48484b}
.loc-sessions b{color:var(--ink);font-size:1rem}
.loc-sessions .primary-button,.loc-sessions .ghost-button{margin-top:10px;justify-self:start;min-height:48px;padding:10px 18px;font-size:.9375rem;white-space:nowrap}
.loc-sessions .primary-button{background:var(--ink);color:#fff}
.loc-sessions .ghost-button{border:1.5px solid var(--ink);color:var(--ink)}
.loc-links{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:auto}
.loc-link{display:inline-flex;align-items:center;min-height:44px;font-size:.9375rem;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media (min-width:1000px){.loc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.loc{padding:26px}}
