:root{
  --bg:#07070b;
  --panel:rgba(12,12,18,.78);
  --panel2:rgba(255,255,255,.06);
  --line:rgba(255,255,255,.10);
  --ink:#ffffff;
  --muted:rgba(255,255,255,.72);

  --pink:#ff00aa;
  --pink2:#ff5fd7;
  --pink3:#ff8fe7;
  --rose:#ffb0d9;
  --neon-pink:#ff00ff;
  --vibrant-purple:#d946ef;

  --r-xl:24px;
  --r-lg:18px;
  --r-md:14px;

  --shadow:0 22px 70px rgba(0,0,0,.55);
  --shadow2:0 14px 42px rgba(0,0,0,.40);

  --container:1160px;

  --serif:"Playfair Display", serif;
  --sans:"DM Sans", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
  --script:"Great Vibes", cursive;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  overflow-x:hidden;
  position:relative;
}
body::before{
  content:"";
  position:fixed;
  top:0;left:0;right:0;bottom:0;
  background:
    radial-gradient(circle at 20% 50%, rgba(255,0,170,.12), transparent 50%),
    radial-gradient(circle at 80% 50%, rgba(217,70,239,.10), transparent 50%);
  animation:bgPulse 8s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
@keyframes bgPulse{
  0%, 100%{opacity:.6}
  50%{opacity:1}
}
.container{width:min(92%,var(--container));margin:0 auto;position:relative;z-index:1}

/* Floating actions */
.floatActions{
  position:fixed;right:14px;bottom:14px;display:grid;gap:10px;z-index:60;
}
.fab{
  width:56px;height:56px;border-radius:18px;display:grid;place-items:center;
  text-decoration:none;font-weight:980;font-size:12px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(12px);
  color:var(--ink);
  box-shadow:var(--shadow2);
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
  animation:fabFloat 3s ease-in-out infinite;
}
@keyframes fabFloat{
  0%, 100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}
.fab:hover{
  transform:translateY(-2px) scale(1.08);
  box-shadow:var(--shadow);
  animation:none;
}
.fab--pink{
  background:linear-gradient(135deg,var(--pink3),var(--pink2),var(--pink));
  background-size:200% 200%;
  animation:fabFloat 3s ease-in-out infinite, gradientShift 4s ease infinite;
  border-color:rgba(255,0,170,.75);
  color:#1a0010;
  box-shadow:0 0 30px rgba(255,0,170,.4), var(--shadow2);
}
@keyframes gradientShift{
  0%, 100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

/* Buttons */
.btn{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:12px 16px;border-radius:999px;
  text-decoration:none;
  font-weight:980;font-size:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.06);
  color:var(--ink);
  backdrop-filter:blur(10px);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 16px 46px rgba(0,0,0,.45)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn--wide{width:100%}
.btn--ghost{background:rgba(255,255,255,.05)}
.btn--pink{
  background:linear-gradient(135deg,var(--pink3),var(--pink2),var(--pink));
  background-size:200% 200%;
  animation:gradientShift 4s ease infinite;
  border-color:rgba(255,0,170,.75);
  color:#1a0010;
  box-shadow:0 0 35px rgba(255,0,170,.35), 0 18px 55px rgba(0,0,0,.40);
}
.btn--pink:hover{
  box-shadow:0 0 45px rgba(255,0,170,.5), 0 20px 65px rgba(0,0,0,.50);
}
.btn__shine{
  position:absolute;inset:-2px;border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
  transform:translateX(-120%);opacity:0;
}
.btn--pink:hover .btn__shine{opacity:1;animation:shine 1.1s ease}
@keyframes shine{0%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

/* Hero */
.hero{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:center;
  padding:72px 0 64px;
  overflow:hidden;
}
.hero__bg{
  position:absolute;inset:0;
  background-image:
    url("images/hero.jpg");
  background-size:cover;
  background-position:center;
  filter:saturate(1.08) contrast(1.02);
  transform:scale(1.03);
}
.hero__overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(1100px 640px at 18% 32%, rgba(7,7,11,.10), rgba(7,7,11,.72) 55%, rgba(7,7,11,.92)),
    linear-gradient(to bottom, rgba(7,7,11,.08), rgba(7,7,11,.95));
}
.hero__fade{
  position:absolute;left:0;right:0;bottom:-1px;height:90px;
  background:linear-gradient(to bottom, transparent, var(--bg));
}

.hero__inner{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:18px;
  align-items:center;
}

/* cute patterns */
.pattern{
  position:absolute;z-index:0;opacity:.55;pointer-events:none;
  filter:drop-shadow(0 16px 60px rgba(0,0,0,.55));
  animation:patternFloat 6s ease-in-out infinite;
}
@keyframes patternFloat{
  0%, 100%{transform:translate(0, 0) rotate(0deg)}
  25%{transform:translate(10px, -10px) rotate(2deg)}
  50%{transform:translate(0, -20px) rotate(0deg)}
  75%{transform:translate(-10px, -10px) rotate(-2deg)}
}
.pattern--dots{
  width:560px;height:560px;left:-180px;top:-180px;
  background:
    radial-gradient(circle at 10px 10px, rgba(255,0,170,.6) 2px, transparent 2.4px);
  background-size: 28px 28px;
  mask: radial-gradient(circle at 45% 45%, rgba(0,0,0,1), rgba(0,0,0,0) 62%);
  animation:patternFloat 6s ease-in-out infinite, patternGlow 3s ease-in-out infinite;
}
@keyframes patternGlow{
  0%, 100%{opacity:.55; filter:drop-shadow(0 16px 60px rgba(255,0,170,.3))}
  50%{opacity:.75; filter:drop-shadow(0 16px 80px rgba(255,0,170,.5))}
}
.pattern--waves{
  width:620px;height:480px;right:-220px;bottom:-160px;
  background:
    repeating-linear-gradient(
      135deg,
      rgba(255,95,215,.30) 0px,
      rgba(255,95,215,.30) 10px,
      transparent 10px,
      transparent 24px
    );
  border-radius: 48px;
  mask: radial-gradient(circle at 55% 35%, rgba(0,0,0,1), rgba(0,0,0,0) 64%);
  animation:patternFloat 8s ease-in-out infinite reverse;
}

.brand{
  display:flex;align-items:center;gap:12px;margin-bottom:12px;
}
.brand__mark{
  width:44px;height:44px;border-radius:18px;
  background:linear-gradient(135deg,var(--pink3),var(--pink2),var(--pink));
  background-size:200% 200%;
  animation:gradientShift 4s ease infinite, pulse 2s ease-in-out infinite;
  box-shadow:0 0 35px rgba(255,0,170,.35), 0 18px 60px rgba(255,61,166,.22);
  border:1px solid rgba(255,0,170,.75);
}
@keyframes pulse{
  0%, 100%{transform:scale(1)}
  50%{transform:scale(1.05)}
}
.brand__name{
  font-family:var(--serif);
  font-weight:850;
  letter-spacing:-0.02em;
  font-size:18px;
}
.brand__sub{
  margin-top:2px;
  font-weight:800;
  color:rgba(255,255,255,.72);
  font-size:12.5px;
}

.pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:9px 12px;border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid var(--line);
  color:rgba(255,255,255,.78);
  font-weight:850;font-size:13px;
  backdrop-filter:blur(10px);
}
.pill__spark{
  width:10px;height:10px;border-radius:999px;
  background:linear-gradient(135deg,var(--pink3),var(--pink2),var(--pink));
  background-size:200% 200%;
  animation:gradientShift 4s ease infinite, sparkPulse 1.5s ease-in-out infinite;
  box-shadow:0 0 0 7px rgba(255,0,170,.25), 0 0 20px rgba(255,0,170,.4);
}
@keyframes sparkPulse{
  0%, 100%{
    transform:scale(1);
    box-shadow:0 0 0 7px rgba(255,0,170,.25), 0 0 20px rgba(255,0,170,.4);
  }
  50%{
    transform:scale(1.2);
    box-shadow:0 0 0 10px rgba(255,0,170,.15), 0 0 30px rgba(255,0,170,.6);
  }
}

.hero h1{
  margin:14px 0 10px;
  font-family:var(--serif);
  font-weight:850;
  font-size:clamp(40px,4.6vw,66px);
  line-height:1.02;
  letter-spacing:-0.035em;
}
.hl{
  background:linear-gradient(135deg,var(--pink3),var(--neon-pink),var(--pink));
  background-size:200% 200%;
  animation:gradientShift 3s ease infinite;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  filter:drop-shadow(0 0 12px rgba(255,0,170,.4));
}
.lead{
  margin:0 0 18px;
  color:rgba(255,255,255,.76);
  font-size:16.5px;
  max-width:60ch;
  font-weight:650;
}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}

