
/* Concept: Partners' own brand, from its share card, made big. Near-black, electric violet neon lines, pale pink and modern sans type,
   around contemporary photographs of people looking straight at you. The lights come up where you touch the hero, and the prices
   start with one question: who's coming? */
: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}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.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}
.logo small{font:500 .8125rem/1 var(--display);letter-spacing:0;color:var(--pink)}
.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}
html.js [data-lit] .art img,html.js .art[data-lit] img{filter:brightness(.5) saturate(.75);transition:filter 1.4s ease}
html.js [data-lit].in .art img,html.js .art[data-lit].in img{filter:none;animation:breathe 16s ease-in-out infinite alternate}
@keyframes breathe{from{transform:scale(1)}to{transform:scale(1.05)}}

/* The brand's neon lines, drawn on as you reach them */
.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}

/* Hero */
.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}
.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}
.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}
.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)}

/* VIP, directly under the hero */
.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}
.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)}
.mail .btn{background:transparent;color:var(--ink);border:1.5px solid var(--ink);margin-top:0;min-height:54px}
.form-status{font-weight:600;margin-top:10px;color:var(--violet-3)}

/* Events */
#events{background:radial-gradient(70% 34% at 50% 8%,rgba(151,71,255,.22),transparent 72%),var(--night)}
.ball{position:relative;border-radius:var(--r);aspect-ratio:3/2;margin-top:30px}
.week{display:grid;gap:12px;margin-top:14px}
.invite{position:relative;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;padding:18px;border-radius:18px;border:1px solid var(--line);background:rgba(196,155,255,.06);text-decoration:none;transition:border-color .2s,transform .2s,background .2s}
.invite:hover{border-color:var(--pink);transform:translateY(-3px)}
.invite .d{grid-row:span 3;font:600 2.5rem/1 var(--display);letter-spacing:-.04em;color:var(--pink);min-width:82px}
.invite .t{font-weight:700}
.invite p{color:var(--mist);font-size:.9688rem;line-height:1.42}
.invite.is-today{border-color:var(--pink);background:rgba(255,196,214,.1)}
.tag{display:inline-block;font:700 .75rem/1.4 var(--body);letter-spacing:0;color:var(--ink);background:var(--pink);border-radius:999px;padding:2px 8px;margin-left:8px;vertical-align:middle}
.note{color:var(--mist);font-size:.9375rem;margin-top:14px}
.big-cta{width:100%;min-height:70px;font-size:1.25rem;margin-top:20px}

/* Hours and prices: who's coming? */
#prices{background:linear-gradient(180deg,var(--night),#180a2e 45%,var(--night))}
.price-grid{display:grid;gap:26px}
.who{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:22px}
.who button{min-height:52px;border-radius:999px;border:1.5px solid var(--line);background:transparent;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s,color .2s;padding:6px 10px}
.who button:hover{border-color:var(--pink)}
.who button[aria-pressed=true]{background:var(--pink);border-color:var(--pink);color:var(--ink)}
.faces{position:relative;border-radius:var(--r);aspect-ratio:4/5;overflow:hidden}
.faces img{object-position:50% 20%}
.faces .art{position:absolute;inset:0}
.faces .art+.art{display:none}
html.js .faces .art{display:block;opacity:0;transition:opacity .6s}
html.js .faces .art.on{opacity:1}
.nights{display:grid;gap:12px;margin-top:16px}
.night{border:1px solid var(--line);background:rgba(196,155,255,.06);border-radius:18px;padding:16px 18px}
.night .when{color:var(--pink);font-weight:600;font-size:.9688rem;margin-top:3px}
.night ul{display:grid;gap:2px;margin-top:10px}
.night li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;border-radius:10px;transition:background .25s,color .25s}
.night li b{font:600 1.375rem/1 var(--display);letter-spacing:-.02em}
.night li.pick{background:var(--pink);color:var(--ink)}
.member{margin-top:12px;border-radius:18px;padding:18px;border:1.5px solid var(--violet);box-shadow:0 0 30px rgba(151,71,255,.3)}
.member b.m{font:600 1.75rem/1.1 var(--display);letter-spacing:-.03em;display:block}
.member p{color:var(--mist);font-size:.9688rem;margin-top:6px}

