/* StarlightSerra — minimal coming-soon, Fraunces + cursor magic */
:root{
  --ink:#12362b;
  --gold:#e8c97a;
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Inter",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family:var(--font-body);color:#fff;
  background:#101f1a;overflow:hidden;
  -webkit-font-smoothing:antialiased;
}

/* ---------- auto slideshow (desktop crops) ---------- */
.slideshow{position:fixed;inset:-24px;overflow:hidden;background:#101f1a}
.slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.8s ease;
  animation:kenburns 26s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
.slide.is-active{opacity:1}
.slide:nth-child(1){background-image:url("/assets/villa-1-desktop.jpg")}
.slide:nth-child(2){background-image:url("/assets/villa-2-desktop.jpg")}
.slide:nth-child(3){background-image:url("/assets/villa-3-desktop.jpg")}
.slide:nth-child(4){background-image:url("/assets/villa-4-desktop.jpg")}
.slide:nth-child(5){background-image:url("/assets/villa-5-desktop.jpg")}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.13)}}
.wash{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(10,25,20,.58),rgba(10,25,20,.34) 45%,rgba(10,25,20,.66)),
    radial-gradient(80% 60% at 50% 40%,transparent 40%,rgba(10,25,20,.48));
}

/* phone crops */
@media (max-width:860px){
  .slide:nth-child(1){background-image:url("/assets/villa-1-phone.jpg")}
  .slide:nth-child(2){background-image:url("/assets/villa-2-phone.jpg")}
  .slide:nth-child(3){background-image:url("/assets/villa-3-phone.jpg")}
  .slide:nth-child(4){background-image:url("/assets/villa-4-phone.jpg")}
  .slide:nth-child(5){background-image:url("/assets/villa-5-phone.jpg")}
}
@media (prefers-reduced-motion:reduce){
  .slide{animation:none}
  .reveal{animation-duration:.01s}
}

/* ---------- centered hero ---------- */
.hero{
  position:relative;z-index:1;
  min-height:100dvh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:24px;
  will-change:transform;
}
.brand{
  margin:0 0 14px;font-size:13px;font-weight:600;
  letter-spacing:.32em;text-transform:uppercase;color:var(--gold);
  text-shadow:0 2px 18px rgba(0,0,0,.5);
}
h1{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(38px,7.5vw,88px);line-height:1.08;letter-spacing:-.02em;
  margin:0 0 14px;text-shadow:0 6px 50px rgba(0,0,0,.45);
}
h1 em{font-style:italic;font-weight:400;color:var(--gold)}
#headline{cursor:default;user-select:none;-webkit-user-select:none;white-space:pre-wrap}
#headline .word{display:inline-block;white-space:nowrap}
#headline .ch{display:inline-block;will-change:transform}
#headline .ch.gold{font-style:italic;font-weight:400;color:var(--gold)}
.sub{
  margin:0 0 32px;font-size:clamp(15px,2.4vw,19px);color:rgba(255,255,255,.9);
  text-shadow:0 2px 16px rgba(0,0,0,.5);
}
.mail-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 38px;border-radius:999px;
  background:#fdfbf5;color:var(--ink);
  font-weight:600;font-size:16px;text-decoration:none;
  box-shadow:0 16px 44px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.5) inset;
  transition:transform .25s,box-shadow .25s,background .25s;
}
.mail-btn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 20px 55px rgba(0,0,0,.45),0 0 32px rgba(232,201,122,.45)}

/* staggered entrance */
.reveal{opacity:0;animation:rise 1s cubic-bezier(.2,.7,.2,1) forwards}
.d1{animation-delay:.12s}.d2{animation-delay:.28s}.d3{animation-delay:.44s}
@keyframes rise{from{opacity:0;transform:translateY(22px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}

/* ---------- cursor magic (JS adds .on on first move) ---------- */
.cursor-glow{
  position:fixed;z-index:2;left:0;top:0;width:340px;height:340px;
  margin:-170px 0 0 -170px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(232,201,122,.35),rgba(232,201,122,.08) 45%,transparent 70%);
  mix-blend-mode:screen;opacity:0;transition:opacity .6s;
  will-change:transform;
}
.cursor-glow.on{opacity:1}
.sparks{position:fixed;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.spark{
  position:absolute;width:6px;height:6px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 12px rgba(232,201,122,.9);
  animation:spark-float .9s ease-out forwards;
}
@keyframes spark-float{
  from{opacity:1;transform:translate(0,0) scale(1)}
  to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2)}
}
@media (hover:none),(pointer:coarse){
  .cursor-glow,.sparks{display:none}
}
