:root{
  --obsidian:    #050609;
  --ink:         #0A0D13;
  --gold:        #C9A467;
  --gold-light:  #E7D3A4;
  --gold-soft:   #D9BD87;
  --gold-dim:    #8C7143;
  --bone:        #F3EEE3;
  --bone-dim:    rgba(243,238,227,.68);
  --bone-faint:  rgba(243,238,227,.4);
  --foil:        linear-gradient(100deg,var(--gold-dim) 0%,var(--gold-light) 28%,var(--gold) 45%,var(--gold-dim) 60%,var(--gold-soft) 78%,var(--gold-dim) 100%);
  --f-display:   'Fraunces', serif;
  --f-body:      'Inter', 'Helvetica Neue', Arial, sans-serif;
  --f-label:     'Cinzel', 'Times New Roman', serif;
}
*{ box-sizing:border-box; }
html,
body {
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
}
body{
  margin:0;
  background:var(--obsidian);
  font-family:var(--f-body);
  color:var(--bone);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
.loader{
  position:fixed;
  inset:0;
  z-index:999;
  background:
    radial-gradient(ellipse 120% 90% at 50% 50%, var(--ink) 0%, var(--obsidian) 65%, #000 100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  animation:loaderOut 1.6s cubic-bezier(.65,0,.2,1) forwards;
  animation-delay:.75s;
}
.loader__logo{
  width:min(8vw, 70px);
  min-width:44px;
  height:auto;
  opacity:0;
  filter:drop-shadow(0 0 22px rgba(201,164,103,.55));
  animation:loaderLogo 1.6s ease-out forwards;
}
.loader__line{
  width:2px;
  height:0;
  background:linear-gradient(180deg, transparent, var(--gold), transparent);
  animation:loaderLine 1.1s ease-out forwards;
  animation-delay:.15s;
}
@keyframes loaderLogo{
  0%{   opacity:0; transform:scale(.8) translateY(6px); letter-spacing:.3em; }
  35%{  opacity:1; transform:scale(1) translateY(0); }
  78%{  opacity:1; transform:scale(1); }
  100%{ opacity:0; transform:scale(1.08); }
}
@keyframes loaderLine{
  0%{ height:0; opacity:.9; }
  50%{ height:48px; opacity:.9; }
  100%{ height:48px; opacity:0; }
}
@keyframes loaderOut{
  0%{    opacity:1; visibility:visible; }
  82%{   opacity:0; }
  100%{  opacity:0; visibility:hidden; pointer-events:none; }
}
.scene{
  position:relative;
  min-height:100vh;
  width:100%;
  display:flex;
  isolation:isolate;
}
.scene__bg{
  position:fixed;
  inset:0;
  background-image:url('bg.png');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  z-index:0;
}
@media (max-width: 768px) {
  .scene__bg {
    background-image: url('bg2.png');
  }
}
.scene__overlay{
  position:fixed;
  inset:0;
  z-index:1;
  background:
    radial-gradient(ellipse 70% 60% at 50% 42%, rgba(5,6,9,.35) 0%, rgba(5,6,9,.74) 68%, rgba(5,6,9,.92) 100%);
  pointer-events:none;
}
#stars{
  position:fixed;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  pointer-events:none;
  mix-blend-mode:screen;
  opacity:.8;
}
.content{
  position:relative;
  z-index:2;
  width:100%;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:6vh 6vw;
}
.content__inner{
  width:100%;
  max-width:820px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  transform: translateY(-70px) scale(0.7);
  transform-origin: center;
}
.reveal{
  opacity:0;
  transform:translateY(16px);
  animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;
  animation-delay:var(--d,0s);
}
@keyframes rise{
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .reveal{ animation:none; opacity:1; transform:none; }
}
.logo{
  margin-bottom:6px;
  filter:drop-shadow(0 0 18px rgba(201,164,103,.35));
}
.logo__mark{
  width:min(9vw, 110px);
  min-width:64px;
  height:auto;
  display:block;
  margin:0 auto;
}
.headline{
  font-family:var(--f-display);
  font-weight:500;
  font-size:clamp(2.6rem, 8vw, 6.4rem);
  line-height:.98;
  letter-spacing:-.01em;
  margin:.2em 0 .35em;
  color:var(--bone);
}
.headline em{
  font-style:italic;
  font-weight:400;
  background:var(--foil);
  background-size:220% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  animation:foilShimmer 7s linear infinite;
}
@keyframes foilShimmer{
  0%{ background-position:0% 50%; }
  100%{ background-position:200% 50%; }
}
.rule{
  width:min(70%, 460px);
  height:1px;
  margin:0 auto .9em;
  background:linear-gradient(90deg, transparent, var(--gold) 50%, transparent);
  opacity:.75;
}
.subhead{
  font-family:var(--f-label);
  font-weight:500;
  letter-spacing:.32em;
  text-transform:uppercase;
  font-size:clamp(.78rem, 1.35vw, 1.05rem);
  color:var(--bone);
  margin:0 0 1.4em;
}
.lede{
  font-family:var(--f-body);
  font-weight:300;
  font-size:clamp(.85rem, 1.25vw, 1.02rem);
  line-height:1.75;
  letter-spacing:.01em;
  color:var(--bone-dim);
  margin:0 0 1.8em;
}
.rule--diamond{
  position:relative;
  width:min(46%, 300px);
  margin-bottom:2.6em;
}
.rule__diamond{
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  background:var(--gold);
  transform:translate(-50%,-50%) rotate(45deg);
  box-shadow:0 0 10px rgba(201,164,103,.7);
}
.services{
  list-style:none;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:clamp(10px, 2.4vw, 30px);
  padding:0;
  margin:0 0 2.6em;
  flex-wrap:wrap;
}
.services__item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  width:132px;
}
.services__icon{
  width:52px;
  height:52px;
  object-fit:contain;
  transition:transform .3s ease;
}
.services__item:hover .services__icon{
  transform:translateY(-3px);
}
.services__item span{
  font-family:var(--f-label);
  font-weight:500;
  font-size:.7rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  line-height:1.5;
  color:var(--bone);
}
.services__divider{
  width:1px;
  height:78px;
  background:linear-gradient(180deg, transparent, rgba(201,164,103,.55), transparent);
  align-self:center;
  margin-top:6px;
}
.tagline{
  font-family:var(--f-label);
  font-weight:500;
  letter-spacing:.28em;
  text-transform:uppercase;
  font-size:clamp(.7rem, 1.15vw, .88rem);
  color:var(--gold-soft);
  margin:0 0 1.6em;
}
.cta{
  appearance:none;
  background:transparent;
  border:1px solid var(--gold);
  color:var(--gold-light);
  font-family:var(--f-label);
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-size:clamp(.7rem, 1.1vw, .82rem);
  padding:1em 2.2em;
  cursor:pointer;
  transition:background .35s ease, color .35s ease, box-shadow .35s ease, transform .2s ease;
}
.cta:hover{
  background:var(--gold);
  color:var(--obsidian);
  box-shadow:0 0 28px rgba(201,164,103,.45);
  transform:translateY(-1px);
}
.cta:active{ transform:translateY(0); }
.cta:focus-visible{
  outline:2px solid var(--gold-light);
  outline-offset:4px;
}
@media (max-width:640px){
  .services{ gap:14px; }
  .services__item{ width:44%; }
  .services__divider{ display:none; }
  .lede br{ display:none; }
}