/* Facilities */
.rooms{display:grid;gap:12px;margin-top:30px}
.room{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:230px;padding:20px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:rgba(196,155,255,.05)}
.room .k{font:600 .8125rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--pink)}
.room h3{font-size:1.75rem;margin-top:10px}
.room p{color:var(--mist);font-size:.9688rem;line-height:1.45;margin-top:8px}
.room.pic{min-height:440px}
.room.pic .art{position:absolute;inset:0}
.room.pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(13,6,24,.92) 82%)}
.room.pic>*:not(.art){position:relative;z-index:1}
.room.pic p{color:var(--fg)}
.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 us */
.find-grid{display:grid;gap:30px;align-items:center}
.find-grid .art{border-radius:var(--r);aspect-ratio:1}
.addr{font:600 1.6875rem/1.15 var(--display);letter-spacing:-.025em;font-style:normal;margin-top:18px;color:var(--pink)}
.travel{display:grid;gap:12px;margin-top:20px}
.travel b{display:block}
.travel span{color:var(--mist);font-size:.9688rem}

/* First time */
.first-grid{display:grid;gap:30px;align-items:center}
.first-grid .art{border-radius:var(--r);aspect-ratio:4/5}
details{border-bottom:1px solid var(--line)}
details:first-of-type{margin-top:22px;border-top:1px solid var(--line)}
summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:56px;font-weight:600;cursor:pointer}
summary::-webkit-details-marker{display:none}
summary svg.i{transition:transform .2s}
details[open] summary svg.i{transform:rotate(45deg)}
details p{color:var(--mist);padding-bottom:14px}

/* Galleries */
.gal{position:relative;border-radius:var(--r);padding:clamp(28px,5vw,64px);overflow:hidden;background:linear-gradient(120deg,#2a0f55,#160829)}

/* Biphoria */
#biphoria{overflow:hidden;background:linear-gradient(115deg,#7d1560,#4b1a8c 52%,#12317e)}
.bi-grid{display:grid;gap:26px;align-items:center}
.bi-grid .art{border-radius:var(--r);aspect-ratio:3/2;box-shadow:0 24px 70px rgba(0,0,0,.4)}
.bi-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}
.bi-facts li{background:rgba(255,255,255,.12);border-radius:14px;padding:12px 14px}
.bi-facts b{display:block;font:600 1.375rem/1.1 var(--display);letter-spacing:-.02em}
.bi-facts span{font-size:.875rem}

/* Smaller sections */
.duo{display:grid;gap:14px}
.panel{border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,3vw,36px);background:rgba(196,155,255,.05)}
.panel h2{font-size:clamp(2.125rem,5.6vw,3.25rem)}
.quote{margin-top:16px;border-left:3px solid var(--violet);padding-left:14px}
.quote p{font:500 1.0625rem/1.45 var(--display);letter-spacing:-.01em}
.quote cite{display:block;font:600 .8125rem/1.3 var(--body);color:var(--mist);margin-top:8px;font-style:normal}
.kage{position:relative;overflow:hidden;border-radius:var(--r);min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid var(--line)}
.kage .art{position:absolute;inset:0}
.kage .art img{object-position:50% 18%}
.kage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 26%,rgba(13,6,24,.94) 78%)}
.kage .tx{position:relative;z-index:1;padding:clamp(22px,3vw,40px)}
.kage p.tt{margin-top:10px;max-width:56ch}

.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}

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}

.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}
.rail{display:none}

/* iPhone-style phone menu, from the Acqua and Nero's builds. Colours come from each page. */
html.menu-open{overflow:hidden}
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}}
/* Privacy link: a full-size tap target, as it sits alone beside the small print. */
.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}
.dock button{padding:0} /* The browser's default button padding made Menu 12px wider than the other four. */
#up.is-down svg{transform:rotate(180deg)}

.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)}

