:root{
  --bg:#0b0b0d;
  --bg-2:#111114;
  --surface:#16161a;
  --surface-2:#1c1c21;
  --line:rgba(255,255,255,.08);
  --line-gold:rgba(201,163,90,.35);
  --text:#efe9dc;
  --text-2:#cfc9bc;
  --muted:#9a958a;
  --gold:#c9a35a;
  --gold-light:#e8cf93;
  --gold-deep:#97753a;
  --gold-grad:linear-gradient(115deg,#a8823d 0%,#e8cf93 38%,#c9a35a 55%,#f3e2b0 72%,#a8823d 100%);
  --radius:16px;
  --shadow:0 1px 0 rgba(255,255,255,.04) inset,0 20px 50px rgba(0,0,0,.45);
  --serif:"Cinzel",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;background:var(--bg)}
body{margin:0;font-family:var(--sans);color:var(--text);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
/* Film grain + vignette for depth across the whole page */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-light)}
h1,h2,h3{line-height:1.12;margin:0 0 .5em;letter-spacing:.005em;color:var(--text)}
h2{font-family:var(--serif);font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:600}
h3{font-size:1.1rem;font-weight:600;letter-spacing:.01em}
p{margin:0 0 1em;color:var(--text-2)}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 20px;position:relative}
.narrow{max-width:780px}
.skip{position:absolute;left:-999px}
.skip:focus{left:16px;top:16px;background:var(--gold);color:#000;padding:8px 12px;z-index:200}

/* Buttons */
.btn{position:relative;display:inline-block;background:var(--gold-grad);background-size:200% 100%;color:#14110a;text-decoration:none;font-weight:600;padding:15px 28px;border-radius:999px;border:1px solid rgba(255,230,170,.5);transition:background-position .6s,transform .2s,box-shadow .3s;cursor:pointer;font-size:.98rem;font-family:inherit;letter-spacing:.02em;box-shadow:0 8px 30px rgba(201,163,90,.18)}
.btn:hover{background-position:100% 0;transform:translateY(-1px);box-shadow:0 12px 40px rgba(201,163,90,.32)}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line-gold);box-shadow:none}
.btn-ghost:hover{background:rgba(201,163,90,.08);border-color:var(--gold);color:var(--gold-light);box-shadow:none}
.btn-sm{padding:10px 20px;font-size:.88rem}
.btn-block{width:100%;text-align:center}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:linear-gradient(180deg,rgba(11,11,13,.85),rgba(11,11,13,.55));backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand img{height:54px;width:auto}
.brand-text{font-family:var(--serif);font-weight:700;font-size:1.25rem;color:var(--text)}
.brand{text-decoration:none}
.nav{display:flex;align-items:center;gap:30px}
.nav a{color:var(--text-2);text-decoration:none;font-weight:500;font-size:.92rem;letter-spacing:.03em}
.nav a:not(.btn):hover{color:var(--gold-light)}
.nav .btn{color:#14110a}
.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--text);margin:5px 0;transition:.2s}

/* Hero showroom */
.hero{position:relative;min-height:min(100vh,860px);display:flex;align-items:center;overflow:hidden;
  background:
    radial-gradient(60% 55% at 70% 62%,rgba(201,163,90,.10),transparent 70%),
    radial-gradient(40% 40% at 72% 20%,rgba(255,255,255,.05),transparent 70%),
    linear-gradient(180deg,#09090b 0%,#0d0d10 60%,#0b0b0d 100%);
  border-bottom:1px solid var(--line)}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(9,9,11,.92) 0%,rgba(9,9,11,.55) 34%,rgba(9,9,11,0) 58%),
             linear-gradient(0deg,#0b0b0d 0%,rgba(11,11,13,0) 18%)}
.stage{position:absolute;inset:0;user-select:none}
.stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;opacity:0;transition:opacity 1.4s ease}
.stage.ready canvas{opacity:1}
.hero-inner{z-index:2;pointer-events:none;padding-top:120px;padding-bottom:90px}
.hero-copy{max-width:560px;pointer-events:auto}
.hero h1{font-family:var(--serif);font-size:clamp(2.4rem,5.6vw,4.3rem);font-weight:600;letter-spacing:.005em}
.hero h1 span{display:block;background:var(--gold-grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 8s ease-in-out infinite}
@keyframes sheen{0%,100%{background-position:0 0}50%{background-position:100% 0}}
.lead{font-size:1.1rem;max-width:54ch;color:var(--text-2)}
.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;font-weight:600;color:var(--gold);margin-bottom:1em;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--gold)}
.section-head .eyebrow{justify-content:center}
.section-head .eyebrow::after{content:"";width:28px;height:1px;background:var(--gold)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 36px}
.trust{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 28px;color:var(--muted);font-size:.9rem}
.trust strong{color:var(--text)}
.trust a{color:var(--gold-light);text-decoration:none;border-bottom:1px solid var(--line-gold)}
.scroll-cue{position:absolute;left:50%;bottom:22px;z-index:3;width:22px;height:36px;margin-left:-11px;border:1px solid var(--line-gold);border-radius:12px}
.scroll-cue span{position:absolute;left:50%;top:7px;width:2px;height:7px;margin-left:-1px;background:var(--gold);border-radius:2px;animation:cue 2s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}

