:root{
  --royal-gold:#D4AF37;
  --royal-gold-light:#F2C94C;
  --royal-gold-dark:#A68420;
  --deep-black:#0A0A0A;
  --velvet-black:#0B0B0B;
  --soft-champagne:#F5E6C8;
  --ivory:#FFFFF0;
  --white:#ffffff;
  --gray-300:#D1D5DB;
  --gray-400:#9CA3AF;
  --gray-500:#6B7280;
  --gray-600:#4B5563;
  --gray-800:#1F2937;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--deep-black);
  color:var(--soft-champagne);
  font-family:"Lato",system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica,Arial;
}
a{color:inherit;text-decoration:none}

/* Scrollbar */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--deep-black)}
::-webkit-scrollbar-thumb{background:#333;border-radius:0}
::-webkit-scrollbar-thumb:hover{background:var(--royal-gold)}

.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}
.no-scrollbar::-webkit-scrollbar{display:none}

.container{max-width:1120px;margin:0 auto;padding:0 24px}
@media (min-width: 768px){.container{padding:0 48px}}

.serif{font-family:"Playfair Display",serif}

/* Helpers */
.text-gold{color:var(--royal-gold)}
.text-white{color:var(--white)}
.text-gray-400{color:var(--gray-400)}
.text-gray-500{color:var(--gray-500)}
.text-gray-600{color:var(--gray-600)}
.text-soft{color:var(--soft-champagne)}

.text-gold-gradient{
  background:linear-gradient(to right,#BF953F,#FCF6BA,#B38728,#FBF5B7,#AA771C);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* Animations (Framer replacements) */
[data-animate]{
  opacity:0;
  transform:translateY(20px);
  will-change:opacity,transform;
}
[data-animate="fade"]{transform:none}
[data-animate="scale"]{transform:scale(.95)}
[data-animate="slide-right"]{transform:translateX(50px)}
[data-animate="line-grow"]{opacity:1;transform:none;height:0;}

.is-visible[data-animate="line-grow"]{
  height:60px;
  transition:height .8s ease;
}

.is-visible[data-animate]{
  opacity:1;
  transform:none;
  transition:opacity .8s ease, transform .8s ease;
}
.is-visible[data-animate="fade"]{transition:opacity 1.2s ease}
.is-visible[data-animate="scale"]{transform:scale(1);transition:opacity .8s ease, transform .8s ease}
.is-visible[data-animate="slide-right"]{transform:translateX(0);transition:opacity .6s ease, transform .6s ease}

/* Stagger support */
.stagger > *{transition-delay: var(--delay, 0ms)}

/* Navbar */
.navbar{position:fixed;top:0;left:0;right:0;z-index:40;transition:all .7s ease;padding:32px 0;background:transparent}
.navbar.scrolled{padding:16px 0;background:rgba(10,10,10,.9);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.05)}
.nav-inner{display:flex;align-items:center;justify-content:space-between}
.brand{font-size:24px;letter-spacing:.2em;font-weight:700;cursor:pointer}
.nav-links{display:none;gap:48px}
@media (min-width:768px){.nav-links{display:flex}}
.nav-link{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gray-400);transition:color .3s ease;background:transparent;border:0;padding:0;cursor:pointer;appearance:none}
.nav-link:hover{color:var(--white)}

.btn-inquire{font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:8px 32px;border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--white);transition:all .5s ease;cursor:pointer}
.navbar.scrolled .btn-inquire{border-color:rgba(212,175,55,.5);color:var(--royal-gold)}
.btn-inquire:hover{background:var(--white);color:#000;border-color:var(--white)}

/* Hero */
.hero{position:relative;height:100vh;min-height:720px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--deep-black)}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.6;transform:scale(1.05)}
.hero-bg .layer{position:absolute;inset:0}
.hero-bg .mul{background:rgba(0,0,0,.40);mix-blend-mode:multiply}
.hero-bg .grad-t{background:linear-gradient(to top,var(--deep-black),transparent,var(--deep-black));opacity:.9}
.hero-bg .grad-r{background:linear-gradient(to right,rgba(10,10,10,.5),transparent,rgba(10,10,10,.5))}
.hero-content{position:relative;z-index:10;text-align:center;max-width:980px;padding:0 16px;margin-top:64px}
.hero-title{font-size:48px;line-height:1.05;margin:0 0 24px;color:var(--white);letter-spacing:.06em;text-shadow:0 20px 40px rgba(0,0,0,.45)}
@media (min-width:768px){.hero-title{font-size:96px}}
.hero-rule{height:1px;width:128px;background:var(--royal-gold);opacity:.7;margin:0 auto 32px}
.hero-sub{font-size:20px;line-height:1.6;margin:0 auto 48px;color:var(--soft-champagne);font-weight:300;max-width:640px;text-transform:uppercase;letter-spacing:.15em}
@media (min-width:768px){.hero-sub{font-size:30px}}
.hero-btn{position:relative;display:inline-block;min-width:300px;padding:20px 48px;background:transparent;border:1px solid rgba(212,175,55,.5);color:var(--royal-gold);font-family:"Playfair Display",serif;font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:all .5s ease}
.hero-btn:hover{background:var(--royal-gold);color:var(--deep-black);border-color:var(--royal-gold)}