@media (min-width:700px){
  .ph{width:min(100vw,720px);margin-inline:auto;margin-top:-90px}
  .intro{margin-top:-130px}
  .stats{grid-template-columns:repeat(4,1fr)}
  .vip-grid{grid-template-columns:.8fr 1.2fr;gap:36px}
  .week{grid-template-columns:1fr 1fr}
  .who{grid-template-columns:repeat(4,1fr)}
  .rooms{grid-template-columns:1fr 1fr}
  .venues{grid-template-columns:1fr 1fr}
  .duo{grid-template-columns:1fr 1fr}
  .bi-facts{grid-template-columns:repeat(4,1fr)}
  .faces{max-width:560px;width:100%;justify-self:center}
  .night ul{grid-template-columns:1fr 1fr;column-gap:12px}
}
@media (min-width:1000px){
  body{padding-bottom:0}
  .dock{display:none}
  .top{display:block;top:30px}
  .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)}
  .wm{padding-top:0;font-size:clamp(5rem,9vw,10.5rem)}
  .intro{margin-top:26px}
  .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%}
  .top-tel{text-shadow:0 1px 8px rgba(13,6,24,.9)}
  .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)}
  .week{grid-template-columns:repeat(4,1fr)}
  .invite{grid-template-columns:1fr}
  .invite .d{grid-row:auto;margin-bottom:8px}
  .ball{aspect-ratio:2/1}
  .ball img{object-position:50% 12%}
  .price-grid{grid-template-columns:1.08fr .92fr;column-gap:64px;row-gap:0;align-items:start}
  .side{grid-column:1;grid-row:1}
  .rest{grid-column:1;grid-row:2}
  .faces{grid-column:2;grid-row:1/span 2;position:sticky;top:30px;max-width:none}
  .rooms{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(230px,auto)}
  .room.pic{grid-column:span 2;grid-row:span 2}
  .find-grid{grid-template-columns:1.05fr .95fr;gap:64px}
  .first-grid{grid-template-columns:.8fr 1.2fr;gap:64px}
  .bi-grid{grid-template-columns:1.15fr .85fr;gap:64px}
  .venues{grid-template-columns:repeat(4,1fr)}
  .kage{display:grid;grid-template-columns:.8fr 1.2fr;min-height:0;align-items:center}
  .kage::after{display:none}
  .kage .art{position:relative;inset:auto;aspect-ratio:4/5}
  .rail{display:block;position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:15;opacity:0;pointer-events:none;transition:opacity .4s}
  .rail.on{opacity:1;pointer-events:auto}
  .rail::before{content:"";position:absolute;right:7px;top:8px;bottom:8px;width:2px;background:var(--line)}
  .rail::after{content:"";position:absolute;right:7px;top:8px;width:2px;height:calc((100% - 16px)*var(--p,0));background:var(--pink)}
  .rail a{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:10px;height:32px;text-decoration:none;font:600 .75rem/1 var(--body);z-index:1}
  .rail a span{opacity:0;transform:translateX(6px);transition:opacity .2s,transform .2s;background:rgba(13,6,24,.92);padding:6px 9px;border-radius:999px;white-space:nowrap}
  .rail a:hover span,.rail a:focus-visible span{opacity:1;transform:none}
  .rail a i{width:16px;height:16px;border-radius:50%;background:var(--night);border:2px solid var(--mist);flex:none;transition:background .3s,border-color .3s}
  .rail a.at i{background:var(--pink);border-color:var(--pink)}
}
@media (min-width:1700px){
  :root{--max:1600px}
  .wm{font-size:clamp(10.5rem,9vw,15rem)}
  .intro h1{font-size:4.75rem}
  .intro p.d{font-size:1.375rem}
  .status{padding:24px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.js .neon path{stroke-dashoffset:0;transition:none}
  html.js [data-lit].in .art img,html.js .art[data-lit].in img{animation:none}
  html.js .reveal{opacity:1;transform:none;transition:none}
}

/* Sticky header, the approved Acqua and Nero's pattern: it stays in view, takes no space and changes no layout. */
.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}
/* The phone and tablet home opens with its big wordmark, as approved. The bar joins once that has scrolled away. */
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}
}

/* The email box's own message, kept clear of the header and bottom bar. */
.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}

/* Mark, 7 Nov 2026: "Put WhatsApp below email on mobile". The page order is now photo, heading and list, email, then WhatsApp, so keyboard and screen-reader users get email first too. Tablet and desktop keep their look by placing the same blocks on the grid. */
.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}
}

/* Inner pages */
/* In the source these can be links, which would otherwise lay out as inline text. */
a.partners-note,a.partners-card,a.partners-panel,a.partners-plan,a.partners-callout,a.partners-image-card,a.partners-gallery-tile{display:block;text-decoration:none;color:inherit}
a.partners-image-card{display:flex}
a.partners-card:hover,a.partners-panel:hover,a.partners-plan:hover,a.partners-note:hover,a.partners-image-card:hover{border-color:var(--pink)}

