@font-face{font-family:ArcadeDisplay;src:url('display.otf') format('opentype');font-weight:700;font-display:swap}
@font-face{font-family:ArcadeSans;src:url('body.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:ArcadeSans;src:url('body-bold.otf') format('opentype');font-weight:700;font-display:swap}
:root{--purple:#A855F7;--purple-dark:#6A0DAD;--purple-deep:#3D0070;--black:#050505;--black2:#0D0D0D;--black3:#151515;--black4:#1E1E1E;--white:#fff;--grey:#b3afb9;--wa:#25D366;--line:#ffffff19;--display:ArcadeDisplay,'Arial Narrow',Impact,sans-serif;--body:ArcadeSans,Arial,sans-serif;--gutter:clamp(22px,5vw,80px);--max:1280px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{background:var(--black);color:var(--white);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
::selection{background:var(--purple);color:#050505}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--purple);outline-offset:5px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
svg{display:block;width:24px;height:24px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.skip-link{position:fixed;top:10px;left:10px;z-index:3000;background:white;color:#050505;padding:12px 18px;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.container{width:calc(100% - var(--gutter)*2);max-width:var(--max);margin-inline:auto}
.eyebrow,.s-label,.ph-label{font-size:11px;line-height:1.6;letter-spacing:.19em;font-weight:700;text-transform:uppercase;color:var(--purple);display:flex;gap:10px;align-items:center;margin-bottom:18px}
.eyebrow::before,.s-label::before,.ph-label::before{content:'';width:22px;height:2px;background:currentColor;flex-shrink:0}
.s-title{font-family:var(--display);font-size:clamp(40px,4.9vw,68px);line-height:1.03;letter-spacing:-.015em;font-weight:700;margin-bottom:24px;text-transform:uppercase}
.s-sub{color:var(--grey);font-size:16px;line-height:1.8;max-width:660px}
.btn-p,.btn-o{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:52px;padding:15px 25px;font-size:12px;font-weight:700;letter-spacing:.03em;border-radius:4px;border:1px solid transparent;text-align:center;line-height:1.4;white-space:nowrap;transition:background .2s,transform .2s,border-color .2s}
.btn-p{background:var(--purple);color:#0b0512}
.btn-p:hover{background:#bf7afb;transform:translateY(-2px)}
.btn-o{border-color:#ffffff40;color:#fff;background:transparent}
.btn-o:hover{background:#ffffff0c;border-color:var(--purple);transform:translateY(-2px)}
.btn-p svg,.btn-o svg{width:17px;height:17px}
.link-arrow{display:inline-flex;align-items:center;gap:14px;font-size:12px;font-weight:700;color:var(--purple)}
.link-arrow span{font-size:22px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:40px}
.section-head .s-title{margin-bottom:0}
.section-head>p{color:var(--grey);max-width:310px;font-size:14px;line-height:1.7}
/* Quiet, fixed navigation. */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:#050505f5;border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
#mainNav{height:88px;display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:1440px;margin:auto;padding:0 var(--gutter);transition:height .2s}
.nav-scrolled{height:76px!important}
.nav-logo{width:172px;height:auto;max-height:62px;object-fit:contain}
.nav-links{display:flex;align-items:center;list-style:none;gap:0;flex-shrink:0}
.nav-links li+li{margin-left:28px}
.nav-links a{font-size:12px;font-weight:700;color:#c8c3cf;line-height:1.3;display:block;padding-block:14px;white-space:nowrap}
.nav-links a:hover,.nav-links a[aria-current]{color:#fff}
.nav-links a[aria-current]:not(.nav-cta){box-shadow:inset 0 -2px var(--purple)}
.nav-links a.nav-cta{background:var(--purple);color:#10091b;padding:14px 22px;border-radius:4px;margin-left:8px}
.nav-links a.nav-cta:hover{background:#bf7afb}
.hamburger{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:4px;background:none;align-items:center;justify-content:center;gap:5px;flex-direction:column;color:#fff}
.hamburger span{width:20px;height:2px;background:currentColor;transition:transform .2s,opacity .2s}
.hamburger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}
.hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* Homepage opening. */
#home{padding-top:88px;background:var(--black);position:relative}
.hero-inner{display:grid;grid-template-columns:1.08fr 1fr;gap:64px;align-items:center;padding-block:56px 52px}
.h-eye{font-size:11px;color:var(--grey);letter-spacing:.11em;text-transform:uppercase;line-height:1.7;display:flex;align-items:center;gap:10px;margin-bottom:22px}
.h-eye::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--purple);flex-shrink:0}
.h-title{font-family:var(--display);font-size:clamp(75px,8.3vw,118px);line-height:.91;letter-spacing:-.025em;font-weight:700;margin-bottom:26px}
.h-title .h-location{display:block;font-family:var(--body);font-size:12px;letter-spacing:.16em;line-height:1.6;color:var(--purple);margin-bottom:22px}
.h-title .ac{display:block;color:var(--purple)}
.h-sub{font-size:15px;color:var(--grey);line-height:1.8;max-width:490px;margin-bottom:30px}
.h-btns{display:flex;gap:12px;flex-wrap:wrap}
.h-imgs{position:relative;min-width:0}
.hero-photo{position:relative;border-radius:8px;overflow:hidden;background:var(--black3);margin-left:10px}
.hero-photo>img{width:100%;height:560px;object-fit:cover;object-position:50% 44%}
.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,#000c)}
.hero-photo-caption{position:absolute;bottom:22px;left:24px;right:24px;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;font-size:12px;font-weight:700;letter-spacing:.04em;gap:20px}
.hero-photo-caption small{display:block;color:#d0c9d8;font-size:10px;font-weight:400;margin-top:2px}
.hero-photo-caption svg{width:34px;height:34px;color:var(--purple)}
.hero-location{position:absolute;top:22px;left:-12px;z-index:2;border-left:3px solid var(--purple);background:#080808ed;padding:11px 18px;font-size:10px;letter-spacing:.11em;text-transform:uppercase}
.hero-photo-index{position:absolute;right:20px;top:18px;z-index:2;color:#fff;font-size:11px;letter-spacing:.12em}
.h-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding:25px 0 30px;gap:24px}
.h-stats>div{display:flex;align-items:center;gap:18px}
.h-stats>div+div{border-left:1px solid var(--line);padding-left:30px}
.h-stat-n{font-family:var(--display);font-size:42px;line-height:1;color:white;white-space:nowrap}
.h-stat-l{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);max-width:145px;line-height:1.6}
.brand-ribbon{background:var(--purple);color:#160925;padding:14px var(--gutter);display:flex;justify-content:center;gap:42px;overflow:hidden;font-family:var(--display);font-size:23px;line-height:1.1;letter-spacing:.04em}
.brand-ribbon span{white-space:nowrap}
.brand-ribbon i{font-style:normal;color:var(--purple-deep)}
/* Real space, real members. */
#about{padding:105px 0;background:var(--black2)}
.about-wrap{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.about-photos{position:relative;display:grid;grid-template-columns:1fr .66fr;gap:14px;align-items:start;min-height:480px}
.about-photos .ap1{width:100%;height:440px;object-fit:cover;object-position:50% 27%;border-radius:6px}
.about-photos .ap2{width:100%;height:300px;object-fit:cover;object-position:50% 50%;border-radius:6px;margin-top:74px}
.about-photos .ap3{width:132px;height:150px;object-fit:cover;position:absolute;bottom:-6px;left:30px;border:6px solid var(--black2);border-radius:6px}
.ap-badge{position:absolute;right:4px;bottom:16px;display:flex;align-items:center;gap:10px;background:var(--black2);padding:12px 16px;border-left:2px solid var(--purple)}
.ap-badge .num{font-family:var(--display);font-size:38px;line-height:1;color:var(--purple)}
.ap-badge .txt{font-size:10px;letter-spacing:.12em;text-transform:uppercase;max-width:60px}
.af{display:flex;gap:18px;margin-top:20px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--line)}
.af:last-of-type{border:0}
.af-ic{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--purple);width:36px;height:36px}
.af h3{font-size:15px;line-height:1.4;margin-bottom:5px}
.af p{font-size:13px;line-height:1.6;color:var(--grey)}
/* Services use photography rather than decorative emoji. */
#services{padding:104px 0}
.svc-header{margin-bottom:42px}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc-card{display:flex;flex-direction:column;position:relative;overflow:hidden;border-radius:6px;background:var(--black3);border:1px solid var(--line);transition:border-color .2s,transform .2s}
.svc-card:hover{border-color:#a855f799;transform:translateY(-4px)}
.svc-card:first-child{grid-column:span 2}
.svc-photo{position:relative;overflow:hidden;height:225px}
.svc-photo img{height:100%;width:100%;object-fit:cover;object-position:50% 50%;transition:transform .4s}
.svc-card:first-child .svc-photo img{object-position:50% 47%}
.svc-card:hover .svc-photo img{transform:scale(1.035)}
.svc-num{position:absolute;top:16px;left:20px;color:#fff;font-size:11px;letter-spacing:.12em;background:#050505aa;padding:5px 8px;border-radius:3px}
.svc-content{padding:25px;display:flex;flex-direction:column;flex-grow:1}
.svc-name{font-family:var(--display);font-size:30px;line-height:1.1;letter-spacing:.01em;margin-bottom:12px}
.svc-desc{color:var(--grey);font-size:13px;line-height:1.7;margin-bottom:20px;max-width:520px}
.svc-arr{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--purple);font-weight:700;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.svc-arr span{font-size:22px;font-weight:400}
.class-band{padding:0 0 105px}
.class-band-inner{display:grid;grid-template-columns:.78fr 1fr;border:1px solid #a855f733;border-radius:6px;background:var(--black2);overflow:hidden}
.class-band figure{min-height:430px;overflow:hidden;position:relative}
.class-band figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%}
.class-band-content{padding:48px}
.class-band .s-title{font-size:48px}
.class-times{display:grid;grid-template-columns:1fr 1fr;gap:25px;border-block:1px solid var(--line);margin-block:25px;padding-block:22px}
.class-times small{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--purple);display:block;margin-bottom:10px}
.class-times strong{font-family:var(--display);font-size:29px;line-height:1;display:block;white-space:nowrap}
.class-times p{font-size:11px;color:var(--grey);margin-top:7px}
/* Membership comparison. */
#pricing{background:var(--black2);padding:100px 0}
.pricing-header{display:grid;grid-template-columns:1fr .65fr;gap:55px;align-items:end;margin-bottom:50px}
.pricing-header .s-title{margin:0;max-width:650px}
.pricing-header .s-sub{font-size:14px}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.price-card{padding:30px;position:relative;background:var(--black3);border:1px solid var(--line);border-radius:6px;display:flex;flex-direction:column}
.price-card.featured{border-color:var(--purple);background:#21112d}
.price-badge{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--purple);display:block;margin-bottom:15px;min-height:15px}
.price-name{font-size:14px;font-weight:700;margin-bottom:18px}
.price-cost{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.price-amount{font-family:var(--display);font-size:52px;line-height:1;letter-spacing:-.02em;color:#fff}
.price-period{font-size:11px;color:var(--grey);margin:0}
.price-desc{font-size:13px;color:var(--grey);margin-block:22px;line-height:1.75;flex-grow:1;min-height:46px}
.price-included{font-size:11px;color:#d0c4da;padding-top:17px;border-top:1px solid var(--line);margin-bottom:22px;display:flex;gap:9px;align-items:flex-start}
.price-included span{color:var(--purple)}
.price-card .btn-p,.price-card .btn-o{width:100%;min-height:46px}
.pricing-note{font-size:13px;line-height:1.8;color:var(--grey);border-left:2px solid var(--purple);padding-left:20px;margin-top:30px}
/* Facility gallery and accessible lightbox. */
#gallery{padding:100px 0}
.gal-header{margin-bottom:38px}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.gi{position:relative;overflow:hidden;border-radius:5px;background:var(--black3);border:1px solid var(--line)}
.gi button{display:block;width:100%;border:0;background:none;color:inherit;text-align:left}
.gi img{width:100%;height:330px;object-fit:cover;transition:transform .4s}
.gi:hover img{transform:scale(1.025)}
.gi-ov{padding:16px 19px;display:flex;align-items:center;justify-content:space-between;background:var(--black3)}
.gi-ov span{font-size:11px;letter-spacing:.06em;font-weight:700}
.gi-ov svg{width:17px;height:17px;color:var(--purple)}
.gallery-dialog{width:min(920px,calc(100% - 30px));max-height:94dvh;background:#0b0b0b;color:white;border:1px solid var(--line);border-radius:6px;margin:auto;padding:48px 22px 20px;overflow:auto}
.gallery-dialog::backdrop{background:#000e}
.gallery-dialog:not([open]){display:none}
.gallery-dialog img{max-height:76dvh;max-width:100%;width:auto;height:auto;margin:auto;object-fit:contain}
.gallery-dialog p{font-size:12px;color:var(--grey);text-align:center;margin-top:16px}
.gallery-close{position:absolute;right:12px;top:9px;width:36px;height:36px;background:var(--black3);border:1px solid var(--line);border-radius:4px;color:white;display:grid;place-items:center;font-size:24px}
/* Editorial community video. */
#video{padding:0 0 100px}
.video-wrap{display:grid;grid-template-columns:1fr .65fr;gap:95px;align-items:center;padding:56px;background:var(--black2);border:1px solid var(--line);border-radius:6px}
.video-tag{font-size:10px;letter-spacing:.12em;color:var(--purple);margin-bottom:16px;text-transform:uppercase}
.video-frame{border-radius:5px;overflow:hidden;position:relative;background:#151515;aspect-ratio:9/15;max-height:470px}
.video-frame iframe{width:100%;height:100%;border:0}
.video-fallback{font-size:11px;color:var(--grey);text-decoration:underline;display:inline-block;margin-top:12px}
/* Member voices. */
#reviews{padding:100px 0;background:var(--black2)}
.rev-head{margin-bottom:35px;display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:end}
.rev-head .s-label{grid-column:1/-1;margin-bottom:-25px}
.rev-head .s-title{margin:0}
.info-note{color:var(--grey);font-size:12px;line-height:1.7;max-width:470px}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rev-card{border:1px solid var(--line);background:var(--black3);border-radius:6px;padding:30px;display:flex;flex-direction:column}
.quote-mark{font-family:Georgia,serif;font-size:58px;line-height:.8;color:var(--purple);display:block;margin-bottom:20px}
.rev-txt{font-size:14px;line-height:1.9;color:#dbd6e0;flex-grow:1;margin-bottom:25px}
.rev-auth{font-size:11px;font-weight:700;border-top:1px solid var(--line);padding-top:20px}
.rev-auth small{display:block;color:var(--grey);font-size:10px;font-weight:400;margin-top:4px}
/* Find us and send an enquiry. */
#hours{padding:104px 0}
.hours-wrap{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:start}
.hours-table{width:100%;border-collapse:collapse;margin-top:28px}
.h-row td{padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}
.h-time{text-align:right;font-weight:700;white-space:nowrap}
.h-day{color:var(--grey)}
.tod{color:var(--purple)}
.clist{display:flex;flex-direction:column;gap:15px;margin-top:30px}
.crow{display:flex;gap:16px;align-items:flex-start;font-size:13px;line-height:1.7;color:#d0cbd7}
.crow a:hover{color:var(--purple)}
.cico{width:22px;display:flex;align-items:center;color:var(--purple);flex-shrink:0}
.cico svg{width:19px;height:19px}
.location-photo{height:290px;width:100%;object-fit:cover;object-position:50% 27%;border-radius:6px 6px 0 0}
.map-box{height:270px;background:var(--black3);border:1px solid var(--line);border-radius:0 0 6px 6px;overflow:hidden}
.map-box iframe{width:100%;height:100%;border:0}
.location-caption{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:20px;font-size:11px;color:var(--grey)}
#contact-form{padding:100px 0;background:var(--black2)}
.cf-wrap{display:grid;grid-template-columns:.7fr 1fr;gap:90px;align-items:start}
.cf-header .s-title{max-width:320px}
.cf-header .s-sub{font-size:14px}
.contact-mini{margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}
.contact-mini a{font-family:var(--display);font-size:30px;display:block;margin-bottom:6px}
.contact-mini small{font-size:11px;color:var(--grey)}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.cf-field{display:flex;flex-direction:column;gap:10px}
.cf-field.full,.cf-submit{grid-column:1/-1}
.cf-field label{font-size:11px;color:#d2cbdc;font-weight:700}
.cf-field input,.cf-field select,.cf-field textarea{background:var(--black3);border:1px solid #ffffff24;border-radius:4px;padding:14px 15px;color:#fff;width:100%;min-width:0;font-size:14px}
.cf-field input::placeholder,.cf-field textarea::placeholder{color:#9b929f}
.cf-field select option{background:var(--black3);color:white}
.cf-field textarea{resize:vertical;min-height:115px}
.cf-submit button{width:100%}
.form-status{font-size:13px;color:#f7cefd;margin-top:12px;min-height:21px}
/* Brief spa mention. */
#arcade-spa{padding:60px 0;background:var(--black2);border-top:1px solid var(--line)}
.spa-wrap{display:grid;grid-template-columns:1fr .35fr;gap:80px;align-items:center}
.spa-wrap .s-title{font-size:40px}
.spa-wrap .s-sub{font-size:14px;margin-bottom:23px;max-width:700px}
.spa-wrap figure img{width:100%;height:235px;object-fit:cover;object-position:50% 40%;border-radius:6px}
.spa-wrap figcaption{font-size:10px;line-height:1.6;color:var(--grey);margin-top:10px}
/* Useful questions, readable answers. */
#membership-faq{padding:100px 0}
.faq-wrap{display:grid;grid-template-columns:.65fr 1fr;gap:80px;align-items:start}
.faq-wrap .s-title{font-size:52px}
.faq-items details{border-bottom:1px solid var(--line)}
.faq-items details:first-child{border-top:1px solid var(--line)}
.faq-items summary{list-style:none;padding:22px 35px 22px 0;font-size:14px;font-weight:700;position:relative;cursor:pointer}
.faq-items summary::-webkit-details-marker{display:none}
.faq-items summary::after{content:'+';position:absolute;right:0;top:15px;font-size:28px;font-weight:400;color:var(--purple)}
.faq-items details[open] summary::after{content:'−'}
.faq-items p{font-size:14px;line-height:1.8;color:var(--grey);padding:0 35px 24px 0}
/* Final invitation. */
#cta{padding:80px var(--gutter);background:var(--purple-deep);position:relative;overflow:hidden}
.cta-inner{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr .6fr;gap:50px;align-items:center;position:relative;z-index:1}
#cta .s-label{color:#d5b0ff}
#cta .s-title{font-size:clamp(49px,6vw,82px);margin-bottom:0}
#cta .s-sub{color:#dfcee9;font-size:14px;margin-bottom:25px}
.cta-btns{display:flex;gap:12px;flex-wrap:wrap}
.cta-btns .btn-p{background:#fff;color:var(--purple-deep)}
.cta-stamp{position:absolute;right:-15px;bottom:-68px;font-family:var(--display);font-size:280px;line-height:1;color:#ffffff07;pointer-events:none}
/* Shared footer. */
footer{padding:70px var(--gutter) 24px;background:var(--black)}
.ft-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:55px}
.ft-logo{width:180px;height:auto;margin-bottom:23px}
.ft-tag{font-size:12px;color:var(--grey);line-height:1.8;max-width:300px}
.ft-soc{display:flex;gap:9px;margin-top:20px}
.soc{width:37px;height:37px;border:1px solid var(--line);border-radius:4px;display:grid;place-items:center}
.soc svg{width:16px;height:16px}
.soc:hover{border-color:var(--purple);color:var(--purple)}
.ft-col h3,.ft-col h4{font-size:11px;margin-bottom:20px;text-transform:uppercase;letter-spacing:.09em}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.ft-col a{font-size:12px;color:var(--grey);line-height:1.6;overflow-wrap:anywhere}
.ft-col a:hover{color:var(--purple)}
.ft-bot{max-width:var(--max);margin:45px auto 0;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:45px;font-size:10px;color:#9a929f;line-height:1.8}
.ft-bot p:first-child{max-width:780px}
.ft-bot a{color:#c6b8d2}
.wa-float{position:fixed;right:24px;bottom:24px;z-index:1100;display:flex;align-items:flex-end;flex-direction:column;gap:12px}
.wa-main{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;border:1px solid #fff2;background:var(--wa);box-shadow:0 4px 20px #0007}
.wa-main svg{stroke:none;fill:white;width:27px;height:27px}
.wa-popup{display:none;gap:8px;align-items:flex-end;flex-direction:column;background:#111;padding:14px;border:1px solid var(--line);border-radius:7px;box-shadow:0 10px 40px #0008}
.wa-popup.open{display:flex}
.wa-row{display:flex;align-items:center;gap:14px}
.wa-label{font-size:12px}
.wa-ico{display:grid;place-items:center;width:34px;height:34px;color:var(--purple)}
.wa-ico.m{color:var(--wa)}
.wa-ico.m svg{stroke:none;fill:currentColor}
/* The same design system on every service, location and article. */
.page-hero{padding:145px 0 55px;background:var(--black);border-bottom:1px solid var(--line)}
.ph{max-width:var(--max);width:calc(100% - var(--gutter)*2);margin:auto;display:grid;grid-template-columns:1fr .86fr;gap:80px;align-items:center}
.ph-title{font-family:var(--display);font-weight:700;font-size:clamp(62px,6.8vw,92px);line-height:.95;letter-spacing:-.02em;margin:24px 0}
.ph-title .ac{display:block;color:var(--purple)}
.ph-sub{font-size:15px;color:var(--grey);line-height:1.8;max-width:620px}
.ph-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:27px}
.ph-visual{position:relative;border-radius:6px;overflow:hidden}
.ph-img{width:100%;height:460px;object-fit:cover;object-position:50% 43%}
.ph-caption{font-size:10px;line-height:1.6;color:#ded3e8;position:absolute;bottom:0;left:0;right:0;padding:40px 22px 18px;background:linear-gradient(transparent,#000c)}
.breadcrumbs{display:flex;gap:10px;align-items:center;font-size:11px;color:var(--grey);flex-wrap:wrap;margin-bottom:30px}
.breadcrumbs a{color:#bba2d2}
.breadcrumbs span[aria-hidden]{color:var(--purple)}
.body-section{max-width:880px;width:calc(100% - var(--gutter)*2);margin:auto;padding:72px 0 80px;font-size:16px;color:#bcb5c4;line-height:1.9}
.body-section h2{font-family:var(--display);font-size:40px;line-height:1.15;color:#fff;letter-spacing:-.01em;margin:48px 0 22px}
.body-section>h2:first-child{margin-top:0}
.body-section h3{font-size:20px;line-height:1.4;color:#eee6f6;margin:35px 0 18px}
.body-section p{margin-bottom:20px}
.body-section strong{color:#efe4fb}
.body-section a{color:#c785fc;text-decoration:underline;text-underline-offset:4px}
.body-section ul{padding-left:23px;margin-block:25px}
.body-section li{padding-left:7px;margin-bottom:10px}
.body-section img,.article-img{width:100%;height:430px;object-fit:cover;object-position:50% 45%;border-radius:6px;margin-block:35px}
.body-section .address-note{padding:25px;background:var(--black3);border-left:2px solid var(--purple);border-radius:3px}
.schedule-table{width:100%;border-collapse:collapse;margin-block:30px;border:1px solid var(--line);font-size:13px}
.schedule-table th,.schedule-table td{padding:18px 16px;text-align:left;border-bottom:1px solid var(--line)}
.schedule-table thead{background:#21122e;color:#d8b5f8}
.schedule-table tbody th{color:#fff}
.section{padding:72px 0;background:var(--black2);border-block:1px solid var(--line)}
.section-intro{max-width:var(--max);width:calc(100% - var(--gutter)*2);margin:0 auto 35px}
.section-intro .s-title{font-size:46px}
.feats{max-width:var(--max);width:calc(100% - var(--gutter)*2);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feat{padding:28px;border:1px solid var(--line);background:var(--black3);border-radius:5px}
.feat-icon{color:var(--purple);margin-bottom:20px}
.feat h3{font-size:15px;margin-bottom:10px}
.feat p{font-size:13px;line-height:1.8;color:var(--grey)}
.cta-section{padding:65px var(--gutter)}
.cta-box{max-width:var(--max);margin:auto;background:var(--purple-deep);padding:55px;border-radius:6px;display:grid;grid-template-columns:1fr .75fr;gap:20px 60px;align-items:center}
.cta-box h3{font-family:var(--display);font-size:42px;line-height:1.1;grid-column:1;max-width:670px}
.cta-box p{font-size:14px;line-height:1.8;color:#e0cdea;grid-column:1}
.cta-box-btns{display:flex;gap:12px;flex-wrap:wrap;grid-column:2;grid-row:1/3;justify-content:flex-end}
.svc-links{max-width:var(--max);width:calc(100% - var(--gutter)*2);margin:auto;padding:20px 0 80px}
.svc-links h3{font-family:var(--display);font-size:28px;margin-bottom:25px}
.svc-links .svc-grid{grid-template-columns:repeat(3,1fr);gap:14px}
.svc-link{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:4px;font-size:12px;font-weight:700;gap:15px;background:var(--black2)}
.svc-link:hover{border-color:var(--purple)}
.svc-link .arr{color:var(--purple);font-size:23px;line-height:1}
.loc-feats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:36px}
.loc-feat{display:flex;align-items:flex-start;gap:16px;padding:22px;background:var(--black3);border:1px solid var(--line);border-radius:4px}
.loc-feat-icon{color:var(--purple);padding-top:4px}
.loc-feat h4{font-size:14px;color:#fff;line-height:1.5;margin-bottom:6px}
.loc-feat p{font-size:12px;line-height:1.7;margin-bottom:0}
.text-page .ph{display:block;max-width:1000px}
.text-page .ph-title{max-width:900px}
.article-meta{font-size:11px;color:var(--grey);margin-top:25px;line-height:1.9}
.blog-grid{max-width:var(--max);width:calc(100% - var(--gutter)*2);margin:auto;padding:70px 0 100px}
.blog-card{display:grid;grid-template-columns:1fr 1fr;gap:50px;background:var(--black3);border:1px solid var(--line);border-radius:6px;padding:24px;align-items:center}
.blog-card:hover{border-color:var(--purple)}
.blog-card .thumb{height:380px;width:100%;object-fit:cover;object-position:50% 44%;border-radius:4px}
.blog-card>div{padding:15px 25px 15px 0}
.cat{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--purple);margin-bottom:20px}
.blog-card h2{font-family:var(--display);font-size:46px;line-height:1.1;margin-bottom:22px}
.blog-card p{color:var(--grey);font-size:15px;line-height:1.8}
.read{font-size:12px;color:var(--purple);margin-top:27px;font-weight:700}
.article-extra{max-width:880px;width:calc(100% - var(--gutter)*2);margin:auto;padding-top:55px}
.error-page{min-height:70vh;padding:160px var(--gutter) 100px;max-width:900px;margin:auto}
.error-page .s-title{font-size:110px;color:var(--purple)}
.error-page p{color:var(--grey);margin-bottom:30px}
.reveal{opacity:1;transform:none}
@media(min-width:1025px){.reveal{animation:soft-in .55s both;animation-timeline:view();animation-range:entry 0% entry 25%}}
@keyframes soft-in{from{opacity:.55;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:1100px){
 :root{--gutter:36px}
 .nav-links li+li{margin-left:20px}.nav-logo{width:155px}.hero-inner{gap:36px}.h-title{font-size:95px}.hero-photo>img{height:510px}
 .about-wrap{gap:48px}.about-photos{min-height:450px}.about-photos .ap1{height:410px}.about-photos .ap2{height:280px}
 .class-band-content{padding:34px}.class-times{gap:15px}.class-times strong{font-size:26px}
 .video-wrap{gap:50px;padding:40px}.cf-wrap{gap:50px}.hours-wrap{gap:48px}.ft-grid{gap:30px}.ph{gap:45px}
}
@media(max-width:900px){
 #mainNav{height:78px}.nav-scrolled{height:72px!important}.hamburger{display:flex}.nav-logo{width:158px}
 .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:#0b0b0b;border-bottom:1px solid var(--line);padding:22px var(--gutter) 28px;gap:0;max-height:calc(100dvh - 78px);overflow:auto}
 .nav-links.open{display:flex;flex-direction:column;align-items:stretch}.nav-links li+li{margin-left:0}.nav-links a{font-size:14px;padding:14px 0}.nav-links a.nav-cta{margin:12px 0 0;text-align:center;padding:15px}
 #home{padding-top:78px}.hero-inner{gap:28px;padding-block:40px}.h-title{font-size:80px}.h-sub{font-size:14px}.h-eye{font-size:10px}.hero-photo>img{height:500px}.hero-photo-caption{left:18px;right:18px}.hero-location{font-size:9px;padding:10px 13px}
 .h-btns .btn-p,.h-btns .btn-o{padding:14px 17px;font-size:11px}.h-stats>div{gap:10px}.h-stats>div+div{padding-left:20px}.h-stat-n{font-size:36px}.h-stat-l{font-size:9px}
 .brand-ribbon{gap:24px;font-size:20px}
 #about,#services,#pricing,#gallery,#hours,#contact-form,#reviews,#membership-faq{padding-block:75px}
 .about-wrap{gap:35px}.about-photos{grid-template-columns:1fr .55fr;min-height:410px}.about-photos .ap1{height:360px}.about-photos .ap2{height:240px}.about-photos .ap3{left:15px;width:110px;height:130px;bottom:-10px}.ap-badge{right:-5px;padding:10px}
 .s-title{font-size:46px}.about-wrap .s-sub{font-size:14px}.af p{font-size:12px}.af h3{font-size:14px}
 .svc-content{padding:20px}.svc-name{font-size:27px}.svc-photo{height:200px}.svc-grid{gap:16px}
 .class-band{padding-bottom:75px}.class-band-inner{grid-template-columns:.7fr 1fr}.class-band-content{padding:28px}.class-band .s-title{font-size:38px}.class-times{grid-template-columns:1fr;gap:20px}.class-times strong{font-size:28px}.class-band figure{min-height:470px}
 .price-grid{gap:16px}.price-card{padding:23px}.price-amount{font-size:45px}.pricing-header{gap:30px}.price-period{font-size:10px}
 .gal-grid{gap:14px}.gi img{height:280px}.gi-ov{padding:14px}.gi-ov span{font-size:10px}
 .video-wrap{padding:32px;gap:35px;grid-template-columns:1fr .65fr}.video-frame{max-height:410px}#video{padding-bottom:75px}
 .rev-card{padding:23px}.rev-txt{font-size:13px}.rev-grid{gap:16px}.rev-head .s-title{font-size:46px}
 .hours-wrap{gap:35px}.crow{font-size:12px}.location-photo{height:270px}.map-box{height:240px}
 .cf-wrap{grid-template-columns:.7fr 1fr;gap:40px}.cf-grid{gap:18px}.cf-header .s-title{font-size:45px}
 .spa-wrap{gap:45px;grid-template-columns:1fr .45fr}.spa-wrap .s-title{font-size:36px}.faq-wrap{gap:40px}.faq-wrap .s-title{font-size:45px}
 .cta-inner{grid-template-columns:1fr;gap:28px}#cta{padding-block:65px}.cta-inner .s-sub{max-width:620px}
 .ft-grid{grid-template-columns:1.3fr 1fr 1fr;gap:35px}.ft-grid>.ft-col:last-child{grid-column:1/-1}.ft-grid>.ft-col:last-child ul{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px 25px}.ft-bot{gap:25px}
 .ph{gap:35px;grid-template-columns:1fr .85fr}.ph-title{font-size:70px}.ph-img{height:460px}.page-hero{padding-top:130px}
 .feats{gap:16px}.feat{padding:22px}.cta-box{padding:38px;gap:20px 35px}.cta-box h3{font-size:36px}.cta-box-btns{flex-direction:column;align-items:stretch}
 .blog-card{gap:30px}.blog-card h2{font-size:38px}.blog-card .thumb{height:350px}
}
@media(max-width:680px){
 :root{--gutter:22px}
 html{scroll-padding-top:90px}body{font-size:15px}.site-header{backdrop-filter:none}#mainNav{height:74px}.nav-scrolled{height:70px!important}.nav-logo{width:149px}.hamburger{width:42px;height:42px}
 .hero-inner{grid-template-columns:1fr;gap:34px;padding-block:33px 28px}.h-eye{font-size:9px;letter-spacing:.075em;margin-bottom:18px}.h-title{font-size:clamp(74px,16vw,102px);margin-bottom:23px;line-height:.94}.h-title .h-location{font-size:10px;margin-bottom:16px;letter-spacing:.12em}.h-sub{font-size:14px;line-height:1.85;margin-bottom:25px;max-width:540px}.h-btns .btn-p,.h-btns .btn-o{min-height:49px;padding:14px 20px;font-size:11px}
 .hero-photo{margin-left:0}.hero-photo>img{height:390px;object-position:50% 49%}.hero-location{left:-7px;top:18px}.hero-photo-index{font-size:10px}.hero-photo-caption{bottom:18px}
 .h-stats{gap:12px;padding:23px 0}.h-stats>div{display:block}.h-stats>div+div{padding-left:14px}.h-stat-n{font-size:32px}.h-stat-l{font-size:8px;letter-spacing:.09em;line-height:1.6;margin-top:6px}
 .brand-ribbon{gap:20px;justify-content:flex-start;font-size:18px;padding-block:13px}
 #about,#services,#pricing,#gallery,#reviews,#hours,#contact-form,#membership-faq{padding-block:60px}.s-label,.ph-label,.eyebrow{font-size:10px;margin-bottom:15px}.s-title{font-size:43px;line-height:1.06;margin-bottom:21px}.s-sub{font-size:14px;line-height:1.85}
 .about-wrap{grid-template-columns:1fr;gap:38px}.about-photos{min-height:385px;gap:12px;grid-template-columns:1fr .7fr}.about-photos .ap1{height:350px}.about-photos .ap2{height:265px;margin-top:48px}.about-photos .ap3{width:112px;height:125px;left:14px;bottom:-5px}.ap-badge{bottom:0;right:3px}.ap-badge .num{font-size:35px}.af{gap:15px;margin-top:20px}.af h3{font-size:15px}.af p{font-size:13px}
 .section-head{display:block;margin-bottom:28px}.section-head>p{margin-top:20px;max-width:350px;font-size:13px}.section-head .s-title{margin-bottom:0}
 .svc-grid{grid-template-columns:1fr;gap:20px}.svc-card:first-child{grid-column:auto}.svc-photo{height:245px}.svc-content{padding:25px}.svc-name{font-size:30px}.svc-desc{font-size:13px}
 .class-band{padding-bottom:60px}.class-band-inner{grid-template-columns:1fr}.class-band figure{min-height:0;height:280px}.class-band figure img{object-position:50% 50%}.class-band-content{padding:28px 25px}.class-band .s-title{font-size:42px}.class-times{grid-template-columns:1fr 1fr;gap:18px}.class-times strong{font-size:24px}.class-times small{font-size:9px}
 .pricing-header{display:block;margin-bottom:30px}.pricing-header .s-sub{margin-top:23px;font-size:14px}.price-grid{grid-template-columns:1fr;gap:18px}.price-card{padding:28px}.price-amount{font-size:58px}.price-name{font-size:15px;margin-bottom:20px}.price-period{font-size:12px}.price-desc{font-size:14px;min-height:0;margin-block:23px}.price-included{font-size:12px}.price-badge{font-size:10px}.price-card .btn-p,.price-card .btn-o{min-height:49px}.pricing-note{font-size:12px;margin-top:25px}
 .gal-grid{grid-template-columns:1fr 1fr;gap:12px}.gi:first-child{grid-column:1/-1}.gi:first-child img{height:350px}.gi img{height:225px}.gi-ov{padding:12px 10px;gap:4px}.gi-ov span{font-size:9px;letter-spacing:.01em}.gi-ov svg{width:15px;height:15px}.gallery-dialog{padding-inline:12px}
 #video{padding-bottom:60px}.video-wrap{grid-template-columns:1fr;padding:28px;gap:30px}.video-frame{max-height:none;aspect-ratio:9/14;width:min(100%,360px);margin:auto}.video-tag{font-size:9px}
 .rev-head{display:block;margin-bottom:28px}.rev-head .s-label{margin-bottom:16px}.rev-head .s-title{font-size:43px}.rev-head .info-note{margin-top:20px;font-size:12px}.rev-grid{grid-template-columns:1fr;gap:18px}.rev-card{padding:28px}.rev-txt{font-size:14px;line-height:1.85}.rev-auth{font-size:12px}
 .hours-wrap{grid-template-columns:1fr;gap:38px}.h-row td{padding:13px 0;font-size:13px}.crow{font-size:13px;gap:14px}.location-photo{height:310px}.map-box{height:250px}.location-caption{font-size:10px;align-items:flex-start}
 .cf-wrap{grid-template-columns:1fr;gap:35px}.cf-header .s-title{max-width:100%;font-size:43px}.cf-header .s-sub{font-size:14px}.contact-mini{margin-top:24px;padding-top:20px}.contact-mini a{font-size:29px}.cf-grid{grid-template-columns:1fr;gap:20px}.cf-field.full,.cf-submit{grid-column:auto}.cf-field input,.cf-field select,.cf-field textarea{font-size:16px;min-height:50px}.cf-field label{font-size:12px}
 #arcade-spa{padding-block:45px}.spa-wrap{grid-template-columns:1fr .4fr;gap:20px}.spa-wrap .s-title{font-size:32px}.spa-wrap .s-sub{font-size:12px;line-height:1.8;margin-bottom:18px}.spa-wrap .s-label{font-size:8px;letter-spacing:.12em}.spa-wrap .s-label::before{width:12px}.spa-wrap figure img{height:210px}.spa-wrap figcaption{font-size:8px}.spa-wrap .btn-o{font-size:10px;padding:12px 15px;min-height:44px}
 .faq-wrap{grid-template-columns:1fr;gap:28px}.faq-wrap .s-title{font-size:43px}.faq-items summary{font-size:13px;line-height:1.6;padding:21px 30px 21px 0}.faq-items p{font-size:13px;padding-right:20px}
 #cta{padding-block:52px}.cta-inner{gap:25px}#cta .s-title{font-size:52px}#cta .s-sub{font-size:13px}.cta-btns{gap:10px}.cta-btns .btn-p,.cta-btns .btn-o{font-size:10px;padding:14px 16px}.cta-stamp{font-size:200px;bottom:-50px}
 footer{padding-block:48px 24px}.ft-grid{grid-template-columns:1fr 1fr;gap:32px 24px}.ft-grid>div:first-child{grid-column:1/-1}.ft-grid>.ft-col:last-child{grid-column:auto}.ft-grid>.ft-col:last-child ul{flex-direction:column;gap:11px}.ft-logo{width:170px;margin-bottom:17px}.ft-tag{max-width:400px;font-size:12px}.ft-col h3,.ft-col h4{font-size:10px;margin-bottom:17px}.ft-col a{font-size:11px}.ft-bot{display:block;margin-top:35px;font-size:9px}.ft-bot p+p{margin-top:15px}.wa-float{right:17px;bottom:17px}.wa-main{width:50px;height:50px}
 .page-hero{padding:112px 0 35px}.ph{grid-template-columns:1fr;gap:30px}.ph-title{font-size:clamp(49px,15.8vw,62px);margin:20px 0}.ph-sub{font-size:14px;line-height:1.8}.ph-btns .btn-p,.ph-btns .btn-o{padding:14px 17px;font-size:10px}.ph-img{height:370px;object-position:50% 45%}.breadcrumbs{margin-bottom:24px;font-size:10px}.ph-caption{font-size:9px;padding:40px 18px 15px}.body-section{padding-block:45px 50px;font-size:15px;line-height:1.9}.body-section h2{font-size:33px;margin-top:35px}.body-section h3{font-size:18px;margin-top:29px}.body-section p{margin-bottom:20px}.body-section img,.article-img{height:300px;margin-block:27px}.schedule-table{font-size:11px;line-height:1.6}.schedule-table td,.schedule-table th{padding:14px 10px}.section{padding-block:45px}.section-intro{margin-bottom:25px}.section-intro .s-title{font-size:37px}.feats{grid-template-columns:1fr 1fr;gap:13px}.feat{padding:20px 17px}.feat h3{font-size:13px}.feat p{font-size:12px;line-height:1.7}.feat-icon{margin-bottom:15px}.feat-icon svg{width:22px;height:22px}.cta-section{padding-block:45px}.cta-box{display:block;padding:30px 25px}.cta-box h3{font-size:34px;margin-bottom:20px}.cta-box p{font-size:13px}.cta-box-btns{margin-top:25px;flex-direction:row;justify-content:flex-start}.cta-box-btns .btn-p,.cta-box-btns .btn-o{font-size:10px;padding:13px 17px}.svc-links{padding-bottom:55px}.svc-links .svc-grid{grid-template-columns:1fr;gap:12px}.svc-links h3{font-size:25px}.svc-link{font-size:12px}.loc-feats{grid-template-columns:1fr;gap:14px}.loc-feat{padding:22px}.blog-grid{padding-block:45px 60px}.blog-card{grid-template-columns:1fr;gap:25px;padding:17px}.blog-card .thumb{height:270px}.blog-card>div{padding:0 10px 20px}.blog-card h2{font-size:38px}.blog-card p{font-size:14px}.text-page .ph-title{font-size:54px}.article-meta{font-size:10px}.article-extra{padding-top:30px}
}
@media(max-width:360px){:root{--gutter:18px}.h-title{font-size:70px}.h-btns{gap:9px}.h-btns .btn-p,.h-btns .btn-o{padding-inline:14px;font-size:10px}.class-times{grid-template-columns:1fr}.spa-wrap{grid-template-columns:1fr}.spa-wrap figure{display:none}.gal-grid{grid-template-columns:1fr}.gi img{height:330px}.feats{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
