:root {
  --bg: #07090d;
  --bg-soft: #0b0e14;
  --panel: #11131a;
  --panel-2: #151722;
  --line: rgba(255,255,255,.11);
  --line-pink: rgba(255,93,207,.28);
  --text: #f7f3f8;
  --muted: #aaa7b0;
  --pink: #ff53cf;
  --pink-2: #ee48bb;
  --violet: #b265ff;
  --lilac: #d7a4ff;
  --radius: 22px;
  --shadow: 0 22px 70px rgba(0,0,0,.42);
  --max: 1380px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 12% 0%, rgba(255,51,188,.10), transparent 26%),
    radial-gradient(circle at 96% 76%, rgba(153,71,255,.08), transparent 28%),
    var(--bg);
  color: var(--text);
  font-family: "DM Sans", system-ui, sans-serif;
  min-height: 100vh;
  overflow-x: hidden;
}
body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.container { width: min(var(--max), calc(100% - 48px)); margin: 0 auto; }

.page-glow { position: fixed; width: 520px; height: 520px; border-radius: 50%; filter: blur(95px); pointer-events: none; opacity: .14; z-index: -1; }
.page-glow-a { background: #ff2ebd; left: -260px; top: 220px; }
.page-glow-b { background: #8c5cff; right: -280px; bottom: 120px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(6,8,12,.86);
  backdrop-filter: blur(18px) saturate(1.2);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.nav-wrap { height: 86px; display: grid; grid-template-columns: 1.35fr 1fr auto; align-items: center; gap: 28px; }
.brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.brand img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px rgba(255,81,207,.55), 0 0 28px rgba(255,81,207,.18); }
.brand-copy { display: grid; min-width: 0; }
.brand-script { font-family: "Parisienne", cursive; font-size: 30px; line-height: .9; color: #ff7edc; text-shadow: 0 0 18px rgba(255,80,208,.28); white-space: nowrap; }
.brand-tag { margin-top: 7px; font-size: 9px; letter-spacing: .34em; font-weight: 700; color: #efecf0; white-space: nowrap; }
.desktop-nav { display: flex; justify-content: center; gap: 30px; }
.desktop-nav a { position: relative; font-size: 14px; font-weight: 600; color: #e6e2e7; padding: 32px 0 27px; }
.desktop-nav a::after { content:""; position:absolute; left: 0; right: 100%; bottom: 20px; height: 2px; background: linear-gradient(90deg,var(--pink),var(--lilac)); transition: .25s ease; }
.desktop-nav a:hover::after, .desktop-nav a.active::after { right: 0; }
.desktop-nav a:hover, .desktop-nav a.active { color: #fff; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 999px; min-height: 46px; padding: 0 22px; font-weight: 700; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: #0b0810; background: linear-gradient(110deg,#ff6ade 0%,#f14bc6 48%,#b960ff 100%); box-shadow: 0 12px 28px rgba(238,72,187,.23), inset 0 1px 0 rgba(255,255,255,.35); }
.btn-primary:hover { box-shadow: 0 16px 40px rgba(238,72,187,.32), 0 0 0 1px rgba(255,255,255,.15) inset; }
.btn-outline { border: 1px solid rgba(255,111,218,.72); background: rgba(13,12,18,.48); color: #fff; box-shadow: inset 0 0 24px rgba(255,73,197,.05); }
.btn-outline:hover { border-color: #ff75dc; background: rgba(255,75,196,.09); }
.btn-lg { min-height: 54px; padding: 0 28px; }
.btn-sm { min-height: 42px; padding: 0 18px; font-size: 13px; }
.arrow { font-size: 19px; }
.icon-calendar { width: 16px; height: 16px; border: 2px solid currentColor; border-radius: 3px; position: relative; display: inline-block; }
.icon-calendar::before, .icon-calendar::after { content:""; position:absolute; top:-4px; width:2px; height:5px; background: currentColor; border-radius: 1px; }
.icon-calendar::before { left: 3px; }.icon-calendar::after { right:3px; }
.icon-calendar { box-shadow: inset 0 5px 0 -3px currentColor; }
.mobile-toggle, .mobile-menu { display: none; }

.hero { position: relative; isolation: isolate; min-height: 590px; border-bottom: 1px solid var(--line); overflow: hidden; }
.hero::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 40% 20%, rgba(255,76,197,.12), transparent 28%); z-index:-1; }
.hero-media { position:absolute; inset:0 0 0 44%; z-index:-2; overflow:hidden; }
.hero-media img { width:100%; height:100%; object-fit: cover; object-position:center; filter:saturate(1.04) contrast(1.04) brightness(.82); }
.hero-media-shade { position:absolute; inset:0; background: linear-gradient(90deg, #07090d 0%, rgba(7,9,13,.88) 18%, rgba(7,9,13,.28) 55%, rgba(7,9,13,.24) 100%), linear-gradient(0deg, rgba(7,9,13,.32), transparent 35%); }
.hero-grid { min-height: 590px; display:grid; grid-template-columns: 1fr 1fr; align-items:center; position:relative; }
.hero-copy { max-width: 630px; padding: 56px 0 44px; }
.eyebrow { margin: 0 0 9px; color: #f68ad9; font-size: 12px; letter-spacing: .32em; font-weight: 800; }
.eyebrow i { color:#fff; opacity:.55; font-style:normal; }
.hero h1 { margin:0; display:grid; line-height:.92; }
.hero h1 span, h2 { font-family: "Italiana", serif; font-weight:400; }
.hero h1 span { font-size: clamp(46px, 5.1vw, 76px); letter-spacing:-.035em; text-wrap: balance; }
.hero h1 em { margin-top: 2px; font-family:"Parisienne", cursive; font-weight:400; font-size: clamp(55px, 6.2vw, 92px); color:#ff70d7; text-shadow: 0 0 30px rgba(255,68,194,.24); }
.hero-text { max-width: 580px; color:#e3dfe5; font-size: 16px; line-height:1.65; margin: 17px 0 0; }
.hero-actions { display:flex; gap:14px; margin-top:26px; flex-wrap:wrap; }
.feature-row { display:flex; gap:24px; flex-wrap:wrap; margin-top:34px; }
.feature-row > div { display:flex; align-items:center; gap:8px; color:#e6e2e7; font-size:12px; font-weight:600; }
.feature-icon { color:#ff70d8; font-size:24px; line-height:1; }
.hero-note { position:absolute; right: 1%; top: 118px; display:grid; font-family:"Parisienne", cursive; font-size: 41px; line-height:.82; color:#ff75db; transform:rotate(-7deg); text-align:center; text-shadow: 0 0 26px rgba(255,71,195,.28); }
.hero-note span:nth-child(2){ margin-left:18px; }.hero-note span:nth-child(3){ margin-left:4px; }.hero-note span:nth-child(4){ margin-left:25px; }

.section { padding: 28px 0 38px; border-bottom: 1px solid rgba(255,255,255,.08); }
.section-head, .gallery-head { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:18px; }
h2 { margin:0; font-size: clamp(31px, 3.3vw, 52px); line-height:1.05; letter-spacing:-.02em; }
.section-head h2::after, .gallery-head h2::after, .review-head h2::after, .about-copy h2::after { content:""; display:block; width:70px; height:2px; margin-top:10px; background:linear-gradient(90deg,var(--pink),var(--violet)); box-shadow:0 0 14px rgba(255,78,202,.35); }
.section-side-copy { display:flex; align-items:end; gap:28px; }
.section-side-copy p { margin:0; color:var(--muted); font-size:13px; line-height:1.45; }

.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }
.service-card { min-height: 218px; position:relative; border-radius:18px; overflow:hidden; border:1px solid rgba(255,116,220,.34); background:#111; box-shadow:var(--shadow); }
.service-card img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; transition:transform .45s ease, filter .45s ease; }
.service-card:hover img { transform:scale(1.045); filter:saturate(1.08); }
.service-overlay { position:absolute; inset:0; background:linear-gradient(180deg,transparent 32%,rgba(4,5,8,.87) 100%); }
.service-copy { position:absolute; left:18px; bottom:17px; right:60px; }
.service-copy h3 { margin:0 0 3px; font-size:19px; }.service-copy p{margin:0;color:#ddd8df;font-size:12px;}
.round-arrow { position:absolute; width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,119,221,.8);display:grid;place-items:center;right:14px;bottom:14px;font-size:20px;background:rgba(10,10,15,.52);}

.gallery { padding-top: 20px; }
.gallery-head { align-items:center; }
.gallery-note, .script-sticker, .signature, .cta-script, .footer-script { font-family:"Parisienne", cursive; color:#ff77dc; text-shadow:0 0 26px rgba(255,63,191,.25); }
.gallery-note { font-size:31px; line-height:.77; transform:rotate(-5deg); margin-right:16px; }
.gallery-shell { position:relative; }
.gallery-track { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(160px,1fr); gap:10px; overflow-x:auto; scrollbar-width:none; scroll-behavior:smooth; padding:0 46px; }
.gallery-track::-webkit-scrollbar{display:none;}
.gallery-track figure { margin:0; height:132px; border-radius:10px; overflow:hidden; border:1px solid rgba(255,255,255,.12); }
.gallery-track img{width:100%;height:100%;object-fit:cover;transition:.35s ease;}.gallery-track figure:hover img{transform:scale(1.05);}
.gallery-arrow { position:absolute; z-index:3; width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:#0a0d12;top:50%;transform:translateY(-50%);cursor:pointer;font-size:28px;line-height:1;display:grid;place-items:center; }
.gallery-arrow:hover{border-color:#ff72d8;box-shadow:0 0 22px rgba(255,75,196,.18);}.gallery-prev{left:0}.gallery-next{right:0}

.about { padding:0; overflow:hidden; }
.about-grid { display:grid; grid-template-columns: 300px 1.3fr 1fr; gap:44px; align-items:center; min-height: 300px; }
.about-image { align-self:stretch; position:relative; display:flex; align-items:flex-end; }
.portrait-ring { width:240px;height:240px;border-radius:50%; overflow:hidden; border:2px solid rgba(255,92,207,.58); box-shadow: 0 0 0 14px rgba(255,67,192,.03), 0 0 55px rgba(255,67,192,.20); position:relative; left:-20px; bottom:-18px; }
.portrait-ring img{width:100%;height:100%;object-fit:cover;}
.script-sticker { position:absolute; left:155px; bottom:44px; font-size:27px; line-height:.82; transform:rotate(-8deg); }
.about-copy{padding:36px 0}.about-copy p:not(.eyebrow){color:#c9c5cc;line-height:1.65;font-size:14px;max-width:650px;margin:12px 0}.about-copy h2{font-size:42px}.signature{font-size:28px;line-height:.76;float:right;margin-right:22px;transform:rotate(-7deg)}
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.value-item { text-align:center; font-size:12px; color:#eae6ec; }
.value-icon { width:62px;height:62px;border-radius:50%;border:1px solid rgba(208,165,255,.45);display:grid;place-items:center;margin:0 auto 10px;font-size:28px;color:#f06acb;background:rgba(255,255,255,.015);box-shadow:inset 0 0 25px rgba(172,97,255,.06)}
.value-item strong{font-weight:600;line-height:1.25}

.reviews { padding-top:22px; }
.review-head { margin-bottom:18px; }
.review-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:15px; }
.review-card { background:linear-gradient(180deg,rgba(21,23,31,.85),rgba(12,14,19,.92));border:1px solid rgba(177,153,255,.20);border-radius:14px;padding:17px 18px;box-shadow:0 16px 45px rgba(0,0,0,.18); }
.review-top{display:flex;align-items:center;gap:11px}.review-top img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,115,219,.5)}.stars{color:#ff67d5;letter-spacing:2px;font-size:13px}.review-top strong{font-size:12px;color:#e4dfe6}.review-card p{margin:12px 0 0;color:#ddd8e0;font-size:13px;line-height:1.5}

.booking-cta { padding: 24px 0 12px; }
.booking-panel { position:relative; min-height:112px; padding:16px 135px 16px 205px; border:1px solid rgba(172,116,255,.20); border-radius:20px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:20px; overflow:hidden; background: radial-gradient(circle at 12% 50%, rgba(255,56,192,.17), transparent 23%), radial-gradient(circle at 90% 50%, rgba(135,71,255,.14), transparent 23%), #0e1118; }
.booking-panel::before { content:""; position:absolute; inset:0; background:url('../images/glow-texture.webp') center/cover; opacity:.06; mix-blend-mode:screen; }
.cta-script { position:absolute; left:52px; font-size:31px; line-height:.75; transform:rotate(-5deg); }.cta-center{text-align:center;position:relative}.cta-center h2{font-size:32px}.cta-center p{margin:2px 0 0;color:#bbb6c0;font-size:13px}.cta-heart{position:absolute;right:45px;font-size:75px;color:#d78aff;opacity:.48;text-shadow:0 0 25px #ad5cff;transform:rotate(8deg)}.booking-panel .btn{position:relative;z-index:2;margin-right:40px}

.site-footer { padding:20px 0 22px; background:#07090d; }
.footer-grid { display:grid;grid-template-columns:1.2fr .8fr .9fr 1.1fr .7fr;gap:24px;align-items:center; }
.footer-brand img{width:48px;height:48px;border-radius:50%}.brand-footer-line{display:flex;align-items:center;gap:10px}.brand-footer-line span{font-family:"Parisienne",cursive;color:#ff77d9;font-size:26px}.footer-brand p{font-size:8px;letter-spacing:.26em;margin:6px 0 0 59px;color:#dcd8de}.footer-contact{display:flex;align-items:center;gap:10px}.footer-contact>span{font-size:26px;color:#f567ce}.footer-contact div{display:grid}.footer-contact strong{font-size:12px}.footer-contact small{font-size:10px;color:#98949d;margin-top:3px}.footer-script{font-size:29px;line-height:.74;transform:rotate(-5deg);text-align:right}.footer-bottom{display:flex;justify-content:center;gap:25px;color:#77747c;font-size:10px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.07)}.footer-bottom i{font-style:normal;color:#ff60ce}

.booking-modal { position:fixed;inset:0;z-index:300;display:none;place-items:center;padding:24px; }
.booking-modal.open{display:grid}.booking-backdrop{position:absolute;inset:0;background:rgba(2,3,5,.78);backdrop-filter:blur(12px)}.booking-dialog{position:relative;width:min(720px,100%);border:1px solid rgba(255,92,207,.28);background:linear-gradient(180deg,#11131b,#0a0c11);border-radius:24px;padding:32px;box-shadow:0 40px 120px rgba(0,0,0,.65),0 0 70px rgba(255,55,192,.12)}.modal-close{position:absolute;right:18px;top:15px;border:0;background:transparent;color:#fff;font-size:30px;cursor:pointer}.booking-dialog h2{font-size:40px}.modal-intro{color:#aaa6ae;max-width:600px;line-height:1.55}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.booking-dialog label{display:grid;gap:8px}.booking-dialog label span{font-size:12px;color:#e8e4ea;font-weight:700}.booking-dialog input,.booking-dialog select,.booking-dialog textarea{width:100%;background:#090b10;border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#fff;outline:none;padding:13px 14px}.booking-dialog input:focus,.booking-dialog select:focus,.booking-dialog textarea:focus{border-color:rgba(255,92,207,.65);box-shadow:0 0 0 3px rgba(255,92,207,.08)}.booking-dialog option{background:#111}.full-field{margin-top:14px}.submit-booking{margin-top:18px;width:100%}.form-message{min-height:20px;margin:10px 0 0;text-align:center;color:#ff82da;font-size:13px}

.reveal { opacity:0; transform:translateY(18px); transition:opacity .65s ease, transform .65s ease; }.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.08s}.delay-2{transition-delay:.16s}.delay-3{transition-delay:.24s}

@media (max-width: 1180px) {
  .nav-wrap { grid-template-columns:1fr auto auto; }
  .desktop-nav{display:none}.mobile-toggle{display:grid;width:42px;height:42px;border:1px solid var(--line);background:#0c0f14;border-radius:12px;padding:10px;gap:4px;align-content:center;cursor:pointer}.mobile-toggle span{height:2px;background:#fff;border-radius:1px;transition:.25s}.mobile-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.mobile-toggle.open span:nth-child(2){opacity:0}.mobile-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .mobile-menu{position:absolute;top:86px;left:0;right:0;background:rgba(7,9,13,.97);border-bottom:1px solid var(--line);padding:18px 24px 24px;box-shadow:0 28px 50px rgba(0,0,0,.35)}.mobile-menu.open{display:grid;gap:7px}.mobile-menu a{padding:12px 6px;border-bottom:1px solid rgba(255,255,255,.06)}.mobile-menu .btn{margin-top:8px}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .about-grid{grid-template-columns:250px 1fr;gap:28px}.value-grid{grid-column:1/-1;padding:0 0 28px}.about-image{min-height:300px}.portrait-ring{left:0}.script-sticker{left:142px}.booking-panel{padding-left:180px;padding-right:60px}.cta-script{left:34px}.cta-heart{display:none}.booking-panel .btn{margin-right:0}.footer-grid{grid-template-columns:1.2fr 1fr 1fr}.footer-script{display:none}.footer-contact:nth-of-type(4){display:none}
}

@media (max-width: 760px) {
  .container{width:min(100% - 28px,var(--max))}.nav-wrap{height:74px;gap:12px}.brand img{width:46px;height:46px}.brand-script{font-size:23px}.brand-tag{font-size:7px;letter-spacing:.22em}.nav-book{display:none}.mobile-menu{top:74px}.hero{min-height:auto}.hero-media{inset:0;opacity:.57}.hero-media-shade{background:linear-gradient(90deg,rgba(7,9,13,.95),rgba(7,9,13,.58)),linear-gradient(0deg,#07090d 0%,transparent 55%)}.hero-grid{min-height:650px;grid-template-columns:1fr}.hero-copy{padding:54px 0 42px;align-self:end}.hero h1 span{font-size:42px}.hero h1 em{font-size:59px}.hero-text{font-size:14px}.hero-note{display:none}.feature-row{gap:15px 18px}.feature-row>div{width:calc(50% - 10px)}
  .section{padding:34px 0}.section-head,.gallery-head{align-items:flex-start;flex-direction:column}.section-side-copy{width:100%;justify-content:space-between;align-items:center}.section-side-copy p br{display:none}.service-grid{grid-template-columns:1fr}.service-card{min-height:230px}.gallery-note{position:absolute;right:20px;margin-top:-12px;font-size:26px}.gallery-head{position:relative;padding-right:85px}.gallery-track{grid-auto-columns:70%;padding:0 36px}.gallery-track figure{height:165px}
  .about-grid{grid-template-columns:1fr;gap:0;padding-top:20px}.about-image{min-height:260px;justify-content:center}.portrait-ring{width:225px;height:225px;left:-20px}.script-sticker{left:50%;transform:translateX(25px) rotate(-8deg);bottom:34px}.about-copy{padding:12px 0 28px}.about-copy h2{font-size:34px}.signature{float:none;text-align:right}.value-grid{grid-template-columns:repeat(3,1fr);gap:5px}.value-icon{width:54px;height:54px}.value-item{font-size:11px}.review-grid{grid-template-columns:1fr}.booking-panel{min-height:250px;grid-template-columns:1fr;padding:86px 20px 22px;text-align:center}.cta-script{left:50%;top:25px;transform:translateX(-50%) rotate(-4deg);white-space:nowrap;font-size:27px}.booking-panel .btn{width:100%}.footer-grid{grid-template-columns:1fr}.footer-brand{text-align:center}.brand-footer-line{justify-content:center}.footer-brand p{margin-left:0}.footer-contact{justify-content:center}.footer-bottom{flex-direction:column;gap:6px;text-align:center}.form-grid{grid-template-columns:1fr}.booking-dialog{padding:28px 20px}.booking-dialog h2{font-size:32px}
}

@media (max-width: 430px) {
  .brand-tag{display:none}.brand-script{font-size:22px}.hero h1 span{font-size:36px}.hero h1 em{font-size:53px}.hero-actions .btn{width:100%}.feature-row>div{width:100%}.section-side-copy{align-items:flex-start;flex-direction:column}.gallery-note{display:none}.gallery-head{padding-right:0}.gallery-track{grid-auto-columns:82%}.value-grid{grid-template-columns:1fr 1fr}.value-item:last-child{grid-column:1/-1}.booking-dialog{max-height:92vh;overflow:auto}
}
