@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap');

:root{--black:#050505;--gold:#c95cff;--gold-bright:#ef8cff;--white:#f5f2ec;--muted:rgba(245,242,236,.68);--line:rgba(201,92,255,.28)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--black)}
body{min-height:100vh;background:radial-gradient(circle at 80% 20%,rgba(100,55,130,.12),transparent 30%),radial-gradient(circle at 15% 55%,rgba(201,92,255,.06),transparent 28%),var(--black);color:var(--white);font-family:Montserrat,sans-serif;overflow-x:hidden}
button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}

.nav{position:fixed;z-index:20;top:0;left:0;width:100%;height:78px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(to bottom,rgba(0,0,0,.72),transparent)}
.logo{color:var(--white);font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:600;letter-spacing:.28em}
.nav-cta{border:1px solid rgba(201,92,255,.55);padding:12px 22px;color:var(--gold-bright);text-shadow:0 0 10px rgba(201,92,255,.65);font-size:.68rem;font-weight:600;letter-spacing:.2em;transition:.3s ease;backdrop-filter:blur(8px);background:rgba(0,0,0,.18)}
.nav-cta:hover{background:var(--gold);box-shadow:0 0 18px rgba(201,92,255,.35);color:var(--black);border-color:var(--gold)}

.hero{position:relative;width:100%;height:58vh;min-height:430px;max-height:650px;overflow:hidden;background:#000}
.hero-track{position:absolute;inset:0}.hero-slide{position:absolute;inset:0;opacity:0;transform:scale(1.025);transition:opacity:.8s ease,transform 5s ease;pointer-events:none}.hero-slide.active{opacity:1;transform:scale(1)}
.hero-slide video,.hero-slide img{width:100%;height:100%;display:block;object-fit:cover}.hero-slide video{object-position:center}.hero-slide:nth-child(1) video{object-position:center 52%}.hero-slide:nth-child(2) video{object-position:center 48%}.hero-slide:nth-child(3) img{object-position:center center}
.hero-overlay{position:absolute;inset:0;z-index:2;background:linear-gradient(to bottom,rgba(0,0,0,.45) 0%,rgba(0,0,0,.04) 42%,rgba(0,0,0,.7) 100%),radial-gradient(circle at center,transparent 15%,rgba(0,0,0,.38) 100%);pointer-events:none}
.hero-content{position:absolute;z-index:4;left:7vw;bottom:8vh;max-width:700px}.hero-content p{margin-bottom:12px;color:var(--gold-bright);text-shadow:0 0 10px rgba(201,92,255,.65);font-size:.68rem;font-weight:600;letter-spacing:.45em}.hero-content h1{font-family:'Cormorant Garamond',serif;font-size:clamp(4.5rem,10vw,9rem);font-weight:500;line-height:.72;letter-spacing:.015em;text-shadow:0 8px 35px rgba(0,0,0,.55)}
.arrow{position:absolute;z-index:5;top:50%;width:52px;height:52px;display:grid;place-items:center;transform:translateY(-50%);border:1px solid rgba(245,242,236,.35);border-radius:50%;background:rgba(0,0,0,.18);color:var(--white);font-family:Arial,sans-serif;font-size:2rem;font-weight:200;backdrop-filter:blur(8px);transition:.3s ease}.arrow:hover{border-color:var(--gold);color:var(--gold-bright);text-shadow:0 0 10px rgba(201,92,255,.65);background:rgba(0,0,0,.5)}.prev{left:3vw}.next{right:3vw}
.dots{position:absolute;z-index:5;left:7vw;bottom:4vh;display:flex;align-items:center;gap:9px}.dot{width:28px;height:2px;border:0;background:rgba(245,242,236,.35);transition:.4s ease}.dot.active{width:52px;background:var(--gold-bright)}

.reserve-section,.assistant-section{position:relative;min-height:70vh;padding:11vh 7vw;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.reserve-section::before,.assistant-section::before{content:'';position:absolute;width:500px;height:500px;border-radius:50%;filter:blur(90px);pointer-events:none}.reserve-section::before{top:15%;right:-15%;background:rgba(201,92,255,.08)}.assistant-section{border-top:1px solid rgba(245,242,236,.08);background:linear-gradient(135deg,#080808,#0b080d 55%,#050505)}.assistant-section::before{bottom:-20%;left:-15%;background:rgba(126,66,160,.1)}
.eyebrow{position:relative;z-index:1;margin-bottom:24px;color:var(--gold);font-size:.68rem;font-weight:600;letter-spacing:.35em}.reserve-section h2,.assistant-section h2{position:relative;z-index:1;max-width:1000px;font-family:'Cormorant Garamond',serif;font-size:clamp(5rem,12vw,11rem);font-weight:500;line-height:.78;letter-spacing:-.025em}.assistant-section h2,.reserve-section h2{font-size:clamp(4rem,9vw,8.5rem)}
.reserve-section p,.assistant-section>p{position:relative;z-index:1;max-width:520px;margin-top:34px;color:var(--muted);font-size:.9rem;line-height:1.8}.assistant-section .assistant-prompt{margin-top:20px;color:var(--white);font-size:.58rem;line-height:1;letter-spacing:.18em;font-weight:500;text-transform:none}
.gold-button{position:relative;z-index:1;align-self:flex-start;margin-top:38px;padding:17px 30px;border:1px solid var(--gold);background:var(--gold);box-shadow:0 0 18px rgba(201,92,255,.35);color:var(--black);font-size:.7rem;font-weight:700;letter-spacing:.2em;transition:.3s ease}.gold-button:hover{background:transparent;color:var(--gold-bright);text-shadow:0 0 10px rgba(201,92,255,.65);box-shadow:0 0 30px rgba(201,92,255,.12)}
.language-card{position:relative;z-index:1;width:min(100%,620px);margin-top:48px;padding:28px;border:1px solid var(--line);background:rgba(255,255,255,.025);backdrop-filter:blur(16px)}.language-card>span{display:block;margin-bottom:20px;color:var(--gold);font-size:.62rem;font-weight:600;letter-spacing:.25em}.language-buttons{display:flex;gap:12px}.language-buttons button{flex:1;padding:15px;border:1px solid rgba(245,242,236,.18);background:transparent;color:var(--white);font-size:.68rem;font-weight:600;letter-spacing:.14em;transition:.3s ease}.language-buttons button:hover{border-color:var(--gold);color:var(--gold-bright);text-shadow:0 0 10px rgba(201,92,255,.65);background:rgba(201,92,255,.06)}
footer{min-height:180px;padding:50px 7vw;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid rgba(245,242,236,.08);color:rgba(245,242,236,.5);font-size:.65rem;letter-spacing:.18em}footer strong{color:var(--white);font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:600;letter-spacing:.2em}footer small{color:rgba(201,92,255,.6)}

.reservation-modal,.assistant-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:30px}.reservation-modal.open,.assistant-modal.open{display:flex}
.reservation-backdrop,.assistant-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(12px)}
.reservation-dialog,.assistant-dialog{position:relative;z-index:1;width:min(760px,100%);max-height:90vh;overflow:auto;padding:46px;background:linear-gradient(145deg,#0b080d,#050505);border:1px solid var(--line);box-shadow:0 0 55px rgba(201,92,255,.18)}
.reservation-close,.assistant-close{position:absolute;top:18px;right:20px;width:36px;height:36px;border:1px solid rgba(245,242,236,.18);background:transparent;color:var(--white);font-size:1.6rem;line-height:1;transition:.25s}.reservation-close:hover,.assistant-close:hover{border-color:var(--gold);color:var(--gold-bright)}
.reservation-dialog .eyebrow{margin-bottom:14px}.reservation-dialog h2{font-family:'Cormorant Garamond',serif;font-size:clamp(3.2rem,7vw,5.6rem);font-weight:500;line-height:.8}.reservation-intro{margin-top:18px;color:var(--muted);font-size:.78rem;line-height:1.7}
#reservationForm{margin-top:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label{display:flex;flex-direction:column;gap:8px}.form-grid label span{color:var(--gold);font-size:.58rem;font-weight:600;letter-spacing:.18em}.form-grid input,.form-grid select{width:100%;height:48px;border:1px solid rgba(245,242,236,.18);outline:none;background:rgba(255,255,255,.035);color:var(--white);padding:0 14px;font-size:.75rem;font-family:Montserrat,sans-serif}.form-grid input:focus,.form-grid select:focus{border-color:var(--gold);box-shadow:0 0 14px rgba(201,92,255,.12)}.form-grid select option{background:#0b080d;color:var(--white)}.contact-grid{margin-top:18px}.full-field{grid-column:1/-1}.reservation-submit{margin-top:26px}.reservation-success{text-align:center;padding:20px 10px 5px}.success-mark{width:58px;height:58px;margin:0 auto 20px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--gold-bright);font-size:1.5rem;box-shadow:0 0 25px rgba(201,92,255,.2)}.reservation-success h3{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:500;letter-spacing:.06em}.reservation-success p{max-width:500px;margin:14px auto 0;color:var(--muted);font-size:.78rem;line-height:1.7}.reservation-success .gold-button{margin:28px auto 0}

.assistant-dialog{width:min(760px,100%);height:min(760px,90vh);display:flex;flex-direction:column;overflow:hidden;padding:34px 34px 24px;background:radial-gradient(circle at 85% 0%,rgba(201,92,255,.13),transparent 34%),linear-gradient(145deg,#0d0910,#050505)}
.assistant-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-right:42px}.assistant-header h2{font-family:'Cormorant Garamond',serif;font-size:clamp(2.8rem,6vw,4.6rem);font-weight:500;line-height:.78}.assistant-header .eyebrow{margin-bottom:12px}.assistant-status{padding-top:8px;color:rgba(245,242,236,.45);font-size:.58rem;font-weight:600;letter-spacing:.18em;white-space:nowrap}.assistant-status span{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#bfffcc;box-shadow:0 0 10px rgba(191,255,204,.8)}
.assistant-chat{flex:1;overflow:auto;display:flex;flex-direction:column;gap:14px;margin:26px 0 16px;padding:8px 4px 10px;scroll-behavior:smooth}.assistant-chat::-webkit-scrollbar{width:4px}.assistant-chat::-webkit-scrollbar-thumb{background:rgba(201,92,255,.3)}
.chat-row{display:flex}.chat-row.user{justify-content:flex-end}.chat-bubble{max-width:78%;padding:13px 16px;border:1px solid rgba(245,242,236,.1);background:rgba(255,255,255,.045);color:var(--white);font-size:.72rem;line-height:1.65}.chat-row.user .chat-bubble{border-color:rgba(201,92,255,.35);background:rgba(201,92,255,.1)}.chat-label{margin-bottom:5px;color:var(--gold);font-size:.5rem;letter-spacing:.18em;font-weight:700}
.assistant-typing{display:flex;gap:5px;align-items:center;margin:0 0 12px 5px;height:18px}.assistant-typing span{width:5px;height:5px;border-radius:50%;background:var(--gold-bright);animation:typing 1s infinite ease-in-out}.assistant-typing span:nth-child(2){animation-delay:.15s}.assistant-typing span:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.assistant-input{display:flex;gap:10px;border-top:1px solid rgba(245,242,236,.1);padding-top:16px}.assistant-input input{flex:1;min-width:0;height:50px;border:1px solid rgba(245,242,236,.16);background:rgba(255,255,255,.035);color:var(--white);padding:0 15px;outline:none;font:500 .72rem Montserrat,sans-serif}.assistant-input input:focus{border-color:var(--gold)}.assistant-input button{width:52px;height:50px;border:1px solid var(--gold);background:var(--gold);color:var(--black);font-size:1.3rem;transition:.25s}.assistant-input button:hover{background:transparent;color:var(--gold-bright)}

@media(min-width:701px){.reserve-section,.assistant-section{min-height:70vh;padding:9vh 5vw}.reserve-section,.assistant-section{width:50%}.reserve-section{float:left}.assistant-section{float:right;border-top:0;border-left:1px solid var(--gold);border-left-width:2px}main::after{content:'';display:block;clear:both}.reserve-section h2,.assistant-section h2{font-size:clamp(3rem,4vw,5rem)}.reserve-section p,.assistant-section>p{max-width:430px}.language-card{width:100%}}
@media(max-width:700px){.nav{height:68px;padding:0 5vw}.logo{font-size:1.55rem}.nav-cta{padding:10px 15px;font-size:.58rem}.hero{height:50vh;min-height:360px;max-height:500px}.hero-content{left:6vw;bottom:10vh}.hero-content h1{font-size:clamp(4.7rem,22vw,8rem)}.hero-content p{font-size:.56rem;letter-spacing:.32em}.arrow{width:42px;height:42px;font-size:1.5rem}.prev{left:4vw}.next{right:4vw}.dots{left:6vw;bottom:4vh}.reserve-section,.assistant-section{min-height:68vh;padding:10vh 6vw}.reserve-section h2,.assistant-section h2{font-size:clamp(3.2rem,15vw,5.2rem)}.reserve-section p,.assistant-section>p{font-size:.82rem;margin-top:28px}.assistant-section .assistant-prompt{margin-top:16px;font-size:.52rem;letter-spacing:.14em}.language-buttons{flex-direction:column}.reservation-modal,.assistant-modal{padding:16px}.reservation-dialog{padding:36px 22px 28px;max-height:92vh}.assistant-dialog{height:92vh;padding:28px 18px 18px}.assistant-header{padding-right:36px}.assistant-status{display:none}.chat-bubble{max-width:88%;font-size:.68rem}.assistant-input input{font-size:.68rem}.form-grid{grid-template-columns:1fr}.full-field{grid-column:auto}footer{min-height:220px;padding:42px 6vw;flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-slide{transition:opacity .2s ease;transform:none}}

/* PREMIUM RESERVATION CONFIRMATION */
.reservation-success{padding:10px 8px 4px;text-align:center}
.success-mark{width:62px;height:62px;margin:0 auto 24px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold-bright);font-family:'Cormorant Garamond',serif;font-size:1.55rem;box-shadow:0 0 30px rgba(201,92,255,.2),inset 0 0 18px rgba(201,92,255,.05)}
.success-language{max-width:560px;margin:0 auto}
.success-eyebrow{margin-bottom:10px;color:var(--gold);font-size:.53rem;font-weight:600;letter-spacing:.3em}
.reservation-success h3{font-family:'Cormorant Garamond',serif;font-size:clamp(2.15rem,5vw,3rem);font-weight:500;line-height:1.05;letter-spacing:.02em}
.reservation-success p{max-width:520px;margin:18px auto 0;color:var(--muted);font-size:.72rem;line-height:1.75}
.reservation-success p strong{color:var(--white);font-weight:600}
.reservation-success p em{color:var(--white);font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-style:normal;letter-spacing:.01em}
.success-divider{display:flex;align-items:center;gap:14px;max-width:420px;margin:28px auto;color:rgba(201,92,255,.7);font-family:'Cormorant Garamond',serif;font-size:.7rem;letter-spacing:.3em}
.success-divider::before,.success-divider::after{content:'';height:1px;flex:1;background:linear-gradient(to right,transparent,var(--line))}
.success-divider::after{background:linear-gradient(to left,transparent,var(--line))}
.reservation-success .gold-button{margin:30px auto 0}
@media(max-width:700px){.reservation-success{padding:4px 0}.reservation-success h3{font-size:2.05rem}.reservation-success p{font-size:.69rem;line-height:1.7}.success-divider{margin:24px auto}.success-language{max-width:100%}}
