:root{
  --bg:#08080a;--bg-soft:#0d0d10;--panel:#111115;--text:#f4f0e8;--muted:#aaa49a;
  --gold:#d7b36a;--gold-soft:#b8914d;--wine:#70333f;--line:rgba(255,255,255,.12);
  --max:1240px;--header-h:86px;--ease:cubic-bezier(.22,1,.36,1)
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.65;overflow-x:hidden}
body.menu-open,body.intro-active{overflow:hidden}
a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}
.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}
.noise{position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E")}
.cursor-glow{position:fixed;z-index:0;width:420px;height:420px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(132,65,75,.11),transparent 68%);transform:translate(-50%,-50%);opacity:0;transition:opacity .5s}

.intro{position:fixed;inset:0;z-index:2200;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(40,32,18,.32),transparent 34%),#060608;transition:opacity 1.05s var(--ease),visibility 1.05s var(--ease)}
.intro.hidden{opacity:0;visibility:hidden}
.intro-inner{position:relative;width:min(88vw,860px);min-height:74vh;display:grid;place-items:center;text-align:center}
.intro-line{position:absolute;top:50%;left:50%;width:min(64vw,540px);height:1px;background:rgba(255,255,255,.08);transform:translate(-50%,-50%)}
.intro-line:before,.intro-line:after{content:"";position:absolute;top:0;height:100%;width:0;background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:introLine 3.3s .2s var(--ease) forwards}
.intro-line:before{left:50%}.intro-line:after{right:50%}
.intro-glow{position:absolute;border-radius:50%;filter:blur(70px);opacity:0;animation:introGlow 4.8s .65s ease forwards}
.intro-glow-a{width:300px;height:300px;background:rgba(138,56,63,.26);left:50%;top:40%;transform:translate(-70%,-50%)}
.intro-glow-b{width:260px;height:260px;background:rgba(197,153,78,.2);left:50%;top:45%;transform:translate(-20%,-30%)}
.intro-mark{width:min(50vw,330px);opacity:0;filter:drop-shadow(0 10px 28px rgba(0,0,0,.38));transform:translateY(16px) scale(.9);animation:introMark 1.25s .95s var(--ease) forwards}
.intro-wordmark{width:min(82vw,560px);margin-top:20px;opacity:0;transform:translateY(12px);animation:introWord 1s 2s var(--ease) forwards}
.intro-tagline{margin:14px 0 0;color:#a59373;letter-spacing:.35em;font-size:.72rem;opacity:0;animation:introWord 1s 2.5s var(--ease) forwards}
.intro-skip{position:absolute;right:24px;top:22px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.02);color:#8f877b;padding:10px 14px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;z-index:3}
@keyframes introLine{0%{width:0;opacity:.3}45%{width:min(32vw,270px);opacity:1}100%{width:min(32vw,270px);opacity:.18}}
@keyframes introMark{0%{opacity:0;transform:translateY(16px) scale(.9)}60%{opacity:1;transform:translateY(0) scale(1.03)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes introWord{to{opacity:1;transform:translateY(0)}}
@keyframes introGlow{20%{opacity:.35}65%{opacity:.5;transform:translate(-50%,-50%) scale(1.08)}100%{opacity:.16}}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - var(--max))/2));transition:background .35s,border-color .35s,height .35s;border-bottom:1px solid transparent}
.site-header.scrolled{height:72px;background:rgba(8,8,10,.86);backdrop-filter:blur(18px);border-color:var(--line)}
.brand{display:flex;align-items:center;gap:12px;position:relative;z-index:52}.brand-icon{height:44px;width:auto;filter:drop-shadow(0 2px 7px rgba(0,0,0,.2))}
.brand-name{font-family:Georgia,"Times New Roman",serif;letter-spacing:.17em;font-size:.98rem}
.main-nav{display:flex;align-items:center;gap:30px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.main-nav>a{position:relative;color:rgba(255,255,255,.8);transition:color .25s}.main-nav>a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--gold);transition:right .35s var(--ease)}.main-nav>a:hover{color:#fff}.main-nav>a:hover:after{right:0}
.language-switch{display:flex;gap:8px;align-items:center;color:#817b72}.language-switch button{border:0;background:none;color:#817b72;padding:0;cursor:pointer;font-size:.72rem;letter-spacing:.14em}.language-switch button.active{color:var(--gold)}
.menu-toggle{display:none;position:relative;z-index:52;width:42px;height:42px;border:0;background:none}.menu-toggle span:not(.sr-only){position:absolute;left:9px;width:24px;height:1px;background:#fff;transition:.35s var(--ease)}.menu-toggle span:first-child{top:17px}.menu-toggle span:nth-child(2){top:25px}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}

.hero{position:relative;min-height:100svh;overflow:hidden;display:grid;align-items:center;background:#08080a}
.hero-image{position:absolute;inset:-3%;background:url('assets/hero-desktop.webp') center center/cover no-repeat;transform:scale(1.045);animation:heroZoom 10s var(--ease) forwards;will-change:transform}
.hero-vignette{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.12),rgba(0,0,0,.04) 47%,rgba(0,0,0,.36)),linear-gradient(0deg,rgba(0,0,0,.82),transparent 45%);pointer-events:none}
.hero-beam{position:absolute;border-radius:50%;filter:blur(70px);opacity:.14;pointer-events:none;mix-blend-mode:screen}
.beam-one{width:520px;height:180px;right:6%;top:15%;background:rgba(139,61,72,.8);transform:rotate(-18deg);animation:beamFloat 9s ease-in-out infinite}
.beam-two{width:360px;height:140px;right:28%;bottom:17%;background:rgba(202,153,72,.55);transform:rotate(12deg);animation:beamFloat 11s 1s ease-in-out infinite reverse}
.hero-monogram{position:absolute;right:max(24px,calc((100vw - var(--max))/2));top:50%;transform:translateY(-52%);width:min(34vw,380px);opacity:.11;filter:drop-shadow(0 20px 30px rgba(0,0,0,.35));pointer-events:none}
.hero-content{position:relative;z-index:2;width:min(590px,46vw);margin-left:auto;margin-right:max(30px,calc((100vw - var(--max))/2));padding-top:80px}
.kicker{margin:0;color:var(--gold);font-size:.72rem;letter-spacing:.27em;text-transform:uppercase}
.hero h1{margin:18px 0 0;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(4.8rem,8.8vw,9rem);line-height:.78;letter-spacing:-.055em}.hero h1 span{display:block}.hero h1 span:last-child{font-style:italic;color:#f6f0e5;margin-left:.22em}
.hero-role{margin:31px 0 0;font-size:clamp(.92rem,1.35vw,1.12rem);letter-spacing:.11em;color:rgba(255,255,255,.88)}.hero-intro{max-width:540px;color:#b8b1a6;margin:18px 0 32px;font-size:1rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:13px}.button{min-height:51px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.27);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;transition:transform .35s var(--ease),background .35s,color .35s,border-color .35s}.button:hover{transform:translateY(-3px)}.button-gold{background:var(--gold);border-color:var(--gold);color:#13100a}.button-gold:hover{background:#e7c681}.button-ghost{background:rgba(0,0,0,.12);backdrop-filter:blur(10px)}.button-ghost:hover{border-color:var(--gold);color:var(--gold)}
.hero-reveal{opacity:0;transform:translateY(28px)}body.loaded .hero-reveal{animation:heroReveal 1s var(--ease) forwards}body.loaded .hero-reveal:nth-child(2){animation-delay:.12s}body.loaded .hero-reveal:nth-child(3){animation-delay:.25s}body.loaded .hero-reveal:nth-child(4){animation-delay:.36s}body.loaded .hero-reveal:nth-child(5){animation-delay:.46s}
.scroll-indicator{position:absolute;left:max(24px,calc((100vw - var(--max))/2));bottom:30px;z-index:3;display:flex;align-items:center;gap:15px;color:#918b81;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;transform:rotate(-90deg);transform-origin:left center}.scroll-indicator i{display:block;width:62px;height:1px;background:rgba(255,255,255,.25);position:relative;overflow:hidden}.scroll-indicator i:after{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-100%);animation:scrollLine 2.2s ease-in-out infinite}
@keyframes heroZoom{to{transform:scale(1)}}@keyframes heroReveal{to{opacity:1;transform:translateY(0)}}@keyframes beamFloat{50%{transform:translate(35px,22px) rotate(-12deg);opacity:.2}}@keyframes scrollLine{50%,100%{transform:translateX(100%)}}

.section{width:min(var(--max),calc(100% - 48px));margin:auto;padding:125px 0;position:relative}.section-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:58px}.section-number{font-family:Georgia,serif;color:#706a62;font-size:.9rem}
.display{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(2.8rem,5.6vw,5.7rem);line-height:.98;letter-spacing:-.045em;margin:0}
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.is-visible{opacity:1;transform:translateY(0)}
.about{padding-top:145px}.about-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:8vw;align-items:start}.about-copy{font-size:1.05rem;color:var(--muted);padding-top:10px}.about-copy p{margin:0 0 24px}.about-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:68px}.about-tags span{border:1px solid var(--line);padding:10px 15px;font-size:.65rem;letter-spacing:.16em;color:#9e978c}
.projects{padding-top:95px}.projects-intro{max-width:930px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:65px}.project-card{position:relative;min-height:390px;padding:28px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012));border:1px solid var(--line);overflow:hidden;transition:transform .45s var(--ease),border-color .45s,background .45s}.project-card:before{content:"";position:absolute;width:250px;height:250px;border-radius:50%;right:-140px;top:-140px;background:radial-gradient(circle,rgba(118,51,62,.2),transparent 70%);transition:.5s}.project-card:hover{transform:translateY(-8px);border-color:rgba(215,179,106,.35);background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.018))}.project-card:hover:before{transform:scale(1.5)}.project-index{display:block;color:#746d64;font-family:Georgia,serif}.project-icon{font-family:Georgia,serif;font-size:4rem;color:var(--gold);margin-top:65px;line-height:1}.project-card h3{font-family:Georgia,serif;font-size:1.8rem;font-weight:400;margin:23px 0 12px}.project-card p{color:var(--muted);margin:0;max-width:330px;font-size:.96rem}
.media-section{background:linear-gradient(180deg,#0c0c0f,#08080a);border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.media-inner{width:min(var(--max),calc(100% - 48px))}.media-title-row{display:grid;grid-template-columns:1.3fr .7fr;gap:7vw;align-items:end}.media-title-row p{margin:0;color:var(--muted);max-width:420px}.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:70px;gap:14px;margin-top:65px}.gallery-item{position:relative;overflow:hidden;border:1px solid var(--line);cursor:zoom-in;background:#111}.gallery-item:nth-child(1){grid-column:span 7;grid-row:span 8}.gallery-item:nth-child(2){grid-column:span 5;grid-row:span 6}.gallery-item:nth-child(3){grid-column:span 5;grid-row:span 7}.gallery-item:nth-child(4){grid-column:span 7;grid-row:span 7}.gallery-item:nth-child(5){grid-column:span 5;grid-row:span 7}.gallery-item:nth-child(6){grid-column:span 7;grid-row:span 8}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .5s}.gallery-item:hover img{transform:scale(1.045);filter:brightness(.82)}.gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:55px 22px 18px;background:linear-gradient(transparent,rgba(0,0,0,.86));font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;transform:translateY(15px);opacity:0;transition:.4s var(--ease)}.gallery-item:hover .gallery-caption{transform:translateY(0);opacity:1}
.showreel{margin-top:14px;min-height:260px;border:1px solid var(--line);padding:36px;display:flex;align-items:center;justify-content:space-between;background:radial-gradient(circle at 82% 50%,rgba(116,50,61,.2),transparent 34%),#0e0e11}.showreel-label{color:var(--gold);font-size:.68rem;letter-spacing:.22em}.showreel h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(1.7rem,3vw,3rem);max-width:700px;margin:15px 0 0}.play-ring{width:96px;height:96px;border:1px solid rgba(215,179,106,.48);border-radius:50%;display:grid;place-items:center;color:var(--gold);position:relative}.play-ring:before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.1);border-radius:50%;animation:pulse 2.8s ease-in-out infinite}.play-ring span{margin-left:4px}
@keyframes pulse{50%{transform:scale(1.12);opacity:.3}}

.brand-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:5vw;align-items:center}.brand-copy p{color:var(--muted);font-size:1.04rem;max-width:580px;margin:22px 0 22px}.brand-points{margin:0;padding:0;list-style:none;display:grid;gap:11px}.brand-points li{padding-left:22px;position:relative;color:#c8c1b3}.brand-points li:before{content:"";position:absolute;left:0;top:.73em;width:8px;height:8px;border-radius:50%;background:var(--gold)}.brand-board-wrap{position:relative}.brand-board-wrap:before{content:"";position:absolute;inset:auto -8% -8% 18%;height:70%;background:radial-gradient(circle,rgba(112,51,63,.17),transparent 63%);filter:blur(18px)}.brand-board{position:relative;border:1px solid var(--line);box-shadow:0 28px 70px rgba(0,0,0,.38);width:100%;max-width:620px;margin-left:auto}

.booking{overflow:hidden}.booking-glow{position:absolute;width:640px;height:640px;right:-290px;top:80px;border-radius:50%;background:radial-gradient(circle,rgba(112,51,63,.18),transparent 67%);filter:blur(20px)}.booking-grid{display:grid;grid-template-columns:1fr .88fr;gap:8vw;align-items:start}.booking-copy{max-width:570px;color:var(--muted);font-size:1.04rem;margin:28px 0 32px}.contact-panel{border-top:1px solid var(--line)}.contact-row{display:grid;grid-template-columns:100px 1fr 22px;gap:20px;align-items:center;padding:23px 0;border-bottom:1px solid var(--line);transition:color .3s,padding .3s}.contact-row span{color:#807a72;font-size:.67rem;letter-spacing:.14em;text-transform:uppercase}.contact-row strong{font-weight:400;font-size:1.03rem}.contact-row i{font-style:normal;color:var(--gold)}.contact-row:hover{color:var(--gold);padding-left:8px}
.footer{width:min(var(--max),calc(100% - 48px));margin:auto;border-top:1px solid var(--line);padding:34px 0 45px;display:flex;justify-content:space-between;gap:20px;color:#807a72;font-size:.72rem;letter-spacing:.08em}.footer a:hover{color:var(--gold)}

.lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgba(3,3,4,.94);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transition:.4s var(--ease)}.lightbox.open{opacity:1;visibility:visible}.lightbox figure{margin:0;max-width:min(84vw,1050px);max-height:86vh;display:grid;place-items:center}.lightbox img{max-width:100%;max-height:80vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.55)}.lightbox figcaption{margin-top:14px;color:#9f998f;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase}.lightbox-close,.lightbox-nav{position:absolute;border:0;background:transparent;color:#fff;cursor:pointer}.lightbox-close{right:25px;top:18px;font-size:2.7rem;font-weight:200}.lightbox-nav{top:50%;transform:translateY(-50%);font-size:2rem;color:var(--gold);padding:20px}.lightbox-nav.prev{left:15px}.lightbox-nav.next{right:15px}

@media(max-width:980px){
  :root{--header-h:74px}
  .site-header{padding:0 20px}.brand-name{font-size:.84rem}
  .menu-toggle{display:block}
  .main-nav{position:fixed;inset:0;background:rgba(7,7,9,.97);backdrop-filter:blur(20px);display:flex;flex-direction:column;justify-content:center;gap:26px;font-family:Georgia,serif;font-size:1.7rem;letter-spacing:.03em;text-transform:none;opacity:0;visibility:hidden;transform:translateY(-12px);transition:.4s var(--ease)}.main-nav.open{opacity:1;visibility:visible;transform:translateY(0)}.language-switch{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:.8rem;margin-top:15px}
  .hero-image{background-image:url('assets/hero-mobile.webp');background-position:center top}
  .hero-vignette{background:linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.38) 43%,rgba(0,0,0,.05) 70%)}
  .hero{align-items:end}.hero-content{width:auto;margin:0;padding:0 24px 80px}
  .hero-monogram{width:min(58vw,300px);right:20px;top:27%;transform:none;opacity:.1}
  .hero h1{font-size:clamp(4rem,16vw,7rem);line-height:.82}.hero h1 span:last-child{margin-left:.12em}.hero-intro{max-width:500px}.scroll-indicator{display:none}
  .about-grid,.media-title-row,.brand-grid,.booking-grid{grid-template-columns:1fr;gap:34px}
  .project-grid{grid-template-columns:1fr}.project-card{min-height:320px}.project-icon{margin-top:35px}
  .gallery{grid-auto-rows:55px}.gallery-item:nth-child(n){grid-column:span 6;grid-row:span 7}.gallery-item:nth-child(1),.gallery-item:nth-child(4){grid-column:span 12;grid-row:span 9}
  .showreel{min-height:230px}.contact-panel{margin-top:20px}
}
@media(max-width:620px){
  .cursor-glow{display:none}.section,.media-inner,.footer{width:min(100% - 32px,var(--max))}.section{padding:90px 0}.section-head{margin-bottom:40px}
  .display{font-size:clamp(2.55rem,12vw,4.2rem)}
  .intro-inner{min-height:100svh;padding:0 18px}.intro-mark{width:min(68vw,260px)}.intro-wordmark{width:min(88vw,430px)}.intro-tagline{font-size:.58rem;letter-spacing:.28em}
  .hero-content{padding:0 18px 54px}.hero h1{font-size:clamp(3.8rem,20vw,6.4rem)}.hero-role{font-size:.78rem;line-height:1.6}.hero-intro{font-size:.92rem}.hero-actions{display:grid}.button{width:100%}.about-tags{margin-top:45px}
  .project-card{padding:23px}
  .gallery{display:grid;grid-template-columns:1fr;grid-auto-rows:auto}.gallery-item:nth-child(n){grid-column:auto;grid-row:auto;aspect-ratio:4/5}.gallery-item:nth-child(1),.gallery-item:nth-child(4){aspect-ratio:4/5}.gallery-caption{opacity:1;transform:none}
  .showreel{padding:25px;min-height:260px;align-items:flex-start}.play-ring{width:68px;height:68px;flex:0 0 auto}
  .contact-row{grid-template-columns:1fr 20px;gap:8px}.contact-row span{grid-column:1/-1}.contact-row strong{font-size:.92rem;word-break:break-word}
  .footer{flex-direction:column}.lightbox-nav{display:none}.brand-name{display:none}.brand-icon{height:38px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero-image{transform:none}.reveal{opacity:1;transform:none}
}


/* V5 CINEMATIC INTRO */
.intro{
  position:fixed;inset:0;z-index:2200;display:grid;place-items:center;
  background:#050507;overflow:hidden;
  transition:opacity 1.2s var(--ease),visibility 1.2s var(--ease)
}
.intro.hidden{opacity:0;visibility:hidden}
.intro-gate{
  position:relative;z-index:20;width:min(92vw,610px);padding:54px 38px;text-align:center;
  border:1px solid rgba(215,179,106,.18);
  background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
  box-shadow:0 35px 100px rgba(0,0,0,.5);
  backdrop-filter:blur(15px);
  transition:opacity .8s var(--ease),transform .8s var(--ease)
}
.intro.playing .intro-gate{opacity:0;transform:scale(.965) translateY(-12px);pointer-events:none}
.gate-eyebrow{color:var(--gold);font-size:.68rem;letter-spacing:.31em;text-transform:uppercase}
.gate-rule{width:58px;height:1px;background:var(--gold);margin:21px auto}
.intro-gate h2{font:400 clamp(2.4rem,6vw,4.5rem)/.95 Georgia,"Times New Roman",serif;margin:0}
.intro-gate p{color:#aaa397;max-width:450px;margin:22px auto 30px}
.gate-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.gate-button{
  min-height:52px;padding:0 21px;border:1px solid rgba(255,255,255,.2);
  background:transparent;color:#fff;letter-spacing:.12em;text-transform:uppercase;
  font-size:.68rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:12px;
  transition:transform .3s var(--ease),background .3s,border-color .3s,color .3s
}
.gate-button:hover{transform:translateY(-3px)}
.gate-button-gold{background:var(--gold);border-color:var(--gold);color:#120f09}
.gate-button-ghost:hover{border-color:var(--gold);color:var(--gold)}
.sound-wave{height:18px;display:flex;align-items:center;gap:2px}
.sound-wave i{display:block;width:2px;background:currentColor;animation:gateWave .9s ease-in-out infinite}
.sound-wave i:nth-child(1){height:7px}.sound-wave i:nth-child(2){height:14px;animation-delay:.12s}
.sound-wave i:nth-child(3){height:10px;animation-delay:.24s}.sound-wave i:nth-child(4){height:16px;animation-delay:.36s}
@keyframes gateWave{50%{transform:scaleY(.45)}}

.intro-cinematic{
  position:absolute;inset:0;display:grid;place-content:center;text-align:center;
  opacity:0;pointer-events:none
}
.intro.playing .intro-cinematic{opacity:1}
.intro-skip,.intro-audio-toggle{opacity:0;pointer-events:none}
.intro.playing .intro-skip,.intro.playing .intro-audio-toggle{opacity:1;pointer-events:auto}
.intro-audio-toggle{
  position:absolute;left:24px;bottom:22px;z-index:30;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.02);
  color:var(--gold);cursor:pointer;transition:.3s
}
.intro-audio-toggle.muted{color:#69645d}
.intro-cinematic:before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 42%,rgba(63,40,21,.35),transparent 31%),
             radial-gradient(circle at 50% 50%,transparent 35%,rgba(0,0,0,.78) 100%);
}
.intro-curtain{position:absolute;top:0;bottom:0;width:51%;background:#050507;z-index:10}
.intro-curtain-left{left:0}.intro-curtain-right{right:0}
.intro.playing .intro-curtain-left{animation:curtainLeft 1.5s .25s var(--ease) forwards}
.intro.playing .intro-curtain-right{animation:curtainRight 1.5s .25s var(--ease) forwards}
@keyframes curtainLeft{to{transform:translateX(-101%)}}
@keyframes curtainRight{to{transform:translateX(101%)}}

.intro-grid{
  position:absolute;inset:0;opacity:0;
  background-image:linear-gradient(rgba(215,179,106,.028) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(215,179,106,.028) 1px,transparent 1px);
  background-size:54px 54px;
}
.intro.playing .intro-grid{animation:gridReveal 3s .9s ease forwards}
@keyframes gridReveal{0%{opacity:0;transform:scale(1.08)}45%{opacity:.65}100%{opacity:.12;transform:scale(1)}}

.intro-ring{
  position:absolute;left:50%;top:45%;border:1px solid rgba(215,179,106,.23);
  border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.6)
}
.ring-one{width:min(68vw,610px);height:min(68vw,610px)}
.ring-two{width:min(51vw,455px);height:min(51vw,455px);border-color:rgba(255,255,255,.08)}
.intro.playing .ring-one{animation:ringReveal 3.7s 1.1s var(--ease) forwards}
.intro.playing .ring-two{animation:ringReveal 3.4s 1.38s var(--ease) forwards reverse}
@keyframes ringReveal{0%{opacity:0;transform:translate(-50%,-50%) scale(.6) rotate(-45deg)}45%{opacity:.5}100%{opacity:.12;transform:translate(-50%,-50%) scale(1) rotate(35deg)}}

.intro-logo-stage{position:relative;z-index:4;display:grid;place-items:center}
.intro-logo-aura{
  position:absolute;width:min(56vw,450px);height:min(56vw,450px);border-radius:50%;
  background:radial-gradient(circle,rgba(215,179,106,.16),rgba(112,51,63,.08) 40%,transparent 70%);
  filter:blur(20px);opacity:0
}
.intro.playing .intro-logo-aura{animation:auraReveal 4.2s 1.15s ease forwards}
@keyframes auraReveal{15%{opacity:.2}55%{opacity:.75;transform:scale(1.08)}100%{opacity:.28;transform:scale(1)}}

.intro .intro-mark{
  position:relative;width:min(50vw,350px);opacity:0;filter:drop-shadow(0 16px 34px rgba(0,0,0,.5));
  clip-path:inset(100% 0 0 0);transform:scale(.88)
}
.intro.playing .intro-mark{animation:markCinematic 2.15s 1.42s var(--ease) forwards}
@keyframes markCinematic{
  0%{opacity:0;clip-path:inset(100% 0 0 0);transform:scale(.88)}
  25%{opacity:.25}
  70%{opacity:1;clip-path:inset(0 0 0 0);transform:scale(1.025)}
  100%{opacity:1;clip-path:inset(0 0 0 0);transform:scale(1)}
}
.intro-shimmer{
  position:absolute;width:55px;height:120%;left:-22%;top:-10%;transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,245,211,.55),transparent);
  filter:blur(5px);opacity:0
}
.intro.playing .intro-shimmer{animation:logoShimmer 1.55s 2.85s var(--ease) forwards}
@keyframes logoShimmer{0%{left:-25%;opacity:0}25%{opacity:.8}100%{left:125%;opacity:0}}

.intro .intro-wordmark{
  width:min(77vw,600px);margin:14px auto 0;opacity:0;transform:translateY(16px);
}
.intro.playing .intro-wordmark{animation:cinematicText 1.05s 3.35s var(--ease) forwards}
.intro .intro-tagline{
  margin:7px 0 0;color:#b29b70;letter-spacing:.38em;font-size:.7rem;opacity:0;transform:translateY(12px)
}
.intro.playing .intro-tagline{animation:cinematicText 1s 3.78s var(--ease) forwards}
.intro-signature{
  margin:20px 0 0;color:#726c63;letter-spacing:.19em;text-transform:uppercase;
  font-size:.62rem;opacity:0;transform:translateY(9px)
}
.intro.playing .intro-signature{animation:cinematicText .9s 4.25s var(--ease) forwards}
@keyframes cinematicText{to{opacity:1;transform:translateY(0)}}

.intro-line{
  position:absolute;top:45%;left:50%;width:min(72vw,680px);height:1px;
  background:rgba(255,255,255,.06);transform:translate(-50%,-50%);z-index:2
}
.intro-line:before,.intro-line:after{
  content:"";position:absolute;top:0;height:100%;width:0;
  background:linear-gradient(90deg,transparent,var(--gold),transparent)
}
.intro-line:before{right:50%}.intro-line:after{left:50%}
.intro.playing .intro-line:before,.intro.playing .intro-line:after{animation:luxLine 2.4s .85s var(--ease) forwards}
@keyframes luxLine{to{width:50%}}

.intro-particles span{
  position:absolute;width:2px;height:2px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 12px rgba(215,179,106,.55);opacity:0
}
.intro-particles span:nth-child(1){left:18%;top:28%}.intro-particles span:nth-child(2){left:27%;top:66%}
.intro-particles span:nth-child(3){left:38%;top:19%}.intro-particles span:nth-child(4){left:45%;top:74%}
.intro-particles span:nth-child(5){left:57%;top:22%}.intro-particles span:nth-child(6){left:65%;top:68%}
.intro-particles span:nth-child(7){left:74%;top:31%}.intro-particles span:nth-child(8){left:82%;top:59%}
.intro-particles span:nth-child(9){left:33%;top:47%}.intro-particles span:nth-child(10){left:69%;top:44%}
.intro.playing .intro-particles span{animation:particleFloat 4.5s 1.1s ease-in-out forwards}
.intro.playing .intro-particles span:nth-child(2n){animation-delay:1.45s}
.intro.playing .intro-particles span:nth-child(3n){animation-delay:1.8s}
@keyframes particleFloat{
  0%{opacity:0;transform:translateY(14px) scale(.5)}
  35%{opacity:.65}
  100%{opacity:0;transform:translateY(-55px) scale(1.2)}
}

@media(max-width:620px){
  .intro-gate{padding:40px 20px}
  .gate-actions{display:grid}.gate-button{width:100%}
  .intro .intro-mark{width:min(69vw,285px)}
  .intro .intro-wordmark{width:min(91vw,480px)}
  .intro .intro-tagline{font-size:.56rem;letter-spacing:.28em}
  .intro-signature{font-size:.53rem}
  .intro-audio-toggle{left:16px;bottom:16px}
  .intro-skip{right:16px;top:15px}
}


/* V7: silent automatic intro */
.intro-gate,
.intro-audio-toggle{display:none!important}
.intro-skip{opacity:1!important;pointer-events:auto!important}


/* CLEAN LUXURY BOOKING */
.clean-booking{overflow:hidden}
.clean-booking-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:7vw;
  align-items:center
}
.clean-booking-copy>p{
  color:var(--muted);
  max-width:590px;
  font-size:1.04rem;
  margin:27px 0 0
}
.clean-booking-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:32px
}
.clean-booking-meta span{
  padding:9px 13px;
  border:1px solid var(--line);
  color:#999187;
  font-size:.64rem;
  letter-spacing:.13em;
  text-transform:uppercase
}
.email-card{
  position:relative;
  min-height:380px;
  padding:38px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  border:1px solid rgba(215,179,106,.22);
  background:
    linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.012)),
    #0c0c0f;
  box-shadow:0 28px 80px rgba(0,0,0,.28)
}
.email-card:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(120deg,transparent 20%,rgba(215,179,106,.045) 48%,transparent 72%)
}
.email-card-orbit{
  position:absolute;
  right:-140px;
  top:-150px;
  width:360px;
  height:360px;
  border-radius:50%;
  border:1px solid rgba(215,179,106,.14);
  box-shadow:
    0 0 0 42px rgba(215,179,106,.018),
    0 0 0 92px rgba(112,51,63,.025)
}
.email-card-top{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:47px
}
.email-card-label{
  color:var(--gold);
  font-size:.68rem;
  letter-spacing:.24em
}
.email-card-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 18px rgba(215,179,106,.7)
}
.email-address{
  position:relative;
  width:fit-content;
  max-width:100%;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.55rem,3vw,3.25rem);
  line-height:1.1;
  letter-spacing:-.035em;
  word-break:break-word;
  transition:color .3s
}
.email-address:hover{color:var(--gold)}
.email-card-note{
  position:relative;
  max-width:520px;
  color:#8e887f;
  margin:18px 0 28px;
  font-size:.88rem
}
.email-card-actions{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  gap:12px
}
.copy-email-button{cursor:pointer}
.copy-status{
  position:relative;
  min-height:1.4em;
  margin:13px 0 0;
  color:#b7d59e;
  font-size:.78rem
}
.clean-contact-strip{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  margin-top:68px;
  border-top:1px solid var(--line)
}
.clean-contact-strip a{
  display:grid;
  grid-template-columns:90px 1fr 20px;
  gap:18px;
  align-items:center;
  padding:22px 0;
  border-bottom:1px solid var(--line);
  transition:color .3s,padding .3s
}
.clean-contact-strip a:hover{
  color:var(--gold);
  padding-left:7px
}
.clean-contact-strip span{
  color:#807a72;
  font-size:.67rem;
  letter-spacing:.14em;
  text-transform:uppercase
}
.clean-contact-strip strong{font-weight:400}
.clean-contact-strip i{
  color:var(--gold);
  font-style:normal
}