/* Sections */
.section{position:relative;padding:110px 0}
.section-alt{background:
  radial-gradient(50% 60% at 50% 0%,rgba(201,163,90,.06),transparent 70%),
  var(--bg-2)}
.section::before{content:"";position:absolute;top:0;left:50%;width:min(680px,80%);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--line-gold),transparent)}
.section-head{text-align:center;max-width:660px;margin:0 auto 56px}
.section-head p:last-child{color:var(--muted)}
.grid{display:grid;gap:22px}
.cards{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.card{position:relative;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow);transition:transform .35s,border-color .35s;overflow:hidden}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(400px 160px at var(--mx,50%) -20%,rgba(201,163,90,.14),transparent 60%);opacity:0;transition:opacity .35s}
.card:hover{transform:translateY(-4px);border-color:var(--line-gold)}
.card:hover::after{opacity:1}
.card p{color:var(--muted);margin:0}
.icon{width:50px;height:50px;border-radius:12px;background:linear-gradient(145deg,rgba(201,163,90,.18),rgba(201,163,90,.04));border:1px solid var(--line-gold);display:grid;place-items:center;margin-bottom:20px}
.icon svg{width:24px;height:24px;fill:none;stroke:var(--gold-light);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}

/* Steps */
.steps{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.steps li{display:flex;gap:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;transition:border-color .3s}
.steps li:hover{border-color:var(--line-gold)}
.steps span{flex:none;width:40px;height:40px;border-radius:50%;background:transparent;border:1px solid var(--gold);color:var(--gold-light);display:grid;place-items:center;font-family:var(--serif);font-weight:600}
.steps h3{margin-bottom:.25em}
.steps p{margin:0;color:var(--muted)}

/* Press */
.press{background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--line-gold);border-radius:var(--radius);padding:32px;position:relative;box-shadow:var(--shadow)}
.press::before{content:"\201C";position:absolute;right:22px;top:-6px;font-family:var(--serif);font-size:6rem;line-height:1;color:rgba(201,163,90,.18)}
.press-name{font-family:var(--serif);font-weight:600;font-size:1.5rem;color:var(--text);margin-bottom:.4em}
.press-title{font-weight:500;color:var(--text);margin-bottom:.3em}
.press-date{color:var(--muted);font-size:.88rem}
.link{font-weight:600;text-decoration:none;color:var(--gold-light)}
.link:hover{color:var(--gold)}

