
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Italiana&display=swap');
:root{--gold:#c7ae82;--cream:#f6f1e9;--ink:#201b19;--wine:#3b151a}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;overflow-x:hidden}a{text-decoration:none;color:inherit}
#pageProgress{position:fixed;top:0;left:0;right:0;height:2px;z-index:100}#pageProgress span{display:block;height:100%;width:0;background:var(--gold)}
.nav{position:fixed;z-index:90;top:0;left:0;right:0;height:92px;display:grid;grid-template-columns:260px 1fr 210px;align-items:center;padding:0 4vw;color:white;background:linear-gradient(180deg,rgba(15,12,11,.54),transparent);transition:.35s}.nav.scrolled{height:78px;background:rgba(246,241,233,.94);backdrop-filter:blur(14px);color:var(--ink);border-bottom:1px solid rgba(0,0,0,.05)}
.real-brand img{width:245px;display:block}.nav.scrolled .real-brand img{width:210px}.nav nav{justify-self:center;display:flex;gap:30px;font-size:9px;letter-spacing:2px;text-transform:uppercase}.quote{justify-self:end;border:1px solid rgba(215,190,148,.7);padding:14px 17px;font-size:9px;letter-spacing:1.7px;text-transform:uppercase}
.side-route{position:fixed;left:24px;top:50%;transform:translateY(-50%);z-index:70;display:flex;flex-direction:column;gap:24px;padding-left:18px}.side-track{position:absolute;left:0;top:4px;bottom:4px;width:1px;background:rgba(199,174,130,.22)}.side-track i{display:block;width:1px;height:0;background:var(--gold);box-shadow:0 0 14px rgba(199,174,130,.35)}.side-route a{display:flex;gap:8px;align-items:center;opacity:.3;color:#8d806f;transition:.35s}.side-route a.active{opacity:1;color:var(--gold)}.side-route b{font:11px 'Italiana';font-weight:400}.side-route span{font-size:7px;letter-spacing:1.8px;text-transform:uppercase;max-width:0;overflow:hidden;transition:.35s}.side-route a.active span{max-width:75px}
.hero{height:100vh;min-height:760px;position:relative;overflow:hidden;color:white;display:flex;align-items:center}.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,11,10,.72),rgba(14,11,10,.34) 38%,rgba(14,11,10,.03) 72%),linear-gradient(0deg,rgba(10,8,7,.20),transparent 44%),url('assets/photos-final/BDAY-CARO-DEN-at-GRAND-HALL-59(1).jpg') center/cover no-repeat;transform:scale(1.015)}.hero-lines{position:absolute;right:3vw;top:0;width:180px;height:130px;opacity:.28;background:repeating-linear-gradient(90deg,transparent 0 5px,var(--gold) 5px 7px,transparent 7px 11px);clip-path:polygon(0 0,100% 0,100% 28%,92% 28%,92% 62%,84% 62%,84% 43%,76% 43%,76% 85%,68% 85%,68% 35%,60% 35%,60% 74%,52% 74%,52% 48%,44% 48%,44% 96%,36% 96%,36% 40%,28% 40%,28% 71%,20% 71%,20% 52%,12% 52%,12% 82%,0 82%)}.hero-copy{position:relative;z-index:3;margin-left:11vw;width:min(720px,58vw);padding-top:70px}.eyebrow{font-size:9px;letter-spacing:4px;color:#d4bb8d}.hero h1,.intro h2,.events h2,.contact h2{font:clamp(60px,7vw,118px)/.9 'Italiana';font-weight:400;margin:24px 0}.hero h1 i,.contact h2 i{font-style:italic;color:#e2c99c}.lead{font-size:15px;line-height:1.8;max-width:560px;color:rgba(255,255,255,.88)}.actions{display:flex;gap:24px;align-items:center;margin-top:34px}.btn{display:inline-block;padding:15px 20px;background:var(--gold);color:white;border:1px solid var(--gold);font-size:9px;letter-spacing:1.7px;text-transform:uppercase}.ghost{font-size:9px;letter-spacing:1.7px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:7px}.hero-bottom{position:absolute;z-index:4;left:11vw;bottom:34px;display:flex;align-items:center;gap:12px;font-size:7px;letter-spacing:2.5px;color:rgba(255,255,255,.72)}.hero-bottom i{width:70px;height:1px;background:rgba(255,255,255,.35)}
.intro{min-height:70vh;padding:100px 18vw;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.intro>p:first-child{font-size:9px;letter-spacing:4px;color:#a98f64}.intro h2{font-size:clamp(56px,7vw,104px);margin:16px 0}.intro-rule{width:1px;height:90px;background:var(--gold);margin:25px}.intro-copy{max-width:650px;line-height:1.9;color:#756c63}
.journey{height:590vh;position:relative;background:radial-gradient(circle at 54% 48%,rgba(199,174,130,.12),transparent 23%),linear-gradient(145deg,#211316,#100b0d 60%,#090708);color:white}.journey-sticky{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:33% 49% 18%;overflow:hidden}.journey-copy{position:relative;padding:14vh 2vw 8vh 8vw;border-right:1px solid rgba(255,255,255,.07)}.journey-copy>.eyebrow{margin-bottom:7vh}.copy-panel{position:absolute;top:30vh;left:8vw;right:3vw;opacity:0;transform:translateY(38px);transition:opacity .6s,transform .6s}.copy-panel.active{opacity:1;transform:none}.copy-panel span{font:15px 'Italiana';color:var(--gold);letter-spacing:.18em}.copy-panel h2{font:clamp(64px,7vw,116px)/.88 'Italiana';font-weight:400;margin:18px 0 25px}.copy-panel p{max-width:390px;line-height:1.8;color:rgba(255,255,255,.55);font-size:13px}
.journey-visual{position:relative;overflow:hidden}.ring-glow{position:absolute;left:50%;top:50%;width:72%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(215,180,115,.18),rgba(215,180,115,.04) 44%,transparent 69%);filter:blur(26px)}#ringSequence,#logoSequence{position:absolute;left:50%;top:50%;width:min(76%,720px);height:auto;transform:translate(-50%,-50%);object-fit:contain;filter:drop-shadow(0 18px 36px rgba(0,0,0,.28));transition:opacity .45s,transform .45s}#logoSequence{opacity:0;width:min(82%,760px);transform:translate(-50%,-50%) scale(.92)}.journey.logo-phase #ringSequence{opacity:.08;transform:translate(-50%,-50%) scale(.72)}.journey.logo-phase #logoSequence{opacity:1;transform:translate(-50%,-50%) scale(1)}
.orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(215,180,115,.13);border-radius:50%}.orbit-a{width:68%;height:23%;transform:translate(-50%,-50%) rotate(-14deg)}.orbit-b{width:54%;height:18%;transform:translate(-50%,-50%) rotate(17deg);opacity:.5}.stage-caption{position:absolute;right:3vw;bottom:4vh;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.stage-caption span{font:11px 'Italiana';letter-spacing:.17em;color:var(--gold)}.stage-caption b{font-size:6px;font-weight:400;letter-spacing:2.4px;color:rgba(255,255,255,.3)}
.journey-progress{position:relative;padding:14vh 3vw 8vh 2vw;border-left:1px solid rgba(255,255,255,.07)}.progress-head{display:flex;justify-content:space-between;font-size:7px;letter-spacing:2.3px;color:rgba(255,255,255,.35)}.progress-head strong{font:16px 'Italiana';font-weight:400;color:var(--gold)}.progress-track{position:absolute;left:32px;top:22vh;bottom:12vh;width:1px;background:rgba(255,255,255,.11)}.progress-track i{display:block;width:1px;height:0;background:var(--gold);box-shadow:0 0 14px rgba(199,174,130,.4)}.progress-nodes{position:absolute;left:2vw;right:2vw;top:22vh;bottom:12vh;display:flex;flex-direction:column;justify-content:space-between}.progress-nodes div{display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.27);transition:.35s}.progress-nodes div:before{content:"";width:7px;height:7px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:#100b0d;margin-left:7px;transition:.35s}.progress-nodes div.active{color:#f5e8ce}.progress-nodes div.active:before{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 6px rgba(199,174,130,.08),0 0 18px rgba(199,174,130,.3)}.progress-nodes b{font:11px 'Italiana';font-weight:400}.progress-nodes span{font-size:7px;letter-spacing:1.6px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);padding:100px 9vw;background:#faf7f1}.facts div{text-align:center;border-right:1px solid rgba(199,174,130,.3)}.facts div:last-child{border-right:0}.facts strong{display:block;font:72px 'Italiana';color:var(--wine)}.facts span{font-size:8px;letter-spacing:2px}
.events{padding:110px 8vw}.events header{max-width:850px;margin-bottom:50px}.events h2{font-size:clamp(55px,6vw,96px)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.event-grid article{height:58vh;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end;color:white;padding:28px;position:relative;overflow:hidden}.event-grid article:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,5,5,.75),transparent 60%)}.event-grid article>*{position:relative}.event-grid h3{font:40px 'Italiana';margin:0 0 8px}.event-grid p{font-size:12px}.e1{background-image:url('assets/photos-final/BDAY-CARO-DEN-at-GRAND-HALL-55(1).jpg')}.e2{background-image:url('assets/photos-final/BDAY-CARO-DEN-at-GRAND-HALL-58-3(1).jpg')}.e3{background-image:url('assets/photos-final/BDAY-CARO-DEN-at-GRAND-HALL-50(1).jpg')}
.contact{padding:120px 9vw;display:grid;grid-template-columns:1fr 1fr;gap:8vw;background:#f1eadf}.contact form{display:grid;grid-template-columns:1fr 1fr;gap:22px}.contact label{font-size:8px;letter-spacing:1.8px;text-transform:uppercase;color:#8b7a65}.contact input,.contact select,.contact textarea{display:block;width:100%;border:0;border-bottom:1px solid rgba(139,122,101,.35);background:transparent;padding:12px 0;outline:none}.wide{grid-column:1/-1}
footer{padding:28px 5vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(0,0,0,.06)}footer img{width:200px}
@media(max-width:980px){.nav{grid-template-columns:1fr auto;height:82px}.nav nav{display:none}.real-brand img{width:190px}.side-route{display:none}.hero{min-height:680px}.hero-copy{margin-left:7vw;width:85vw;padding-top:30px}.hero h1{font-size:58px}.journey{height:520vh}.journey-sticky{grid-template-columns:1fr}.journey-copy{position:absolute;z-index:8;left:0;right:0;top:0;height:40vh;padding:11vh 6vw 0;border:0}.journey-copy>.eyebrow{margin-bottom:15px}.copy-panel{top:19vh;left:6vw;right:6vw}.copy-panel h2{font-size:58px}.copy-panel p{display:none}.journey-visual{position:absolute;left:0;right:0;top:27vh;bottom:14vh}.journey-progress{position:absolute;left:6vw;right:6vw;bottom:3vh;height:70px;padding:0;border:0}.progress-track{left:0;right:0;top:22px;bottom:auto;width:100%;height:1px}.progress-track i{height:1px;width:0}.progress-nodes{position:static;flex-direction:row;margin-top:16px}.progress-nodes div:before{display:none}.progress-nodes span{display:none}.event-grid{grid-template-columns:1fr}.contact{grid-template-columns:1fr}.contact form{grid-template-columns:1fr}.wide{grid-column:auto}}

/* V12 — high quality true-mesh ring frames */
#ringSequence{
  image-rendering:auto;
  filter:
    drop-shadow(0 24px 42px rgba(0,0,0,.34))
    drop-shadow(0 0 18px rgba(214,174,103,.10));
}


/* V13 — richer motion + social drawer */
.hero-copy .eyebrow{animation:heroEyebrow .9s .15s both cubic-bezier(.2,.8,.2,1)}
.hero-word{display:inline-block;clip-path:inset(0 100% 0 0);transform:translateY(18px);animation:heroReveal 1.15s both cubic-bezier(.16,.84,.24,1)}
.hw1{animation-delay:.28s}.hw2{animation-delay:.52s}
.hero .lead{opacity:0;transform:translateY(18px);animation:heroFade .9s .78s forwards}
.hero .actions{opacity:0;transform:translateY(18px);animation:heroFade .9s .92s forwards}
@keyframes heroReveal{to{clip-path:inset(0 0 0 0);transform:none}}
@keyframes heroFade{to{opacity:1;transform:none}}
@keyframes heroEyebrow{from{opacity:0;letter-spacing:7px}to{opacity:1;letter-spacing:4px}}

.hero-lines:after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(239,214,169,.75),transparent);
  animation:lineSweep 4.8s infinite ease-in-out;
}
@keyframes lineSweep{0%,100%{transform:translateY(0);opacity:0}15%{opacity:.8}70%{opacity:.25}85%{transform:translateY(125px);opacity:0}}