@media(max-width:980px){
  .clean-booking-grid{grid-template-columns:1fr;gap:45px}
}
@media(max-width:620px){
  .email-card{min-height:330px;padding:28px 20px}
  .email-card-top{margin-bottom:35px}
  .email-card-actions{display:grid}
  .email-card-actions .button{width:100%}
  .clean-contact-strip{grid-template-columns:1fr;gap:0;margin-top:48px}
  .clean-contact-strip a{grid-template-columns:1fr 20px;gap:7px}
  .clean-contact-strip span{grid-column:1/-1}
}


/* V10 — CROSS-PLATFORM EMAIL BUTTONS */
.email-provider-actions{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px
}
.email-provider-button{
  width:100%;
  padding-left:15px;
  padding-right:15px;
  gap:9px;
  white-space:nowrap
}
.provider-mark{
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  border:1px solid currentColor;
  border-radius:50%;
  font-family:Arial,sans-serif;
  font-size:.68rem;
  line-height:1
}
.copy-source{
  position:fixed;
  left:-9999px;
  top:0;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none
}
.copy-status.success{color:#b9d79e}
.copy-status.error{color:#e29098}

@media(max-width:760px){
  .email-provider-actions{grid-template-columns:1fr}
}


/* V12 — FINAL MINIMAL BOOKING */
.final-booking{overflow:hidden}
.final-booking-grid{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:8vw;
  align-items:start
}
.final-booking-copy>p{
  max-width:590px;
  margin:28px 0 0;
  color:var(--muted);
  font-size:1.04rem
}
.booking-direct{
  margin-top:45px;
  padding:24px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.booking-direct>span{
  display:block;
  color:var(--gold);
  font-size:.65rem;
  letter-spacing:.2em;
  margin-bottom:9px
}
.booking-direct strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.18rem,2.25vw,2.2rem);
  font-weight:400;
  line-height:1.2;
  word-break:break-word
}
.copy-email-minimal{
  margin-top:15px;
  padding:0 0 4px;
  border:0;
  border-bottom:1px solid rgba(215,179,106,.45);
  background:none;
  color:#a9a196;
  font-size:.68rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  cursor:pointer
}
.copy-email-minimal:hover{color:var(--gold)}
.booking-direct small{
  display:block;
  min-height:1.4em;
  margin-top:9px;
  color:#b8d69d
}
.booking-side-links{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
  margin-top:28px
}
.booking-side-links a{
  display:grid;
  gap:4px;
  padding:15px 0;
  border-bottom:1px solid var(--line)
}
.booking-side-links span{
  color:#7f7971;
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase
}
.booking-side-links strong{
  font-weight:400;
  transition:color .25s
}
.booking-side-links a:hover strong{color:var(--gold)}

.minimal-booking-form{
  position:relative;
  padding:42px 42px 38px;
  border:1px solid rgba(215,179,106,.16);
  background:
    radial-gradient(circle at 92% 5%,rgba(112,51,63,.11),transparent 30%),
    linear-gradient(145deg,rgba(255,255,255,.034),rgba(255,255,255,.009));
  box-shadow:0 28px 85px rgba(0,0,0,.25)
}
.minimal-booking-form:before{
  content:"";
  position:absolute;
  left:42px;
  right:42px;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:.55
}
.minimal-field{
  display:grid;
  gap:7px;
  margin-bottom:27px
}
.minimal-field label{
  color:#9f988d;
  font-size:.66rem;
  letter-spacing:.16em;
  text-transform:uppercase
}
.minimal-field input,
.minimal-field textarea{
  width:100%;
  padding:8px 0 13px;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.17);
  border-radius:0;
  outline:none;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:1.02rem;
  transition:border-color .25s,box-shadow .25s
}
.minimal-field textarea{
  min-height:122px;
  resize:vertical;
  line-height:1.55
}
.minimal-field input::placeholder,
.minimal-field textarea::placeholder{color:#68635d}
.minimal-field input:focus,
.minimal-field textarea:focus{
  border-bottom-color:var(--gold);
  box-shadow:0 1px 0 rgba(215,179,106,.2)
}
.minimal-field input.invalid,
.minimal-field textarea.invalid{border-bottom-color:#d06f78}
.minimal-booking-form input:-webkit-autofill,
.minimal-booking-form input:-webkit-autofill:hover,
.minimal-booking-form input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--text);
  -webkit-box-shadow:0 0 0 1000px #101014 inset;
  transition:background-color 5000s ease-in-out 0s
}
.hidden-field{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important
}
.minimal-form-footer{
  display:grid;
  gap:24px;
  margin-top:7px
}
.minimal-consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#847e76;
  font-size:.76rem;
  cursor:pointer
}
.minimal-consent input{
  margin-top:4px;
  accent-color:var(--gold)
}
.minimal-submit{
  min-height:55px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  padding:0 18px;
  border:1px solid var(--gold);
  background:var(--gold);
  color:#13100a;
  font-size:.7rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .3s var(--ease),background .3s
}
.minimal-submit:hover{
  transform:translateY(-3px);
  background:#e6c47e
}
.minimal-submit:disabled{
  opacity:.6;
  cursor:wait;
  transform:none
}
.minimal-submit i{
  font-style:normal;
  font-size:1rem
}
.booking-form-status{
  min-height:1.5em;
  margin:17px 0 0;
  font-size:.82rem;
  color:#aaa49a
}
.booking-form-status.success{color:#b9d79e}
.booking-form-status.error{color:#e29098}

@media(max-width:980px){
  .final-booking-grid{grid-template-columns:1fr;gap:48px}
}
@media(max-width:620px){
  .minimal-booking-form{padding:32px 20px 28px}
  .minimal-booking-form:before{left:20px;right:20px}
  .booking-side-links{grid-template-columns:1fr;gap:0}
}
