@import url('https://fonts.googleapis.com/css2?family=Belleza&display=swap');

@font-face{
  font-family:'TAN Angleton';
  src:url('fonts/TAN-Angleton-Regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'TAN Angleton';
  src:url('fonts/TAN-Angleton-Italic.woff2') format('woff2');
  font-weight:400;font-style:italic;font-display:swap;
}
@font-face{
  font-family:'Symphonie Calligraphy';
  src:url('fonts/SymphonieCalligraphy-Regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}

:root{
  --void:#0b0a0d;
  --void-2:#151217;
  --plum:#5f233d;
  --plum-light:#7c3350;
  --gold:#efd38a;
  --gold-dim:#c9ac6c;
  --teal:#274f57;
  --dusty:#8aa4ad;
  --paper:#f7f4ef;

  --font-display:'TAN Angleton', serif;
  --font-script:'Symphonie Calligraphy', cursive;
  --font-body:'Belleza', sans-serif;

  --max:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--void);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

.wrap{max-width:var(--max);margin:0 auto;padding:0 32px;position:relative;z-index:2;}

h1,h2,h3{font-family:var(--font-display);font-weight:400;margin:0;letter-spacing:.01em;}
.eyebrow{
  font-family:var(--font-script);
  font-size:28px;
  color:var(--gold);
  display:inline-block;
  margin:0 0 6px;
  line-height:1;
}
.lede{color:var(--dusty);font-size:16px;max-width:480px;line-height:1.75;}

/* ---------- starfield ---------- */
.starfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;}
.starfield span{
  position:absolute;
  background:var(--gold);
  border-radius:50%;
  opacity:.7;
  animation:twinkle 3.5s ease-in-out infinite;
}
.starfield .burst{
  position:absolute;
  background:transparent;
  border-radius:0;
  clip-path:polygon(50% 0%, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0% 50%, 39% 39%);
  background:var(--gold);
  animation:sparkle-burst 4.5s ease-in-out infinite;
}
@keyframes twinkle{
  0%,100%{opacity:.15;transform:scale(.8);}
  50%{opacity:1;transform:scale(1.3);}
}
@keyframes sparkle-burst{
  0%,100%{opacity:.2;transform:scale(.5) rotate(0deg);}
  50%{opacity:1;transform:scale(1.15) rotate(20deg);}
}
@keyframes float-y{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-18px);}
}
@media (prefers-reduced-motion:reduce){
  .starfield span, .starfield .burst{animation:none;opacity:.5;}
  .disco-photo{animation:none !important;}
  *{scroll-behavior:auto !important;}
}

/* ---------- glitter bartop divider — the signature transition motif ---------- */
.bartop{
  position:relative;
  height:72px;
  overflow:hidden;
  background:
    linear-gradient(100deg, rgba(11,10,13,.55), rgba(11,10,13,.75) 45%, rgba(11,10,13,.55)),
    url('images/stock/bokeh.jpg');
  background-size:cover;
  background-position:center 30%;
  border-top:1px solid rgba(239,211,138,.35);
  border-bottom:1px solid rgba(239,211,138,.35);
}
.bartop .starfield span{background:var(--gold);}

/* ---------- disco-ball photo accents, the signature motif ---------- */
.disco-photo{
  border-radius:50%;
  background-image:url('images/stock/discoball.jpg');
  background-size:cover;
  background-position:center;
  box-shadow:0 0 36px rgba(239,211,138,.4);
  position:relative;
  flex-shrink:0;
  animation:float-y 6s ease-in-out infinite;
}
.disco-photo.d2{animation-delay:-2s;}
.disco-photo.d3{animation-delay:-4s;}
.disco-sm{width:22px;height:22px;box-shadow:0 0 10px rgba(239,211,138,.5);}
.disco-md{width:52px;height:52px;}
.disco-lg{width:220px;height:220px;}