/* Sections */
.section{position:relative}
.section-pad{padding:128px 0}
.section-pad-sm{padding:96px 0}
.bg-deep{background:var(--deep-black)}
.bg-velvet{background:var(--velvet-black)}
.border-top{border-top:1px solid rgba(255,255,255,.05)}
.border-bottom{border-bottom:1px solid rgba(255,255,255,.05)}

.center{text-align:center}

.h2{font-family:"Playfair Display",serif;color:var(--white);margin:0}
.h2.lg{font-size:32px}
@media (min-width:768px){.h2.lg{font-size:56px}}

.sub-ital{font-family:"Playfair Display",serif;color:var(--royal-gold);font-style:italic;font-size:20px;margin:0}
@media (min-width:768px){.sub-ital{font-size:28px}}

.body{color:var(--gray-400);font-weight:300;letter-spacing:.02em;line-height:1.9;max-width:640px;margin:0 auto}

.hr-gold{height:1px;width:96px;background:var(--royal-gold);opacity:.3;margin:64px auto 0}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:48px;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);padding:64px 0}
@media(min-width:768px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat-val{font-family:"Playfair Display",serif;color:var(--royal-gold);opacity:.9;font-size:40px;margin-bottom:16px}
@media(min-width:768px){.stat-val{font-size:64px}}
.stat-lab{color:var(--gray-500);font-size:10px;letter-spacing:.2em;text-transform:uppercase}

/* Horizontal carousels */
.carousel-wrap{position:relative}
.carousel{display:flex;overflow-x:auto;gap:24px;padding:0 16px 48px;scroll-snap-type:x mandatory;align-items:center;cursor:grab}
.carousel:active{cursor:grabbing}
@media(min-width:768px){.carousel{padding:0 10vw 48px}}

.nav-btn{display:none;position:absolute;top:50%;transform:translateY(-50%);z-index:30;width:56px;height:56px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.30);backdrop-filter:blur(12px);color:var(--white);align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}
.nav-btn:hover{background:var(--white);color:#000}
@media(min-width:768px){.nav-btn{display:flex}}
.nav-btn.left{left:32px}
.nav-btn.right{right:32px}

/* Cards */
.card{flex:0 0 auto;scroll-snap-align:center;position:relative}

.ballroom-card{min-width:85vw}
@media(min-width:768px){.ballroom-card{min-width:600px}}
@media(min-width:1024px){.ballroom-card{min-width:700px}}

.ratio-16x9{aspect-ratio:16/9;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:var(--deep-black);transition:border-color .7s ease}
.card:hover .ratio-16x9{border-color:rgba(212,175,55,.5)}
.ratio-16x9 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 2s ease-out}
.card:hover .ratio-16x9 img{transform:scale(1.05)}

.overlay-top{position:absolute;inset:0;background:rgba(0,0,0,.10);z-index:10;transition:background .7s ease}
.card:hover .overlay-top{background:transparent}