/* Top of an inner page */
.logo{text-decoration:none}
.in-hero{position:relative;overflow:hidden;padding-top:64px;background:radial-gradient(80% 60% at 78% 0,rgba(151,71,255,.32),transparent 72%),var(--night)}
.in-art{position:relative;height:clamp(240px,66vw,460px);-webkit-mask-image:linear-gradient(180deg,#000 58%,transparent 100%);mask-image:linear-gradient(180deg,#000 58%,transparent 100%)}
.in-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.in-art .neon{stroke-width:.3}
.in-hero .partners-shell{position:relative;z-index:4;margin-top:-54px;padding-bottom:clamp(30px,6vw,64px)}
.in-hero--noart .partners-shell{margin-top:0;padding-top:36px}
.in-hero h1{font:600 clamp(2.25rem,9vw,4.75rem)/1.04 var(--display);letter-spacing:-.035em;overflow-wrap:break-word}
.in-hero .partners-kicker{margin-bottom:10px}
.in-hero .partners-note{margin-top:24px;border:1px solid var(--line);background:var(--glass);border-radius:var(--r);padding:18px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.in-hero .partners-note .partners-kicker{margin-bottom:6px}
.in-hero .partners-note strong{display:block;font:600 1.3125rem/1.2 var(--display);letter-spacing:-.02em}
.in-hero .partners-note p:not(.partners-kicker){color:var(--mist);margin-top:6px}

/* Shared content parts */
.partners-shell{max-width:var(--max);margin-inline:auto;padding-inline:clamp(18px,4vw,48px)}
.partners-kicker{font:600 .8125rem/1.25 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--violet-2);margin-bottom:12px}
.partners-lede{color:var(--mist);font-size:1.1875rem;max-width:60ch;margin-top:14px}
.partners-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.partners-btn,.wp-block-button__link,.wp-element-button,.stk-button{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:50px;padding:10px 22px;border-radius:999px;border:1.5px solid rgba(196,155,255,.6);background:transparent;color:var(--fg);font:700 1rem/1.15 var(--body);text-decoration:none;text-align:center;transition:background .15s,transform .15s}
.partners-btn:hover,.wp-block-button__link:hover,.wp-element-button:hover,.stk-button:hover{background:rgba(196,155,255,.14)}
.partners-btn--primary{background:var(--pink);border-color:var(--pink);color:var(--ink)}
.partners-btn--primary:hover{background:var(--pink-2);transform:translateY(-2px)}
.source-content{display:block}
.source-content p+p{margin-top:.9em}
.source-content h2{font:600 clamp(1.875rem,5.6vw,3.25rem)/1.07 var(--display);letter-spacing:-.03em;overflow-wrap:break-word}
.source-content h3{font:600 1.3125rem/1.2 var(--display);letter-spacing:-.02em;overflow-wrap:break-word}
.source-content h4,.source-content h5,.source-content h6{font:600 1.0625rem/1.25 var(--display);margin-top:1em}
.source-content h2+p,.source-content h3+p,.source-content h4+p{margin-top:.7em}
.source-content ul,.source-content ol{padding-left:1.25em;margin-top:.8em}
.source-content ul{list-style:disc}
.source-content ol{list-style:decimal}
.source-content li+li{margin-top:.4em}
.source-content li::marker{color:var(--violet-2)}
.source-content a:not([class]){color:var(--pink);text-underline-offset:.18em;overflow-wrap:anywhere}
.source-content strong{font-weight:700}
.source-content hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.source-content .source-spacer{height:22px}
.source-content .has-text-align-center{text-align:center}
.partners-section{padding:clamp(44px,7vw,92px) 0;border-top:1px solid var(--line)}
.partners-section--warm{background:linear-gradient(180deg,rgba(151,71,255,.11),rgba(151,71,255,.02))}
.partners-proof{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border-block:1px solid var(--line)}
.partners-proof>div{background:var(--night);padding:16px 14px;text-align:center;display:flex;flex-direction:column;gap:2px}
.partners-proof strong{font:600 1.5625rem/1.1 var(--display);letter-spacing:-.03em}
.partners-proof span{font-size:.8125rem;color:var(--mist)}
.partners-proof span span{display:block}
.partners-split{display:grid;gap:clamp(22px,5vw,72px)}
.partners-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));margin-top:clamp(20px,3vw,32px)}
.partners-split .partners-grid{margin-top:0}
.partners-grid--two{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr))}
.partners-grid--four{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr))}
.partners-card,.partners-panel,.partners-plan,.partners-callout,.partners-quote{border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.4vw,28px);background:rgba(196,155,255,.05);min-width:0}
.partners-plan{counter-increment:none}
.partners-callout{border-color:rgba(255,196,214,.45);background:rgba(255,196,214,.07)}
.partners-tag{display:inline-block;margin-bottom:10px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font:600 .75rem/1.2 var(--display);letter-spacing:.04em;color:var(--pink)}
.partners-accent{color:var(--pink)}
.partners-card p,.partners-panel p,.partners-plan p,.partners-callout p{color:var(--mist)}
.partners-card h3+p,.partners-panel h3+p,.partners-plan h3+p{margin-top:.6em}
.partners-card .partners-actions{margin-top:14px}
.partners-quote{border-left:3px solid var(--violet);border-radius:0 var(--r) var(--r) 0}
.partners-quote p{font:500 1.0625rem/1.45 var(--display);letter-spacing:-.01em;color:var(--fg)}
.partners-quote cite,.partners-quote footer{display:block;border:0;padding:0;font:600 .8125rem/1.3 var(--body);color:var(--mist);margin-top:10px;font-style:normal}
.partners-price-row{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line)}
.partners-price-row:first-of-type{border-top:0}
.partners-price-row strong,.partners-price-row b{color:var(--pink);font-family:var(--display);white-space:nowrap}
.partners-rich>*+*{margin-top:.9em}
.partners-rich--two{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));align-items:start;margin-top:clamp(20px,3vw,32px)}
.partners-rich--two>*+*{margin-top:0}
.partners-policy-section{padding:clamp(36px,5vw,64px) 0;border-top:1px solid var(--line)}
.partners-policy-section--warm{background:linear-gradient(180deg,rgba(151,71,255,.11),rgba(151,71,255,.02))}
.partners-policy-grid{display:grid;gap:18px clamp(24px,5vw,72px)}
.partners-policy-label>span{display:block;font:600 1rem/1 var(--display);color:var(--pink);margin-bottom:10px}
.source-content .partners-policy-label h2{font-size:clamp(1.625rem,3.4vw,2.375rem)}
.partners-policy-copy{color:var(--mist);min-width:0}
.partners-policy-copy strong{color:var(--fg)}
.partners-policy-nav .partners-shell{display:flex;flex-wrap:wrap;gap:4px 18px}
.partners-policy-nav a{min-height:44px;display:inline-flex;align-items:center}
.partners-image-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:rgba(196,155,255,.05);min-width:0}
.partners-image-card__body{padding:16px 18px 20px}
.partners-image-card__body p{color:var(--mist)}
.source-picture{display:block;overflow:hidden;aspect-ratio:3/2;background:#150a26}
.source-picture img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.source-content figure{margin-top:1em}
.source-content figure .source-picture{aspect-ratio:auto;background:none;border-radius:14px}
.source-content figure .source-picture img{height:auto;object-fit:contain}
.source-content .stk-block-content,.source-content .stk-row,.source-content .stk-column-wrapper,.source-content .wp-block-stackable-columns{min-width:0}
.partners-preserved-content{padding-inline:max(clamp(18px,4vw,48px),calc((100vw - var(--max))/2 + clamp(18px,4vw,48px)))}
.partners-preserved-content>.partners-shell{padding-inline:0;margin-inline:0;max-width:none}
.partners-preserved-content>*:not(.partners-shell):not(.partners-section){max-width:860px}
.partners-preserved-content .partners-section{padding-block:clamp(24px,4vw,40px);border-top:0}
.partners-preserved-content .partners-section .partners-shell{padding-inline:0;margin-inline:0}
.partners-preserved-content h2{margin-top:1em;font-size:clamp(1.625rem,4vw,2.5rem)}
.partners-preserved-content>.partners-shell h2{margin-top:0;font-size:clamp(1.875rem,5.6vw,3.25rem)}
.partners-preserved-content h3{margin-top:1em}
.partners-preserved-content p,.partners-preserved-content li,.partners-preserved-content .gspb_text{color:var(--mist)}
.partners-preserved-content strong{color:var(--fg)}
.partners-preserved-content img{height:auto;max-width:min(100%,620px);border-radius:14px}
.partners-preserved-content .source-picture,.partners-preserved-content figure .source-picture{aspect-ratio:auto;background:none;overflow:visible}
.partners-preserved-content .source-picture img{height:auto;object-fit:contain}
.partners-preserved-content figure,.partners-preserved-content .gspb_image{margin-top:1.1em}
.partners-preserved-content .wp-block-buttons,.partners-preserved-content .wp-block-stackable-button-group{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.gspb_button_wrapper{display:inline-block;margin:10px 8px 0 0}
.gspb-buttonbox-textwrap{display:inline-flex;align-items:center;gap:8px}
.gspb-buttonbox-title{white-space:nowrap}
.source-content svg:not(.i){width:22px;height:22px;fill:currentColor;flex:none}
.source-content svg:not(.i) *{fill:currentColor}
.partners-news-earlier{margin-top:1em;padding:14px 16px;border:1px solid rgba(255,196,214,.45);border-radius:14px;background:rgba(255,196,214,.07)}
.partners-news-earlier a{color:var(--pink)}

/* Gallery: the club's own photographs, as Mark asked */
.partners-gallery-grid{display:grid!important;gap:8px;grid-template-columns:repeat(auto-fill,minmax(min(150px,46%),1fr))!important;margin-top:24px}
.partners-gallery-tile{display:block;aspect-ratio:1;overflow:hidden;border:1px solid var(--line);border-radius:14px;padding:0;background:#150a26}
.partners-gallery-tile .source-picture{height:100%;aspect-ratio:auto}
.partners-gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.partners-gallery-tile:hover img{transform:scale(1.04)}

/* Events */
.partners-event-board{display:grid;gap:14px;margin-top:26px}
.partners-event-month-heading,.partners-event-week-heading{grid-column:1/-1;min-width:0}
.partners-event-month-heading{margin-top:14px}
.partners-event-month-heading .partners-kicker{font-size:1.0625rem;letter-spacing:.1em;color:var(--pink);margin:0}
.partners-event-week-heading{display:flex;align-items:baseline;gap:10px;border-top:1px solid var(--line);padding-top:12px}
.partners-event-week-heading .partners-kicker{margin:0}
.partners-event-detail-card{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;border:1px solid var(--line);border-radius:var(--r);padding:18px;background:rgba(196,155,255,.05)}
.partners-event-detail-card__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px}
.partners-event-date{font:600 .9375rem/1.3 var(--display);color:var(--pink)}
.partners-event-type{font-size:.8125rem;color:var(--mist)}
.partners-event-facts{display:grid;gap:6px;margin:0}
.partners-event-facts>div{display:flex;gap:8px;flex-wrap:wrap}
.partners-event-facts dt{font-weight:700}
.partners-event-facts dd{color:var(--mist)}
.partners-event-info summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--violet-2)}
.partners-event-description{color:var(--mist)}
.partners-event-description>*+*{margin-top:.7em}
.source-content .partners-event-facts .partners-event-guest-required:has(a){position:relative;background:var(--violet-3);color:#fff;border-radius:12px;padding:12px 14px;justify-content:center;text-align:center}
.source-content .partners-event-guest-required:has(a) dt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.source-content .partners-event-guest-required:has(a) dd,.source-content .partners-event-guest-required a{color:#fff;font-weight:700;text-decoration:none}
.source-content .partners-event-guest-required a::after{content:"";position:absolute;inset:0}
.partners-event-earlier{margin-top:32px;border:1px solid var(--line);border-radius:var(--r);padding:6px 18px}
.partners-event-earlier>summary{display:block;cursor:pointer;padding:16px 0;font:600 1.125rem/1.3 var(--display);color:var(--mist)}
.partners-event-earlier[open]{padding-bottom:18px}
.partners-event-earlier .partners-event-board{margin-top:6px}

/* Forms in the page, on the dark background */
.partners-web3forms__field{display:grid;gap:6px;margin-top:14px}
.partners-web3forms__field label{font-weight:600;font-size:.9375rem}
.partners-web3forms__required{color:var(--pink)}
.partners-web3forms__help{font-size:.8125rem;color:var(--mist)}
.partners-web3forms__hp,.partners-web3forms__frame{display:none!important}
.partners-web3forms__thanks[hidden]{display:none}
.source-content input:not([type=checkbox]),.source-content select,.source-content textarea{width:100%;min-height:52px;border:1.5px solid rgba(196,155,255,.5);border-radius:12px;background:rgba(255,255,255,.06);color:var(--fg);padding:10px 14px;font:inherit}
.source-content select option{color:#190a2e}
.source-content form button[type=submit]{margin-top:16px}
.source-content form button[type=submit]:not(.btn){display:inline-flex;align-items:center;justify-content:center;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);cursor:pointer}
.mail.mail-dark{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:var(--r);background:rgba(196,155,255,.05)}
.mail.mail-dark input[type=email]{background:#fff;color:var(--ink);border-color:#fff}
.mail.mail-dark .btn{background:var(--pink);border:0;color:var(--ink)}
.mail.mail-dark .form-status{color:var(--pink)}

/* The email box closes every inner page, as on the home page */
.inner .vip{scroll-margin-top:84px}
.inner footer .logo{display:inline-flex}

@media (min-width:700px){
  .partners-proof{grid-template-columns:repeat(4,1fr)}
  .partners-event-board{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:900px){
  .partners-split,.partners-policy-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start}
}
@media (min-width:1000px){
  .in-hero{min-height:664px;display:flex;align-items:flex-end;padding-top:0}
  .in-hero.in-hero--noart{min-height:0}
  .in-hero--noart .partners-shell{padding-top:112px;padding-bottom:56px}
  /* No picture here: the note sits beside the heading, so there's no empty half. */
  .in-hero--noart .partners-hero__grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:56px;align-items:end;max-width:none}
  .in-hero--noart .partners-hero__grid>div:first-child,.in-hero--noart .partners-hero__grid>.partners-note{max-width:none;width:auto;margin-top:0}
  .in-art{position:absolute;top:64px;right:0;bottom:0;width:50%;height:auto;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 32%);mask-image:linear-gradient(90deg,transparent 0,#000 32%)}
  .in-hero .partners-shell{width:100%;margin-top:0;padding-top:128px;padding-bottom:72px}
  .partners-hero__grid>div:first-child,.partners-hero__grid>.partners-note{max-width:min(50vw,680px)}
  .in-hero--wide .in-art{width:58%;bottom:auto;height:min(calc(100% - 64px),calc(58vw * .8));-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%),linear-gradient(180deg,#000 74%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 12%),linear-gradient(180deg,#000 74%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}
  .in-hero--wide .partners-hero__grid>div:first-child,.in-hero--wide .partners-hero__grid>.partners-note{max-width:min(40vw,600px)}
}

/* A card whose picture was removed: its text sits in the middle of the card rather than leaving a blank lower half. */
.partners-image-card:not(:has(img)){display:flex;flex-direction:column;justify-content:center}

/* r16 layout corrections, 7 Nov 2026: the reviewed Partners layout proposal R2 (audit-production-c3/tablet-homepage-20261107/font-qualified-20261107/),
   applied for Mark's tablet review preview. Appended last, after the page's own CSS, as the proposal was tested.
   The gallery thumbnails (P3) are left as they are: that choice is Mark's. */


/* A. VIP panel, tablet band (homepage and the end of every inner page). Was: email form alone under the photo, heading 70-92px. */
@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}
}

/* B. VIP heading, 1000-1318px. Was: three lines at 92px, photo squeezed to 159-265px. From 1319px 92px already fits two lines. */
@media (min-width:1000px) and (max-width:1318px){
  .vip h2{font-size:clamp(2.75rem,6.6vw,5.75rem)}
}

/* H3. Homepage facilities, tablet band: five cards in two columns left the last one alone. The picture card spans the row. */
@media (min-width:700px) and (max-width:999px){
  .room.pic{grid-column:1/-1}
}

/* H4. Homepage Who's coming, 1000-1179px: the four visitor buttons wrapped to two lines. Two by two instead.
   (The tall area under the couple photo is not changed: the photo is position:sticky by design and travels with the price list.) */
@media (min-width:1000px) and (max-width:1179px){
  .who{grid-template-columns:repeat(2,1fr)}
}

/* H5. Homepage Biphoria fact chips, 1000-1179px: labels wrapped to 2-3 lines in 82-101px chips. Two by two instead. */
@media (min-width:1000px) and (max-width:1179px){
  .bi-facts{grid-template-columns:repeat(2,1fr)}
}

/* P2. "Before travelling" panel on inner pages: the card style (.partners-plan) also hit the full-width section, so its border and
   rounded corners ran to both screen edges. Make it an ordinary section again. All widths, 22 pages. */
section.partners-section.partners-plan{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:clamp(44px,7vw,92px) 0}

/* P4. Orphan cards in auto-fit grids.
   - Four-card grids: never three across (3 + 1). Two by two in the band where three would fit (about 781-1045px).
   - "--two" rich grids: never more than two across, and an odd last panel spans the row (Hours price panels: 2 + 2 + 1).
   - Plain card grids with a multiple of three cards: three across from 1000px. */
@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))}
  /* Plain card grids with 3, 6 or 9 cards: three across, never 4 + 2 (Contact at 1218px and up) or 5 + 1 (1700px and up). */
  .partners-grid:not(.partners-grid--two):not(.partners-grid--four):has(>:nth-child(3n):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* P5. Two-column text sections with a short card beside long text (Events, Hours, Galleries, Contact): the card stays beside the
   text while reading, the same pattern the homepage already uses for the Who's coming photo. Static full-page captures still
   show the space; on screen the card travels with the text. */
@media (min-width:900px){
  .partners-split>.partners-card:last-child{position:sticky;top:96px}
}

/* P7. Notes (.partners-callout) touched the card or panel grid above them (Contact, Hours and 6 more pages), and on Contact the form
   heading below. Same 14px as the grid gap above; section-sized space before the form. */
.partners-grid+.partners-callout,.partners-rich--two+.partners-callout{margin-top:14px}
.partners-callout+.partners-form-panel{margin-top:clamp(28px,4vw,44px)}

/* r17, 7 Nov 2026. Mark, after r16: "I have told one of your past chats that the email comes first the WhatsApp is second!"
   (register #47 and #63). Tablet band, 700-999px, on the homepage and on every inner page's VIP panel.
   The page order was already photo, heading and list, Email Club, then WhatsApp (homeVipOrder, from r14), so keyboard and
   screen-reader users reached the Email Club first. On screen, sticky.css put WhatsApp beside the photo, above the email band.
   Now the screen follows the page order too: photo beside the heading and list, then the Email Club band, then WhatsApp.
   Phones (up to 699px) were already in this order. 1000px and up is unchanged here. Appended after layout-r16.css. */
@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}
}