/* ---------- nav ---------- */
.site-nav{
  position:sticky;top:0;z-index:50;
  background:rgba(11,10,13,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(239,211,138,.18);
}
.site-nav .wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 32px;
}
.site-nav .brand img{height:44px;width:auto;}
.nav-links{display:flex;gap:34px;align-items:center;}
.nav-links a{
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--paper);
  padding-bottom:4px;
  border-bottom:1px solid transparent;
  transition:color .2s, border-color .2s;
}
.nav-links a:hover{color:var(--gold);}
.nav-links a.active{color:var(--gold);border-color:var(--gold);}
.nav-cta{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  background:var(--gold);color:var(--void);
  padding:10px 20px;border-radius:2px;
  font-family:var(--font-body);
  transition:background .2s;
}
.nav-cta:hover{background:var(--paper);}
.nav-toggle{display:none;}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:92vh;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(11,10,13,.55) 0%, rgba(11,10,13,.75) 55%, var(--void) 100%),
    radial-gradient(ellipse 90% 70% at 50% 30%, rgba(95,35,61,.35), transparent 65%),
    url('images/stock/nebula.jpg');
  background-size:cover;
  background-position:center;
}
.hero-inner{position:relative;z-index:2;padding:120px 24px 90px;}
.hero .wordmark{width:min(360px, 70vw);margin:0 auto 22px;filter:drop-shadow(0 0 40px rgba(239,211,138,.25));}
.hero .tag{font-family:var(--font-script);font-size:34px;color:var(--gold);margin:0 0 26px;}
.hero .sub{color:var(--dusty);max-width:460px;margin:0 auto 34px;font-size:15px;line-height:1.8;}
.hero-disco{margin:0 auto 30px;}
.hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

.btn{
  display:inline-block;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  padding:14px 28px;border-radius:2px;
  border:1px solid var(--gold);
  transition:background .2s,color .2s;
  position:relative;overflow:hidden;
}
.btn-solid{background:var(--gold);color:var(--void);border-color:var(--gold);}
.btn-solid:hover{background:transparent;color:var(--gold);}
.btn-line{color:var(--gold);}
.btn-line:hover{background:var(--gold);color:var(--void);}
.btn::after{
  content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent);
  transform:skewX(-20deg);
  transition:left .55s ease;
  pointer-events:none;
}
.btn:hover::after{left:120%;}

.scroll-cue{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--dusty);
  z-index:2;
}

/* ---------- coming soon signup ---------- */
.signup-form{max-width:440px;margin:0 auto;}
.signup-row{display:flex;gap:10px;}
.signup-row input[type="email"]{
  flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(239,211,138,.35);
  color:var(--paper);padding:14px 16px;font-family:var(--font-body);font-size:14px;border-radius:2px;
}
.signup-row input[type="email"]:focus{outline:2px solid var(--gold);border-color:transparent;}
.signup-row .btn{border:none;cursor:pointer;white-space:nowrap;}
.fine-print{font-size:12px;color:var(--dusty);margin:14px 0 0;}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
@media (max-width:520px){
  .signup-row{flex-direction:column;}
}

/* ---------- sections ---------- */
.section{
  padding:96px 0;position:relative;
  background:
    linear-gradient(rgba(11,10,13,.92), rgba(11,10,13,.92)),
    url('images/stock/nebula.jpg');
  background-size:cover;background-position:center;
}
.section.tight{padding:72px 0;}
.section-plum{
  background:
    linear-gradient(rgba(95,35,61,.88), rgba(95,35,61,.88)),
    url('images/stock/nebula.jpg');
  background-size:cover;background-position:center;
}
.section-teal{
  background:
    linear-gradient(rgba(39,79,87,.88), rgba(39,79,87,.88)),
    url('images/stock/nebula.jpg');
  background-size:cover;background-position:center;
}
.section-void2{background:var(--void-2);}

.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.split img{border-radius:2px;}

