:root{
  --ink:#f3f1ec;
  --ink-muted:#c9c1b3;
  --gold:#c8a96a;
  --gold-soft:#e1c98e;
  --gold-deep:#a8844b;
  --nav-bg:rgba(245,238,224,0.92);
  --card-bg:#f7f2e8;
  --card-border:rgba(200,169,106,0.35);
  --shadow-strong:0 30px 70px rgba(7,8,12,0.55);
  --shadow-soft:0 18px 45px rgba(12,10,6,0.3);
}
body{
  font-family:'Manrope',sans-serif;
  background: radial-gradient(1200px 600px at 15% 10%,rgba(35,70,120,0.35),transparent 60%), radial-gradient(900px 500px at 90% 0%,rgba(200,169,106,0.08),transparent 50%), linear-gradient(135deg,#071a2f,#020c18);
  color:var(--ink);
  line-height:1.75;
  overflow-x:hidden;
  position:relative;
}
.page-home::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:0.18;
  background:
    radial-gradient(circle at 18% 12%,rgba(255,255,255,0.08),transparent 38%),
    repeating-linear-gradient(45deg,rgba(255,255,255,0.035) 0 1px,transparent 1px 6px),
    repeating-linear-gradient(-45deg,rgba(200,169,106,0.05) 0 1px,transparent 1px 8px);
  mix-blend-mode:soft-light;
}
.page-home .editorial{
  font-size:1.06rem;
  line-height:1.9;
  letter-spacing:0.01em;
}
h1,h2,h3,h4{
  font-family:'Cormorant Garamond',serif;
  letter-spacing:0.03em;
}
.digit{
  font-family:'Space Grotesk',sans-serif;
  font-variant-numeric:lining-nums;
}
a{
  color:inherit;
  text-decoration:none;
}
.site-header{
  background:var(--nav-bg);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(200,169,106,0.3);
}
.site-header nav{
  justify-content:center;
}
.nav-list a:hover{
  color: #af9659;
}
.nav-list{
  color:#000;
}
.nav-list a,
.dropdown-toggle{
  color:#0f0d0a;
}
.nav-toggle .bar{
  background:#000;
}
.nav-list a,
.dropdown-toggle{
  font-family:'Space Grotesk',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:0.78rem;
}
.dropdown{
  position:relative;
}
.dropdown-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font:inherit;
  color:inherit;
  background:none;
  border:0;
  cursor:pointer;
  padding:0;
}
.dropdown-toggle::after{
  content:"";
  width:8px;
  height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-1px);
  transition:transform 0.25s ease;
}
.dropdown.is-open .dropdown-toggle::after{
  transform:rotate(-135deg) translateY(1px);
}
.dropdown-menu{
  position:absolute;
  top:calc(100% + 14px);
  left:0;
  min-width:260px;
  background:rgba(245,238,224,0.96);
  border:1px solid rgba(200,169,106,0.35);
  border-radius:14px;
  padding:14px 12px;
  box-shadow:var(--shadow-soft);
  opacity:0;
  transform:translateY(-6px);
  pointer-events:none;
  transition:opacity 0.3s ease, transform 0.3s ease;
}
.dropdown-menu a{
  display:block;
  padding:8px 10px;
  border-radius:8px;
  color:black;
  font-weight:500;
}
.dropdown-menu a:hover{
  color: #af9659;
}
.dropdown.is-open .dropdown-menu{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:10px;
  background:rgba(4,14,30,0.65);
  color:var(--ink);
  transition:transform 0.3s, border 0.3s, background 0.3s;
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
}
.nav-toggle:hover{
  border-color:rgba(200,169,106,0.55);
}
.nav-toggle .bar{
  display:block;
  width:22px;
  height:2px;
  margin:3px 0;
  background:var(--ink);
  transition:transform 0.3s, opacity 0.3s, background 0.3s;
  transform-origin:center;
}
.nav-toggle.is-open .bar:nth-child(2){
  transform:translateY(5px) rotate(45deg);
  background:var(--gold);
}
.nav-toggle.is-open .bar:nth-child(3){
  opacity:0;
}
.nav-toggle.is-open .bar:nth-child(4){
  transform:translateY(-10px) rotate(-45deg);
  background:var(--gold);
}
.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;
}
.hero{
  position:relative;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 30% 40%,rgba(255,255,255,0.16),transparent 60%);
  pointer-events:none;
}
.hero-cinematic{
  position:relative;
  overflow:hidden;
}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 16px;
  border-radius:999px;
  font-size:0.7rem;
  text-transform:uppercase;
  letter-spacing:0.32em;
  color:var(--gold-soft);
  background: rgba(8, 8, 8, 0.75);
  border:1px solid rgba(200,169,106,0.35);
}
.hero-divider{
  width:96px;
  height:1px;
  margin:18px auto 26px;
  background:linear-gradient(90deg,transparent,rgba(200,169,106,0.8),transparent);
}
.hero-cinematic::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:140px;
  background:linear-gradient(180deg,rgba(2,12,24,0),rgba(2,12,24,0.85));
  pointer-events:none;
}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:0.28em;
  font-size:1rem;
  color:var(--gold);
  margin-bottom:14px;
}
.title-halo{
  position:relative;
  display:inline-block;
}
.title-halo::after{
  content:"";
  position:absolute;
  left:50%;
  top:55%;
  width:240px;
  height:240px;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(200,169,106,0.26),transparent 62%);
  filter:blur(6px);
  z-index:-1;
}
.cta-section{
  background:radial-gradient(circle at 18% 18%,rgba(200,169,106,0.2),transparent 55%),
    linear-gradient(135deg,#f9f4ea,#efe3cc 52%,#f5eee2);
  border-top:1px solid rgba(200,169,106,0.3);
  border-bottom:1px solid rgba(200,169,106,0.3);
  position:relative;
  overflow:hidden;
}
.cta-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 20%,rgba(255,255,255,0.6),transparent 45%),
    repeating-linear-gradient(35deg,rgba(0,0,0,0.035) 0 1px,transparent 1px 6px);
  opacity:0.18;
  mix-blend-mode:multiply;
  pointer-events:none;
}
.cta-section > *{
  position:relative;
  z-index:1;
}
.cta-section .magic-btn,
.cta-section .cta-btn{
  box-shadow:0 18px 40px rgba(10,12,20,0.25);
}
.cta-section .cta-btn:hover{
  box-shadow:0 26px 60px rgba(10,12,20,0.35);
}
.lux-divider{
  width:110px;
  height:2px;
  margin:18px auto 0;
  background:linear-gradient(90deg,transparent,rgba(200,169,106,0.85),transparent);
}
.signature{
  max-width:760px;
  margin:0 auto;
  text-align:center;
  color:var(--ink);
}
.signature p{
  font-size:1.1rem;
  line-height:1.85;
  color:var(--ink-muted);
}
.signature .signature-name{
  display:block;
  margin-top:12px;
  color:var(--gold);
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-size:0.75rem;
}
.signature-line{
  width:140px;
  height:2px;
  margin:18px auto 0;
  background:linear-gradient(90deg,transparent,rgba(200,169,106,0.85),transparent);
}
.glass{
  background: linear-gradient(145deg,rgba(255,255,255,0.09),rgba(255,255,255,0.03)) !important;
  backdrop-filter:blur(10px);
  border:1px solid var(--card-border);
  transition:0.4s;
}
.glass:hover{
  transform:translateY(-10px) scale(1.03);
  border:1px solid rgba(200,169,106,0.6);
}
.magic-btn{
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  color:#0f0d0a;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  transition:0.35s ease;
  box-shadow:0 16px 40px rgba(14,10,6,0.35);
  position:relative;
  overflow:hidden;
}
.magic-btn:hover{
  transform:translateY(-3px);
  filter:saturate(1.05);
}
.magic-btn::after{
  content:"";
  position:absolute;
  inset:-40% 0 auto -120%;
  height:180%;
  opacity:0.6;
  transform:translateX(0);
}
.magic-btn:hover::after{
  transform:translateX(220%);
}
.cta-btn{
  background:linear-gradient(135deg,var(--gold),var(--gold-soft));
  color:#0f0d0a;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  box-shadow:0 16px 40px rgba(14,10,6,0.35);
  position:relative;
  overflow:hidden;
  transition:0.35s ease;
}
.cta-btn:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-strong);
  filter:saturate(1.05);
}
.cta-btn::after{
  content:"";
  position:absolute;
  inset:-40% 0 auto -120%;
  height:180%;
  opacity:0.6;
  transform:translateX(0);
}
.cta-btn:hover::after{
  transform:translateX(220%);
}
.reveal{
  opacity:0;
  transform:translateY(40px);
  transition:all 1s;
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}
@keyframes scroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.animate-scroll{
  animation:scroll 30s linear infinite;
}
.card{
  background:var(--card-bg);
  border:1px solid var(--card-border);
  box-shadow:var(--shadow-soft);
  transition:transform 0.35s ease, box-shadow 0.35s ease, border 0.35s ease;
  color:#1b2230;
}
.card p,
.card li,
.card strong{
  color:inherit;
}
.card-link{
  position:relative;
}
.card-link::after{
  content:"";
  position:absolute;
  right:18px;
  top:18px;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(200,169,106,0.35);
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,0.2),transparent 60%);
  opacity:0;
  transform:translateY(6px);
  transition:opacity 0.3s ease, transform 0.3s ease, border 0.3s ease;
}
.card-link::before{
  content:"→";
  position:absolute;
  right:30px;
  top:22px;
  font-size:18px;
  color:var(--gold);
  opacity:0;
  transform:translateY(6px);
  transition:opacity 0.3s ease, transform 0.3s ease;
}
.card-link:hover::after,
.card-link:hover::before{
  opacity:1;
  transform:translateY(0);
}
.card.no-hover:hover{
  transform:none;
  box-shadow:var(--shadow-soft);
  border-color:rgba(200,169,106,0.18);
}
.contact-card{
  position:relative;
}
.contact-card > *{
  position:relative;
  z-index:2;
}
.card-link-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:inherit;
  cursor:pointer;
}
.media-frame{
  border: solid #c8a96a 3px;
  box-shadow:var(--shadow-soft);
  border-radius:18px;
}
@keyframes fade-up{
  from{
    opacity:0;
    transform:translateY(22px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes scroll-pulse{
  0%{transform:translate(-50%,0);opacity:0.2;}
  50%{opacity:1;}
  100%{transform:translate(-50%,12px);opacity:0;}
}
.fade-up{
  animation:fade-up 1.05s ease both;
}
.stagger > *{
  animation:fade-up 1.05s ease both;
}
.stagger > *:nth-child(1){animation-delay:0.05s;}
.stagger > *:nth-child(2){animation-delay:0.12s;}
.stagger > *:nth-child(3){animation-delay:0.19s;}
.stagger > *:nth-child(4){animation-delay:0.26s;}
.stagger > *:nth-child(5){animation-delay:0.33s;}
.stagger > *:nth-child(6){animation-delay:0.4s;}
.stagger > *:nth-child(7){animation-delay:0.47s;}
.stagger > *:nth-child(8){animation-delay:0.54s;}
.stagger > *:nth-child(9){animation-delay:0.61s;}
.stagger > *:nth-child(10){animation-delay:0.68s;}
.stagger > *:nth-child(11){animation-delay:0.75s;}
.stagger > *:nth-child(12){animation-delay:0.82s;}
.teaser-dialog{
  border:0;
  padding:0;
  background:transparent;
  width:min(960px, 92vw);
  color:var(--ink);
}
.teaser-dialog::backdrop{
  background:rgba(6, 10, 16, 0.82);
  backdrop-filter:blur(2px);
}
.teaser-dialog__panel{
  position:relative;
  display:flex;
  flex-direction:column;
  background:rgba(5, 12, 22, 0.96);
  border:1px solid rgba(200, 169, 106, 0.4);
  border-radius:20px;
  box-shadow:var(--shadow-strong);
  padding:56px 22px 18px;
  animation:teaser-dialog-in 0.35s ease;
}
.teaser-dialog__media{
  position:relative;
  margin-top:6px;
  width:100%;
  aspect-ratio:16 / 9;
  border-radius:16px;
  overflow:hidden;
  background:#000;
}
.teaser-dialog__media iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.teaser-dialog__close{
  position:absolute;
  top:14px;
  right:14px;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(200, 169, 106, 0.5);
  background:rgba(4, 14, 30, 0.8);
  color:var(--ink);
  font-family:'Space Grotesk', sans-serif;
  font-size:0.9rem;
  letter-spacing:0.2em;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:transform 0.2s ease, border 0.2s ease, background 0.2s ease;
}
.teaser-dialog__close:hover{
  transform:scale(1.05);
  border-color:var(--gold);
  background:rgba(6, 18, 36, 0.9);
}
.teaser-dialog__action{
  align-self:flex-end;
  display:inline-flex;
  margin:18px 4px 0 0;
  background:none;
  border:0;
  color:#fff;
  font-family:'Space Grotesk', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.22em;
  font-size:0.78rem;
  cursor:pointer;
}
.teaser-dialog__action:hover{
  color:var(--gold);
}
.text-justify{
  text-align:justify;
}
.teaser-dialog[open]::backdrop{
  animation:teaser-backdrop-in 0.35s ease;
}
.teaser-dialog.is-closing .teaser-dialog__panel{
  animation:teaser-dialog-out 0.22s ease forwards;
}
.teaser-dialog.is-closing::backdrop{
  animation:teaser-backdrop-out 0.22s ease forwards;
}
@keyframes teaser-dialog-in{
  from{opacity:0; transform:translateY(12px) scale(0.98);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
@keyframes teaser-dialog-out{
  from{opacity:1; transform:translateY(0) scale(1);}
  to{opacity:0; transform:translateY(8px) scale(0.98);}
}
@keyframes teaser-backdrop-in{
  from{opacity:0;}
  to{opacity:1;}
}
@keyframes teaser-backdrop-out{
  from{opacity:1;}
  to{opacity:0;}
}
@media (max-width: 900px){
  .nav-toggle{
    display:inline-flex;
  }
  .nav-list{
    position:absolute;
    top:calc(100% + 33px);
    left:0;
    right:0;
    flex-direction:column;
    gap:16px;
    padding:20px 24px 24px;
    background:var(--nav-bg);
    border-bottom:1px solid rgba(200,169,106,0.2);
    transform:translateY(-10px);
    opacity:0;
    pointer-events:none;
    transition:opacity 0.3s ease, transform 0.3s ease;
    border-radius: 0 0 20px 20px;
  }
  .nav-list.is-open{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }
  .dropdown-menu{
    position:static;
    margin-top:10px;
    padding:0 0 0 10px;
    border:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    transform:none;
    pointer-events:auto;
    max-height:0;
    overflow:hidden;
    transition:max-height 0.3s ease;
  }
  .dropdown.is-open .dropdown-menu{
    max-height:220px;
  }
  .dropdown-menu a{
    padding:6px 0;
  }
}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}