/* r18, 7 Nov 2026. Email Club before WhatsApp at every width. Mark, asked whether r17's tablet fix should also cover landscape
   tablets, desktop and the phone menu: "That is what I told you before, isn't it? So why are you having to ask me that again".
   1000px and up, homepage and every inner page's VIP panel: the photo, the heading and list, then the Email Club in the right-hand
   column as before, all in one row. WhatsApp moves out of the middle column into its own band under the heading and the Email
   Club, so it reads second. The page order was already email first (homeVipOrder). Appended after layout-r17.css. */
@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}
}

/* Phone menu VIP panel: the Email Club block now comes first (menuVipOrder), then the WhatsApp button, with the
   same 16px space above it as the Email Club block has. */
.m-mail+.m-join{margin-top:16px}

/* Section gaps beyond phones (register #49; Mark to Claude, 5 Nov: "Reduce section top and bottom padding - all sections - too big").
   r13 brought the phone home to one even 68px rhythm. Tablet and desktop were still 154-192px and 272-336px between home sections.
   The same even rhythm, scaled: 80px on tablets, up to 112px on desktop, on the homepage and on every inner page's sections.
   Inner pages on phones get the home's 34px too. Nothing inside a section changes. */
@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}
}

/* r19, 7 Nov 2026. Gallery lightbox (src/gallery-lightbox.js): the larger image opens on the same page. Appended after layout-r18.css. */
.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}

/* Production only. The contact form's confirmation: same wording as the current live site, in this design. */
.partners-web3forms__thanks{margin-top:14px;padding:clamp(28px,5vw,54px);text-align:center;border:1px solid var(--line);border-radius:var(--r);background:rgba(196,155,255,.05)}
.partners-web3forms__thanks h2{margin:0 0 12px}
.partners-web3forms__thanks h2:focus{outline:none}
.partners-web3forms__thanks p{margin:0}
.partners-web3forms button:disabled{opacity:.7;cursor:progress}
.partners-web3forms__error{margin:14px 0 0;color:var(--pink);font-weight:600}
.partners-web3forms__error a{color:inherit;text-decoration:underline}
.partners-web3forms__error:focus{outline:none}
.partners-web3forms__error[hidden]{display:none}
/* Back to top on wider screens, as on the sister sites. Narrower screens have the Top control in the bottom bar. */
.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}
}