/* Gallery */
.gallery{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.shot{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:var(--surface);border:1px solid var(--line)}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.shot:hover img{transform:scale(1.04)}
.shot figcaption{padding:10px 14px;font-size:.88rem;color:var(--muted)}
.shot.placeholder{display:grid;place-items:center;background:
  radial-gradient(70% 60% at 50% 40%,rgba(201,163,90,.07),transparent 70%),
  repeating-linear-gradient(135deg,#141417 0 14px,#17171b 14px 28px);border-style:dashed;border-color:rgba(201,163,90,.2)}
.shot.placeholder span{color:var(--muted);font-weight:500;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}

/* Reviews */
.reviews{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.review{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--radius);padding:30px;margin:0;box-shadow:var(--shadow)}
.stars{color:var(--gold);letter-spacing:3px;font-size:1.05rem;margin-bottom:12px}
.review cite{font-style:normal;font-weight:600;color:var(--text)}
.placeholder-review{text-align:center;max-width:540px;margin:0 auto;grid-column:1/-1}

/* Area */
.area-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.area-list li{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 16px;font-weight:500;color:var(--text-2);transition:border-color .3s,color .3s}
.area-list li:hover{border-color:var(--line-gold);color:var(--text)}
.area-list li::before{content:"";display:inline-block;width:6px;height:6px;transform:rotate(45deg);background:var(--gold);margin-right:12px;vertical-align:middle}

/* FAQ */
details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 22px;margin-bottom:12px;transition:border-color .3s}
details[open]{border-color:var(--line-gold)}
summary{cursor:pointer;font-weight:600;padding:19px 0;list-style:none;position:relative;padding-right:28px;color:var(--text)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:14px;font-size:1.4rem;color:var(--gold)}
details[open] summary::after{content:"\2212"}
details p{color:var(--muted);padding-bottom:18px;margin:0}

/* Contact */
.contact{background:
  radial-gradient(50% 70% at 85% 50%,rgba(201,163,90,.10),transparent 70%),
  #08080a}
.contact-info{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:16px}
.contact-info li{display:grid;grid-template-columns:100px 1fr;color:var(--text-2)}
.contact-info strong{color:var(--gold);font-weight:500;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;padding-top:2px}
.contact-info a{color:var(--text);text-decoration:none}
.contact-info a:hover{color:var(--gold-light)}
.call-card{position:relative;background:linear-gradient(160deg,#1d1c20,#121215);border:1px solid var(--line-gold);border-radius:20px;padding:36px;box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.02) inset}
.call-card p{color:var(--muted)}
.call-big{font-family:var(--serif);font-size:clamp(1.9rem,5vw,2.6rem);font-weight:600;margin:.2em 0 .4em}
.call-big a{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;text-decoration:none}
.call-actions{display:grid;gap:12px;margin-top:22px}

/* Footer */
.site-footer{background:#060607;color:var(--muted);padding:56px 0 40px;font-size:.9rem;border-top:1px solid var(--line)}
.footer-inner{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start}
.footer-logo{height:64px;width:auto;margin-bottom:14px}
.site-footer p{color:var(--muted)}
.site-footer nav{display:flex;flex-wrap:wrap;gap:20px;justify-content:flex-end}
.site-footer a{color:var(--text-2);text-decoration:none}
.site-footer a:hover{color:var(--gold-light)}
.copy{grid-column:1/-1;border-top:1px solid var(--line);padding-top:22px;margin:0;font-size:.82rem;letter-spacing:.04em}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

/* Responsive */
@media (max-width:860px){
  .two-col{grid-template-columns:1fr;gap:36px}
  .nav-toggle{display:block}
  .nav{position:absolute;top:76px;left:0;right:0;background:rgba(11,11,13,.97);flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 22px;border-bottom:1px solid var(--line);display:none}
  .nav.open{display:flex}
  .nav a{padding:14px 0;border-bottom:1px solid var(--line)}
  .nav .btn{margin-top:14px;text-align:center}
  .footer-inner{grid-template-columns:1fr}
  .site-footer nav{justify-content:flex-start}
  .hero{display:block;min-height:0}
  .stage{position:relative;inset:auto;height:46vh;min-height:300px;max-height:400px;margin-top:76px}
  .hero::after{background:linear-gradient(0deg,#0b0b0d 0%,rgba(11,11,13,0) 30%)}
  .hero-inner{padding-top:6px;padding-bottom:70px}
  .scroll-cue{display:none}
}
@media (max-width:520px){
  .section{padding:76px 0}
  .call-card{padding:26px}
  .gallery{grid-template-columns:1fr}
  .hero-cta .btn{width:100%;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
.call-card .eyebrow{color:var(--gold)}
.contact-info li{grid-template-columns:124px 1fr}
@media (min-width:861px) and (max-width:1200px){.hero-copy{max-width:470px}}
/* Static poster shown until (or instead of) the 3D scene */
.stage-poster{position:absolute;inset:0;transition:opacity 1.2s ease}
.stage-poster img{width:100%;height:100%;object-fit:cover;object-position:center}
.stage.ready .stage-poster{opacity:0;transition-duration:.35s}

/* ---------- Page intro ---------- */
.intro{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:radial-gradient(60% 50% at 50% 50%,#141210 0%,#060607 70%);animation:introOut .9s cubic-bezier(.76,0,.24,1) 1.75s forwards}
.intro-inner{width:min(360px,70vw);text-align:center}
.intro-logo{width:100%;height:auto;overflow:visible}
.intro-stroke path{fill:none;stroke:#d9b878;stroke-width:5;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.15s cubic-bezier(.65,0,.35,1) .1s forwards}
.intro-fill{fill:#d6b46e;opacity:0;animation:fillIn .5s ease 1.05s forwards}
.intro-line{height:1px;margin:26px auto 14px;width:0;background:linear-gradient(90deg,transparent,#e8cf93,transparent);animation:lineGrow 1s cubic-bezier(.65,0,.35,1) .5s forwards}
.intro-tag{margin:0;font-size:.7rem;letter-spacing:.38em;text-transform:uppercase;color:#bfa36a;opacity:0;animation:fillIn .6s ease .9s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fillIn{to{opacity:1}}
@keyframes lineGrow{to{width:100%}}
@keyframes introOut{0%{transform:translateY(0)}100%{transform:translateY(-100%);visibility:hidden}}
.no-intro .intro{display:none}

/* Hero copy rises in after the intro */
.hero-copy>*{opacity:0;transform:translateY(22px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(2.15s + var(--i,0) * .12s)}
.no-intro .hero-copy>*{animation-delay:calc(.15s + var(--i,0) * .1s)}
.hero-copy>*:nth-child(1){--i:0}.hero-copy>*:nth-child(2){--i:1}.hero-copy>*:nth-child(3){--i:2}.hero-copy>*:nth-child(4){--i:3}.hero-copy>*:nth-child(5){--i:4}
@keyframes rise{to{opacity:1;transform:none}}
.site-header{animation:fadeDown .8s ease 2.0s both}
.no-intro .site-header{animation-delay:0s}
@keyframes fadeDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.intro{display:none}.hero-copy>*,.site-header{opacity:1;transform:none;animation:none}}