.bullets{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:16px;}
.bullets li{display:flex;gap:14px;align-items:flex-start;font-size:15px;color:var(--paper);}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(239,211,138,.2);
  padding:28px 26px;
  border-radius:2px;
  position:relative;overflow:hidden;
  transition:border-color .25s, transform .25s;
}
.card:hover{border-color:rgba(239,211,138,.55);transform:translateY(-4px);}
.card::before{
  content:'';position:absolute;top:0;left:-75%;width:50%;height:100%;
  background:linear-gradient(100deg, transparent, rgba(239,211,138,.16), transparent);
  transform:skewX(-20deg);
  transition:left .6s ease;
  pointer-events:none;
}
.card:hover::before{left:125%;}
.card .disco-md{margin-bottom:16px;}
.card h3{font-size:20px;margin-bottom:8px;}
.card p{color:var(--dusty);font-size:14px;margin:0;}
.card .date{
  font-family:var(--font-script);color:var(--gold);font-size:20px;display:block;margin-bottom:6px;
}
.card-rsvp{
  display:inline-block;margin-top:14px;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold);border-bottom:1px solid var(--gold-dim);padding-bottom:2px;
}
.card-rsvp:hover{color:var(--paper);border-color:var(--paper);}

.center{text-align:center;}
.section h2{font-size:clamp(28px,4vw,42px);margin-bottom:16px;}
.section .lede.center{margin:0 auto 30px;}

.cta-band{
  text-align:center;
  padding:100px 0;
  position:relative;
  overflow:hidden;
}

.filter-row{display:flex;gap:12px;flex-wrap:wrap;margin:34px 0 44px;}
.pill{
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  padding:9px 18px;border:1px solid rgba(239,211,138,.4);border-radius:20px;
  color:var(--dusty);cursor:pointer;transition:all .2s;
}
.pill.active,.pill:hover{background:var(--gold);color:var(--void);border-color:var(--gold);}

/* menu */
.menu-cat{max-width:640px;margin:0 auto 48px;}
.menu-cat h3{
  font-family:var(--font-script);color:var(--gold);font-size:26px;
  border-bottom:1px solid rgba(239,211,138,.25);padding-bottom:10px;margin-bottom:18px;
}
.menu-item{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dotted rgba(255,255,255,.12);}
.menu-item .n{font-size:15px;}
.menu-item .d{color:var(--dusty);font-size:12.5px;display:block;margin-top:3px;}
.menu-item .p{color:var(--gold);font-size:14px;white-space:nowrap;}

/* form */
.form-card{
  background:rgba(255,255,255,.04);border:1px solid rgba(239,211,138,.2);
  padding:40px;border-radius:2px;max-width:640px;margin:0 auto;
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.form-row.full{grid-template-columns:1fr;}
label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dusty);display:block;margin-bottom:6px;}
input,textarea,select{
  width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(239,211,138,.25);
  color:var(--paper);padding:12px 14px;font-family:var(--font-body);font-size:14px;border-radius:2px;
}
input:focus,textarea:focus{outline:2px solid var(--gold);border-color:transparent;}
.tier-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:36px 0 48px;}
.tier{border:1px solid rgba(239,211,138,.25);padding:30px;border-radius:2px;}
.tier h4{font-family:var(--font-display);font-size:22px;margin-bottom:10px;}
.tier p{color:var(--dusty);font-size:14px;line-height:1.7;}

/* footer */
footer{background:var(--void-2);padding:64px 0 28px;border-top:1px solid rgba(239,211,138,.15);}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:48px;}
.foot-grid img{height:70px;margin-bottom:14px;}
footer h4{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:0 0 12px;}
footer p{font-size:14px;color:var(--dusty);margin:0;line-height:1.7;}
.social-row{display:flex;gap:12px;margin-top:14px;}
.social-row a{
  width:34px;height:34px;border:1px solid rgba(239,211,138,.35);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--gold);
}
.foot-bottom{
  border-top:1px solid rgba(255,255,255,.08);padding-top:20px;
  display:flex;justify-content:space-between;font-size:12px;color:#6d6a6f;flex-wrap:wrap;gap:10px;
}

/* mobile */
@media (max-width:860px){
  .split{grid-template-columns:1fr;gap:36px;}
  .grid-3{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;gap:32px;}
  .nav-links{display:none;}
  .tier-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}