#ringSequence{transition:transform .22s linear,opacity .4s ease}
.journey:not(.logo-phase) #ringSequence{animation:ringFloat 4.2s ease-in-out infinite}
@keyframes ringFloat{0%,100%{margin-top:0}50%{margin-top:-9px}}
#logoSequence{filter:drop-shadow(0 22px 40px rgba(0,0,0,.30)) drop-shadow(0 0 18px rgba(255,231,189,.10))}
.copy-panel.active h2{animation:copyTitle .65s both cubic-bezier(.2,.8,.2,1)}
.copy-panel.active p{animation:copyBody .8s .10s both cubic-bezier(.2,.8,.2,1)}
.copy-panel.active span{animation:copyNo .55s both}
@keyframes copyTitle{from{opacity:0;transform:translateX(-24px);clip-path:inset(0 100% 0 0)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
@keyframes copyBody{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes copyNo{from{opacity:0;letter-spacing:.5em}to{opacity:1;letter-spacing:.18em}}

.social-tab{
  position:fixed;right:0;top:50%;z-index:89;transform:translateY(-50%);
  width:42px;height:132px;border:1px solid rgba(199,174,130,.42);border-right:0;
  background:rgba(246,241,233,.88);backdrop-filter:blur(14px);color:#806d53;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;
  cursor:pointer;transition:.35s;
}
.social-tab:hover{width:48px;background:#f8f4ed}
.social-tab span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:7px;letter-spacing:2.8px}
.social-tab i{width:1px;height:20px;background:var(--gold)}
.social-drawer{
  position:fixed;z-index:96;top:0;right:0;width:min(420px,88vw);height:100vh;
  background:#171011;color:white;transform:translateX(105%);transition:transform .55s cubic-bezier(.18,.82,.22,1);
  box-shadow:-30px 0 80px rgba(0,0,0,.22);
}
.social-drawer.open{transform:none}
.social-close{position:absolute;right:25px;top:23px;border:0;background:none;color:#d9c39b;font:34px 'Italiana';cursor:pointer}
.social-drawer-inner{height:100%;padding:14vh 48px 45px;display:flex;flex-direction:column}
.social-drawer h3{font:68px/.92 'Italiana';font-weight:400;margin:18px 0 24px;color:#f3e6cd}
.social-drawer p:not(.eyebrow){color:rgba(255,255,255,.52);line-height:1.75;font-size:13px}
.social-drawer nav{margin-top:45px;border-top:1px solid rgba(255,255,255,.12)}
.social-drawer nav a{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.12);font:22px 'Italiana';transition:.3s}
.social-drawer nav a:hover{padding-left:8px;color:#d8bc88}
.social-drawer nav b{font-weight:400;color:#b89a67}
.social-drawer small{margin-top:auto;font-size:8px;letter-spacing:2.5px;color:#a98f64}
.social-backdrop{position:fixed;z-index:95;inset:0;background:rgba(8,5,5,.36);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:.35s}
.social-backdrop.show{opacity:1;pointer-events:auto}

/* richer section entrances */
.facts div{opacity:0;transform:translateY(28px);transition:.75s}
.facts.in-view div{opacity:1;transform:none}
.facts.in-view div:nth-child(2){transition-delay:.12s}.facts.in-view div:nth-child(3){transition-delay:.24s}
.events header{opacity:0;transform:translateY(28px);transition:.7s}.events.in-view header{opacity:1;transform:none}
.event-grid article{opacity:0;transform:translateY(35px) scale(.985);transition:.75s}.events.in-view article{opacity:1;transform:none}
.events.in-view article:nth-child(2){transition-delay:.12s}.events.in-view article:nth-child(3){transition-delay:.24s}

@media(max-width:980px){.social-tab{top:auto;bottom:22px;height:42px;width:112px;right:16px;transform:none;flex-direction:row}.social-tab span{writing-mode:horizontal-tb;transform:none}.social-tab i{width:20px;height:1px}.social-drawer-inner{padding:13vh 32px 32px}}


/* V14 — jewelry materials + quieter social UI */
.social-tab{
  width:34px!important;
  height:34px!important;
  right:18px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  border:1px solid rgba(199,174,130,.36)!important;
  border-radius:50%!important;
  background:rgba(246,241,233,.72)!important;
  backdrop-filter:blur(10px)!important;
  color:#8c7654!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  box-shadow:0 6px 22px rgba(40,25,15,.05);
}
.social-tab:hover{
  width:34px!important;
  background:#f7f3ec!important;
  transform:translateY(-50%) scale(1.06)!important;
}
.social-tab span{
  writing-mode:horizontal-tb!important;
  transform:none!important;
  font:16px 'Italiana'!important;
  letter-spacing:0!important;
  line-height:1!important;
}
.social-tab i{display:none!important}

.social-drawer{
  width:min(330px,86vw)!important;
  background:#151011!important;
  box-shadow:-24px 0 60px rgba(0,0,0,.18)!important;
}
.social-drawer-inner{
  padding:13vh 34px 30px!important;
}
.social-drawer h3{
  font:50px/.95 'Italiana'!important;
  margin:14px 0 26px!important;
}
.social-drawer p:not(.eyebrow){display:none!important}
.social-drawer nav{
  margin-top:18px!important;
}
.social-drawer nav a{
  padding:15px 0!important;
  font:18px 'Italiana'!important;
}
.social-drawer nav a:hover{
  padding-left:4px!important;
}
.social-close{
  right:18px!important;
  top:16px!important;
  font-size:26px!important;
  opacity:.76;
}
.social-drawer small{
  font-size:7px!important;
  letter-spacing:2px!important;
}

/* Give ring more jewelry presence on dark background */
#ringSequence{
  filter:
    drop-shadow(0 24px 46px rgba(0,0,0,.36))
    drop-shadow(0 0 24px rgba(223,182,105,.10))!important;
}
.ring-glow{
  background:
    radial-gradient(circle,
      rgba(219,181,113,.18),
      rgba(219,181,113,.055) 38%,
      transparent 67%)!important;
}

@media(max-width:980px){
  .social-tab{
    right:14px!important;
    bottom:18px!important;
    top:auto!important;
    transform:none!important;
  }
  .social-tab:hover{transform:scale(1.06)!important}
  .social-drawer-inner{padding:12vh 26px 26px!important}
}


/* =========================================================
   V15 — ORIGINAL GLB MATERIALS + MINIMAL SOCIAL ICONS
   ========================================================= */

.social-tab,.social-drawer,.social-backdrop{display:none!important}

.social-icons{
  position:fixed;
  right:20px;
  bottom:24px;
  z-index:88;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.social-icons a{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border:1px solid rgba(199,174,130,.22);
  border-radius:50%;
  background:rgba(247,243,236,.68);
  backdrop-filter:blur(8px);
  color:#8d7653;
  font:12px 'DM Sans';
  transition:.28s ease;
}
.social-icons a:hover{
  transform:translateX(-3px);
  background:#f7f3ec;
  border-color:rgba(199,174,130,.55);
  color:#5f4c32;
}

.native-3d model-viewer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background:transparent;
  --poster-color:transparent;
  pointer-events:none;
}
#ringModel{
  z-index:5;
  opacity:1;
  transition:opacity .5s ease, transform .5s ease;
}
#logoModel{
  z-index:6;
  opacity:0;
  transform:scale(.86);
  transition:opacity .65s ease, transform .65s cubic-bezier(.2,.8,.2,1);
}
.journey.logo-phase #ringModel{
  opacity:.08;
  transform:scale(.68);
}
.journey.logo-phase #logoModel{
  opacity:1;
  transform:scale(1);
}

.native3d-note{
  position:absolute;
  left:50%;
  bottom:4vh;
  transform:translateX(-50%);
  z-index:7;
  font-size:6px;
  letter-spacing:2.2px;
  color:rgba(255,255,255,.24);
  white-space:nowrap;
}

@media(max-width:980px){
  .social-icons{
    right:12px;
    bottom:16px;
    flex-direction:row;
  }
  .social-icons a{
    width:28px;
    height:28px;
  }
}

/* =========================================================
   V19 — REAL GLB / JEWELRY STUDIO
   ========================================================= */
#ringSequence,#logoSequence,#ringPremium{display:none!important}

.native-3d model-viewer{
  position:absolute;
  background:transparent;
  --poster-color:transparent;
  pointer-events:none;
}
#ringModel{
  z-index:5;
  left:12%;
  top:8%;
  width:76%;
  height:82%;
  opacity:1;
  filter:drop-shadow(0 28px 42px rgba(0,0,0,.28));
  transition:opacity .45s ease;
}
#logoModel{
  z-index:6;
  left:13%;
  top:12%;
  width:74%;
  height:76%;
  opacity:0;
  transform:scale(.94);
  filter:drop-shadow(0 24px 40px rgba(0,0,0,.24));
  transition:opacity .55s ease,transform .55s ease;
}
.journey.logo-phase #ringModel{
  opacity:.04;
}
.journey.logo-phase #logoModel{
  opacity:1;
  transform:scale(1);
}

/* Deep jewelry background, not a visible spotlight line */
.native-3d:before{
  content:"";
  position:absolute;
  left:50%;
  top:52%;
  width:66%;
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 45%,
      rgba(163,100,42,.16),
      rgba(100,57,25,.06) 39%,
      transparent 70%);
  filter:blur(18px);
  z-index:1;
  pointer-events:none;
}
.native-3d:after{
  content:"";
  position:absolute;
  left:28%;
  right:28%;
  bottom:14%;
  height:7%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(218,170,91,.13),rgba(218,170,91,.025) 55%,transparent 72%);
  filter:blur(13px);
  z-index:2;
  pointer-events:none;
}

/* Tiny local sparkle attached visually to the ring only */
.ring-spark{
  position:absolute;
  z-index:7;
  left:34%;
  top:35%;
  width:54px;
  height:54px;
  transform:translate(-50%,-50%);
  pointer-events:none;
  opacity:.18;
  mix-blend-mode:screen;
}
.ring-spark:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  background:radial-gradient(circle,
    rgba(255,255,255,.96) 0 2%,
    rgba(255,232,190,.72) 5%,
    rgba(255,184,79,.22) 17%,
    transparent 54%);
  box-shadow:0 0 16px rgba(255,208,128,.24);
}
.ring-spark:after,
.ring-spark i:before{
  content:"";
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  background:linear-gradient(90deg,transparent,rgba(255,237,205,.72),transparent);
}
.ring-spark:after{width:40px;height:1px}
.ring-spark i:before{width:1px;height:30px}

/* no coarse sweep line */
.jewelry-sweep,.jewelry-reflection{display:none!important}
.orbit{border-color:rgba(210,171,105,.055)!important}
.orbit-a,.orbit-b{opacity:.06!important}

@media(max-width:980px){
  #ringModel{left:6%;top:15%;width:88%;height:70%}
  #logoModel{left:8%;top:18%;width:84%;height:66%}
}


/* =========================================================
   V23 — V19 materials, balanced ring scale
   ========================================================= */

/* Keep the ring appreciable without making it feel oversized */
#ringModel{
  left:11%!important;
  top:9%!important;
  width:78%!important;
  height:80%!important;
  transform:scale(.96)!important;
  filter:
    drop-shadow(0 26px 40px rgba(0,0,0,.27))
    drop-shadow(0 0 18px rgba(255,205,120,.07))!important;
}

/* Remove logo from this version */
#logoModel{display:none!important}

/* Slightly calmer atmosphere so details stay readable */
.ring-glow{
  opacity:.32!important;
}
.orbit{
  opacity:.045!important;
}
.ring-spark{
  opacity:.14!important;
}

@media(max-width:980px){
  #ringModel{
    left:6%!important;
    top:14%!important;
    width:88%!important;
    height:72%!important;
    transform:scale(.94)!important;
  }
}

/* =========================================================
   V24 — ring scale + visible motion correction
   Materials intentionally unchanged from V19/V23.
   ========================================================= */
#ringModel{
  left:15%!important;
  top:13%!important;
  width:70%!important;
  height:72%!important;
  transform:none!important;
}

/* keep the jewelry atmosphere but give the object breathing room */
.native-3d:before{
  width:58%!important;
}
.native-3d:after{
  left:33%!important;
  right:33%!important;
}

@media(max-width:980px){
  #ringModel{
    left:10%!important;
    top:17%!important;
    width:80%!important;
    height:66%!important;
  }
}

/* =========================================================
   V25 — REAL FIX: movement + balanced scale
   ========================================================= */
#ringModel{
  left:17%!important;
  top:14%!important;
  width:66%!important;
  height:70%!important;
  transform:none!important;
}

/* preserve the good V19 materials and atmosphere */
.ring-glow{opacity:.30!important}
.orbit{opacity:.035!important}

@media(max-width:980px){
  #ringModel{
    left:11%!important;
    top:18%!important;
    width:78%!important;
    height:64%!important;
  }
}

/* V26 — camera orbit fix */
#ringModel{
  left:18%!important;
  top:15%!important;
  width:64%!important;
  height:68%!important;
}
@media(max-width:980px){
  #ringModel{
    left:12%!important;
    top:18%!important;
    width:76%!important;
    height:64%!important;
  }
}

/* =========================================================
   V27 — PARTICLE RING / HOVER DEFORMATION
   ========================================================= */
#ringModel{display:none!important}

#particleRing{
  position:absolute;
  left:8%;
  top:7%;
  width:84%;
  height:86%;
  z-index:5;
  display:block;
  cursor:crosshair;
  touch-action:none;
}

.particle-hint{
  position:absolute;
  z-index:7;
  right:4vw;
  bottom:5vh;
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.30);
  font-size:6px;
  letter-spacing:2.2px;
  pointer-events:none;
}
.particle-hint i{
  width:28px;
  height:1px;
  background:linear-gradient(90deg,rgba(199,174,130,.12),rgba(199,174,130,.65));
  animation:hintPulse 1.8s ease-in-out infinite;
}
@keyframes hintPulse{
  0%,100%{transform:scaleX(.5);transform-origin:right;opacity:.35}
  50%{transform:scaleX(1);opacity:.9}
}

/* keep backdrop very clean so particles read as intentional */
.ring-glow{
  opacity:.18!important;
}
.orbit{
  opacity:.035!important;
}
.ring-spark{
  display:none!important;
}

@media(max-width:980px){
  #particleRing{
    left:3%;
    top:12%;
    width:94%;
    height:76%;
  }
  .particle-hint{display:none}
}

/* V28 — denser particles + smaller object */
#particleRing{
  left:14%!important;
  top:11%!important;
  width:72%!important;
  height:76%!important;
}
.ring-glow{opacity:.13!important}
.particle-hint{opacity:.65}
@media(max-width:980px){
  #particleRing{
    left:8%!important;
    top:15%!important;
    width:84%!important;
    height:68%!important;
  }
}

/* V29 interaction */
#particleRing{cursor:grab!important}
#particleRing.dragging{cursor:grabbing!important}
.particle-hint span{font-size:0}
.particle-hint span::after{content:"MUEVE · CLIC Y ARRASTRA";font-size:6px;letter-spacing:2.2px}