.miniProof{
  margin-top:20px;
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:10px;
  max-width:720px;
}
.miniProof__item{
  padding:12px;border-radius:18px;
  background:rgba(255,255,255,.06);
  border:1px solid var(--line);
  backdrop-filter:blur(10px);
  box-shadow:0 14px 42px rgba(0,0,0,.35);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.miniProof__item:hover{
  transform:translateY(-4px) scale(1.03);
  box-shadow:0 0 25px rgba(255,0,170,.3), 0 18px 50px rgba(0,0,0,.45);
  border-color:rgba(255,0,170,.4);
}
.miniProof__top{font-weight:980}
.miniProof__sub{margin-top:2px;color:rgba(255,255,255,.68);font-weight:800;font-size:12px}

/* Hero card */
.hero__card .card{
  padding:18px;
  border-radius:var(--r-xl);
  background:rgba(12,12,18,.76);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--shadow);
  backdrop-filter:blur(14px);
}
.card__top{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.badge{
  font-weight:980;font-size:12px;padding:8px 10px;border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
}
.badge--pink{
  background:rgba(255,0,170,.22);
  border-color:rgba(255,0,170,.55);
  box-shadow:0 0 20px rgba(255,0,170,.25);
  animation:badgePulse 2s ease-in-out infinite;
}
@keyframes badgePulse{
  0%, 100%{transform:scale(1)}
  50%{transform:scale(1.03)}
}
.card__headline{display:flex;align-items:flex-end;gap:10px}
.script{
  font-family:var(--script);
  color:rgba(255,255,255,.86);
  font-size:36px;
  line-height:1;
  transform:translateY(4px);
}
.card h2{
  margin:0;
  font-family:var(--serif);
  letter-spacing:-0.03em;
  font-size:34px;
}
.card__p{margin:10px 0 14px;color:rgba(255,255,255,.74);font-weight:650}
.card__list{display:grid;gap:10px;margin:10px 0 14px}
.li{display:flex;gap:10px;align-items:flex-start}
.li__dot{
  width:10px;height:10px;border-radius:999px;margin-top:6px;
  background:linear-gradient(135deg,var(--pink3),var(--pink2),var(--pink));
  background-size:200% 200%;
  animation:gradientShift 4s ease infinite, dotPulse 1.8s ease-in-out infinite;
  box-shadow:0 0 0 7px rgba(255,0,170,.22), 0 0 15px rgba(255,0,170,.3);
}
@keyframes dotPulse{
  0%, 100%{transform:scale(1)}
  50%{transform:scale(1.15)}
}
.li__t{font-weight:950}
.li__s{margin-top:2px;color:rgba(255,255,255,.66);font-weight:750;font-size:12.5px}
.fine{margin-top:10px;color:rgba(255,255,255,.58);font-weight:750;font-size:12.5px}

/* Sections */
.section{padding:78px 0}
.section--soft{
  position:relative;
  background:
    radial-gradient(900px 520px at 20% 10%, rgba(255,0,170,.18), transparent 60%),
    radial-gradient(900px 520px at 80% 0%, rgba(217,70,239,.12), transparent 60%),
    var(--bg);
  border-top:1px solid rgba(255,0,170,.15);
  border-bottom:1px solid rgba(255,0,170,.15);
  overflow:hidden;
}
.section--soft::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:
    radial-gradient(circle at 30% 50%, rgba(255,0,170,.08), transparent 40%),
    radial-gradient(circle at 70% 50%, rgba(217,70,239,.06), transparent 40%);
  animation:sectionPulse 6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes sectionPulse{
  0%, 100%{opacity:.5}
  50%{opacity:1}
}
.sectionHead{text-align:center;max-width:74ch;margin:0 auto 26px}
.kicker{
  display:inline-block;
  font-weight:980;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(255,255,255,.74);
  margin-bottom:10px;
}
.sectionHead h2{
  margin:0 0 10px;
  font-family:var(--serif);
  font-weight:850;
  font-size:clamp(28px,3.2vw,44px);
  letter-spacing:-0.03em;
  animation:headingGlow 4s ease-in-out infinite;
}
@keyframes headingGlow{
  0%, 100%{
    text-shadow:0 0 10px rgba(255,0,170,.2), 0 0 20px rgba(255,0,170,.1);
  }
  50%{
    text-shadow:0 0 20px rgba(255,0,170,.35), 0 0 40px rgba(255,0,170,.2);
  }
}
.sectionHead p{margin:0;color:rgba(255,255,255,.72);font-weight:650}

/* Service cards */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.service{
  padding:18px;border-radius:var(--r-xl);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(12px);
  box-shadow:var(--shadow2);
  transition:transform .3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .3s ease, border-color .3s ease, background .3s ease;
}
.service:hover{
  transform:translateY(-8px) scale(1.02);
  box-shadow:0 0 35px rgba(255,0,170,.25), var(--shadow);
  border-color:rgba(255,0,170,.5);
  background:rgba(255,255,255,.08);
}
.service__top{display:flex;align-items:center;gap:10px}
.emoji{
  width:42px;height:42px;border-radius:18px;display:grid;place-items:center;
  background:rgba(255,0,170,.18);
  border:1px solid rgba(255,0,170,.5);
  transition:transform .3s ease, box-shadow .3s ease;
}
.service:hover .emoji{
  transform:rotate(10deg) scale(1.1);
  box-shadow:0 0 25px rgba(255,0,170,.4);
}
.service h3{margin:0;font-family:var(--serif);letter-spacing:-.01em}
.service p{margin:10px 0 12px;color:rgba(255,255,255,.70);font-weight:650}
.service ul{margin:0;padding-left:18px;color:rgba(255,255,255,.78)}
.service li{margin:7px 0;font-weight:650}

/* Gallery masonry */
.masonry{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:12px;
  grid-auto-flow: dense; /* this packs items to fill gaps */

}
.shot{
  margin:0;
  border-radius:var(--r-xl);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  box-shadow:var(--shadow2);
  position:relative;
  transform:translateY(0);
  transition:transform .4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .4s ease, border-color .4s ease;
}
.shot:hover{
  transform:translateY(-10px) scale(1.02);
  box-shadow:0 0 40px rgba(255,0,170,.3), var(--shadow);
  border-color:rgba(255,0,170,.6);
}
.shot img{
  transition:transform .4s ease, filter .4s ease;
}
.shot:hover img{
  transform:scale(1.08);
  filter:saturate(1.25) contrast(1.08) brightness(1.05);
}
.shot img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.05) contrast(1.02)}
.shot figcaption{
  position:absolute;left:12px;right:12px;bottom:12px;
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:16px;
  background:rgba(7,7,11,.62);
  border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(12px);
  font-weight:950;
}
.tag{
  font-size:12px;padding:7px 10px;border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.tag--pink{
  background:rgba(255,0,170,.25);
  border-color:rgba(255,0,170,.6);
  box-shadow:0 0 15px rgba(255,0,170,.3);
}
/* placement */
.shot{grid-column:span 4;min-height:240px}
.shot.tall{grid-row:span 2;min-height:510px}
.shot.wide{grid-column:span 8;min-height:280px}

/* CTA strip */
.ctaStrip{
  margin-top:16px;
  padding:16px;
  border-radius:var(--r-xl);
  background:linear-gradient(135deg, rgba(255,61,166,.18), rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.10);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  backdrop-filter:blur(12px);
  box-shadow:var(--shadow2);
}
.ctaStrip__title{font-family:var(--serif);font-weight:850;font-size:18px;letter-spacing:-.01em}
.ctaStrip__sub{margin-top:3px;color:rgba(255,255,255,.70);font-weight:650}
.ctaStrip__actions{display:flex;gap:10px;flex-wrap:wrap}

/* Pricing */
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.priceCard{
  padding:18px;border-radius:var(--r-xl);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:var(--shadow2);
  backdrop-filter:blur(12px);
  position:relative;
  transition:transform .3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow .3s ease, border-color .3s ease;
}
.priceCard:hover{
  transform:translateY(-6px) scale(1.02);
  box-shadow:0 0 30px rgba(255,0,170,.2), var(--shadow);
  border-color:rgba(255,0,170,.4);
}
.priceCard--featured{
  border-color:rgba(255,0,170,.6);
  box-shadow:0 0 40px rgba(255,0,170,.3), 0 26px 80px rgba(255,0,170,.18), var(--shadow2);
  transform:translateY(-6px);
  animation:featuredPulse 3s ease-in-out infinite;
}
@keyframes featuredPulse{
  0%, 100%{
    box-shadow:0 0 40px rgba(255,0,170,.3), 0 26px 80px rgba(255,0,170,.18), var(--shadow2);
  }
  50%{
    box-shadow:0 0 55px rgba(255,0,170,.45), 0 26px 80px rgba(255,0,170,.25), var(--shadow2);
  }
}
.priceCard--featured:hover{
  transform:translateY(-10px) scale(1.03);
  animation:none;
}
.ribbon{
  position:absolute;top:14px;right:14px;
  font-weight:980;font-size:12px;padding:8px 10px;border-radius:999px;
  background:linear-gradient(135deg,var(--pink3),var(--pink2),var(--pink));
  background-size:200% 200%;
  animation:gradientShift 4s ease infinite, ribbonFloat 2s ease-in-out infinite;
  border:1px solid rgba(255,0,170,.75);
  color:#1a0010;
  box-shadow:0 0 25px rgba(255,0,170,.4);
}
@keyframes ribbonFloat{
  0%, 100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-3px) rotate(2deg)}
}
.priceCard__head h3{margin:0 0 6px;font-family:var(--serif);letter-spacing:-.01em}
.priceCard__head p{margin:0 0 12px;color:rgba(255,255,255,.70);font-weight:650}
.price{
  display:flex;align-items:flex-end;gap:8px;margin:12px 0 14px;
}
.price span{font-weight:980}
.price strong{font-weight:990;font-size:44px;letter-spacing:-.03em}
.price em{font-style:normal;color:rgba(255,255,255,.66);font-weight:800;margin-bottom:8px}
.ticks{list-style:none;padding:0;margin:0 0 14px}
.ticks li{
  display:flex;gap:10px;align-items:flex-start;margin:8px 0;
  font-weight:650;color:rgba(255,255,255,.78);
}
.ticks li::before{
  content:"";width:10px;height:10px;border-radius:999px;margin-top:6px;flex:0 0 auto;
  background:linear-gradient(135deg,var(--pink3),var(--pink2),var(--pink));
  background-size:200% 200%;
  animation:gradientShift 4s ease infinite, dotPulse 1.8s ease-in-out infinite;
  box-shadow:0 0 0 7px rgba(255,0,170,.22), 0 0 15px rgba(255,0,170,.3);
}