.overlay-grad{position:absolute;inset:0;background:linear-gradient(to top, #000, rgba(0,0,0,.40), transparent);z-index:20;display:flex;flex-direction:column;justify-content:flex-end;padding:24px}
@media(min-width:768px){.overlay-grad{padding:40px}}

.tier{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.tier .line{height:1px;width:32px;background:var(--royal-gold)}
.tier .label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--royal-gold)}

.card-title{font-family:"Playfair Display",serif;color:var(--white);font-size:24px;margin:0 0 8px;text-shadow:0 10px 20px rgba(0,0,0,.45)}
@media(min-width:768px){.card-title{font-size:40px;margin-bottom:16px}}

.card-desc{color:var(--gray-300);font-size:12px;line-height:1.7;font-weight:300;max-width:520px;opacity:.8}
@media(min-width:768px){.card-desc{font-size:14px;opacity:0;transition:opacity .5s ease .1s}}
@media(min-width:768px){.card:hover .card-desc{opacity:1}}

.view-dot{display:none;position:absolute;top:24px;right:24px;z-index:30;opacity:0;transition:opacity .5s ease}
@media(min-width:768px){.view-dot{display:block}}
.card:hover .view-dot{opacity:1}
.view-dot .ring{width:40px;height:40px;border-radius:999px;border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.view-dot .ring .dot{width:6px;height:6px;border-radius:999px;background:var(--royal-gold)}

/* Swipe hint */
.swipe{display:flex;justify-content:center;margin-top:-24px;padding-bottom:32px}
@media(min-width:768px){.swipe{display:none}}
.swipe .dot{width:4px;height:4px;border-radius:999px;background:var(--royal-gold);margin:0 2px}
.swipe .dot.dim{opacity:.5}

/* Archive cards */
.archive-carousel{gap:24px;padding:0 16px 48px;align-items:flex-start}
@media(min-width:768px){.archive-carousel{padding:0 64px 48px}}
.archive-card{min-width:85vw}
@media(min-width:768px){.archive-card{min-width:400px}}

.frame{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#000;transition:border-color .5s ease}
.archive-item:hover .frame{border-color:rgba(212,175,55,.6)}
.frame img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 1.5s ease-out;filter:grayscale(20%)}
.archive-item:hover .frame img{transform:scale(1.05);filter:grayscale(0%)}
.date-pill{position:absolute;top:16px;left:16px;z-index:20;background:rgba(0,0,0,.8);backdrop-filter:blur(8px);color:var(--royal-gold);font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:6px 12px;border:1px solid rgba(212,175,55,.3)}

.arch-title{color:var(--white);font-family:"Playfair Display",serif;font-size:24px;margin:0 0 8px;transition:color .3s ease}
.archive-item:hover .arch-title{color:var(--royal-gold)}
.arch-venue{color:var(--gray-500);font-size:14px;font-weight:300;letter-spacing:.08em;text-transform:uppercase}
.arch-line{height:1px;width:24px;background:rgba(255,255,255,.1);margin:16px auto 0;transition:all .5s ease}
.archive-item:hover .arch-line{width:96px;background:var(--royal-gold)}

/* Themes grid */
.grid{display:grid;gap:24px}
.themes-grid{grid-template-columns:1fr}
@media(min-width:768px){.themes-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.themes-grid{grid-template-columns:repeat(4,1fr)}}
.theme-card{height:400px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:var(--deep-black);transition:all .5s ease}
.theme-card:hover{border-color:rgba(212,175,55,.5)}
.theme-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease, filter .7s ease, opacity .7s ease;filter:grayscale(100%);opacity:.6}
.theme-card:hover img{transform:scale(1.10);filter:grayscale(0%);opacity:1}
.theme-card .shade{position:absolute;inset:0;background:linear-gradient(to top,#000,rgba(0,0,0,.80),transparent);opacity:.9;transition:opacity .5s ease}
.theme-card:hover .shade{opacity:.6}
.theme-card .content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:32px;text-align:center;z-index:10}
.theme-line{height:2px;width:48px;margin:0 auto 24px;background:var(--royal-gold);transition:all .5s ease}
.theme-card:hover .theme-line{width:96px}
.theme-title{font-family:"Playfair Display",serif;color:var(--white);font-size:20px;margin:0 0 12px;transition:color .3s ease}
.theme-card:hover .theme-title{color:var(--royal-gold)}
.theme-desc{color:var(--gray-300);font-weight:300;font-size:14px;line-height:1.7;transform:translateY(16px);transition:transform .5s ease}
.theme-card:hover .theme-desc{transform:translateY(0)}

/* Services carousel items */
.services-topline,.services-bottomline{position:absolute;left:0;right:0;height:1px;background:linear-gradient(to right, transparent, var(--royal-gold-dark), transparent);opacity:.3}
.services-topline{top:0}
.services-bottomline{bottom:0}

.service-item{min-width:160px;display:flex;flex-direction:column;align-items:center;text-align:center}
@media(min-width:768px){.service-item{min-width:200px}}
.icon-wrap{width:96px;height:96px;position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:24px}
.icon-wrap .ring{position:absolute;inset:0;border-radius:999px;border:1px solid rgba(212,175,55,.3);transition:transform .5s ease}
.service-item:hover .icon-wrap .ring{transform:scale(1.10)}
.icon-wrap .dash{position:absolute;inset:0;border-radius:999px;border:1px dashed rgba(212,175,55,.5);opacity:.5;animation:spin 10s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.icon{color:var(--royal-gold);filter:drop-shadow(0 0 10px rgba(212,175,55,.5));transition:color .3s ease}
.service-item:hover .icon{color:var(--white)}
.service-name{font-family:"Playfair Display",serif;color:var(--soft-champagne);font-size:14px;white-space:nowrap;transition:color .3s ease}
@media(min-width:768px){.service-name{font-size:16px}}
.service-item:hover .service-name{color:var(--royal-gold)}
.service-line{height:1px;width:32px;background:rgba(212,175,55,.3);margin-top:12px;transition:width .3s ease}
.service-item:hover .service-line{width:64px}

/* Contact form */
.form-wrap{max-width:896px;margin:0 auto;position:relative;z-index:10;padding:0 16px}
.form-head{margin-bottom:80px;text-align:center}
.form{display:grid;gap:48px}
.form-row{display:grid;grid-template-columns:1fr;gap:48px}
@media(min-width:768px){.form-row{grid-template-columns:1fr 1fr}}
.label{display:block;color:var(--gray-500);margin-bottom:8px;font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.input, select.input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.10);padding:12px 0;color:var(--white);outline:none;transition:border-color .3s ease}
.input:focus{border-bottom-color:rgba(212,175,55,.5)}
select.input{appearance:none}
option{background:var(--deep-black);color:var(--white)}

.submit-row{padding-top:48px;display:flex;justify-content:center}
.btn-submit{min-width:280px;padding:20px 48px;background:transparent;border:1px solid var(--royal-gold);color:var(--royal-gold);font-family:"Playfair Display",serif;font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:12px;cursor:pointer;transition:all .5s ease}
.btn-submit:hover{background:var(--royal-gold);color:#000}

/* Success */
.success{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center}
.success-box{max-width:768px;margin:0 auto}

/* Founders note */
.quote{font-family:"Playfair Display",serif;color:var(--royal-gold);font-size:40px;margin-bottom:32px}
.note{font-family:"Playfair Display",serif;color:var(--soft-champagne);font-style:italic;font-size:20px;line-height:1.6;margin:0 0 48px}
@media(min-width:768px){.note{font-size:30px}}
.signed{color:var(--gray-500);font-size:12px;letter-spacing:.3em;text-transform:uppercase}

/* Footer */
.footer{background:#000;padding:64px 0;border-top:1px solid rgba(212,175,55,.20)}
.footer-brand{font-family:"Playfair Display",serif;color:var(--white);font-size:30px;letter-spacing:.2em;margin:0 0 32px}
.footer-icons{display:flex;gap:32px;justify-content:center;margin-bottom:32px}
.footer-icons a{color:var(--royal-gold);transition:color .3s ease}
.footer-icons a:hover{color:var(--white)}
.footer-rule{height:1px;width:96px;background:var(--gray-800);margin:0 auto 32px}
.footer-rights{color:var(--gray-500);font-size:14px;font-weight:300;letter-spacing:.06em;margin:0;text-align:center}
.footer-desc{color:var(--gray-600);font-size:12px;font-weight:300;margin:8px 0 0;text-align:center}

/* Floating WhatsApp */
.fab{position:fixed;right:32px;bottom:32px;z-index:50;display:flex;align-items:center;justify-content:flex-end;gap:16px}
.fab-label{display:none;background:#000;color:var(--royal-gold);padding:8px 16px;border-radius:10px;border:1px solid rgba(212,175,55,.5);font-family:"Playfair Display",serif;box-shadow:0 12px 30px rgba(0,0,0,.5);opacity:0;transition:opacity .3s ease}
@media(min-width:768px){.fab-label{display:block}}
.fab:hover .fab-label{opacity:1}
.fab-btn{width:64px;height:64px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.2);
  background:linear-gradient(135deg,var(--royal-gold),var(--royal-gold-dark));
  box-shadow:0 0 20px rgba(212,175,55,.4);
  transition:transform .3s ease;
}
.fab:hover .fab-btn{transform:scale(1.10)}

.pulse{position:absolute;right:0;bottom:0;width:64px;height:64px;border-radius:999px;border:1px solid var(--royal-gold);opacity:.75;animation:ping 1.5s cubic-bezier(0,0,.2,1) infinite;pointer-events:none}
@keyframes ping{75%,100%{transform:scale(2);opacity:0}}

/* Canvas dust */
#dust{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;mix-blend-mode:screen;opacity:.5}

/* Selection */
::selection{background:var(--royal-gold);color:#000}

.nav-link:focus-visible{outline:2px solid rgba(212,175,55,.7);outline-offset:6px;border-radius:6px}