/* V35 premium journey progress */
.premium-progress{position:absolute!important;right:2.1vw!important;top:50%!important;transform:translateY(-50%)!important;width:116px!important;height:68vh!important;z-index:12!important;display:flex!important;flex-direction:column!important;pointer-events:none}
.progress-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}
.progress-head span{font-size:6px;letter-spacing:2px;color:rgba(255,255,255,.36)}
.progress-head strong{font-family:"Cormorant Garamond",serif;font-size:18px;font-weight:400;color:#d7b77d}
.progress-track{position:relative;flex:1;margin:18px 0 15px 7px}
.progress-line,.progress-fill{position:absolute;left:0;top:0;width:1px}
.progress-line{height:100%;background:linear-gradient(rgba(255,255,255,.04),rgba(255,255,255,.18),rgba(255,255,255,.04))}
.progress-fill{height:0;background:linear-gradient(#f2dfb2,#b88a45);box-shadow:0 0 10px rgba(214,180,119,.28)}
.progress-glow{position:absolute;left:-2px;top:0;width:5px;height:5px;border-radius:50%;background:#f5dfac;box-shadow:0 0 8px #f5dfac,0 0 22px rgba(200,148,70,.5);transform:translateY(-50%)}
.progress-node{position:absolute;left:0;width:105px;padding-left:17px;transform:translateY(-50%);opacity:.28;transition:.35s ease}
.progress-node:before{content:"";position:absolute;left:-3px;top:50%;width:7px;height:7px;border:1px solid rgba(214,180,119,.55);background:#080807;transform:translateY(-50%) rotate(45deg)}
.progress-node i{display:block;font-style:normal;font-size:5px;letter-spacing:1.3px;color:#d6b477;margin-bottom:3px}
.progress-node span{display:block;font-size:6px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.64)}
.progress-node.active{opacity:1;transform:translateY(-50%) translateX(4px)}
.progress-node.active:before{background:#d6b477;box-shadow:0 0 14px rgba(214,180,119,.5)}
.progress-status{min-height:18px;font-size:5px;line-height:1.6;letter-spacing:1.5px;color:rgba(255,255,255,.30)}
.journey.is-complete .progress-status{color:rgba(214,180,119,.8)}
.journey:not(.is-complete) #particleRing{cursor:default!important}
.journey.is-complete #particleRing{cursor:grab!important}
.journey.is-complete #particleRing.dragging{cursor:grabbing!important}

/* =========================================================
   V36 — ARCHITECTURAL JOURNEY RAIL
   Inspired by the vertical lines of the Grand Hall façade.
   ========================================================= */
.premium-progress{
  right:1.65vw!important;
  width:154px!important;
  height:72vh!important;
  padding:18px 14px 16px 22px;
  background:linear-gradient(90deg,rgba(255,255,255,.018),rgba(255,255,255,.004));
  border-left:1px solid rgba(214,180,119,.10);
}

/* façade-line accent: several very fine vertical strokes */
.premium-progress:before{
  content:"";
  position:absolute;
  left:6px;
  top:0;
  bottom:0;
  width:9px;
  opacity:.32;
  background:
    linear-gradient(90deg,
      rgba(214,180,119,.28) 0 1px,
      transparent 1px 3px,
      rgba(214,180,119,.12) 3px 4px,
      transparent 4px 6px,
      rgba(214,180,119,.20) 6px 7px,
      transparent 7px 9px);
}

.progress-head{
  padding-bottom:14px!important;
}
.progress-head span{
  letter-spacing:2.6px!important;
  color:rgba(255,255,255,.42)!important;
}
.progress-head strong{
  font-size:22px!important;
  line-height:1!important;
}

.progress-track{
  margin:22px 0 18px 8px!important;
}
.progress-line{
  width:1px!important;
  background:rgba(255,255,255,.09)!important;
}
.progress-fill{
  width:2px!important;
  margin-left:-.5px;
  background:linear-gradient(to bottom,#fff0c9 0%,#d6b477 48%,#a66e2d 100%)!important;
  box-shadow:0 0 12px rgba(214,180,119,.30)!important;
}
.progress-glow{
  width:7px!important;
  height:7px!important;
  left:-3px!important;
  background:#fff2cc!important;
  box-shadow:
    0 0 7px rgba(255,242,204,1),
    0 0 18px rgba(214,180,119,.65),
    0 0 34px rgba(174,112,43,.32)!important;
}

/* little horizontal architectural cuts from the main line */
.progress-node{
  width:128px!important;
  padding-left:23px!important;
}
.progress-node:after{
  content:"";
  position:absolute;
  left:3px;
  top:50%;
  width:12px;
  height:1px;
  background:rgba(214,180,119,.18);
  transform:scaleX(.45);
  transform-origin:left;
  transition:transform .4s ease,background .4s ease;
}
.progress-node:before{
  width:6px!important;
  height:6px!important;
  left:-3px!important;
  border-radius:50%;
  transform:translateY(-50%)!important;
  border:1px solid rgba(214,180,119,.48)!important;
}
.progress-node i{
  font-size:6px!important;
  letter-spacing:1.5px!important;
}
.progress-node span{
  font-size:6px!important;
  letter-spacing:1.8px!important;
}
.progress-node.active{
  transform:translateY(-50%) translateX(5px)!important;
}
.progress-node.active:after{
  transform:scaleX(1);
  background:rgba(214,180,119,.65);
}
.progress-node.active:before{
  background:#f1d89e!important;
}

.progress-status{
  position:relative;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.07);
  letter-spacing:2px!important;
}
.progress-status:before{
  content:"";
  position:absolute;
  left:0;
  top:-1px;
  width:24px;
  height:1px;
  background:#d6b477;
}

/* When complete, the rail visually locks into a finished state */
.journey.is-complete .premium-progress{
  border-left-color:rgba(214,180,119,.22);
}
.journey.is-complete .progress-glow{
  animation:ghRailPulse 1.8s ease-in-out infinite;
}
@keyframes ghRailPulse{
  0%,100%{transform:translateY(-50%) scale(.8);opacity:.7}
  50%{transform:translateY(-50%) scale(1.25);opacity:1}
}

/* =========================================================
   V37 — ORGANIC ASSEMBLY + CLEANER RIGHT NAVIGATION
   ========================================================= */

/* Right rail: thinner, cleaner and detached from the main composition */
.premium-progress{
  right:18px!important;
  width:112px!important;
  height:66vh!important;
  padding:14px 8px 12px 15px!important;
  background:rgba(7,7,6,.30)!important;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-left:0!important;
}

/* one façade-inspired accent only — no visual fence */
.premium-progress:before{
  left:5px!important;
  width:3px!important;
  opacity:.42!important;
  background:linear-gradient(90deg,
    rgba(214,180,119,.38) 0 1px,
    transparent 1px 3px)!important;
}

.progress-head{
  padding-bottom:11px!important;
}
.progress-head span{
  font-size:5px!important;
  letter-spacing:1.8px!important;
}
.progress-head strong{
  font-size:17px!important;
}

.progress-track{
  margin:15px 0 12px 5px!important;
}
.progress-node{
  width:92px!important;
  padding-left:17px!important;
}
.progress-node:after{
  width:8px!important;
}
.progress-node i{
  font-size:5px!important;
}
.progress-node span{
  font-size:5px!important;
  letter-spacing:1.25px!important;
}
.progress-status{
  font-size:4.5px!important;
  letter-spacing:1.25px!important;
  line-height:1.5!important;
  padding-top:9px!important;
}

/* Make the progress line the hero, not the box */
.progress-fill{
  width:1px!important;
  margin-left:0!important;
}
.progress-glow{
  width:5px!important;
  height:5px!important;
  left:-2px!important;
}

/* Give the particle scene extra safe space so the rail never overlaps the ring */
.native-3d,
.journey-stage{
  padding-right:108px!important;
}

/* Keep side navigation separate from the journey rail */
.side-nav{
  left:18px!important;
  right:auto!important;
  z-index:20!important;
}

/* At narrower desktop widths collapse the text labels instead of overlapping */
@media(max-width:1180px) and (min-width:981px){
  .premium-progress{
    width:66px!important;
    padding-right:4px!important;
  }
  .progress-node span,
  .progress-head span,
  .progress-status{
    display:none!important;
  }
  .progress-node{
    width:48px!important;
  }
  .native-3d,
  .journey-stage{
    padding-right:62px!important;
  }
}

@media(max-width:980px){
  .premium-progress{
    right:5vw!important;
    width:90vw!important;
    height:44px!important;
    padding:0!important;
    background:transparent!important;
    backdrop-filter:none!important;
  }
  .premium-progress:before{display:none!important}
  .native-3d,.journey-stage{padding-right:0!important}
}

/* =========================================================
   V38 — CLEAN JOURNEY / NON-OVERLAPPING RAIL
   ========================================================= */

/* Kill all technical/helper notes */
.particle-hint,
.model-note,
.scroll-note,
.journey-note,
.progress-status{
  display:none!important;
}

/* Reserve a clean column for the rail */
.journey{
  --rail-w:126px;
}
.premium-progress{
  position:absolute!important;
  right:20px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:104px!important;
  height:62vh!important;
  padding:0!important;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border:0!important;
  z-index:30!important;
}
.premium-progress:before{display:none!important}

.progress-head{
  height:42px!important;
  padding:0 0 12px 18px!important;
  border-bottom:1px solid rgba(214,180,119,.12)!important;
  align-items:center!important;
}
.progress-head span{
  font-size:5px!important;
  letter-spacing:2.2px!important;
  line-height:1.35!important;
  color:rgba(255,255,255,.38)!important;
}
.progress-head strong{
  font-size:18px!important;
  color:#d8b878!important;
}

.progress-track{
  position:absolute!important;
  left:18px!important;
  top:58px!important;
  bottom:8px!important;
  width:80px!important;
  margin:0!important;
}
.progress-line{
  left:0!important;
  top:0!important;
  width:1px!important;
  height:100%!important;
  background:rgba(214,180,119,.14)!important;
}
.progress-fill{
  left:0!important;
  top:0!important;
  width:1px!important;
  margin:0!important;
  background:linear-gradient(#f6e7bd,#c69b58)!important;
  box-shadow:0 0 8px rgba(214,180,119,.25)!important;
}
.progress-glow{
  left:-2px!important;
  width:5px!important;
  height:5px!important;
}

/* Nodes are now compact and cannot overlap each other */
.progress-node{
  left:0!important;
  width:80px!important;
  height:18px!important;
  padding-left:15px!important;
  opacity:.24!important;
  transform:translateY(-50%)!important;
  white-space:nowrap!important;
}
.progress-node:before{
  left:-2.5px!important;
  width:5px!important;
  height:5px!important;
}
.progress-node:after{
  left:4px!important;
  width:6px!important;
}
.progress-node i{
  display:none!important;
}
.progress-node span{
  display:block!important;
  font-size:5px!important;
  line-height:18px!important;
  letter-spacing:1.15px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.progress-node.done{
  opacity:.52!important;
}
.progress-node.done:before{
  background:rgba(214,180,119,.55)!important;
}
.progress-node.active{
  opacity:1!important;
  transform:translateY(-50%) translateX(3px)!important;
}
.progress-node.active span{
  color:#f0d9a5!important;
}

/* Prevent social buttons and rail from occupying the same column */
.social-dock{
  right:142px!important;
  z-index:31!important;
}

/* Main ring receives its own safe visual zone */
.native-3d,
.journey-stage{
  padding-right:132px!important;
}

/* At completion the ring stays on screen for the final 18% scroll */
.journey.is-complete #particleRing{
  cursor:grab!important;
}
.journey.is-complete #particleRing.dragging{
  cursor:grabbing!important;
}

@media(max-width:1180px) and (min-width:981px){
  .premium-progress{
    right:12px!important;
    width:72px!important;
  }
  .progress-head span{display:none!important}
  .progress-track{width:54px!important}
  .progress-node{width:54px!important}
  .progress-node span{font-size:4.5px!important}
  .native-3d,.journey-stage{padding-right:82px!important}
  .social-dock{right:88px!important}
}

/* =========================================================
   V39 — definitive right rail positioning + interaction fix
   ========================================================= */

/* There must be only ONE right journey rail. */
.journey > .journey-sticky{
  position:sticky;
  top:0;
  height:100vh;
  overflow:hidden;
}

.premium-progress{
  position:absolute!important;
  top:9vh!important;
  bottom:9vh!important;
  right:22px!important;
  transform:none!important;
  width:92px!important;
  height:auto!important;
  padding:0!important;
  background:transparent!important;
  z-index:24!important;
}

.progress-head{
  position:absolute!important;
  top:0!important;
  left:0!important;
  right:0!important;
  height:36px!important;
  padding:0 0 10px 14px!important;
}
.progress-head span{
  max-width:44px;
}
.progress-track{
  position:absolute!important;
  top:52px!important;
  bottom:0!important;
  left:14px!important;
  width:72px!important;
  height:auto!important;
  margin:0!important;
}
.progress-line{
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  left:0!important;
  height:100%!important;
}
.progress-fill{
  position:absolute!important;
  top:0!important;
  left:0!important;
  width:1px!important;
  height:0;
}
.progress-glow{
  position:absolute!important;
  left:-2px!important;
}
.progress-node{
  left:0!important;
  width:72px!important;
  padding-left:14px!important;
}
.progress-node span{
  font-size:5px!important;
  letter-spacing:1px!important;
}

/* No status/helper note below the rail. */
.progress-status{display:none!important}

/* Keep ring clear of the rail but don't squeeze it excessively. */
.native-3d,.journey-stage{
  padding-right:96px!important;
}

/* Social dock lives BELOW/LEFT of the rail instead of colliding with it. */
.social-dock{
  right:124px!important;
}

/* Interaction is explicit only in final hold. */
.journey.is-complete #particleRing{
  pointer-events:auto!important;
  cursor:grab!important;
  z-index:18!important;
}
.journey.is-complete #particleRing.dragging{
  cursor:grabbing!important;
}
.journey:not(.is-complete) #particleRing{
  pointer-events:none!important;
  cursor:default!important;
}

/* Remove any legacy progress UI if a browser cached old markup. */
.journey-progress > .progress-nodes{display:none!important}
.journey-progress > .progress-track > i{display:none!important}

@media(max-width:1180px) and (min-width:981px){
  .premium-progress{
    right:12px!important;
    width:72px!important;
  }
  .progress-track{width:56px!important}
  .progress-node{width:56px!important}
  .native-3d,.journey-stage{padding-right:76px!important}
  .social-dock{right:92px!important}
}

/* =========================================================
   V40 — NAV REFINEMENT + TITLE SAFE AREA
   ========================================================= */

/* LEFT NAV: lighter, editorial, no bulky vertical list feeling */
.side-nav{
  position:fixed!important;
  left:22px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:34px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  z-index:40!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:15px!important;
}
.side-nav:before{
  content:"";
  position:absolute;
  top:-20px;
  bottom:-20px;
  left:50%;
  width:1px;
  background:linear-gradient(to bottom,transparent,rgba(214,180,119,.16) 20%,rgba(214,180,119,.16) 80%,transparent);
}
.side-nav a{
  position:relative!important;
  width:28px!important;
  height:28px!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  background:rgba(10,8,8,.58)!important;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  color:rgba(255,255,255,.38)!important;
  font-size:0!important;
  transition:transform .28s ease,background .28s ease,color .28s ease,box-shadow .28s ease!important;
}
.side-nav a:before{
  content:"";
  width:4px;
  height:4px;
  border-radius:50%;
  background:currentColor;
}
.side-nav a:hover,
.side-nav a.active{
  transform:scale(1.12)!important;
  background:rgba(214,180,119,.10)!important;
  color:#e5c98d!important;
  box-shadow:0 0 0 1px rgba(214,180,119,.24),0 0 18px rgba(214,180,119,.10)!important;
}
/* Label appears only on hover/current item */
.side-nav a span,
.side-nav a .label{
  position:absolute!important;
  left:40px!important;
  top:50%!important;
  transform:translateY(-50%) translateX(-5px)!important;
  width:max-content!important;
  max-width:130px!important;
  padding:6px 9px!important;
  border:1px solid rgba(214,180,119,.12)!important;
  background:rgba(11,8,8,.82)!important;
  color:rgba(255,255,255,.66)!important;
  font-size:5px!important;
  letter-spacing:1.4px!important;
  text-transform:uppercase!important;
  opacity:0!important;
  pointer-events:none!important;
  transition:.25s ease!important;
}
.side-nav a:hover span,
.side-nav a.active span,
.side-nav a:hover .label,
.side-nav a.active .label{
  opacity:1!important;
  transform:translateY(-50%) translateX(0)!important;
}

/* TITLES: restore the size that doesn't crop ascenders/descenders */
.journey-copy{
  overflow:visible!important;
  padding-top:28px!important;
  padding-bottom:34px!important;
}
.journey-copy h2,
.journey-copy .journey-title,
.journey-panel h2,
.journey-panel .journey-title{
  font-size:clamp(58px,6.1vw,108px)!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
  padding:.10em .04em .16em 0!important;
  margin:-.10em 0 .12em!important;
  overflow:visible!important;
  max-width:100%!important;
}
.journey-panel,
.journey-step,
.journey-content,
.journey-copy-wrap{
  overflow:visible!important;
}

/* prevent title from invading the ring at common desktop widths */
@media(max-width:1500px){
  .journey-copy h2,
  .journey-copy .journey-title,
  .journey-panel h2,
  .journey-panel .journey-title{
    font-size:clamp(54px,5.6vw,86px)!important;
  }
}
@media(max-width:1180px) and (min-width:981px){
  .journey-copy h2,
  .journey-copy .journey-title,
  .journey-panel h2,
  .journey-panel .journey-title{
    font-size:clamp(48px,5.2vw,70px)!important;
  }
  .side-nav{left:12px!important}
}

/* =========================================================
   V41 — TITLE FIX + JEWEL ROUTE NAV
   ========================================================= */

/* FIX REAL DEL RECORTE:
   El problema no era solo font-size; la columna de copy seguía teniendo
   un ancho rígido/clip. Damos ancho suficiente y quitamos clipping en toda
   la cadena de contenedores. */
.journey-copy,
.journey-copy-wrap,
.journey-content,
.journey-panel,
.journey-step,
.journey-step-inner{
  overflow:visible!important;
}
.journey-copy{
  width:min(39vw,620px)!important;
  max-width:none!important;
  padding-left:0!important;
  padding-right:34px!important;
}
.journey-copy h2,
.journey-copy .journey-title,
.journey-panel h2,
.journey-panel .journey-title{
  display:block!important;
  width:max-content!important;
  max-width:min(37vw,590px)!important;
  font-size:clamp(54px,5.15vw,88px)!important;
  line-height:1.12!important;
  letter-spacing:-.045em!important;
  padding:.13em .16em .18em .03em!important;
  margin:-.13em 0 .08em -.03em!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}

/* RIGHT PROGRESS: elegant irregular route instead of a straight ruler */
.premium-progress{
  right:18px!important;
  top:8vh!important;
  bottom:8vh!important;
  width:108px!important;
  height:auto!important;
}
.progress-track{
  top:50px!important;
  bottom:4px!important;
  left:12px!important;
  width:88px!important;
  overflow:visible!important;
}

/* hide old straight rail */
.progress-line{
  display:none!important;
}
/* progress fill becomes a subtle glowing spine; zig-zag is drawn by nodes/segments */
.progress-fill{
  left:10px!important;
  width:1px!important;
  opacity:.48!important;
  background:linear-gradient(to bottom,rgba(245,224,177,.25),#d6b477,rgba(185,132,58,.22))!important;
  filter:drop-shadow(0 0 5px rgba(214,180,119,.45));
}
.progress-glow{
  left:8px!important;
  width:5px!important;
  height:5px!important;
  background:#fff1c9!important;
  box-shadow:
    0 0 6px #fff0c6,
    0 0 15px rgba(224,190,119,.75),
    0 0 30px rgba(181,119,44,.38)!important;
  animation:ghTravelGlow 2.2s ease-in-out infinite;
}
@keyframes ghTravelGlow{
  0%,100%{box-shadow:0 0 5px #fff0c6,0 0 13px rgba(224,190,119,.55),0 0 24px rgba(181,119,44,.24)}
  50%{box-shadow:0 0 8px #fff5d9,0 0 20px rgba(224,190,119,.85),0 0 38px rgba(181,119,44,.42)}
}

/* Five alternating offsets make a restrained zig-zag route */
.progress-node{
  width:76px!important;
  padding-left:17px!important;
  transition:opacity .35s ease,transform .35s ease,filter .35s ease!important;
}
.progress-node:nth-of-type(4){left:10px!important}
.progress-node:nth-of-type(5){left:23px!important}
.progress-node:nth-of-type(6){left:7px!important}
.progress-node:nth-of-type(7){left:25px!important}
.progress-node:nth-of-type(8){left:11px!important}

/* connector from the central spine to each waypoint */
.progress-node:after{
  content:""!important;
  position:absolute!important;
  top:50%!important;
  right:100%!important;
  left:auto!important;
  width:18px!important;
  height:1px!important;
  background:linear-gradient(90deg,rgba(214,180,119,.08),rgba(214,180,119,.52))!important;
  transform-origin:right center!important;
  transform:rotate(0deg)!important;
  opacity:.55!important;
}
.progress-node:nth-of-type(5):after,
.progress-node:nth-of-type(7):after{
  width:30px!important;
}
.progress-node:before{
  width:6px!important;
  height:6px!important;
  left:-3px!important;
  background:#100c0b!important;
  border:1px solid rgba(221,188,122,.5)!important;
  box-shadow:0 0 0 rgba(214,180,119,0)!important;
}
.progress-node.done:before{
  background:#b98c49!important;
  box-shadow:0 0 8px rgba(214,180,119,.25)!important;
}
.progress-node.active:before{
  background:#fff0c5!important;
  border-color:#fff0c5!important;
  box-shadow:
    0 0 7px rgba(255,240,197,.95),
    0 0 18px rgba(214,180,119,.65)!important;
}
.progress-node.active{
  filter:drop-shadow(0 0 7px rgba(214,180,119,.20));
}
.progress-node span{
  font-size:5px!important;
  letter-spacing:1.25px!important;
  color:rgba(255,255,255,.44)!important;
}
.progress-node.active span{
  color:#ecd5a2!important;
}

/* tiny architectural accents, but not another giant bar */
.progress-head{
  left:12px!important;
  width:86px!important;
  border-bottom:0!important;
}
.progress-head:after{
  content:"";
  position:absolute;
  left:0;
  bottom:4px;
  width:34px;
  height:1px;
  background:linear-gradient(90deg,#d6b477,transparent);
  box-shadow:0 0 8px rgba(214,180,119,.18);
}

/* preserve ring area */
.native-3d,.journey-stage{
  padding-right:108px!important;
}

@media(max-width:1500px){
  .journey-copy{width:min(37vw,540px)!important}
  .journey-copy h2,.journey-copy .journey-title,
  .journey-panel h2,.journey-panel .journey-title{
    max-width:35vw!important;
    font-size:clamp(50px,4.8vw,76px)!important;
  }
}

/* =========================================================
   V42 — FULL-BLEED PARTICLE STAGE
   ========================================================= */

/* Remove right navigation/progress completely */
.premium-progress,
.journey-progress{
  display:none!important;
}

/* Let the particle canvas occupy the ENTIRE black journey viewport */
.journey-sticky,
.journey-stage,
.native-3d{
  width:100vw!important;
  max-width:none!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
}
#particleRing{
  position:absolute!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  max-width:none!important;
  pointer-events:none;
  z-index:2!important;
}

/* Text remains above the particles and can overlap toward center */
.journey-copy,
.journey-content,
.journey-panel{
  position:relative!important;
  z-index:8!important;
  overflow:visible!important;
}
.journey-copy{
  width:min(48vw,820px)!important;
  max-width:none!important;
}
.journey-copy h2,
.journey-copy .journey-title,
.journey-panel h2,
.journey-panel .journey-title{
  width:max-content!important;
  max-width:none!important;
  font-size:clamp(72px,7.4vw,138px)!important;
  line-height:1.02!important;
  white-space:nowrap!important;
  overflow:visible!important;
  padding:.12em .12em .18em .02em!important;
}

/* subtle vignette keeps copy readable while canvas remains full bleed */
.journey-sticky:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:5;
  background:
    linear-gradient(90deg,rgba(10,6,7,.76) 0%,rgba(10,6,7,.40) 28%,rgba(10,6,7,.04) 49%,transparent 68%),
    radial-gradient(circle at 56% 48%,transparent 0 28%,rgba(8,5,6,.08) 62%,rgba(8,5,6,.28) 100%);
}

/* keep left navigation only */
.side-nav{
  z-index:20!important;
}

/* social dock stays minimal on far right */
.social-dock{
  right:18px!important;
  z-index:20!important;
}

/* V43 — ring composition: center-right, not edge-right */
#particleRing{
  transform:none!important;
}

/* Keep the large copy free to breathe into the center. */
.journey-copy{
  width:min(46vw,800px)!important;
}

.real-gallery{padding:120px 8vw;background:#100b0b;color:#f7f1e8}.gallery-head{display:grid;grid-template-columns:1.15fr .85fr;gap:5vw;align-items:end;margin-bottom:52px}.gallery-head .eyebrow{grid-column:1/-1;margin:0}.gallery-head h2{font:clamp(54px,6vw,94px)/.94 'Italiana';font-weight:400;margin:0}.gallery-head h2 i{font-style:italic;color:#d8bc87}.gallery-head>p:last-child{max-width:420px;color:rgba(255,255,255,.6);font-size:13px;line-height:1.8;margin:0 0 8px}.gallery-editorial{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:260px;gap:12px}.gallery-editorial figure{margin:0;overflow:hidden;grid-column:span 4;background:#191111}.gallery-editorial .g-wide{grid-column:span 8}.gallery-editorial .g-tall{grid-row:span 2}.gallery-editorial img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.gallery-editorial figure:hover img{transform:scale(1.035)}
@media(max-width:980px){.gallery-head{grid-template-columns:1fr}.gallery-editorial{grid-template-columns:1fr;grid-auto-rows:48vh}.gallery-editorial figure,.gallery-editorial .g-wide{grid-column:auto}.gallery-editorial .g-tall{grid-row:auto}.real-gallery{padding:90px 6vw}}

/* V51 · GALERÍA FLOTANTE DINÁMICA */
.floating-gallery{overflow:hidden;min-height:100vh;padding-bottom:90px}
.floating-gallery .gallery-head{position:relative;z-index:8;margin-bottom:12px}
.floating-stage{position:relative;height:min(760px,70vw);min-height:590px;max-height:820px;margin:0 -1vw;isolation:isolate}
.float-card{position:absolute;margin:0;overflow:hidden;background:#191111;box-shadow:0 24px 70px rgba(0,0,0,.28);will-change:transform;animation:galleryFloat 9s ease-in-out infinite alternate}
.float-card img{width:100%;height:100%;object-fit:cover;display:block;opacity:1;transform:scale(1.015);transition:opacity .85s ease,transform 1.4s cubic-bezier(.2,.7,.2,1)}
.float-card.is-changing img{opacity:0;transform:scale(1.045)}
.float-card:hover{z-index:10}.float-card:hover img{transform:scale(1.04)}
.fc1{left:2%;top:9%;width:29%;height:38%;animation-delay:-1s}
.fc2{left:35%;top:1%;width:22%;height:31%;animation-delay:-4s}
.fc3{right:2%;top:12%;width:34%;height:34%;animation-delay:-7s}
.fc4{left:9%;bottom:3%;width:25%;height:35%;animation-delay:-5s}
.fc5{left:39%;bottom:8%;width:31%;height:38%;animation-delay:-2s}
.fc6{right:2%;bottom:0;width:23%;height:31%;animation-delay:-8s}
@keyframes galleryFloat{0%{transform:translate3d(0,0,0) rotate(-.25deg)}50%{transform:translate3d(5px,-10px,0) rotate(.18deg)}100%{transform:translate3d(-4px,7px,0) rotate(-.08deg)}}
.gallery-word{position:absolute;left:50%;top:47%;z-index:12;width:min(460px,36vw);padding:32px 38px;transform:translate(-50%,-50%) scale(.97);text-align:center;background:rgba(16,11,11,.78);border:1px solid rgba(216,188,135,.35);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity .7s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.gallery-word.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.gallery-word small{display:block;margin-bottom:12px;font:10px/1.2 Arial,sans-serif;letter-spacing:.28em;color:#d8bc87}
.gallery-word strong{display:block;font:clamp(30px,3.2vw,58px)/.95 'Italiana';font-weight:400;letter-spacing:.02em;color:#f7f1e8}
.gallery-word span{display:block;margin-top:10px;font:italic 18px/1.3 Georgia,serif;color:#d8bc87}
@media(max-width:980px){.floating-stage{height:850px;min-height:850px;margin:0}.float-card{animation-duration:10s}.fc1{left:0;top:4%;width:58%;height:24%}.fc2{right:0;left:auto;top:10%;width:36%;height:20%}.fc3{left:13%;right:auto;top:32%;width:75%;height:25%}.fc4{left:0;bottom:18%;width:42%;height:20%}.fc5{left:auto;right:0;bottom:15%;width:52%;height:24%}.fc6{left:22%;right:auto;bottom:0;width:56%;height:15%}.gallery-word{top:59%;width:78vw;padding:24px 18px}.gallery-word strong{font-size:clamp(28px,9vw,48px)}}
@media(prefers-reduced-motion:reduce){.float-card{animation:none}.float-card img,.gallery-word{transition:none}}

/* V52 · HERO SLIDER + GALERÍA 3D COMPACTA */
.hero-slider{position:absolute;inset:0;z-index:0;overflow:hidden}.hero-slide{position:absolute;inset:0;opacity:0;transform:scale(1.055);transition:opacity 1.15s ease,transform 7s ease;background-position:center;background-size:cover}.hero-slide.active{opacity:1;transform:scale(1.015)}.hero-slider:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,11,10,.76),rgba(14,11,10,.38) 42%,rgba(14,11,10,.08) 75%),linear-gradient(0deg,rgba(10,8,7,.28),transparent 48%)}.hero-bg{display:none}.hero-copy{transition:opacity .45s ease,transform .55s ease}.hero-copy.slider-changing{opacity:.15;transform:translateY(10px)}.hero-dots{position:absolute;z-index:5;right:5vw;bottom:35px;display:flex;align-items:center;gap:10px}.hero-dot{width:28px;height:2px;border:0;padding:0;background:rgba(255,255,255,.35);cursor:pointer;transition:.35s}.hero-dot.active{width:54px;background:#d8bc87}.hero-count{position:absolute;z-index:5;right:5vw;bottom:54px;color:rgba(255,255,255,.8);font:10px/1 Arial;letter-spacing:.22em}

.floating-gallery{perspective:1500px}.floating-stage{height:min(700px,62vw);min-height:590px;max-height:760px;margin:0;transform-style:preserve-3d;perspective:1300px}.float-card{border-radius:10px;box-shadow:0 28px 65px rgba(0,0,0,.45),0 1px 0 rgba(216,188,135,.24) inset;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.75,.2,1),box-shadow .7s ease;animation:none}.float-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(8,5,5,.64));pointer-events:none}.float-card:hover{z-index:30;box-shadow:0 45px 90px rgba(0,0,0,.55)}.float-card img{transition:opacity .85s ease,transform 1.4s cubic-bezier(.2,.7,.2,1);transform:scale(1.025)}
.fc1{left:0;top:4%;width:37%;height:48%;z-index:4}.fc2{left:35.5%;top:9%;width:25%;height:38%;z-index:6}.fc3{right:0;top:2%;width:38%;height:48%;z-index:3}.fc4{left:1%;bottom:0;width:34%;height:40%;z-index:2}.fc5{left:34%;bottom:1%;width:29%;height:42%;z-index:5}.fc6{right:1%;bottom:0;width:36%;height:40%;z-index:4}
.float-label{position:absolute;z-index:4;left:30px;right:25px;bottom:26px;color:#fff;text-shadow:0 3px 18px rgba(0,0,0,.65);pointer-events:none}.float-label small{display:block;font:8px/1 Arial,sans-serif;letter-spacing:.28em;color:#d8bc87;margin-bottom:8px}.float-label strong{display:block;font:clamp(24px,2.6vw,46px)/.95 'Italiana';font-weight:400;letter-spacing:.015em}.float-label span{display:block;margin-top:7px;font:italic 15px/1.2 Georgia,serif;color:rgba(255,255,255,.78)}.gallery-word{display:none}
@media(max-width:980px){.hero-count,.hero-dots{right:6vw}.floating-stage{height:760px;min-height:760px}.fc1{left:0;top:2%;width:58%;height:28%}.fc2{right:0;left:auto;top:5%;width:40%;height:25%}.fc3{left:7%;right:auto;top:28%;width:86%;height:29%}.fc4{left:0;bottom:17%;width:48%;height:24%}.fc5{left:auto;right:0;bottom:16%;width:50%;height:25%}.fc6{left:18%;right:auto;bottom:0;width:64%;height:18%}.float-label{left:18px;bottom:18px}.float-label strong{font-size:28px}}

/* V53 · event invitation cards */
.events-lede{max-width:620px;margin:-28px 0 48px;color:#746b62;font-size:13px;line-height:1.8}.event-grid{grid-template-columns:repeat(4,1fr);gap:14px;perspective:1800px}.event-card{height:60vh;min-height:520px;background:none!important;padding:0!important;overflow:visible!important;cursor:pointer;perspective:1400px}.event-card:before{display:none!important}.event-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.16,.84,.24,1)}.event-card:hover .event-card-inner,.event-card:focus .event-card-inner,.event-card.is-flipped .event-card-inner{transform:rotateY(180deg)}.event-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;box-shadow:0 28px 70px rgba(28,18,12,.13)}.event-front{background-position:center;background-size:cover}.event-front:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,10,8,.84),rgba(20,10,8,.04) 68%)}.event-front>*{position:relative;z-index:2}.event-front>span{position:absolute;top:24px;left:26px;font:10px Arial;letter-spacing:.22em}.event-front b{font:8px Arial;letter-spacing:.2em;margin-top:18px;color:#e4ca98}.event-back{transform:rotateY(180deg);justify-content:center;background:#241719;border:1px solid rgba(216,188,135,.38)}.event-back:before{content:"";position:absolute;inset:14px;border:1px solid rgba(216,188,135,.18);pointer-events:none}.event-back>*{position:relative;z-index:2}.event-back small{font:8px Arial;letter-spacing:.25em;color:#d8bc87}.event-back h3{font-size:34px;line-height:1.05;margin:22px 0}.event-back p{font-size:11px;line-height:1.75;color:rgba(255,255,255,.72)}.event-meta{border-top:1px solid rgba(216,188,135,.24);border-bottom:1px solid rgba(216,188,135,.24);padding:17px 0;margin:24px 0 20px;display:flex;align-items:end;justify-content:space-between}.event-meta strong{font:24px 'Italiana'}.event-meta span{font:7px Arial;letter-spacing:.2em;color:#d8bc87}.event-back a{font:8px Arial;letter-spacing:.18em;color:#e4ca98}.e1 .event-front{background-image:url('assets/event-bodas.png');background-position:center 58%}.e2 .event-front{background-image:url('assets/event-xv.jpg');background-position:center}.e3 .event-front{background:#15110f}.e4 .event-front{background-image:url('assets/event-fin-ano.jpg');background-position:center}.event-front-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.e3 .event-front:after{z-index:1}.e3 .event-front>*:not(.event-front-video){position:relative;z-index:2}
@media(max-width:1180px){.event-grid{grid-template-columns:repeat(2,1fr)}.event-card{height:560px}}
@media(max-width:680px){.event-grid{grid-template-columns:1fr}.event-card{height:520px}.event-card:hover .event-card-inner{transform:none}.event-card.is-flipped .event-card-inner{transform:rotateY(180deg)}}

/* V55 — statement infinito */
.infinite-statement{overflow:hidden;background:#0d0d0c;border-top:1px solid rgba(216,188,135,.18);border-bottom:1px solid rgba(216,188,135,.18);padding:30px 0 27px;position:relative}
.infinite-statement:before,.infinite-statement:after{content:"";position:absolute;top:0;bottom:0;width:12vw;z-index:2;pointer-events:none}.infinite-statement:before{left:0;background:linear-gradient(90deg,#0d0d0c,transparent)}.infinite-statement:after{right:0;background:linear-gradient(-90deg,#0d0d0c,transparent)}
.infinite-track{width:max-content;display:flex;align-items:center;gap:42px;white-space:nowrap;will-change:transform;animation:ghInfiniteType 28s linear infinite}
.infinite-track span{font-family:'Italiana',Georgia,serif;font-size:clamp(54px,8vw,138px);line-height:.9;letter-spacing:-.025em;color:#f1ede5;text-transform:uppercase}
.infinite-track i{font-style:normal;font-size:22px;color:#c7a76b}
@keyframes ghInfiniteType{to{transform:translateX(-25%)}}
@media(max-width:680px){.infinite-statement{padding:22px 0}.infinite-track{gap:24px;animation-duration:20s}.infinite-track span{font-size:48px}.infinite-track i{font-size:14px}}
/* Infinite statement intentionally remains animated on mobile/Reduced Motion so the marquee never stalls. */

/* V56 — premium Google reviews */
.reviews-premium{position:relative;overflow:hidden;background:#15100f;color:#f5efe7;padding:110px 0 92px;border-top:1px solid rgba(216,188,135,.18)}
.reviews-premium:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 10%,rgba(190,145,83,.12),transparent 31%),radial-gradient(circle at 85% 80%,rgba(123,75,61,.12),transparent 28%);pointer-events:none}
.reviews-head{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:60px;padding:0 6vw 58px}.reviews-head .eyebrow{color:#c8a56d}.reviews-head h2{font-size:clamp(46px,5.6vw,92px);line-height:.92;margin:14px 0 0}.reviews-head h2 i{color:#c8a56d;font-weight:400}.reviews-score{width:min(360px,34vw);padding:24px 0 8px;border-top:1px solid rgba(216,188,135,.35)}.reviews-score small{font:8px Arial;letter-spacing:.25em;color:#c8a56d}.reviews-score>div{display:flex;align-items:baseline;gap:18px;margin:12px 0 8px}.reviews-score strong{font:52px/1 'Italiana',Georgia,serif;font-weight:400}.reviews-score span,.review-stars{color:#d8ad5d;letter-spacing:.12em}.reviews-score p{font-size:11px;line-height:1.6;color:rgba(255,255,255,.55)}
.reviews-window{position:relative;z-index:2;display:grid;gap:16px;overflow:hidden;padding:6px 0 22px}.reviews-window:before,.reviews-window:after{content:"";position:absolute;top:0;bottom:0;width:11vw;z-index:5;pointer-events:none}.reviews-window:before{left:0;background:linear-gradient(90deg,#15100f,transparent)}.reviews-window:after{right:0;background:linear-gradient(-90deg,#15100f,transparent)}
.review-rail{width:max-content;display:flex;gap:16px;will-change:transform}.review-rail-a{animation:reviewFlowA 54s linear infinite}.review-rail-b{animation:reviewFlowB 60s linear infinite}.reviews-window:hover .review-rail{animation-play-state:paused}
.review-card{position:relative;width:390px;min-height:238px;padding:27px 28px 25px;background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));border:1px solid rgba(216,188,135,.18);box-shadow:0 24px 70px rgba(0,0,0,.16);backdrop-filter:blur(10px);transition:transform .45s ease,border-color .45s ease,background .45s ease}.review-card:after{content:"“";position:absolute;right:21px;bottom:-17px;font:90px/1 Georgia;color:rgba(216,188,135,.08)}.review-card:hover{transform:translateY(-7px);border-color:rgba(216,188,135,.55);background:linear-gradient(145deg,rgba(216,188,135,.1),rgba(255,255,255,.03))}.review-card.featured{border-color:rgba(216,188,135,.38)}
.review-top{display:flex;align-items:center;gap:12px}.review-avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#d8bc87;color:#211613;font:10px Arial;letter-spacing:.08em}.review-top>div{display:flex;flex-direction:column;gap:4px}.review-top strong{font:15px/1.1 'Italiana',Georgia,serif;font-weight:400}.review-top small{font:7px Arial;letter-spacing:.18em;color:rgba(255,255,255,.4);text-transform:uppercase}.review-top b{margin-left:auto;width:28px;height:28px;border:1px solid rgba(255,255,255,.15);border-radius:50%;display:grid;place-items:center;font:11px Arial;color:#d8bc87}.review-stars{font-size:11px;margin:22px 0 13px}.review-card p{font:14px/1.68 Georgia,serif;color:rgba(255,255,255,.76);margin:0}
.reviews-cta{position:relative;z-index:3;margin:44px 6vw 0;padding-top:26px;border-top:1px solid rgba(216,188,135,.22);display:flex;justify-content:space-between;align-items:center}.reviews-cta span{font:italic 17px Georgia;color:rgba(255,255,255,.58)}.reviews-cta a{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border:1px solid #d8bc87;color:#f5efe7;font:8px Arial;letter-spacing:.2em;transition:.35s}.reviews-cta a:hover{background:#d8bc87;color:#1b1210;transform:translateY(-2px)}
@keyframes reviewFlowA{to{transform:translateX(calc(-50% - 8px))}}@keyframes reviewFlowB{from{transform:translateX(calc(-50% - 8px))}to{transform:translateX(0)}}
@media(max-width:760px){.reviews-premium{padding:78px 0 66px}.reviews-head{display:block;padding:0 6vw 40px}.reviews-head h2{font-size:50px}.reviews-score{width:100%;margin-top:38px}.review-card{width:315px;min-height:250px;padding:23px}.reviews-cta{align-items:flex-start;flex-direction:column;gap:20px}.reviews-cta a{width:100%}.review-rail-a{animation-duration:42s}.review-rail-b{animation-duration:48s}}
@media(prefers-reduced-motion:reduce){.review-rail{animation:none}.review-card{transition:none}}

/* V57 — footer legal + aviso de privacidad */
.site-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding:48px 6vw;background:#0d0d0c;border-top:1px solid rgba(216,188,135,.18);color:#f3eee6}.footer-brand img{max-width:150px;height:auto}.footer-brand p{margin:15px 0 0;font:italic 13px Georgia;color:rgba(255,255,255,.48)}.footer-legal{display:flex;gap:28px;flex-wrap:wrap;justify-content:flex-end}.footer-legal a{font:8px Arial;letter-spacing:.19em;text-transform:uppercase;color:rgba(255,255,255,.62);border-bottom:1px solid transparent;padding-bottom:6px;transition:.3s}.footer-legal a:hover{color:#d8bc87;border-color:#d8bc87}
.privacy-page{margin:0;background:#f0ebe2;color:#201714}.privacy-nav{height:96px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(40,26,20,.13)}.privacy-logo img{width:145px;filter:brightness(.28)}.privacy-back{font:8px Arial;letter-spacing:.2em;color:#201714}.privacy-hero{min-height:58vh;padding:11vh 6vw 8vh;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.privacy-hero:after{content:'PRIVACIDAD';position:absolute;right:-1vw;bottom:-.12em;font:clamp(100px,18vw,300px)/.75 'Italiana',Georgia;color:rgba(62,39,30,.035);pointer-events:none}.privacy-hero .eyebrow{color:#9a7448}.privacy-hero h1{font:clamp(72px,11vw,180px)/.78 'Italiana',Georgia;margin:18px 0 42px;letter-spacing:-.045em}.privacy-hero h1 i{font-weight:400;color:#8b6741}.privacy-hero>p:last-child{max-width:500px;font:15px/1.7 Georgia;color:#746960}.privacy-document{background:#15100f;color:#f3eee6;padding:95px 6vw 110px;display:grid;grid-template-columns:minmax(100px,1fr) 3fr;gap:8vw;border-top:1px solid rgba(216,188,135,.25)}.privacy-number{font:clamp(80px,12vw,190px)/.8 'Italiana',Georgia;color:rgba(216,188,135,.16)}.privacy-document small{font:8px Arial;letter-spacing:.25em;color:#c8a56d}.privacy-document h2{font:clamp(42px,5vw,78px)/.95 'Italiana',Georgia;margin:18px 0 28px;font-weight:400}.privacy-document p{max-width:680px;font:15px/1.8 Georgia;color:rgba(255,255,255,.63)}.privacy-actions{display:flex;align-items:center;gap:30px;margin-top:40px}.privacy-secondary{font:8px Arial;letter-spacing:.18em;color:#d8bc87;border-bottom:1px solid rgba(216,188,135,.45);padding-bottom:7px}@media(max-width:680px){.site-footer{align-items:flex-start;flex-direction:column}.footer-legal{justify-content:flex-start;gap:16px 24px}.privacy-nav{height:78px}.privacy-logo img{width:118px}.privacy-hero{min-height:52vh;padding-top:70px}.privacy-hero h1{font-size:68px}.privacy-document{grid-template-columns:1fr;padding-top:65px}.privacy-number{font-size:78px}.privacy-actions{align-items:stretch;flex-direction:column}.privacy-actions .btn{text-align:center}}

/* V58 · aviso simplificado + integral */
.privacy-document h2 i{font-weight:400;color:#d8bc87}.privacy-copy{max-width:850px}.privacy-copy p{max-width:none;margin:0 0 26px;font-size:16px;line-height:1.95}.privacy-copy strong{color:#f4eadb;font-weight:600}.privacy-copy a{color:#d8bc87;border-bottom:1px solid rgba(216,188,135,.42)}.privacy-integral{margin-top:58px;padding:38px 40px;border:1px solid rgba(216,188,135,.24);background:linear-gradient(135deg,rgba(216,188,135,.075),rgba(255,255,255,.015));position:relative;overflow:hidden}.privacy-integral:after{content:'INTEGRAL';position:absolute;right:-8px;bottom:-18px;font:80px/.8 'Italiana',Georgia;color:rgba(216,188,135,.045);pointer-events:none}.privacy-integral h3{font:32px/1.05 'Italiana',Georgia;font-weight:400;margin:13px 0 15px}.privacy-integral p{font-size:13px;max-width:590px;margin:0}.privacy-updated{margin:34px 0 0!important;font:8px/1.4 Arial!important;letter-spacing:.22em;color:#aa8a62!important;text-transform:uppercase}.privacy-document>.privacy-number+div{max-width:920px}@media(max-width:680px){.privacy-copy p{font-size:14px;line-height:1.85}.privacy-integral{padding:28px 22px;margin-top:42px}.privacy-integral h3{font-size:27px}.privacy-integral:after{font-size:52px}}
/* V59 · Social QR landing */
.social-page{margin:0;background:#120e0d;color:#f3eee6;min-height:100vh;overflow-x:hidden}.social-nav{height:94px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(216,188,135,.16);position:relative;z-index:4}.social-logo img{width:145px}.social-back{font:8px Arial;letter-spacing:.2em;color:#d8bc87}.social-main{position:relative;min-height:calc(100vh - 94px);padding:9vh 6vw 10vh;overflow:hidden}.social-main:before{content:'GRAND HALL';position:absolute;left:-.03em;top:8vh;font:clamp(120px,21vw,340px)/.7 'Italiana',Georgia;color:rgba(255,255,255,.018);white-space:nowrap;pointer-events:none}.social-orbit{position:absolute;border:1px solid rgba(216,188,135,.12);border-radius:50%;pointer-events:none;animation:socialSpin 26s linear infinite}.social-orbit:after{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:#d8bc87;top:16%;left:14%;box-shadow:0 0 24px rgba(216,188,135,.7)}.social-orbit-a{width:600px;height:600px;right:-260px;top:-190px}.social-orbit-b{width:340px;height:340px;right:-100px;top:-60px;animation-direction:reverse;animation-duration:18s}@keyframes socialSpin{to{transform:rotate(360deg)}}.social-intro{position:relative;z-index:2;max-width:950px;margin-bottom:70px}.social-intro .eyebrow{color:#d8bc87}.social-intro h1{font:clamp(58px,8vw,132px)/.86 'Italiana',Georgia;font-weight:400;letter-spacing:-.045em;margin:20px 0 34px}.social-intro h1 i{font-weight:400;color:#d8bc87}.social-lede{font:14px/1.7 Georgia;color:rgba(255,255,255,.56);max-width:480px}.social-links{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1180px;border-top:1px solid rgba(216,188,135,.18);border-left:1px solid rgba(216,188,135,.18)}.social-card{min-height:190px;padding:30px 32px;display:grid;grid-template-columns:48px 1fr 30px;gap:18px;align-items:center;border-right:1px solid rgba(216,188,135,.18);border-bottom:1px solid rgba(216,188,135,.18);color:#f3eee6;position:relative;overflow:hidden;transition:transform .45s cubic-bezier(.16,.84,.24,1),background .45s}.social-card:before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent,rgba(216,188,135,.08),transparent);transform:translateX(-110%);transition:transform .75s ease}.social-card:hover{background:rgba(216,188,135,.055);transform:translateY(-4px)}.social-card:hover:before{transform:translateX(110%)}.social-num{align-self:start;font:8px Arial;letter-spacing:.18em;color:#9b805d}.social-card small{font:7px Arial;letter-spacing:.22em;color:#9b805d}.social-card strong{display:block;font:clamp(30px,3.2vw,52px)/1 'Italiana',Georgia;font-weight:400;margin:10px 0 12px}.social-card p{font:11px/1.65 Arial;color:rgba(255,255,255,.46);max-width:320px;margin:0}.social-card>b{font:25px Georgia;color:#d8bc87;font-weight:400;transition:transform .35s}.social-card:hover>b{transform:translate(5px,-5px)}.social-card:last-child{grid-column:1/-1}.social-signature{position:relative;z-index:2;display:flex;justify-content:space-between;max-width:1180px;padding-top:24px;font:7px Arial;letter-spacing:.2em;color:rgba(255,255,255,.3)}@media(max-width:680px){.social-nav{height:76px}.social-logo img{width:118px}.social-main{padding:7vh 5vw 8vh}.social-intro{margin-bottom:48px}.social-intro h1{font-size:54px}.social-links{grid-template-columns:1fr}.social-card,.social-card:last-child{grid-column:auto;min-height:158px;padding:24px 20px;grid-template-columns:32px 1fr 24px}.social-card strong{font-size:34px}.social-signature{gap:20px;flex-direction:column}.social-orbit-a{width:420px;height:420px;right:-280px}.social-orbit-b{display:none}}
/* V60 · social cards */
.social-flip-grid{border:0!important;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))!important;perspective:1600px}.social-flip-card{height:205px;perspective:1200px;color:#f3eee6}.social-flip-card:last-child{grid-column:1/-1}.social-flip-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .78s cubic-bezier(.16,.84,.24,1)}.social-flip-card:hover .social-flip-inner,.social-flip-card:focus-visible .social-flip-inner{transform:rotateX(180deg)}.social-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid rgba(216,188,135,.34);border-radius:24px;overflow:hidden}.social-face-front{display:grid;grid-template-columns:50px 76px 1fr 35px;align-items:center;padding:28px 32px;background:linear-gradient(135deg,rgba(255,255,255,.025),rgba(216,188,135,.025))}.social-face-front:before,.social-face-back:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(216,188,135,.13),transparent 34%);pointer-events:none}.social-index{align-self:start;font:8px Arial;letter-spacing:.2em;color:#8e7655}.social-icon{width:58px;height:58px;border:1px solid rgba(216,188,135,.48);border-radius:50%;display:grid;place-items:center;color:#d8bc87;position:relative;z-index:1;transition:transform .45s,background .45s,color .45s}.social-icon svg{width:23px;height:23px;fill:currentColor}.social-face-front strong{font:clamp(34px,3.4vw,54px)/1 'Italiana',Georgia;font-weight:400;position:relative;z-index:1}.social-arrow{font:25px Georgia;color:#d8bc87;transition:transform .4s}.social-flip-card:hover .social-face-front .social-icon{transform:scale(1.08) rotate(-7deg);background:#d8bc87;color:#120e0d}.social-flip-card:hover .social-arrow{transform:translate(5px,-5px)}.social-face-back{transform:rotateX(180deg);display:grid;grid-template-columns:62px 1fr auto;grid-template-rows:auto auto 1fr;column-gap:22px;align-items:center;padding:28px 32px;background:#c9aa70;color:#120e0d;border-color:#c9aa70}.social-face-back:before{background:linear-gradient(110deg,rgba(255,255,255,.22),transparent 42%)}.social-face-back .social-icon{grid-row:1/4;border-color:rgba(18,14,13,.35);color:#120e0d}.social-face-back small{font:7px Arial;letter-spacing:.25em;opacity:.62}.social-face-back strong{grid-column:2;font:clamp(32px,3vw,48px)/1 'Italiana',Georgia;font-weight:400;margin:6px 0}.social-face-back p{grid-column:2;margin:0;font:10px/1.6 Arial;letter-spacing:.03em;opacity:.68}.social-enter{grid-column:3;grid-row:1/4;align-self:center;font:8px Arial;letter-spacing:.18em;border-bottom:1px solid rgba(18,14,13,.45);padding-bottom:5px}.social-flip-card:focus-visible{outline:1px solid #d8bc87;outline-offset:5px;border-radius:24px}@media(max-width:680px){.social-flip-grid{grid-template-columns:1fr!important}.social-flip-card,.social-flip-card:last-child{grid-column:auto;height:170px}.social-face-front{grid-template-columns:28px 55px 1fr 24px;padding:20px}.social-icon{width:45px;height:45px}.social-icon svg{width:19px;height:19px}.social-face-front strong{font-size:32px}.social-face-back{grid-template-columns:48px 1fr;padding:20px;column-gap:15px}.social-enter{display:none}.social-face-back strong,.social-face-back p{grid-column:2}.social-face-back .social-icon{grid-row:1/4}}
@media (hover:none){.social-flip-card:active .social-flip-inner{transform:rotateX(180deg)}}

/* V61 — QR SOCIAL EDITORIAL SPLIT */
@media(min-width:900px){
.social-page .social-main{display:grid;grid-template-columns:minmax(360px,.78fr) minmax(560px,1.22fr);grid-template-areas:'intro links' 'signature signature';gap:4vw 7vw;align-items:center;padding:8vh 7vw 7vh;min-height:calc(100vh - 94px)}
.social-page .social-main:before{content:'GH';left:1.5vw;top:18%;font-size:clamp(280px,36vw,620px);line-height:.7;color:rgba(216,188,135,.026);transform:rotate(-7deg)}
.social-intro{grid-area:intro;margin:0;max-width:560px;align-self:center}
.social-intro:after{content:'C&O GRAND HALL  /  SAN PEDRO CHOLULA';display:block;margin-top:42px;padding-top:20px;border-top:1px solid rgba(216,188,135,.2);font:7px Arial;letter-spacing:.24em;color:rgba(255,255,255,.32)}
.social-intro h1{font-size:clamp(72px,7.4vw,128px);margin:20px 0 30px}
.social-links{grid-area:links;max-width:none;width:100%;align-self:center}
.social-flip-grid{display:flex!important;flex-direction:column;gap:13px!important;perspective:1800px}
.social-flip-card,.social-flip-card:last-child{height:132px;grid-column:auto;width:88%;margin-left:auto;transition:transform .45s cubic-bezier(.16,.84,.24,1),width .45s}
.social-flip-card:nth-child(2){width:94%;margin-right:3%}.social-flip-card:nth-child(3){width:84%;margin-right:0}.social-flip-card:nth-child(4){width:91%;margin-right:5%}.social-flip-card:nth-child(5){width:86%;margin-right:1%}
.social-flip-card:hover{width:100%;transform:translateX(-10px)}
.social-face-front{grid-template-columns:42px 62px 1fr 30px;padding:20px 24px;border-radius:20px;background:linear-gradient(105deg,rgba(255,255,255,.018),rgba(216,188,135,.04))}
.social-icon{width:48px;height:48px}.social-icon svg{width:20px;height:20px}.social-face-front strong{font-size:clamp(30px,2.6vw,45px)}
.social-face-back{grid-template-columns:52px 1fr auto;padding:19px 24px;border-radius:20px}.social-face-back strong{font-size:clamp(28px,2.3vw,40px)}
.social-signature{grid-area:signature;width:100%;max-width:none;margin-top:1vh;padding-top:20px;border-top:1px solid rgba(216,188,135,.13)}
.social-links:before{content:'ELIGE DÓNDE ENCONTRARNOS  ·  01—05';display:block;margin:0 0 18px 12%;font:7px Arial;letter-spacing:.24em;color:#a98b5f}
.social-orbit-a{right:31%;top:-270px;width:700px;height:700px;opacity:.55}.social-orbit-b{right:38%;top:-90px;opacity:.35}
}
@media(max-width:899px){.social-intro{text-align:center;margin-left:auto;margin-right:auto}.social-lede{margin-left:auto;margin-right:auto}.social-flip-grid{max-width:620px;margin:0 auto}.social-signature{max-width:620px;margin-left:auto;margin-right:auto}.social-main:before{left:50%;transform:translateX(-50%);font-size:38vw}.social-flip-card{transform:none!important}}

/* V62 · RESPONSIVE SYSTEM — mobile → 5K ultrawide */
html{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overflow-x:hidden;min-width:280px}img,video,canvas,svg{max-width:100%}img,video{height:auto}*{min-width:0}
:root{--gh-gutter:clamp(18px,4vw,76px);--gh-content:min(1760px,calc(100vw - (var(--gh-gutter)*2)))}
.hero,.journey,.gallery,.events,.contact,.reviews-premium,.social-main,.privacy-main{max-width:100vw}
.hero-copy,.journey-inner,.gallery-inner,.events>header,.events>.events-lede,.event-grid,.contact-inner{box-sizing:border-box}
@media (min-width:1800px){.hero-copy,.journey-inner,.gallery-inner,.events>header,.events>.events-lede,.event-grid,.contact-inner{max-width:1760px;margin-left:auto;margin-right:auto}.hero-copy{left:50%!important;transform:translateX(-50%);width:var(--gh-content)!important}.events{padding-left:max(var(--gh-gutter),calc((100vw - 1760px)/2));padding-right:max(var(--gh-gutter),calc((100vw - 1760px)/2))}.reviews-head{padding-left:max(6vw,calc((100vw - 1760px)/2));padding-right:max(6vw,calc((100vw - 1760px)/2))}.event-card{height:clamp(540px,31vw,720px)}.floating-stage{height:clamp(620px,38vw,780px);max-width:1760px;margin-inline:auto}}
@media (min-width:2560px){.hero{min-height:min(1000px,100svh)}.hero-copy h1{font-size:clamp(88px,5vw,150px)}.reviews-head h2{font-size:clamp(72px,4vw,112px)}.infinite-track span{font-size:clamp(110px,6vw,180px)}.event-grid{gap:22px}.event-face{padding:36px}.social-main{max-width:1900px;margin-inline:auto}.social-main:before{font-size:min(30vw,680px)}.social-intro h1{font-size:clamp(100px,5.2vw,150px)}.social-flip-card,.social-flip-card:last-child{height:145px}}
@media (min-width:3440px){:root{--gh-content:1900px}.hero-copy,.journey-inner,.gallery-inner,.contact-inner,.floating-stage{max-width:1900px}.events{padding-left:calc((100vw - 1900px)/2);padding-right:calc((100vw - 1900px)/2)}.reviews-head{padding-left:calc((100vw - 1900px)/2);padding-right:calc((100vw - 1900px)/2)}.hero-slide{background-size:cover;background-position:center}.social-main{max-width:2100px;grid-template-columns:minmax(520px,.9fr) minmax(720px,1.1fr);column-gap:clamp(100px,7vw,220px)}}
@media (max-width:1366px){.hero-copy h1{font-size:clamp(56px,7.5vw,98px)}.event-card{min-height:480px}.event-back h3{font-size:30px}.reviews-premium{padding-top:90px}.social-main{padding-inline:clamp(28px,5vw,70px)}.social-intro h1{font-size:clamp(58px,7vw,96px)}.social-flip-card,.social-flip-card:last-child{height:118px}}
@media (max-width:1180px){.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card{height:clamp(500px,58vw,620px)}.reviews-head{gap:32px}.social-main{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px}.social-face-front strong{font-size:clamp(24px,3vw,36px)}}
@media (max-width:980px){.reviews-head{flex-direction:column;align-items:flex-start}.reviews-score{width:100%;max-width:420px}.social-main{display:block!important;padding:120px clamp(20px,6vw,60px) 70px!important;min-height:auto!important}.social-intro{max-width:720px!important}.social-intro h1{font-size:clamp(54px,10vw,92px)!important}.social-links{margin-top:54px}.social-flip-card,.social-flip-card:last-child,.social-flip-card:nth-child(n){width:100%!important;margin:0!important;height:124px}.social-links:before{margin-left:0!important;text-align:center}.social-signature{margin-top:38px!important}.social-orbit{pointer-events:none}.site-footer{gap:30px}}
@media (max-width:760px){.hero{min-height:100svh}.hero-copy{padding-inline:20px}.hero-copy h1{font-size:clamp(48px,14vw,78px);overflow-wrap:normal}.hero-dots{bottom:24px}.hero-count{bottom:43px}.events{padding-left:20px!important;padding-right:20px!important}.event-grid{grid-template-columns:1fr}.event-card{height:min(640px,135vw);min-height:470px}.reviews-premium{padding:76px 0 64px}.reviews-head{padding:0 20px 42px}.reviews-head h2{font-size:clamp(42px,12vw,68px)}.review-card{width:min(82vw,360px)}.infinite-statement:before,.infinite-statement:after{width:7vw}.site-footer{flex-direction:column;align-items:flex-start;padding-inline:20px}.footer-legal{flex-wrap:wrap;gap:16px 24px}.social-nav{padding-inline:20px}.social-main{padding-top:100px!important}.social-intro h1{font-size:clamp(46px,13vw,72px)!important;line-height:.95}.social-face-front{grid-template-columns:32px 48px 1fr 24px!important;padding:16px 18px!important}.social-icon{width:42px!important;height:42px!important}.social-face-front strong{font-size:clamp(24px,7vw,34px)!important}.social-face-back{grid-template-columns:42px 1fr auto!important;padding:16px 18px!important}.social-face-back strong{font-size:clamp(22px,6vw,32px)!important}.social-face-back p{font-size:10px}.social-flip-card,.social-flip-card:last-child{height:112px}.social-signature{flex-wrap:wrap;gap:10px}}
@media (max-width:420px){.hero-copy h1{font-size:clamp(43px,13.5vw,60px)}.event-card{height:520px}.event-face{padding:22px}.event-back h3{font-size:28px}.social-main{padding-inline:16px!important}.social-intro h1{font-size:clamp(42px,12.5vw,58px)!important}.social-lede{font-size:12px}.social-face-front{grid-template-columns:24px 42px 1fr 18px!important;padding:14px!important}.social-index{font-size:7px!important}.social-icon{width:38px!important;height:38px!important}.social-face-front strong{font-size:23px!important}.social-face-back{grid-template-columns:34px 1fr!important}.social-face-back .social-enter{display:none}.social-face-back p{display:none}.social-flip-card,.social-flip-card:last-child{height:100px}.social-nav .social-back{font-size:7px;letter-spacing:.14em}}
@media (max-width:320px){.social-logo{max-width:130px}.social-intro h1{font-size:39px!important}.social-face-front strong{font-size:20px!important}.event-card{min-height:450px}.footer-legal{flex-direction:column}}
@media (max-height:700px) and (min-width:900px){.hero{min-height:700px}.social-main{min-height:760px;padding-top:100px!important;padding-bottom:50px!important}.social-flip-card,.social-flip-card:last-child{height:100px}.social-intro h1{font-size:clamp(56px,6vw,90px)}.social-face-front strong{font-size:30px}.social-face-back strong{font-size:28px}}
@media (orientation:landscape) and (max-height:520px) and (max-width:980px){.hero{min-height:620px}.social-main{padding-top:90px!important}.social-intro h1{font-size:52px!important}.social-flip-grid{max-width:760px}.social-flip-card,.social-flip-card:last-child{height:94px}}
@media (hover:none),(pointer:coarse){.event-card:hover .event-card-inner{transform:none}.event-card.is-flipped .event-card-inner{transform:rotateY(180deg)}.social-flip-card:hover{transform:none;width:100%}.social-flip-card:active .social-flip-inner{transform:rotateY(180deg)}}

/* V63 — mobile infinite statement stability */
@media (max-width:760px){
  .infinite-statement{overflow:hidden!important;max-width:100vw;contain:paint;}
  .infinite-track{display:flex!important;width:max-content!important;min-width:max-content;flex-wrap:nowrap!important;white-space:nowrap!important;gap:24px;animation:ghInfiniteTypeMobile 18s linear infinite!important;transform:translate3d(0,0,0);will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;}
  .infinite-track span{display:block;flex:0 0 auto;font-size:clamp(44px,13vw,62px);}
  .infinite-track i{display:block;flex:0 0 auto;}
}
@-webkit-keyframes ghInfiniteTypeMobile{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-25%,0,0);transform:translate3d(-25%,0,0)}}
@keyframes ghInfiniteTypeMobile{from{transform:translate3d(0,0,0)}to{transform:translate3d(-25%,0,0)}}

/* V64 — MOBILE JOURNEY STICKY FIX
   Keep the particle ring pinned while the 5-step journey consumes scroll. */
@media (max-width:980px){
  .journey{
    position:relative!important;
    height:500svh!important;
    min-height:500svh!important;
    overflow:visible!important;
  }
  .journey > .journey-sticky{
    position:-webkit-sticky!important;
    position:sticky!important;
    top:0!important;
    left:0!important;
    width:100%!important;
    height:100svh!important;
    min-height:100svh!important;
    max-height:100svh!important;
    display:block!important;
    overflow:hidden!important;
    contain:none!important;
    transform:none!important;
  }
  .journey .journey-visual.native-3d{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
  }
  .journey #particleRing{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
  }
  .journey .journey-copy{
    position:absolute!important;
    z-index:8!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    height:42svh!important;
    padding:clamp(82px,12svh,120px) 6vw 0!important;
    pointer-events:none!important;
  }
  .journey .copy-panel{
    top:clamp(150px,22svh,210px)!important;
    left:6vw!important;
    right:6vw!important;
  }
  .journey .copy-panel h2{
    width:auto!important;
    max-width:88vw!important;
    white-space:normal!important;
    font-size:clamp(48px,15vw,72px)!important;
  }
  .journey .orbit,
  .journey .stage-caption,
  .journey .ring-glow,
  .journey .ring-spark{position:absolute!important}
}

@media (max-width:980px) and (orientation:landscape) and (max-height:520px){
  .journey{height:500svh!important;min-height:500svh!important}
  .journey > .journey-sticky{height:100svh!important;min-height:100svh!important;max-height:100svh!important}
  .journey .journey-copy{height:100%!important;padding:72px 5vw 0!important;width:46%!important;right:auto!important}
  .journey .copy-panel{top:125px!important;left:5vw!important;right:auto!important;width:42vw!important}
  .journey .copy-panel h2{font-size:clamp(38px,7vw,58px)!important;max-width:42vw!important}
}

/* V65 — deterministic mobile journey pinning.
   JS owns the pin state on touch/mobile so browser sticky quirks cannot leave a black void. */
@media (max-width:980px){
  .journey{height:430svh!important;min-height:430svh!important;position:relative!important;}
  .journey > .journey-sticky{position:absolute!important;top:0!important;bottom:auto!important;}
  .journey.mobile-pinned > .journey-sticky{
    position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:auto!important;
    width:100vw!important;height:100svh!important;min-height:100svh!important;max-height:100svh!important;
    z-index:12!important;
  }
  .journey.mobile-ended > .journey-sticky{
    position:absolute!important;top:auto!important;bottom:0!important;left:0!important;right:0!important;
    width:100%!important;height:100svh!important;
  }
}


/* V66 — ring centering guard for every responsive breakpoint */
@media (max-width:1600px){
  .journey .journey-visual.native-3d,
  .journey #particleRing{
    left:0!important;right:0!important;margin-left:auto!important;margin-right:auto!important;
    transform:none!important;
  }
}

/* V67 — responsive ring vertical optical centering
   Keep the ring horizontally centered, but lower the 3D stage so it never collides with step copy. */
@media (max-width:980px){
  .journey .journey-visual.native-3d{
    top:clamp(58px,8svh,86px)!important;
    bottom:0!important;
    height:calc(100% - clamp(58px,8svh,86px))!important;
  }
  .journey #particleRing{
    inset:0!important;
    width:100%!important;
    height:100%!important;
  }
}
@media (max-width:980px) and (orientation:landscape) and (max-height:520px){
  .journey .journey-visual.native-3d{
    top:clamp(26px,5svh,42px)!important;
    height:calc(100% - clamp(26px,5svh,42px))!important;
  }
}

/* V68 — true viewport-centered ring on responsive screens.
   Copy stays anchored above; the 3D stage is lowered independently. */
@media (max-width:980px){
  .journey .journey-visual.native-3d{
    top:clamp(120px,15svh,155px)!important;
    bottom:0!important;
    height:calc(100% - clamp(120px,15svh,155px))!important;
  }
}
@media (max-width:980px) and (orientation:landscape) and (max-height:520px){
  .journey .journey-visual.native-3d{
    top:clamp(48px,9svh,72px)!important;
    height:calc(100% - clamp(48px,9svh,72px))!important;
  }
}


/* V70 — premium full-screen loading experience */
html:has(body.is-loading),body.is-loading{overflow:hidden!important}
.gh-loader{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:#100c0b;color:#c9aa70;overflow:hidden;opacity:1;visibility:visible;transition:opacity .72s cubic-bezier(.22,.61,.36,1),visibility 0s linear .72s}
.gh-loader::before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 50% 48%,rgba(201,170,112,.075),transparent 31%),radial-gradient(circle at 50% 50%,rgba(255,255,255,.018),transparent 52%);transform:scale(.82);animation:ghLoaderAura 2.2s ease-out forwards}
.gh-loader::after{content:"";position:absolute;inset:0;opacity:.16;background-image:linear-gradient(rgba(201,170,112,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(201,170,112,.035) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(circle at center,#000 0%,transparent 68%)}
.gh-loader-frame{position:absolute;inset:clamp(18px,3vw,46px);border:1px solid rgba(201,170,112,.13);transform:scale(.985);opacity:0;animation:ghFrameIn 1.1s .18s cubic-bezier(.2,.8,.2,1) forwards}
.gh-loader-frame::before,.gh-loader-frame::after{content:"";position:absolute;background:#c9aa70;opacity:.55}
.gh-loader-frame::before{width:54px;height:1px;left:-1px;top:-1px}.gh-loader-frame::after{width:1px;height:54px;left:-1px;top:-1px}
.gh-loader-inner{position:relative;z-index:2;width:min(480px,76vw);display:flex;flex-direction:column;align-items:center;text-align:center;transform:translateY(8px)}
.gh-loader-kicker{margin:0 0 clamp(24px,4vh,40px);font:500 8px/1 Arial,sans-serif;letter-spacing:.42em;color:rgba(222,198,151,.62);opacity:0;transform:translateY(8px);animation:ghTextIn .8s .2s ease forwards}
.gh-loader-logo-wrap{width:min(330px,62vw);max-height:290px;overflow:hidden;opacity:0;clip-path:inset(100% 0 0 0);animation:ghLogoReveal 1.15s .3s cubic-bezier(.77,0,.18,1) forwards}
.gh-loader-logo-wrap img{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 40px rgba(201,170,112,.08))}
.gh-loader-rule{width:min(280px,58vw);height:1px;margin-top:clamp(27px,4vh,38px);background:rgba(201,170,112,.14);overflow:hidden;opacity:0;animation:ghTextIn .5s .65s ease forwards}
.gh-loader-rule i{display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent,#d5b97e 18%,#f1dfb7 50%,#d5b97e 82%,transparent);transform:translateX(-105%);animation:ghProgress 1.55s .52s cubic-bezier(.65,0,.35,1) forwards}
.gh-loader-meta{width:min(280px,58vw);display:flex;align-items:center;justify-content:space-between;margin-top:14px;font:500 7px/1 Arial,sans-serif;letter-spacing:.23em;color:rgba(222,198,151,.42);opacity:0;animation:ghTextIn .7s .8s ease forwards}.gh-loader-meta b{font-weight:400;color:#c9aa70}
.gh-loader-corner{position:absolute;width:70px;height:70px;opacity:.3}.gh-loader-corner::before,.gh-loader-corner::after{content:"";position:absolute;background:#c9aa70}.gh-loader-corner::before{width:100%;height:1px}.gh-loader-corner::after{width:1px;height:100%}.gh-loader-corner-a{right:clamp(18px,3vw,46px);top:clamp(18px,3vw,46px);transform:rotate(90deg)}.gh-loader-corner-b{left:clamp(18px,3vw,46px);bottom:clamp(18px,3vw,46px);transform:rotate(-90deg)}
.gh-loader.is-leaving{opacity:0;pointer-events:none}.gh-loader.is-leaving .gh-loader-inner{transform:translateY(-8px) scale(.985);opacity:0;transition:transform .65s cubic-bezier(.4,0,.2,1),opacity .5s ease}.gh-loader.is-gone{display:none}
@keyframes ghLogoReveal{0%{opacity:0;clip-path:inset(100% 0 0 0);transform:translateY(14px) scale(.985)}100%{opacity:1;clip-path:inset(0 0 0 0);transform:none}}
@keyframes ghProgress{0%{transform:translateX(-105%)}100%{transform:translateX(105%)}}
@keyframes ghTextIn{to{opacity:1;transform:none}}@keyframes ghFrameIn{to{opacity:1;transform:none}}@keyframes ghLoaderAura{to{transform:scale(1.05)}}
@media(max-width:600px){.gh-loader-inner{width:82vw}.gh-loader-logo-wrap{width:min(280px,66vw)}.gh-loader-kicker{letter-spacing:.34em}.gh-loader-frame{inset:14px}.gh-loader-corner-a{right:14px;top:14px}.gh-loader-corner-b{left:14px;bottom:14px}.gh-loader-meta{width:min(250px,66vw);letter-spacing:.16em}}
@media(max-height:560px) and (orientation:landscape){.gh-loader-logo-wrap{width:min(220px,34vw)}.gh-loader-kicker{margin-bottom:14px}.gh-loader-rule{margin-top:15px}.gh-loader-inner{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.gh-loader *,.gh-loader::before{animation-duration:.01ms!important;animation-delay:0s!important}.gh-loader{transition-duration:.2s}}

/* V71 · Night mode + refined floating social dock */
.floating-tools{position:fixed;right:20px;bottom:24px;z-index:88;display:flex;flex-direction:column;align-items:center;gap:10px}
.floating-tools .social-icons{position:static!important;right:auto!important;bottom:auto!important;display:flex;flex-direction:column;gap:9px}
.floating-tools .social-icons a,.theme-toggle{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(199,174,130,.42);background:rgba(246,241,233,.86);color:#7e6745;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 7px 24px rgba(17,12,9,.12);transition:transform .3s ease,background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}
.floating-tools .social-icons a:hover,.theme-toggle:hover{transform:translateX(-3px) scale(1.07);background:#fffaf1;color:#3f3021;border-color:#c7ae82;box-shadow:0 10px 28px rgba(17,12,9,.2)}
.floating-tools svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.floating-tools svg .fill-brand,.floating-tools svg.fill-brand{fill:currentColor;stroke:none}.floating-tools svg .fill-dot{fill:currentColor;stroke:none}
.theme-toggle{cursor:pointer;padding:0;margin-bottom:2px}.theme-toggle .theme-sun{display:none}.theme-toggle .theme-moon{display:block}
body.theme-night{--cream:#100d0c;--ink:#f1eadf;background:#100d0c;color:#f1eadf}
body.theme-night .theme-toggle .theme-moon{display:none}body.theme-night .theme-toggle .theme-sun{display:block}
body.theme-night .floating-tools .social-icons a,body.theme-night .theme-toggle{background:rgba(18,14,13,.82);color:#d6b477;border-color:rgba(214,180,119,.42);box-shadow:0 8px 28px rgba(0,0,0,.3)}
body.theme-night .floating-tools .social-icons a:hover,body.theme-night .theme-toggle:hover{background:#1d1714;color:#f3dca9;border-color:#d6b477}
body.theme-night .nav.scrolled{background:rgba(15,12,11,.94);color:#f3eee6;border-bottom-color:rgba(216,188,135,.14)}
body.theme-night main>section:not(.hero):not(.journey):not(.real-gallery){background-color:#100d0c;color:#eee6dc}
body.theme-night .intro{background:#100d0c!important}body.theme-night .intro-copy{color:#a99d91}
body.theme-night .facts{background:#15100f!important}body.theme-night .facts strong{color:#d8bc87}body.theme-night .facts div{border-color:rgba(216,188,135,.18)}
body.theme-night .events{background:#100d0c!important}body.theme-night .contact{background:#171210!important}
body.theme-night .contact label{color:#b7a58d}body.theme-night .contact input,body.theme-night .contact select,body.theme-night .contact textarea{color:#f1eadf;border-color:rgba(216,188,135,.28)}body.theme-night .contact option{color:#201b19}
body.theme-night footer,body.theme-night .site-footer{background:#0d0a09;color:#e9dfd2;border-color:rgba(216,188,135,.14)}
body.theme-night .reviews,body.theme-night .reviews-section{background:#15100f!important;color:#f1eadf}
body.theme-night .review-card{background:rgba(255,255,255,.035)!important;border-color:rgba(216,188,135,.18)!important;color:#eee6dc!important}
@media(max-width:680px){.floating-tools{right:14px;bottom:16px;gap:7px}.floating-tools .social-icons{gap:7px}.floating-tools .social-icons a,.theme-toggle{width:36px;height:36px}.floating-tools svg{width:16px;height:16px}}


/* V72 — stability pass: desktop/mobile journey isolation + dock + night header */
/* Desktop journey: restore the original three-column sticky experience. */
@media (min-width:981px){
  .journey{height:590vh!important;min-height:590vh!important;overflow:visible!important;position:relative!important}
  .journey>.journey-sticky{position:sticky!important;top:0!important;left:auto!important;right:auto!important;bottom:auto!important;width:100%!important;height:100vh!important;min-height:100vh!important;max-height:none!important;display:grid!important;grid-template-columns:33% 49% 18%!important;overflow:hidden!important;transform:none!important}
  .journey .journey-copy{position:relative!important;left:auto!important;right:auto!important;top:auto!important;width:auto!important;height:auto!important;padding:14vh 2vw 8vh 8vw!important;border-right:1px solid rgba(255,255,255,.07)!important}
  .journey .copy-panel{position:absolute!important;top:30vh!important;left:8vw!important;right:3vw!important}
  .journey .journey-visual.native-3d{position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto!important;height:auto!important;margin:0!important;transform:none!important;overflow:hidden!important}
  .journey #particleRing{position:absolute!important;inset:0!important;left:0!important;top:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;transform:none!important}
  .journey .journey-progress{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;height:auto!important;padding:14vh 3vw 8vh 2vw!important;border-left:1px solid rgba(255,255,255,.07)!important}
}
/* Mobile journey remains independently pinned/centered. */
@media (max-width:980px){
  .journey>.journey-sticky{grid-template-columns:1fr!important}
  .journey .journey-visual.native-3d{left:0!important;right:0!important;margin-inline:auto!important}
  .journey #particleRing{left:0!important;right:0!important;margin-inline:auto!important}
}
/* Floating controls must always live at the lower-right, never in the header flow. */
.floating-tools{position:fixed!important;top:auto!important;left:auto!important;right:max(14px,env(safe-area-inset-right))!important;bottom:max(18px,env(safe-area-inset-bottom))!important;z-index:900!important;width:auto!important;height:auto!important;margin:0!important;transform:none!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:9px!important}
.floating-tools .social-icons{position:static!important;inset:auto!important;margin:0!important;transform:none!important;display:flex!important;flex-direction:column!important;gap:8px!important}
.theme-toggle{padding:0!important;cursor:pointer!important}
/* Header logo follows the theme while preserving the real gold artwork. */
.real-brand img{transition:filter .35s ease,opacity .35s ease!important}
body.theme-night .real-brand img{filter:brightness(1.12) saturate(.92) drop-shadow(0 3px 12px rgba(0,0,0,.22))!important;opacity:1!important}
body.theme-night .nav.scrolled{background:rgba(13,10,9,.94)!important;color:#f3eee6!important}
body.theme-night .nav.scrolled .real-brand img{filter:brightness(1.18) saturate(.95)!important}
/* Loader is a self-contained overlay and can never enter document layout. */
.gh-loader{position:fixed!important;inset:0!important;width:100dvw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;z-index:2147483000!important}
.gh-loader-logo-wrap img{width:100%!important;height:auto!important;max-width:100%!important;object-fit:contain!important}
@media(max-width:680px){.floating-tools{right:max(12px,env(safe-area-inset-right))!important;bottom:max(14px,env(safe-area-inset-bottom))!important}}

/* V73 — DESKTOP JOURNEY RESTORE
   Restore the proven V42/V60 full-bleed particle composition on desktop.
   Mobile keeps its independent V65–V68 pin/centering rules. */
@media (min-width:981px){
  .journey{height:590vh!important;min-height:590vh!important;position:relative!important;overflow:visible!important}
  .journey>.journey-sticky{
    position:sticky!important;top:0!important;left:0!important;right:auto!important;bottom:auto!important;
    width:100vw!important;height:100vh!important;min-height:100vh!important;max-height:100vh!important;
    display:block!important;overflow:hidden!important;margin:0!important;padding:0!important;transform:none!important;
  }
  .journey .journey-visual.native-3d{
    position:absolute!important;inset:0!important;width:100vw!important;height:100vh!important;
    margin:0!important;padding:0!important;transform:none!important;overflow:visible!important;z-index:2!important;
  }
  .journey #particleRing{
    position:absolute!important;inset:0!important;left:0!important;top:0!important;right:auto!important;bottom:auto!important;
    width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;
    margin:0!important;padding:0!important;transform:none!important;z-index:2!important;
  }
  .journey .journey-copy{
    position:relative!important;z-index:8!important;left:auto!important;right:auto!important;top:auto!important;
    width:min(46vw,800px)!important;height:100vh!important;max-width:none!important;
    padding:14vh 2vw 8vh 8vw!important;border-right:0!important;overflow:visible!important;pointer-events:none!important;
  }
  .journey .journey-copy>.eyebrow{margin-bottom:7vh!important}
  .journey .copy-panel{position:absolute!important;top:30vh!important;left:8vw!important;right:auto!important;width:min(40vw,700px)!important}
  .journey .copy-panel h2{
    width:max-content!important;max-width:none!important;font-size:clamp(72px,7.4vw,138px)!important;
    line-height:1.02!important;white-space:nowrap!important;overflow:visible!important;
  }
  .journey .journey-progress{display:none!important}
  .journey-sticky:after{
    content:""!important;position:absolute!important;inset:0!important;pointer-events:none!important;z-index:5!important;
    background:linear-gradient(90deg,rgba(10,6,7,.76) 0%,rgba(10,6,7,.40) 28%,rgba(10,6,7,.04) 49%,transparent 68%),radial-gradient(circle at 56% 48%,transparent 0 28%,rgba(8,5,6,.08) 62%,rgba(8,5,6,.28) 100%)!important;
  }
  .journey .side-nav{z-index:20!important}
  .journey.mobile-pinned>.journey-sticky,.journey.mobile-ended>.journey-sticky{position:sticky!important;top:0!important;bottom:auto!important}
}

/* =========================================================
   V74 — FINAL DESKTOP JOURNEY OVERRIDE
   IMPORTANT: intentionally last in stylesheet so legacy rules
   cannot override the proven desktop sticky/full-bleed layout.
   ========================================================= */
@media (min-width:981px){
  .journey{
    height:590vh!important;
    min-height:590vh!important;
    position:relative!important;
    overflow:visible!important;
    max-width:none!important;
    width:100%!important;
  }
  .journey > .journey-sticky{
    position:-webkit-sticky!important;
    position:sticky!important;
    top:0!important;
    left:0!important;
    right:auto!important;
    bottom:auto!important;
    width:100vw!important;
    height:100vh!important;
    min-height:100vh!important;
    max-height:100vh!important;
    display:block!important;
    overflow:hidden!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    contain:none!important;
  }
  .journey .journey-visual.native-3d,
  .journey .journey-stage{
    position:absolute!important;
    inset:0!important;
    width:100vw!important;
    height:100vh!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    transform:none!important;
    z-index:2!important;
  }
  .journey #particleRing{
    position:absolute!important;
    inset:0!important;
    width:100vw!important;
    height:100vh!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    z-index:2!important;
  }
  .journey .journey-copy{
    position:relative!important;
    z-index:8!important;
    width:min(48vw,820px)!important;
    max-width:none!important;
    height:100vh!important;
    padding:14vh 2vw 8vh 8vw!important;
    border:0!important;
    overflow:visible!important;
    pointer-events:none!important;
  }
  .journey .copy-panel{
    position:absolute!important;
    top:30vh!important;
    left:8vw!important;
    right:3vw!important;
    width:auto!important;
  }
  .journey .copy-panel h2{
    width:max-content!important;
    max-width:none!important;
    font-size:clamp(72px,7.4vw,138px)!important;
    line-height:1.02!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  .journey .journey-progress,.journey .premium-progress{display:none!important}
  .journey.mobile-pinned > .journey-sticky,
  .journey.mobile-ended > .journey-sticky{
    position:sticky!important;
    top:0!important;
    bottom:auto!important;
  }
}


/* V75 — deterministic journey pinning. Do not depend on CSS sticky on desktop. */
@media (min-width:981px){
  .journey{position:relative!important;height:590vh!important;min-height:590vh!important;overflow:visible!important}
  .journey > .journey-sticky{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100vh!important}
  .journey.desktop-pinned > .journey-sticky{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:auto!important;width:100vw!important;height:100vh!important;z-index:12!important}
  .journey.desktop-ended > .journey-sticky{position:absolute!important;top:auto!important;bottom:0!important;left:0!important;width:100%!important;height:100vh!important}
}
