:root{
  --bg:#0d0913;
  --bg-soft:#15101d;
  --card:#191321;
  --text:#fffafc;
  --muted:#b9adb9;
  --pink:#ff2d91;
  --pink-soft:#ff6eae;
  --purple:#8f3dff;
  --gold:#e9bf62;
  --line:rgba(255,255,255,.10);
  --white-line:rgba(255,255,255,.18);
  --radius:28px;
  --shadow:0 28px 80px rgba(0,0,0,.34);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"DM Sans",sans-serif;background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden}
body.lightbox-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}
button{font:inherit}
.container{width:min(1180px,calc(100% - 48px));margin:auto}
.page-glow{position:fixed;width:520px;height:520px;border-radius:50%;filter:blur(110px);opacity:.13;pointer-events:none;z-index:-1}
.glow-one{background:var(--pink);top:2%;right:-240px}
.glow-two{background:var(--purple);bottom:2%;left:-280px}
.site-header{position:fixed;z-index:50;top:0;left:0;width:100%;background:rgba(13,9,19,.76);backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:.3s}
.site-header.scrolled{border-bottom-color:var(--line);background:rgba(13,9,19,.92)}
.nav-wrap{height:86px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:flex;align-items:center;gap:11px}
.brand img{width:48px;height:48px;object-fit:contain}
.brand strong{display:block;font-family:"Playfair Display",serif;font-size:20px;letter-spacing:.12em;line-height:1}
.brand small{display:block;color:#bbaebc;font-size:7px;letter-spacing:.22em;margin-top:5px}
.nav{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:600}
.nav>a:not(.nav-cta){color:#d9d0da;transition:.25s}
.nav>a:not(.nav-cta):hover{color:#fff}
.nav-cta{background:linear-gradient(135deg,var(--pink),#d920ff);padding:12px 20px;border-radius:999px;box-shadow:0 10px 30px rgba(255,45,145,.22)}
.menu-toggle{display:none;border:0;background:none;width:42px;height:42px;cursor:pointer}
.menu-toggle span{display:block;width:23px;height:2px;background:#fff;margin:5px auto}
.hero{min-height:820px;position:relative;display:flex;align-items:center;padding:130px 0 90px;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 44%,rgba(143,61,255,.17),transparent 34%),radial-gradient(circle at 18% 70%,rgba(255,45,145,.09),transparent 28%);pointer-events:none}
.hero-noise{position:absolute;inset:0;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-grid{display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:80px}
.hero-copy{max-width:650px}
.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:700;color:#d8cbd7;display:flex;align-items:center;gap:10px;margin-bottom:22px}
.eyebrow>span{width:26px;height:1px;background:var(--pink);display:inline-block}
h1,h2{font-family:"Playfair Display",serif;font-weight:600;line-height:1.02;letter-spacing:-.035em}
h1{font-size:clamp(58px,7vw,92px)}
h2{font-size:clamp(42px,5vw,66px)}
em{font-style:normal;color:var(--pink-soft)}
.hero-text{max-width:570px;color:var(--muted);font-size:17px;margin:28px 0 32px}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:15px 24px;font-size:13px;font-weight:700;transition:.25s;cursor:pointer}
.btn-primary{background:linear-gradient(135deg,var(--pink),#c52dff);box-shadow:0 16px 40px rgba(255,45,145,.22)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 48px rgba(255,45,145,.3)}
.btn-ghost{border:1px solid var(--white-line);background:rgba(255,255,255,.025)}
.btn-ghost:hover{background:rgba(255,255,255,.07)}
.btn-small{padding:11px 17px;background:#fff;color:#170f1b;font-size:11px}
.hero-meta{display:flex;align-items:center;gap:20px;margin-top:55px}
.hero-meta div{display:flex;flex-direction:column}
.hero-meta strong{font-size:13px;letter-spacing:.08em}
.hero-meta span{font-size:10px;color:#8f8491;margin-top:2px}
.hero-meta i{height:30px;width:1px;background:var(--line)}
.hero-visual{position:relative;min-height:590px}
.hero-frame{position:absolute;border-radius:34px}
.frame-back{inset:20px -15px 10px 65px;border:1px solid rgba(255,255,255,.12);transform:rotate(5deg);background:linear-gradient(140deg,rgba(255,45,145,.15),rgba(143,61,255,.06))}
.frame-main{inset:0 30px 25px 0;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.15)}
.frame-main:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.7))}
.image-label{position:absolute;z-index:2;bottom:24px;left:25px}
.image-label span{font-family:"Playfair Display",serif;font-size:25px;letter-spacing:.08em}
.image-label small{display:block;color:#ddd;font-size:10px;letter-spacing:.16em;margin-top:2px}
.floating-card{position:absolute;z-index:3;right:0;bottom:10px;background:rgba(25,19,33,.9);backdrop-filter:blur(12px);border:1px solid var(--white-line);padding:17px 19px;border-radius:17px;display:flex;align-items:center;gap:12px;font-size:12px;box-shadow:var(--shadow)}
.floating-card strong{color:#fff}
.spark{color:var(--gold);font-size:24px}
.scroll-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:#847887;display:flex;align-items:center;gap:10px}
.scroll-cue span{width:28px;height:1px;background:#655c68}
.section{padding:125px 0}
.about{background:linear-gradient(180deg,transparent,rgba(255,255,255,.018))}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:center}
.about-images{height:580px;position:relative}
.about-photo{position:absolute;border-radius:28px;overflow:hidden;border:1px solid var(--white-line);box-shadow:var(--shadow)}
.about-photo.large{width:70%;height:78%;left:0;top:0}
.about-photo.small{width:48%;height:49%;right:0;bottom:0;border-color:rgba(255,45,145,.45)}
.about-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.2))}
.stamp{position:absolute;right:18%;top:18%;width:105px;height:105px;border:1px solid rgba(233,191,98,.55);border-radius:50%;background:#17101b;display:grid;place-items:center;text-align:center;font-family:"Playfair Display",serif;font-size:13px;line-height:1.05;letter-spacing:.1em;transform:rotate(12deg);box-shadow:0 12px 40px rgba(0,0,0,.35)}
.stamp span{font-family:"DM Sans",sans-serif;font-size:6px;letter-spacing:.25em;color:var(--gold)}
.about-copy>p:not(.eyebrow){color:var(--muted);font-size:15px;max-width:560px;margin:22px 0}
.about-points{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:32px 0}
.about-points div{border-top:1px solid var(--line);padding-top:12px}
.about-points b{font-size:10px;color:var(--pink);display:block;margin-bottom:6px}
.about-points span{font-size:11px;color:#ddd}
.text-link{font-size:12px;font-weight:700;border-bottom:1px solid var(--pink);padding-bottom:6px}
.text-link span{color:var(--pink);margin-left:7px}
.services{background:#100b16}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:48px}
.section-heading>p{max-width:380px;color:var(--muted);font-size:14px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.service-card{min-height:285px;padding:27px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.025);position:relative;overflow:hidden;transition:.3s}
.service-card:hover{transform:translateY(-6px);border-color:rgba(255,45,145,.35);background:rgba(255,255,255,.045)}
.service-card.featured{background:linear-gradient(145deg,rgba(255,45,145,.18),rgba(143,61,255,.06));border-color:rgba(255,45,145,.3)}
.service-number{position:absolute;top:25px;right:25px;font-size:9px;color:#756a77;letter-spacing:.1em}
.service-icon{font-size:35px;color:var(--pink);height:70px;display:flex;align-items:center}
.service-card h3{font-family:"Playfair Display",serif;font-size:28px;margin-bottom:10px}
.service-card p{color:#9e939f;font-size:12px;max-width:300px}
.service-card a{position:absolute;bottom:25px;left:27px;font-size:10px;font-weight:700;color:#e9dce7}
.service-note{padding:0;border:0;background:linear-gradient(135deg,var(--pink),#742eff);display:flex;align-items:stretch}
.service-note-inner{padding:28px;display:flex;flex-direction:column;justify-content:center}
.service-note .eyebrow{color:#fff;margin-bottom:13px}
.service-note .eyebrow>span{background:#fff}
.service-note h3{font-size:27px}
.service-note p{color:rgba(255,255,255,.8);margin-bottom:20px}
.gallery{background:#0d0913}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:13px}
.gallery-item{position:relative;border-radius:18px;overflow:hidden;background:#17111b;cursor:pointer;border:1px solid var(--line)}
.gallery-item.tall{grid-row:span 2}
.gallery-item.wide{grid-column:span 2}
.gallery-item img{transition:transform .65s}
.gallery-item:hover img{transform:scale(1.055)}
.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.75));opacity:.8}
.gallery-item figcaption{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;font-size:10px;font-weight:700;letter-spacing:.08em;display:flex;gap:10px;align-items:center}
.gallery-item figcaption span{color:var(--pink)}
.quote-section{padding:120px 0;background:linear-gradient(135deg,#1a0e1d,#0e0913)}
.quote-wrap{text-align:center;max-width:850px}
.quote-mark{font-family:"Playfair Display",serif;font-size:85px;line-height:.4;color:var(--pink)}
blockquote{font-family:"Playfair Display",serif;font-size:clamp(32px,4vw,52px);line-height:1.15;margin:20px 0 22px}
.quote-wrap p{font-size:9px;letter-spacing:.25em;color:#8d818e}
.visit{background:#110c17}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.visit-copy>p:not(.eyebrow){color:var(--muted);max-width:500px;margin:22px 0 30px}
.contact-list{display:grid;gap:16px}
.contact-list>a,.contact-list>div{display:flex;gap:14px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}
.contact-icon{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--pink);flex:none}
.contact-list small{display:block;font-size:8px;letter-spacing:.2em;color:#847985;margin-bottom:3px}
.contact-list strong{font-size:12px}
.map-card{min-height:450px;border-radius:30px;border:1px solid var(--line);position:relative;overflow:hidden;background:#17131a;display:flex;align-items:center;justify-content:center}
.map-pattern{position:absolute;inset:-50%;opacity:.5;background-image:linear-gradient(28deg,transparent 48%,rgba(255,255,255,.06) 49%,transparent 51%),linear-gradient(115deg,transparent 48%,rgba(255,255,255,.045) 49%,transparent 51%);background-size:95px 95px,130px 130px;transform:rotate(8deg)}
.map-pin{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);font-size:55px;color:var(--pink);text-shadow:0 12px 40px rgba(255,45,145,.5)}
.map-info{position:relative;z-index:2;background:rgba(13,9,19,.92);border:1px solid var(--white-line);border-radius:18px;padding:20px 22px;width:min(340px,80%);box-shadow:var(--shadow);margin-top:140px}
.map-info span{display:block;font-size:8px;color:var(--pink);letter-spacing:.18em;margin-bottom:6px}
.map-info strong{font-family:"Playfair Display",serif;font-size:23px;display:block}
.map-info small{color:#8f8491;font-size:10px}
.map-info a{display:inline-block;margin-top:15px;font-size:10px;font-weight:700;border-bottom:1px solid var(--pink);padding-bottom:3px}
.booking-strip{padding:75px 0;background:linear-gradient(100deg,#ff2d91,#8f3dff)}
.booking-inner{display:flex;justify-content:space-between;align-items:center;gap:30px}
.booking-strip .eyebrow{color:#fff}
.booking-strip .eyebrow>span{background:#fff}
.booking-strip h2{font-size:46px}
.booking-strip .btn{background:#fff;color:#170f1b;box-shadow:none}
.footer{background:#09070d;padding:40px 0 22px}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.footer-hours{display:flex;flex-direction:column;text-align:center}
.footer-hours small{font-size:8px;color:#736975;letter-spacing:.2em}
.footer-hours strong{font-size:11px;margin-top:3px}
.footer-phone{font-size:13px;font-weight:700;color:var(--pink)}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:20px;color:#625967;font-size:9px;letter-spacing:.04em}
.back-top{position:fixed;z-index:40;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;border:1px solid var(--white-line);background:#17111d;color:#fff;cursor:pointer;opacity:0;pointer-events:none;transition:.25s}
.back-top.show{opacity:1;pointer-events:auto}
.lightbox{position:fixed;z-index:100;inset:0;background:rgba(5,3,8,.96);display:flex;align-items:center;justify-content:center;padding:60px 30px;opacity:0;visibility:hidden;transition:.25s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{width:auto;max-width:min(90vw,850px);height:auto;max-height:85vh;object-fit:contain;border-radius:12px}
.lightbox p{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:11px;color:#aaa}
.lightbox-close{position:absolute;top:20px;right:25px;background:none;border:0;color:#fff;font-size:38px;cursor:pointer}
.reveal{opacity:0;transform:translateY(25px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

/* TikTok footer */
.footer-socials{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:22px;
}
.tiktok-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:12px;
  font-weight:700;
  color:#fff;
  transition:color .25s ease, transform .25s ease;
}
.tiktok-link:hover{
  color:var(--pink);
  transform:translateY(-2px);
}
.tiktok-icon{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  font-size:13px;
}

@media(max-width:1000px){
  .nav{gap:18px}
  .hero-grid{gap:40px}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:780px){
  .container{width:min(100% - 32px,620px)}
  .nav-wrap{height:76px}
  .menu-toggle{display:block}
  .nav{position:absolute;top:76px;left:16px;right:16px;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:10px;background:rgba(20,14,25,.98);border:1px solid var(--line);border-radius:18px;opacity:0;transform:translateY(-10px);pointer-events:none;transition:.25s}
  .nav.open{opacity:1;transform:none;pointer-events:auto}
  .nav>a{padding:14px 12px;border-bottom:1px solid var(--line)}
  .nav>a:last-child{border:0;text-align:center}
  .hero{min-height:auto;padding:125px 0 90px}
  .hero-grid,.about-grid,.visit-grid{grid-template-columns:1fr}
  .hero-copy{max-width:none}
  h1{font-size:58px}
  .hero-visual{min-height:500px;margin-top:15px}
  .hero-meta{flex-wrap:wrap}
  .about-images{height:480px}
  .section{padding:90px 0}
  .section-heading{display:block}
  .section-heading>p{margin-top:18px}
  .service-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:260px}
  .gallery-item.tall{grid-row:span 1}
  .gallery-item.wide{grid-column:span 2}
  .booking-inner{display:block}
  .booking-strip h2{font-size:39px;margin-bottom:25px}
  .footer-top,.footer-bottom{flex-direction:column;align-items:flex-start}.footer-socials{width:100%;justify-content:flex-start;flex-wrap:wrap}
}
@media(max-width:480px){
  .container{width:calc(100% - 28px)}
  h1{font-size:49px}
  h2{font-size:40px}
  .hero-text{font-size:15px}
  .hero-actions .btn{width:100%}
  .hero-meta{gap:12px}
  .hero-meta i{display:none}
  .hero-visual{min-height:420px}
  .frame-main{inset:0 8px 25px 0}
  .frame-back{inset:18px -5px 10px 35px}
  .floating-card{right:-2px;bottom:5px}
  .about-images{height:400px}
  .about-points{grid-template-columns:1fr}
  .about-points div{display:flex;gap:12px}
  .about-points b{margin:0}
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:390px}
  .gallery-item.wide{grid-column:auto}
  .map-card{min-height:400px}
}
