:root{
  --bg:#12050f;
  --bg2:#1c0a19;
  --pink:#ff2d95;
  --hot:#ff5fb3;
  --orange:#ff8a1f;
  --gold:#ffc83d;
  --text:#fff4fa;
  --muted:#e4bfd6;
  --grad:linear-gradient(120deg,var(--pink),var(--orange) 55%,var(--gold));
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:radial-gradient(1200px 700px at 80% -10%,#4a0f3a55,transparent),radial-gradient(900px 600px at 0% 40%,#5a220a33,transparent),var(--bg);
  color:var(--text);font-family:'Poppins',system-ui,sans-serif;line-height:1.6;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
#glitter{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
main,footer,.nav{position:relative;z-index:2}

.script{font-family:'Pacifico',cursive;font-weight:400}
.glitter-text{
  background:
    radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 2px) 0 0/14px 14px,
    radial-gradient(circle at 70% 70%,#fff8 0 1px,transparent 2px) 0 0/9px 9px,
    var(--grad);
  background-size:14px 14px,9px 9px,100% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmer 3s linear infinite;
}
@keyframes shimmer{to{background-position:14px 14px,-9px 9px,0 0}}

/* nav */
.nav{position:sticky;top:0;display:flex;align-items:center;gap:1.5rem;padding:.8rem clamp(1rem,4vw,3rem);
  background:#12050fcc;backdrop-filter:blur(10px);border-bottom:1px solid #ff2d9533}
.brand{font-family:'Playfair Display',serif;font-weight:700;font-size:1.3rem;margin-right:auto}
.brand span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav nav{display:flex;gap:1.5rem;font-size:.9rem}
.nav nav a{color:var(--muted);transition:color .2s}
.nav nav a:hover{color:var(--gold)}

.btn{display:inline-block;padding:.9rem 2rem;border-radius:999px;border:0;cursor:pointer;
  font:600 1rem 'Poppins',sans-serif;color:#fff;background:var(--grad);
  box-shadow:0 0 24px #ff2d9566,0 4px 14px #0006;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 0 36px #ff8a1f99,0 6px 18px #0007}
.btn-sm{padding:.5rem 1.2rem;font-size:.85rem}
.btn-ghost{background:transparent;border:2px solid var(--hot);box-shadow:none}
.btn-block{width:100%;margin-top:1rem;font-size:1.1rem}

/* hero */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;
  max-width:1200px;margin:0 auto;padding:clamp(2rem,6vw,5rem) clamp(1rem,4vw,2rem)}
.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:.78rem;color:var(--orange);margin-bottom:1rem}
h1{display:flex;flex-direction:column;line-height:1;margin-bottom:1.5rem}
h1 .script{font-size:clamp(2.6rem,7vw,5rem);color:var(--hot);text-shadow:0 0 30px #ff2d95aa}
h1 .glitter-text{font-family:'Playfair Display',serif;font-weight:700;font-size:clamp(3.4rem,10vw,7.5rem);letter-spacing:-.02em}
.lead{font-size:1.15rem;color:var(--muted);max-width:34rem;margin-bottom:2rem}
.lead.center{margin:0 auto 2rem;text-align:center}
.cta-row{display:flex;gap:1rem;flex-wrap:wrap}
.frame{position:relative;border-radius:1.2rem;padding:5px;background:var(--grad);
  box-shadow:0 0 60px #ff2d9577,0 0 120px #ff8a1f33;transform:rotate(2deg)}
.frame img{border-radius:.9rem;width:100%;height:auto;max-height:78vh;object-fit:cover;object-position:top}
.frame::after{content:"✦";position:absolute;top:-18px;right:-10px;font-size:2.4rem;color:var(--gold);text-shadow:0 0 14px var(--orange);animation:twinkle 2s infinite}
@keyframes twinkle{50%{transform:scale(.6) rotate(25deg);opacity:.5}}

/* marquee */
.marquee{overflow:hidden;background:var(--grad);padding:.7rem 0;transform:rotate(-1deg);margin:1rem -2rem 3rem}
.track{display:flex;gap:3rem;width:max-content;animation:scroll 28s linear infinite;
  font-family:'Playfair Display',serif;font-weight:700;font-size:1.2rem;color:#2a0620}
@keyframes scroll{to{transform:translateX(-50%)}}

/* sections */
.section-title{font-family:'Playfair Display',serif;font-size:clamp(2rem,5vw,3.2rem);text-align:center;margin-bottom:1.5rem}
.section-title .script{color:var(--hot);font-size:.8em;margin-right:.2em;text-shadow:0 0 20px #ff2d9588}
.section-title.left{text-align:left}

.gallery{max-width:1300px;margin:0 auto;padding:2rem clamp(.75rem,3vw,2rem) 4rem}
.filters{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:2rem}
.chip{padding:.5rem 1.2rem;border-radius:999px;border:1.5px solid var(--hot);background:transparent;color:var(--text);
  font:500 .9rem 'Poppins',sans-serif;cursor:pointer;transition:.2s}
.chip.active,.chip:hover{background:var(--grad);border-color:transparent}
.masonry{columns:4 240px;column-gap:14px}
.tile{break-inside:avoid;margin-bottom:14px;border-radius:12px;overflow:hidden;position:relative;cursor:zoom-in;
  border:2px solid transparent;background:var(--grad) border-box;padding:0;display:block;width:100%}
.tile img{width:100%;height:auto;border-radius:10px;transition:transform .5s,filter .3s}
.tile::after{content:"";position:absolute;inset:0;border-radius:10px;opacity:0;transition:.3s;
  background:linear-gradient(to top,#ff2d9566,transparent 50%)}
.tile:hover img{transform:scale(1.05)}
.tile:hover::after{opacity:1}
.tile.hide{display:none}

.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;
  max-width:1100px;margin:0 auto;padding:3rem clamp(1rem,4vw,2rem) 5rem}
.about-photo{border-radius:1.2rem;padding:5px;background:var(--grad);transform:rotate(-2deg);box-shadow:0 0 50px #ff2d9566}
.about-photo img{border-radius:.9rem;width:100%;height:auto}
.about-text p{color:var(--muted);margin-bottom:1rem;font-size:1.05rem}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin-top:1.5rem}
.tags li{padding:.4rem 1rem;border-radius:999px;font-size:.85rem;border:1px solid var(--orange);color:var(--gold)}

/* booking */
.book{padding:3rem clamp(1rem,4vw,2rem) 6rem}
.book-card{max-width:760px;margin:0 auto;padding:clamp(1.5rem,5vw,3rem);border-radius:1.5rem;
  background:linear-gradient(var(--bg2),var(--bg2)) padding-box,var(--grad) border-box;border:3px solid transparent;
  box-shadow:0 0 80px #ff2d9544}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem;margin-bottom:1rem}
label{display:block;font-size:.85rem;font-weight:500;color:var(--muted)}
input,select,textarea{display:block;width:100%;margin-top:.35rem;padding:.8rem 1rem;border-radius:.7rem;
  border:1.5px solid #ff5fb355;background:#0c030a;color:var(--text);font:400 1rem 'Poppins',sans-serif;color-scheme:dark}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px #ff8a1f44}
input.bad,select.bad,textarea.bad{border-color:#ff4d4d}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.status{text-align:center;margin-top:1rem;min-height:1.5em;font-weight:500}
.status.ok{color:var(--gold)}
.status.err{color:#ff7a7a}

footer{text-align:center;padding:2.5rem 1rem;border-top:1px solid #ff2d9533;color:var(--muted);font-size:.85rem}
footer .brand{margin:0 0 .4rem;font-size:1.4rem}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:#0a0208f2;display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox img{max-width:90vw;max-height:90vh;border-radius:10px;box-shadow:0 0 60px #ff2d9577}
.lb-close,.lb-nav{position:absolute;background:#ff2d9533;color:#fff;border:0;cursor:pointer;border-radius:50%;
  width:3rem;height:3rem;font-size:2rem;line-height:1;transition:.2s}
.lb-close:hover,.lb-nav:hover{background:var(--pink)}
.lb-close{top:1rem;right:1rem}
.lb-nav{top:50%;transform:translateY(-50%)}
.prev{left:1rem}.next{right:1rem}

@media(max-width:800px){
  .hero,.about{grid-template-columns:1fr}
  .hero-photo{order:-1;max-width:420px;margin:0 auto}
  .hero{padding-top:1.5rem}
  .nav nav{display:none}
  .grid{grid-template-columns:1fr}
  .masonry{columns:2 140px;column-gap:10px}
  .tile{margin-bottom:10px}
  .about-photo{max-width:340px;margin:0 auto}
  .lb-nav{width:2.4rem;height:2.4rem}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