/* Booking */
.bookingGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  align-items:stretch; /* IMPORTANT */
}

.panel{
  padding:18px;
  border-radius:var(--r-xl);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(12px);
  box-shadow:var(--shadow2);
  display:flex;
  flex-direction:column;
  height:100%;
}

.panelHead h3{margin:0 0 6px;font-family:var(--serif);letter-spacing:-.01em}
.panelHead p{margin:0 0 14px;color:rgba(255,255,255,.70);font-weight:650}

.form label{display:block;font-weight:950;font-size:13px;color:rgba(255,255,255,.86)}
.form input,.form textarea,.form select{
  width:100%;
  margin-top:8px;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(7,7,11,.45);
  color:var(--ink);
  outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.form input:focus,.form textarea:focus,.form select:focus{
  border-color:rgba(255,61,166,.55);
  box-shadow:0 0 0 7px rgba(255,61,166,.16);
}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.formEnd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.status{margin:0;color:rgba(255,255,255,.72);font-weight:900;font-size:13px}
.fine{margin:12px 0 0;color:rgba(255,255,255,.58);font-size:12.5px;font-weight:650}

/* Vibe cards */
.vibe{display:grid;gap:12px}
.vibeCard{
  padding:14px;
  border-radius:var(--r-xl);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:var(--shadow2);
}
.vibeTop{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.dot{
  width:10px;height:10px;border-radius:999px;
  background:rgba(255,255,255,.32);
  animation:dotPulse 1.8s ease-in-out infinite;
}
.dot--pink{
  background:linear-gradient(135deg,var(--pink3),var(--pink2),var(--pink));
  background-size:200% 200%;
  animation:gradientShift 4s ease infinite, dotPulse 1.8s ease-in-out infinite;
  box-shadow:0 0 15px rgba(255,0,170,.4);
}
.vibeTitle{font-weight:980}
.vibeSub{margin-top:2px;color:rgba(255,255,255,.66);font-weight:650;font-size:12.5px}
.vibeImg{
  height:150px;border-radius:18px;border:1px solid rgba(255,255,255,.10);
  background-size:cover;background-position:center;
  filter:saturate(1.06) contrast(1.02);
}
.vibeImg--b{background-image:url("images/vibe-1.jpg")}
.vibeImg--c{background-image:url("images/vibe-2.jpeg")}

.miniContact{
  margin-top:14px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px;border-radius:var(--r-xl);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:var(--shadow2);


}
.miniContact__t{font-weight:980}
.miniContact__s{margin-top:2px;color:rgba(255,255,255,.66);font-weight:650;font-size:12.5px}

/* Footer */
.footer{
  padding:26px 0;
  border-top:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.02);
}
.footer__inner{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.footer__brand{display:flex;align-items:center;gap:12px}
.footer__name{font-family:var(--serif);font-weight:850;letter-spacing:-.02em}
.footer__sub{margin-top:2px;color:rgba(255,255,255,.64);font-weight:650;font-size:12.5px}
.footer__p{margin:10px 0 0;color:rgba(255,255,255,.56);font-weight:650;font-size:12.5px}
.footer__links{display:flex;gap:14px;flex-wrap:wrap}
.footer__links a{text-decoration:none;color:rgba(255,255,255,.70);font-weight:950;font-size:13px}
.footer__links a:hover{color:#fff}

/* Reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease, transform .6s ease}
.reveal.isVisible{opacity:1;transform:translateY(0)}

/* Sparkle effect */
.sparkle{
  position:absolute;
  width:8px;
  height:8px;
  background:radial-gradient(circle, var(--pink3), var(--pink));
  border-radius:50%;
  pointer-events:none;
  animation:sparkleAnim 1s ease-out forwards;
  box-shadow:0 0 15px rgba(255,0,170,.8);
  z-index:10;
}
@keyframes sparkleAnim{
  0%{
    transform:translate(0, 0) scale(0);
    opacity:1;
  }
  100%{
    transform:translate(var(--tx, 20px), var(--ty, -30px)) scale(1.5);
    opacity:0;
  }
}

/* Cursor trail effect */
.cursor-trail{
  position:fixed;
  width:6px;
  height:6px;
  background:radial-gradient(circle, var(--pink2), transparent);
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  animation:trailFade 0.8s ease-out forwards;
  mix-blend-mode:screen;
}
@keyframes trailFade{
  0%{
    transform:scale(1);
    opacity:0.6;
  }
  100%{
    transform:scale(2);
    opacity:0;
  }
}

/* Responsive */
@media (max-width:980px){
  .hero__inner{grid-template-columns:1fr}
  .miniProof{grid-template-columns:repeat(2,1fr);max-width:520px}
  .grid3{grid-template-columns:repeat(2,1fr)}
  .pricing{grid-template-columns:1fr}
  .priceCard--featured{transform:none}
  .bookingGrid{grid-template-columns:1fr}
  .ctaStrip{flex-direction:column;align-items:stretch}
}
@media (max-width:640px){
  .grid3{grid-template-columns:1fr}
  .row{grid-template-columns:1fr}
  .masonry{grid-template-columns:1fr}
  .shot{grid-column:span 12 !important}
  .shot.tall{min-height:360px}
  .shot.wide{min-height:240px}
}
