:root {
  --santeria-red: #b61f2c;
  --santeria-red-dark: #8f1721;
  --cloud-white: #fffaf5;
  --blush: #f3d9d3;
  --rose-shadow: #b88988;
  --powder-sky: #d8e0dc;
  --ink: #31191b;
  --serif: "Libre Caslon Display", Georgia, serif;
  --serif-text: "Libre Caslon Text", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --ease-ceremony: cubic-bezier(.16, 1, .3, 1);
  --ease-breath: cubic-bezier(.37, 0, .63, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--cloud-white); }
body { margin: 0; color: var(--ink); background: var(--cloud-white); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
html.sound-entry-pending,
html.sound-entry-pending body { overflow: hidden; }
img { display: block; width: 100%; }
a { color: inherit; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.reserve {
  display: inline-flex;
  min-height: 3.7rem;
  align-items: center;
  justify-content: center;
  padding: .9rem 1.65rem;
  border: 1px solid var(--santeria-red);
  background: var(--santeria-red);
  color: #fff;
  font: 500 .76rem/1 var(--sans);
  letter-spacing: .03em;
  text-decoration: none;
  transition: background-color .42s ease, color .42s ease, transform .42s var(--ease-ceremony);
}

.reserve:not(.reserve--celestial):hover { transform: translateY(-1px); background: var(--santeria-red-dark); }
.reserve--celestial {
  position: relative;
  isolation: isolate;
  flex-direction: column;
  gap: .34rem;
  min-width: 15.5rem;
  min-height: 4.35rem;
  padding: 1rem 2.25rem;
  border: 1px solid rgba(143,23,33,.32);
  border-radius: 999px;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,252,247,.33), rgba(255,247,241,.57)),
    url("assets/paradiso-hero-v1.png") 50% 66% / 255% auto no-repeat;
  box-shadow:
    0 0 0 5px rgba(255,250,245,.28),
    0 13px 40px rgba(94,45,46,.16),
    0 0 35px rgba(255,233,199,.38);
  color: var(--santeria-red-dark);
  font-size: .67rem;
  font-weight: 600;
  letter-spacing: .115em;
  text-transform: uppercase;
  transition: color .55s ease, border-color .55s ease, box-shadow .55s ease, transform .55s var(--ease-ceremony), background-position .9s var(--ease-ceremony);
}
.reserve--celestial .reserve__ritual {
  font-size: .47rem;
  font-weight: 500;
  letter-spacing: .2em;
  opacity: .64;
}
.reserve--celestial .reserve__action {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .105em;
}
.reserve--celestial::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid rgba(143,23,33,.16);
  border-radius: inherit;
  pointer-events: none;
  transition: border-color .55s ease, inset .55s var(--ease-ceremony);
}
.reserve--celestial:hover {
  transform: translateY(-2px);
  border-color: rgba(143,23,33,.48);
  background:
    linear-gradient(180deg, rgba(255,252,247,.27), rgba(255,247,241,.51)),
    url("assets/paradiso-hero-v1.png") 54% 61% / 255% auto no-repeat;
  color: var(--santeria-red);
  box-shadow:
    0 0 0 7px rgba(255,250,245,.3),
    0 18px 50px rgba(94,45,46,.19),
    0 0 44px rgba(255,233,199,.48);
}
.reserve--celestial:hover::before { inset: 7px; border-color: rgba(143,23,33,.24); }

.santeria-entry {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  isolation: isolate;
  overflow: hidden;
  color: var(--santeria-red-dark);
  background: #f1dcd8;
  opacity: 1;
  transition: opacity .9s var(--ease-ceremony), visibility .9s step-end;
}
.santeria-entry[hidden] { display: none; }
.santeria-entry.is-leaving { visibility: hidden; opacity: 0; pointer-events: none; }
.santeria-entry__sky { position: absolute; z-index: -3; inset: -5%; background: url("assets/paradiso-hero-v1.png") 50% 52% / auto 108% no-repeat; filter: saturate(.93) contrast(1.04); animation: cloud-drift-base 24s var(--ease-breath) infinite; }
.santeria-entry__sky::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 76% 62% at 50% 50%, rgba(255,252,246,.18), rgba(91,39,43,.11) 100%); }
.santeria-entry__light { position: absolute; z-index: -2; top: -15%; left: 50%; width: min(60rem, 90vw); height: 92%; background: radial-gradient(ellipse 18% 100% at 50% 0%, rgba(255,255,248,.78), rgba(255,236,193,.27) 46%, transparent 81%); filter: blur(18px); transform: translateX(-50%); }
.santeria-entry__content { display: grid; justify-items: center; width: min(28rem, calc(100vw - 3rem)); text-align: center; transform: translateY(-1vh); }
.santeria-entry__content img { width: clamp(12rem, 20vw, 16rem); margin-bottom: 2.2rem; }
.santeria-entry__content p { margin: 0 0 1.35rem; color: rgba(49,25,27,.7); font: italic 400 .9rem/1.5 var(--serif-text); }
.santeria-entry__content button { min-width: 10.5rem; min-height: 3.35rem; padding: .8rem 1.5rem; border: 1px solid rgba(143,23,33,.42); border-radius: 999px; background: rgba(255,250,245,.38); box-shadow: 0 0 0 5px rgba(255,250,245,.18), 0 12px 35px rgba(89,37,42,.12); color: var(--santeria-red-dark); font: 600 .63rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; cursor: pointer; transition: background-color .4s ease, box-shadow .4s ease, transform .4s var(--ease-ceremony); }
.santeria-entry__content button:hover { background: rgba(255,250,245,.68); box-shadow: 0 0 0 7px rgba(255,250,245,.22), 0 16px 42px rgba(89,37,42,.15); transform: translateY(-1px); }
.santeria-entry__content button:focus-visible { outline: 2px solid var(--santeria-red); outline-offset: 6px; }

.paradiso {
  --hero-progress: 0;
  position: relative;
  min-height: 100svh;
  display: grid;
  place-items: center;
  isolation: isolate;
  overflow: hidden;
  contain: paint;
}

.paradiso__sky {
  position: absolute;
  z-index: -4;
  inset: -3%;
  background: url("assets/paradiso-hero-v1.png") 50% 52% / auto 106% no-repeat;
  transform: translate3d(0, 0, 0);
  animation: cloud-drift-base 30s var(--ease-breath) infinite;
  will-change: transform;
  backface-visibility: hidden;
}

.paradiso__sky::after {
  display: none;
}

.paradiso__cotton-stage {
  position: absolute;
  z-index: 3;
  inset: 0;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateZ(0);
  will-change: opacity;
}

.paradiso__cotton-stage canvas {
  width: 100% !important;
  height: 100% !important;
}

@media (min-width: 768px) {
  .cotton-puff-preview .paradiso__content { opacity: 0; }
  .shadow-bloom-preview .paradiso__mark,
  .shadow-bloom-preview .paradiso__logo-halo,
  .shadow-bloom-preview .paradiso__place,
  .shadow-bloom-preview .paradiso h1 span,
  .shadow-bloom-preview .paradiso__intro,
  .shadow-bloom-preview .reserve--celestial { opacity: 0; }

}

.origin__unicorn {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100svh + 4rem);
  overflow: hidden;
  opacity: 0;
  mix-blend-mode: screen;
  filter: saturate(.68) contrast(.92);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 72%, rgba(0,0,0,.78) 82%, rgba(0,0,0,.18) 94%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 72%, rgba(0,0,0,.78) 82%, rgba(0,0,0,.18) 94%, transparent 100%);
  clip-path: inset(0 0 100% 0);
  pointer-events: none;
}

.origin__unicorn.is-active { opacity: 0; }
.origin__unicorn canvas { width: 100% !important; height: 100% !important; }

.paradiso__illumination {
  position: absolute;
  z-index: -2;
  inset: 0;
  overflow: hidden;
  background: radial-gradient(ellipse 13% 78% at 50% -7%, rgba(255,255,249,.38) 0%, rgba(255,248,220,.2) 42%, rgba(255,233,196,.06) 66%, transparent 80%);
  opacity: calc(1 - var(--hero-progress) * 1.35);
  pointer-events: none;
}

.paradiso__illumination::before {
  content: "";
  position: absolute;
  top: -16%;
  bottom: -8%;
  left: 50%;
  width: min(72vw, 66rem);
  background: linear-gradient(180deg, rgba(255,255,247,.76) 0%, rgba(255,247,218,.42) 32%, rgba(255,228,185,.13) 70%, rgba(255,218,177,0) 100%);
  -webkit-mask-image: radial-gradient(ellipse 34% 112% at 50% 0, #000 0 28%, rgba(0,0,0,.88) 44%, rgba(0,0,0,.34) 65%, transparent 84%);
  mask-image: radial-gradient(ellipse 34% 112% at 50% 0, #000 0 28%, rgba(0,0,0,.88) 44%, rgba(0,0,0,.34) 65%, transparent 84%);
  transform-origin: 50% 0;
  translate: -50% 0;
  animation: light-descends 3.8s var(--ease-ceremony) both;
}

.paradiso__illumination::after {
  content: "";
  position: absolute;
  top: -13%;
  bottom: 8%;
  left: 50%;
  width: min(27vw, 24rem);
  background: linear-gradient(180deg, rgba(255,255,252,.88) 0%, rgba(255,248,221,.48) 38%, rgba(255,229,190,.1) 76%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 43% 114% at 50% 0, #000 0 26%, rgba(0,0,0,.82) 47%, rgba(0,0,0,.24) 68%, transparent 88%);
  mask-image: radial-gradient(ellipse 43% 114% at 50% 0, #000 0 26%, rgba(0,0,0,.82) 47%, rgba(0,0,0,.24) 68%, transparent 88%);
  transform-origin: 50% 0;
  translate: -50% 0;
  animation: light-descends 4.15s .08s var(--ease-ceremony) both;
}

.paradiso__halo {
  position: absolute;
  top: -10%;
  bottom: -2%;
  left: 50%;
  width: min(52vw, 49rem);
  background: linear-gradient(180deg, rgba(255,254,239,.29), rgba(255,237,200,.11) 47%, rgba(255,222,184,0) 96%);
  -webkit-mask-image: radial-gradient(ellipse 38% 110% at 50% 0, #000 0 18%, rgba(0,0,0,.68) 48%, rgba(0,0,0,.18) 70%, transparent 90%);
  mask-image: radial-gradient(ellipse 38% 110% at 50% 0, #000 0 18%, rgba(0,0,0,.68) 48%, rgba(0,0,0,.18) 70%, transparent 90%);
  transform-origin: 50% 0;
  translate: -50% 0;
  animation: beam-arrival 3.65s .08s var(--ease-ceremony) both, beam-breathe 11s 3.7s var(--ease-breath) infinite;
}

.paradiso::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 45% 60% at 50% 43%, transparent 10%, rgba(69,28,32,.035) 43%, rgba(62,24,29,.24) 78%, rgba(48,17,22,.39) 100%);
  opacity: calc(.9 - var(--hero-progress) * .45);
}

.paradiso::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(55,20,26,.035), transparent 22%, transparent 78%, rgba(55,20,26,.035)), linear-gradient(180deg, rgba(255,255,248,.16), rgba(255,239,207,.06) 45%, transparent 78%, rgba(77,28,34,.1));
}

.paradiso__content {
  position: relative;
  z-index: 2;
  width: min(1080px, calc(100vw - 2.5rem));
  padding: 9rem 0 4rem;
  text-align: center;
  opacity: calc(1 - var(--hero-progress) * 1.4);
  transform: translateY(calc(var(--hero-progress) * -5vh));
  will-change: opacity, transform;
}

.paradiso__content > .paradiso__place { animation: cloud-ink-settle .58s .58s var(--ease-ceremony) both; }
.paradiso__content > .paradiso__intro { animation: cloud-ink-settle .68s 1.5s var(--ease-ceremony) both; }
.paradiso__content > .reserve { animation: celestial-invitation-arrival .78s 1.94s var(--ease-ceremony) both; }

.motion-ready:not(.hero-ready) .paradiso__illumination::before,
.motion-ready:not(.hero-ready) .paradiso__illumination::after,
.motion-ready:not(.hero-ready) .paradiso__halo,
.motion-ready:not(.hero-ready) .paradiso__logo-halo,
.motion-ready:not(.hero-ready) .logo-halo__orbit,
.motion-ready:not(.hero-ready) .paradiso__mark,
.motion-ready:not(.hero-ready) .paradiso h1 span,
.motion-ready:not(.hero-ready) .paradiso__place,
.motion-ready:not(.hero-ready) .paradiso__intro,
.motion-ready:not(.hero-ready) .reserve--celestial { animation-play-state: paused; }

.motion-ready.hero-ready .paradiso__illumination::before,
.motion-ready.hero-ready .paradiso__illumination::after,
.motion-ready.hero-ready .paradiso__halo,
.motion-ready.hero-ready .paradiso__logo-halo,
.motion-ready.hero-ready .logo-halo__orbit,
.motion-ready.hero-ready .paradiso__mark,
.motion-ready.hero-ready .paradiso h1 span,
.motion-ready.hero-ready .paradiso__place,
.motion-ready.hero-ready .paradiso__intro,
.motion-ready.hero-ready .reserve--celestial { animation-play-state: running; }

.motion-ready.gsap-ready .paradiso__illumination::before,
.motion-ready.gsap-ready .paradiso__illumination::after,
.motion-ready.gsap-ready .paradiso__halo,
.motion-ready.gsap-ready .paradiso__logo-halo,
.motion-ready.gsap-ready .logo-halo__orbit,
.motion-ready.gsap-ready .paradiso__mark,
.motion-ready.gsap-ready .paradiso h1 span,
.motion-ready.gsap-ready .paradiso__place,
.motion-ready.gsap-ready .paradiso__intro,
.motion-ready.gsap-ready .reserve--celestial,
.motion-ready.gsap-ready .threshold.is-opening .threshold__room,
.motion-ready.gsap-ready .threshold.is-opening .threshold__clouds,
.motion-ready.gsap-ready .threshold.is-opening .threshold__clouds::before,
.motion-ready.gsap-ready .threshold.is-opening .threshold__clouds::after,
.motion-ready.gsap-ready .threshold.is-opening .threshold__light,
.motion-ready.gsap-ready .threshold.is-opening .threshold__exposure,
.motion-ready.gsap-ready .threshold.is-opening .threshold__meaning,
.motion-ready.gsap-ready .invitation__light {
  animation: none !important;
}

.paradiso__mark-wrap { position: relative; width: max-content; margin: 0 auto 1.4rem; }
.paradiso__mark { position: relative; z-index: 1; width: clamp(11rem, 18vw, 15rem); margin: 0; transform-origin: 50% 50%; animation: cloud-signature-write .78s .2s cubic-bezier(.18,.82,.28,1.16) both; }
.paradiso__logo-halo { position: absolute; z-index: 0; top: -2.2rem; left: 50%; width: clamp(6.4rem, 8vw, 8rem); aspect-ratio: 1.7 / 1; border-radius: 50%; background: transparent; box-shadow: 0 0 16px rgba(182,31,44,.28), 0 0 38px rgba(182,31,44,.18), inset 0 0 12px rgba(182,31,44,.1); transform: translate(-50%,-50%) rotateZ(-3deg) scaleY(.64); transform-origin: 50% 50%; will-change: opacity; animation: logo-halo-arrival 1.7s .5s var(--ease-ceremony) both, logo-halo-breathe 11s 2.2s var(--ease-breath) infinite; }
.paradiso__logo-halo svg { display: block; width: 100%; height: 100%; overflow: visible; filter: blur(.25px) drop-shadow(0 0 4px rgba(182,31,44,.32)); }
.logo-halo__track,
.logo-halo__inner,
.logo-halo__orbit { fill: none; vector-effect: non-scaling-stroke; }
.logo-halo__track { stroke: rgba(182,31,44,.46); stroke-width: 1; }
.logo-halo__inner { stroke: rgba(182,31,44,.2); stroke-width: 1; }
.logo-halo__orbit { stroke: rgba(182,31,44,.76); stroke-width: 1.45; stroke-linecap: round; stroke-dasharray: 7 93; stroke-dashoffset: 0; will-change: stroke-dashoffset; animation: logo-halo-orbit 8.5s 2.2s linear infinite; }
.paradiso__place { margin: 0 0 1.5rem; color: var(--santeria-red-dark); font-size: .67rem; letter-spacing: .17em; text-transform: uppercase; }
.paradiso h1 { margin: 0 0 1.7rem; color: var(--santeria-red); font: 400 clamp(4.15rem, 7.8vw, 7.9rem)/.86 var(--serif); letter-spacing: -.052em; text-wrap: balance; }
.paradiso h1 span { display: inline-block; transform-origin: 50% 55%; animation: cloud-line-write .74s .72s cubic-bezier(.18,.82,.28,1.16) both; }
.paradiso h1 span:last-child { animation-delay: 1s; }
.paradiso__intro { margin: 0 auto 2.45rem; color: rgba(49,25,27,.75); font-size: .86rem; line-height: 1.75; letter-spacing: .012em; }

.threshold {
  position: relative;
  min-height: max(720px, 100svh);
  overflow: hidden;
  isolation: isolate;
  background: var(--cloud-white);
  contain: paint;
}

.threshold__room {
  position: absolute;
  z-index: 1;
  inset: 0;
  margin: 0;
  overflow: hidden;
  opacity: 0;
  transform: scale(1.095);
  filter: brightness(1.58) saturate(.5) contrast(.88) blur(12px);
  will-change: opacity, transform, filter;
}

.threshold__room picture,
.threshold__room img { display: block; width: 100%; height: 100%; }
.threshold__room img { object-fit: cover; object-position: 48% center; }
.threshold__room::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 34% 15%, rgba(255,229,177,.28), transparent 24%),
    linear-gradient(180deg, rgba(35,12,15,.08), transparent 31%, rgba(26,7,10,.3) 100%),
    linear-gradient(90deg, rgba(28,7,10,.25), transparent 24%, transparent 76%, rgba(28,7,10,.2));
  pointer-events: none;
}

.threshold__clouds {
  position: absolute;
  z-index: 3;
  inset: -4%;
  background: url("assets/paradiso-hero-v1.png") 50% 50% / auto 108% no-repeat;
  box-shadow: inset 0 0 190px rgba(91,45,51,.17);
  filter: brightness(.97) saturate(.96) contrast(1.06);
  opacity: 1;
  transform: translate3d(0,0,0) scaleY(-1) scale(1.04);
  will-change: opacity, filter, transform;
}

.threshold__clouds::before,
.threshold__clouds::after {
  content: "";
  position: absolute;
  inset: -5%;
  background: url("assets/paradiso-hero-v1.png") 46% 68% / auto 116% no-repeat;
  mix-blend-mode: screen;
  pointer-events: none;
}

.threshold__clouds::before {
  opacity: .28;
  filter: blur(5px) brightness(1.08);
  -webkit-mask-image: linear-gradient(to right, #000 0%, rgba(0,0,0,.88) 37%, transparent 69%);
  mask-image: linear-gradient(to right, #000 0%, rgba(0,0,0,.88) 37%, transparent 69%);
  animation: threshold-cloud-drift 19s var(--ease-breath) infinite;
}

.threshold__clouds::after {
  opacity: .22;
  filter: blur(8px) brightness(1.12);
  -webkit-mask-image: linear-gradient(to left, #000 0%, rgba(0,0,0,.8) 34%, transparent 68%);
  mask-image: linear-gradient(to left, #000 0%, rgba(0,0,0,.8) 34%, transparent 68%);
  animation: threshold-cloud-near 15s var(--ease-breath) infinite;
}

.threshold__light {
  position: absolute;
  z-index: 4;
  inset: -12%;
  background:
    radial-gradient(ellipse 16% 108% at 50% -5%, rgba(255,255,250,.94) 0%, rgba(255,248,218,.58) 35%, rgba(255,226,177,.16) 68%, transparent 88%),
    radial-gradient(ellipse 34% 46% at 50% 47%, rgba(255,252,226,.72), rgba(255,226,176,.12) 57%, transparent 78%);
  mix-blend-mode: screen;
  filter: blur(26px);
  opacity: .1;
  transform: scaleY(.5);
  transform-origin: 50% 0%;
  will-change: opacity, transform, filter;
  pointer-events: none;
}

.threshold__exposure {
  position: absolute;
  z-index: 5;
  inset: -8%;
  background:
    radial-gradient(ellipse 44% 78% at 50% 42%, rgba(255,255,252,.98) 0%, rgba(255,250,232,.9) 37%, rgba(255,235,205,.32) 68%, transparent 86%),
    linear-gradient(180deg, rgba(255,255,252,.42), rgba(255,246,227,.2));
  mix-blend-mode: screen;
  filter: blur(18px);
  opacity: 0;
  will-change: opacity, transform, filter;
  pointer-events: none;
}

.threshold__mist {
  position: absolute;
  z-index: 2;
  inset: 54% -7% -10%;
  background: url("assets/paradiso-hero-v1.png") 50% 86% / auto 175% no-repeat;
  mix-blend-mode: screen;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.5) 38%, #000 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.5) 38%, #000 100%);
  filter: blur(6px) brightness(1.08);
  opacity: 0;
  transform: translate3d(-2%,3%,0) scale(1.05);
  transition: opacity .65s .45s ease;
  animation: threshold-mist-drift 22s var(--ease-breath) infinite;
  pointer-events: none;
}

.threshold__red-veil {
  position: absolute;
  z-index: 7;
  top: -1px;
  right: 0;
  left: 0;
  height: clamp(9rem, 24vh, 15rem);
  background: linear-gradient(180deg, #8f1721 0%, rgba(143,23,33,.9) 18%, rgba(143,23,33,.42) 52%, transparent 100%);
  pointer-events: none;
}

.threshold__consecration {
  position: absolute;
  z-index: 5;
  right: 0;
  bottom: -1px;
  left: 0;
  height: clamp(23rem, 44vh, 36rem);
  overflow: hidden;
  background: linear-gradient(
    180deg,
    rgba(151,22,34,0) 0%,
    rgba(151,22,34,.025) 13%,
    rgba(151,22,34,.18) 39%,
    rgba(151,22,34,.65) 72%,
    #971622 100%
  );
  pointer-events: none;
}

.threshold__consecration::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(180deg, transparent 54%, rgba(151,22,34,.12) 68%, rgba(151,22,34,.72) 87%, #971622 100%);
  pointer-events: none;
}

.threshold__consecration-clouds {
  position: absolute;
  z-index: 1;
  inset: -16% -8% -4%;
  background: url("assets/paradiso-hero-v1.png") 50% 84% / auto 162% no-repeat;
  opacity: .24;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.42) 22%, #000 58%, rgba(0,0,0,.7) 78%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.42) 22%, #000 58%, rgba(0,0,0,.7) 78%, transparent 100%);
  transform: translate3d(-3%,6%,0) scale(1.04);
  will-change: transform, opacity;
}

.threshold__consecration-light {
  position: absolute;
  z-index: 1;
  top: -18%;
  bottom: -22%;
  left: 50%;
  width: min(72vw, 64rem);
  background: linear-gradient(180deg, rgba(255,249,225,.02), rgba(255,226,179,.3) 48%, rgba(255,198,139,.11) 78%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 37% 112% at 50% 0, #000 0 20%, rgba(0,0,0,.74) 48%, transparent 86%);
  mask-image: radial-gradient(ellipse 37% 112% at 50% 0, #000 0 20%, rgba(0,0,0,.74) 48%, transparent 86%);
  opacity: .18;
  transform: translateX(-50%) scaleY(.7);
  transform-origin: 50% 0;
  will-change: transform, opacity;
}

.threshold__meaning {
  position: absolute;
  z-index: 6;
  right: clamp(1.5rem, 7vw, 7rem);
  bottom: clamp(3rem, 7vw, 6.5rem);
  left: clamp(1.5rem, 7vw, 7rem);
  max-width: 47rem;
  color: var(--cloud-white);
  opacity: 0;
  transform: translate3d(0,-1.15rem,0);
  text-shadow: 0 3px 26px rgba(32,12,14,.72), 0 1px 8px rgba(32,12,14,.42);
  pointer-events: none;
}

.threshold__meaning p {
  margin: 0 0 1rem;
  font: italic 400 clamp(.94rem,1.2vw,1.1rem)/1.4 var(--serif-text);
}

.threshold__meaning h2 {
  max-width: 44rem;
  margin: 0;
  font: 400 clamp(4.1rem,7.2vw,7.25rem)/.88 var(--serif);
  letter-spacing: -.052em;
  text-wrap: balance;
}

.threshold.is-opening .threshold__room {
  animation: threshold-room-focus 1.9s var(--ease-ceremony) both;
}

.threshold.is-opening .threshold__clouds { animation: threshold-cloud-passage 1.9s var(--ease-ceremony) both; }
.threshold.is-opening .threshold__clouds::before { animation: threshold-cloud-left-passage 1.9s var(--ease-ceremony) both; }
.threshold.is-opening .threshold__clouds::after { animation: threshold-cloud-right-passage 1.9s var(--ease-ceremony) both; }
.threshold.is-opening .threshold__light { animation: threshold-light-passage 1.75s var(--ease-ceremony) both; }
.threshold.is-opening .threshold__exposure { animation: threshold-exposure-pull 1.75s .02s var(--ease-ceremony) both; }
.threshold.is-opening .threshold__mist { opacity: .23; }
.threshold.is-opening .threshold__meaning { animation: threshold-meaning-arrival .72s .82s var(--ease-ceremony) both; }

.kicker { margin: 0 0 2rem; color: var(--santeria-red); font: italic 1rem/1 var(--serif-text); }

@keyframes cloud-drift-base {
  0%, 100% { translate: -1.8% 1.1%; scale: 1.01; }
  48% { translate: 2.3% -1.5%; scale: 1.045; }
  76% { translate: .7% -2.1%; scale: 1.03; }
}
@keyframes cloud-drift-near {
  0%, 100% { transform: translate3d(-4.2%,2.4%,0) scale(1.015); }
  46% { transform: translate3d(4.8%,-2.8%,0) scale(1.07); }
  74% { transform: translate3d(2.1%,-3.4%,0) scale(1.055); }
}
@keyframes divine-descent {
  from { opacity: 0; transform: translate3d(0,-2.5rem,0); }
  58% { opacity: .94; }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes cloud-signature-write {
  0% { opacity: 0; transform: scale(.82); }
  72% { opacity: 1; transform: scale(1.025); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes cloud-line-write {
  0% { opacity: 0; transform: scale(.88); }
  72% { opacity: 1; transform: scale(1.022); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes cloud-ink-settle {
  0% { opacity: 0; transform: scale(.92); }
  72% { opacity: 1; transform: scale(1.014); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes celestial-invitation-arrival {
  0% { opacity: 0; transform: scale(.9); }
  72% { opacity: 1; transform: scale(1.018); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes light-descends { from { opacity: 0; transform: scaleY(.54); } to { opacity: 1; transform: scaleY(1); } }
@keyframes logo-halo-arrival { from { opacity: 0; scale: .92; } to { opacity: .47; scale: 1; } }
@keyframes logo-halo-breathe { 0%,100% { opacity: .47; scale: .995; } 50% { opacity: .59; scale: 1.005; } }
@keyframes logo-halo-orbit { to { stroke-dashoffset: -100; } }
@keyframes beam-arrival { from { opacity: 0; transform: scaleY(.62); } to { opacity: 1; transform: scaleY(1); } }
@keyframes beam-breathe { 0%,100% { opacity: .74; filter: blur(38px) brightness(.98); } 50% { opacity: .86; filter: blur(36px) brightness(1.045); } }
@keyframes threshold-room-focus {
  0%, 10% { opacity: 0; transform: scale(1.095); filter: brightness(1.58) saturate(.5) contrast(.88) blur(12px); }
  32% { opacity: .32; transform: scale(1.068); filter: brightness(1.38) saturate(.6) contrast(.93) blur(8px); }
  68% { opacity: .9; filter: brightness(1.06) saturate(.75) contrast(1) blur(2px); }
  100% { opacity: 1; transform: scale(1.025); filter: brightness(.94) saturate(.82) contrast(1.04) blur(0); }
}
@keyframes threshold-cloud-passage {
  0%, 14% { opacity: 1; filter: brightness(.97) saturate(.96) contrast(1.06) blur(0); transform: translate3d(0,0,0) scaleY(-1) scale(1.04); }
  36% { opacity: .84; filter: brightness(1.34) saturate(.78) contrast(.96) blur(2px); }
  64% { opacity: .3; filter: brightness(1.22) saturate(.78) contrast(.98) blur(5px); }
  100% { opacity: .16; filter: brightness(1.08) saturate(.84) contrast(1.02) blur(6px); transform: translate3d(0,-2.5%,0) scaleY(-1) scale(1.15); }
}
@keyframes threshold-light-passage {
  0% { opacity: .1; filter: blur(32px) brightness(1); transform: scaleY(.5); }
  24% { opacity: .76; filter: blur(25px) brightness(1.09); transform: scaleY(.92); }
  40% { opacity: 1; filter: blur(20px) brightness(1.18); transform: scaleY(1.08); }
  65% { opacity: .42; filter: blur(28px) brightness(1.08); }
  100% { opacity: .14; filter: blur(34px) brightness(1); transform: scaleY(1.03); }
}
@keyframes threshold-exposure-pull {
  0%, 14% { opacity: 0; transform: scale(.84,.72); filter: blur(24px); }
  28% { opacity: .36; }
  41% { opacity: .9; transform: scale(1,1); filter: blur(14px); }
  64% { opacity: .28; filter: blur(20px); }
  100% { opacity: 0; transform: scale(1.08,1.04); filter: blur(28px); }
}
@keyframes threshold-meaning-arrival {
  from { opacity: 0; transform: translate3d(0,-1.15rem,0); filter: blur(3px); }
  to { opacity: 1; transform: translate3d(0,0,0); filter: blur(0); }
}
@keyframes threshold-cloud-left-passage {
  0%, 14% { opacity: .28; transform: translate3d(-3%,1.5%,0) scale(1.02); }
  40% { opacity: .42; }
  100% { opacity: .2; transform: translate3d(-10%,-2%,0) scale(1.14); }
}
@keyframes threshold-cloud-right-passage {
  0%, 14% { opacity: .22; transform: translate3d(3%,2%,0) scale(1.05); }
  40% { opacity: .38; }
  100% { opacity: .18; transform: translate3d(11%,-3%,0) scale(1.16); }
}
@keyframes threshold-cloud-drift {
  0%,100% { transform: translate3d(-3%,1.5%,0) scale(1.02); }
  50% { transform: translate3d(3.5%,-2.5%,0) scale(1.07); }
}
@keyframes threshold-cloud-near {
  0%,100% { transform: translate3d(3%,2%,0) scale(1.05); }
  50% { transform: translate3d(-4%,-3%,0) scale(1.11); }
}
@keyframes threshold-mist-drift {
  0%,100% { transform: translate3d(-2%,3%,0) scale(1.05); }
  50% { transform: translate3d(3%,-1%,0) scale(1.11); }
}

@media (max-width: 760px) {
  .paradiso { min-height: 94svh; }
  .paradiso__sky { inset: -2%; background-position: 50% center; }
  .paradiso__content { padding-top: 7rem; }
  .paradiso__mark { width: 10.5rem; }
  .paradiso h1 { font-size: clamp(3.1rem, 13.9vw, 4.2rem); line-height: .88; }
  .paradiso h1 span { display: block; }
  .paradiso h1 br { display: none; }
  .paradiso__intro br { display: none; }
  .reserve--celestial { min-width: 14.4rem; min-height: 4.05rem; }
  .threshold { min-height: 100svh; }
  .threshold__room img { object-position: 31% center; }
  .threshold__clouds { background-position: 30% 70%; background-size: auto 125%; }
  .threshold__clouds::before { opacity: .42; background-position: 28% 72%; background-size: auto 136%; }
  .threshold__clouds::after { opacity: .34; background-position: 35% 78%; background-size: auto 148%; }
  .threshold__mist { inset-inline: -20%; background-size: auto 145%; }
  .threshold__consecration { height: clamp(20rem, 42vh, 28rem); }
  .threshold__consecration-clouds { inset-inline: -24%; background-position: 35% 84%; background-size: auto 156%; }
  .threshold__consecration-light { width: 120vw; }
  .threshold__meaning { right: 1.35rem; bottom: 3.3rem; left: 1.35rem; }
  .threshold__meaning p { margin-bottom: .75rem; font-size: .9rem; }
  .threshold__meaning h2 { max-width: 21rem; font-size: clamp(3.35rem,15vw,4.25rem); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.symbol {
  position: relative;
  display: grid;
  width: 4.8rem;
  aspect-ratio: 1;
  place-items: center;
  margin-bottom: 2.1rem;
  color: var(--santeria-red);
  border: 1px solid rgba(182,31,44,.38);
  border-radius: 50%;
}

.symbol::after { content: ""; position: absolute; inset: .45rem; border: 1px solid rgba(182,31,44,.18); border-radius: inherit; }
.origin {
  position: relative;
  margin-top: -1px;
  min-height: 112svh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  contain: paint;
  padding: clamp(7rem, 12vw, 12rem) clamp(1.25rem, 6vw, 7rem) clamp(7rem, 10vw, 11rem);
  color: var(--cloud-white);
  background: linear-gradient(180deg, #edcfcb 0, #e8c3c1 38rem, #d79899 52rem, #bd4a56 61rem, #a52631 69rem, #971622 80rem, #8f1721 100%);
}

.origin--bible {
  --bible-cloud-height: calc(100svh + clamp(8rem, 12vw, 12rem));
  background: linear-gradient(180deg, #e8c9c6 0%, #e3c0be 34%, #d79d9e 56%, #bc5660 73%, #a52631 86%, #8f1721 100%);
}

.origin--devotion {
  min-height: min(880px, 92svh);
  padding-top: clamp(4.5rem, 7vw, 7rem);
  padding-bottom: clamp(5rem, 8vw, 8rem);
  isolation: isolate;
  background: linear-gradient(180deg, #971622 0%, #8f1721 54%, #79131d 100%);
}

.origin--devotion::before {
  z-index: 1;
  top: -24%;
  height: 112%;
  background:
    radial-gradient(ellipse 26% 92% at 54% 0%, rgba(255,239,207,.15) 0%, rgba(255,214,166,.045) 48%, transparent 78%),
    radial-gradient(ellipse 66% 82% at 52% 42%, transparent 27%, rgba(75,8,17,.13) 100%);
}

.origin--devotion::after {
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(66,7,14,.14), transparent 25%, transparent 75%, rgba(66,7,14,.12));
  -webkit-mask-image: none;
  mask-image: none;
}

.devotion__clouds {
  position: absolute;
  z-index: 0;
  inset: -8% -5%;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(151,22,34,.4), rgba(121,19,29,.76)),
    url("assets/paradiso-hero-v1.png") 50% 62% / auto 142% no-repeat;
  background-blend-mode: multiply, normal;
  filter: saturate(.72) contrast(1.08);
  opacity: .3;
  transform: translate3d(0,0,0) scale(1.04);
  pointer-events: none;
}

.devotion__clouds > span {
  position: absolute;
  inset: -8% -12%;
  background: url("assets/paradiso-hero-v1.png") 54% 62% / auto 148% no-repeat;
  mix-blend-mode: soft-light;
  opacity: .17;
  filter: blur(6px) saturate(.68) contrast(1.08);
  transform: translate3d(-5%,3%,0) scale(1.08);
  animation: devotion-cloud-drift 18s var(--ease-breath) infinite;
}

.origin__cloud-stage {
  position: absolute;
  z-index: 0;
  top: -1px;
  right: 0;
  left: 0;
  height: var(--bible-cloud-height);
  overflow: hidden;
  background: linear-gradient(180deg, transparent 0 31%, rgba(204,137,140,.08) 48%, rgba(184,91,99,.3) 66%, rgba(165,38,49,.78) 86%, #a52631 100%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 69%, rgba(0,0,0,.82) 79%, rgba(0,0,0,.28) 91%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 69%, rgba(0,0,0,.82) 79%, rgba(0,0,0,.28) 91%, transparent 100%);
  transform: translate3d(0,0,0);
  transform-origin: 50% 50%;
  pointer-events: none;
}

.origin__cloud-stage::before,
.origin__cloud-stage::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.origin__cloud-stage::before {
  top: -3svh;
  right: -3%;
  left: -3%;
  height: 106svh;
  background: url("assets/paradiso-hero-v1.png") 50% 52% / auto 106% no-repeat;
  filter: saturate(.94) contrast(1.04);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.62) 13%, #000 29%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.62) 13%, #000 29%, #000 100%);
  transform: translate3d(0,0,0) scaleY(-1);
  transform-origin: 50% 50%;
  animation: cloud-drift-base 30s var(--ease-breath) infinite;
  will-change: translate, scale;
  backface-visibility: hidden;
}

.origin__cloud-stage::after {
  inset: 0;
  background:
    linear-gradient(90deg, rgba(55,20,26,.035), transparent 22%, transparent 78%, rgba(55,20,26,.035)),
    linear-gradient(180deg, transparent 0 29%, rgba(150,67,75,.035) 46%, rgba(122,38,49,.16) 72%, rgba(143,23,33,.72) 100%);
}

.origin__cloud-stage > span {
  position: absolute;
  top: -3svh;
  right: -10%;
  left: -10%;
  height: 106svh;
  background: url("assets/paradiso-hero-v1.png") 53% 55% / auto 109% no-repeat;
  mix-blend-mode: multiply;
  opacity: .09;
  filter: saturate(.88) contrast(1.06) blur(4px);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.58) 13%, #000 27%, #000 72%, transparent 98%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.58) 13%, #000 27%, #000 72%, transparent 98%);
  transform: translate3d(0,0,0) scaleY(-1) scale(1.035);
  transform-origin: 50% 50%;
  animation: cloud-drift-base 30s var(--ease-breath) infinite;
  will-change: translate, scale;
  backface-visibility: hidden;
}

.origin__cloud-bridge {
  display: none;
}

.origin__opening {
  position: relative;
  z-index: 1;
  order: 2;
  min-height: min(900px, 88svh);
  display: grid;
  grid-template-columns: minmax(500px, 1.08fr) minmax(360px, .92fr);
  align-items: center;
  gap: clamp(2.5rem, 5vw, 5.5rem);
  max-width: 1320px;
  margin: 0 auto;
  padding-top: clamp(5rem, 9vw, 9rem);
  padding-bottom: clamp(7rem, 11vw, 11rem);
}

.origin--devotion .origin__opening {
  min-height: min(720px, 76svh);
  padding-top: 0;
  padding-bottom: 0;
}

.origin__opening::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -16rem;
  right: calc(50% - 50vw);
  bottom: -1px;
  left: calc(50% - 50vw);
  background: linear-gradient(180deg, transparent 0%, rgba(165,38,49,.38) 23%, #a52631 48%, #971622 78%, #8f1721 100%);
  pointer-events: none;
}

.origin::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 38% 0 0;
  background: radial-gradient(ellipse 47% 72% at 50% 42%, transparent 14%, rgba(141,23,35,.035) 57%, rgba(119,20,32,.11) 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.12) 7%, rgba(0,0,0,.62) 18%, #000 31%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.12) 7%, rgba(0,0,0,.62) 18%, #000 31%, #000 100%);
  pointer-events: none;
}

.origin::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: -12%;
  right: 0;
  left: 0;
  height: 58%;
  background:
    radial-gradient(ellipse 28% 100% at 50% 0%, rgba(255,255,248,.18) 0%, rgba(255,232,187,.06) 43%, transparent 78%),
    radial-gradient(ellipse 54% 68% at 50% 35%, transparent 12%, rgba(69,28,32,.035) 55%, rgba(48,17,22,.18) 100%);
  pointer-events: none;
}

.origin__glow {
  position: absolute;
  z-index: 0;
  top: -17%;
  left: 50%;
  width: min(68vw, 62rem);
  height: 94%;
  background: radial-gradient(ellipse 30% 105% at 50% 0%, rgba(255,255,248,.4), rgba(255,220,164,.08) 55%, transparent 82%);
  -webkit-mask-image: radial-gradient(ellipse 34% 110% at 50% 0, #000 0 19%, rgba(0,0,0,.62) 49%, transparent 83%);
  mask-image: radial-gradient(ellipse 34% 110% at 50% 0, #000 0 19%, rgba(0,0,0,.62) 49%, transparent 83%);
  transform: translateX(-50%);
  transform-origin: 50% 0;
  pointer-events: none;
}

.origin__vesuvio {
  position: relative;
  z-index: 1;
  width: min(46vw, 43rem);
  margin: 0;
  justify-self: end;
}

.origin__vesuvio::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -95% -12% -74%;
  background: radial-gradient(ellipse at 56% 50%, rgba(255,222,181,.12), transparent 63%);
  pointer-events: none;
}

.origin__vesuvio-stage {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1372 / 210;
  isolation: isolate;
}

.origin__vesuvio-static,
.origin__vesuvio-animation {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.origin__vesuvio-static {
  z-index: 0;
  object-fit: contain;
  opacity: .9;
  filter: drop-shadow(0 7px 16px rgba(79,13,21,.13));
  transition: opacity .35s ease;
}

.origin__vesuvio-animation {
  z-index: 1;
  border: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s ease;
}

.motion-ready.gsap-ready .origin__vesuvio-static { opacity: 0; }
.origin__vesuvio.is-drawing .origin__vesuvio-animation { opacity: 1; }
.origin__vesuvio.has-animation-error .origin__vesuvio-static { opacity: .9; }

.origin__vesuvio figcaption {
  width: min(29rem, 88%);
  margin: 1.15rem 0 0 auto;
  color: rgba(255,238,223,.7);
  font: italic 400 clamp(.98rem, 1.2vw, 1.12rem)/1.55 var(--serif-text);
  text-align: right;
}

.origin__copy { position: relative; z-index: 2; max-width: 730px; }
.origin .kicker { margin-bottom: 1.8rem; color: #ffd7bb; }
.origin h2 { margin: 0 0 2.7rem; font: 400 clamp(4.3rem, 7.2vw, 7.9rem)/.88 var(--serif); letter-spacing: -.055em; }
.origin__copy > p:not(.kicker) { max-width: 690px; margin: 0; color: rgba(255,250,245,.76); font-size: .96rem; line-height: 1.9; }
.origin__copy > p + p { margin-top: 1.4rem; }
.origin__lead { color: var(--cloud-white) !important; font: 400 clamp(1.35rem, 2vw, 1.85rem)/1.5 var(--serif) !important; }

.santeria-bible {
  position: relative;
  z-index: 3;
  order: 1;
  max-width: 1440px;
  margin: 0 auto;
  color: var(--ink);
  scroll-margin-top: 0;
}

.bible__theatre {
  --bible-spread-width: min(64rem, 92vw);
  --bible-page-height: 45rem;
  position: relative;
  min-height: clamp(47rem, 61vw, 53rem);
  perspective: 2200px;
  perspective-origin: 50% 36%;
}

.bible__theatre::before {
  content: "";
  position: absolute;
  z-index: 0;
  bottom: 4.6%;
  left: 50%;
  width: min(62rem, 90vw);
  height: 5.8rem;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(112,48,57,.18) 0%, rgba(133,67,74,.09) 34%, rgba(250,220,208,.045) 52%, transparent 73%);
  filter: blur(7px);
  opacity: .2;
  transform: translateX(-50%) scaleX(.7) scaleY(.58);
  transform-origin: 50% 58%;
  transition: opacity .42s ease, transform .42s cubic-bezier(.2,.72,.25,1);
  pointer-events: none;
}

.santeria-bible.is-landed .bible__theatre::before {
  opacity: .42;
  transform: translateX(-50%) scaleX(1) scaleY(.82);
}

.bible__contact-shadow {
  position: absolute;
  z-index: 1;
  bottom: 7.15%;
  left: 50%;
  width: min(34rem, 46vw);
  height: 3.35rem;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(48,8,16,.54) 0 5%, rgba(66,17,25,.38) 18%, rgba(95,38,46,.18) 39%, rgba(144,81,87,.055) 61%, transparent 78%);
  filter: none;
  opacity: 0;
  transform: translate3d(-50%,.55rem,0) scaleX(.34) scaleY(.4);
  transform-origin: 50% 50%;
  transition: width .9s cubic-bezier(.645,.045,.355,1);
  will-change: transform, opacity;
  pointer-events: none;
}

.santeria-bible.is-landed .bible__contact-shadow {
  opacity: .74;
  filter: none;
  transform: translate3d(-50%,0,0) scaleX(.93) scaleY(.7);
}

.santeria-bible[data-open="true"] .bible__contact-shadow {
  width: min(61rem, 86vw);
  opacity: .68 !important;
  transform: translate3d(-50%,0,0) scaleX(1) scaleY(.72) !important;
  filter: none !important;
}

.bible__summons-light {
  position: absolute;
  z-index: 0;
  top: -17%;
  left: 50%;
  width: min(74vw, 68rem);
  height: 94%;
  background:
    radial-gradient(ellipse 18% 100% at 50% 0%, rgba(255,255,248,.68) 0%, rgba(255,242,202,.36) 34%, rgba(255,198,126,.1) 68%, transparent 88%),
    radial-gradient(ellipse 44% 58% at 50% 45%, rgba(255,236,199,.2), transparent 72%);
  -webkit-mask-image: radial-gradient(ellipse 38% 112% at 50% 0%, #000 0 22%, rgba(0,0,0,.72) 52%, transparent 86%);
  mask-image: radial-gradient(ellipse 38% 112% at 50% 0%, #000 0 22%, rgba(0,0,0,.72) 52%, transparent 86%);
  mix-blend-mode: screen;
  filter: blur(24px);
  opacity: 0;
  transform: translateX(-50%) scaleY(.42);
  transform-origin: 50% 0;
  pointer-events: none;
}

.bible__arrival-body {
  position: absolute;
  z-index: 2;
  inset: 0;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  transform: rotateX(1.15deg) translateZ(0);
  transform-origin: 50% 88%;
  will-change: transform, opacity;
}

.bible__book-mask {
  position: absolute;
  z-index: 2;
  top: 1.5rem;
  left: 50%;
  width: var(--bible-spread-width);
  height: var(--bible-page-height);
  transform: translateX(-50%) rotateX(2.4deg) rotateY(-1deg);
  transform-origin: 50% 84%;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
}

.bible__book {
  --book-depth: 20px;
  position: absolute;
  z-index: 2;
  inset: 0;
  transform: translateZ(10px) rotateX(4.8deg) rotateY(-1.2deg);
  transform-origin: 50% 88%;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  transition: transform .84s cubic-bezier(.22,.72,.24,1);
}

.bible__book::before {
  display: none;
}

.santeria-bible[data-open="true"] .bible__book::before {
  display: none;
}

.bible__closed-volume {
  position: absolute;
  z-index: 3;
  top: .5rem;
  right: .85rem;
  bottom: -.12rem;
  width: calc(50% - .85rem);
  border: 1px solid rgba(122,77,50,.2);
  border-radius: 2px 9px 10px 3px;
  background:
    repeating-linear-gradient(180deg, rgba(126,82,57,.11) 0 1px, transparent 1px 3px),
    linear-gradient(90deg, #e4c9a9 0%, #fff6e7 12%, #f6e6ce 82%, #d8b991 100%);
  box-shadow:
    4px 8px 8px rgba(67,25,30,.28),
    14px 21px 22px rgba(93,42,48,.24),
    28px 38px 50px rgba(131,72,78,.13),
    inset 0 2px rgba(255,251,242,.72),
    inset -10px 0 14px rgba(90,49,30,.17);
  transform: translateX(-50%) translateZ(-11px) rotateX(-.45deg);
  transform-origin: 50% 100%;
  transition: opacity .28s ease .18s;
  pointer-events: none;
}

.bible__closed-volume::before {
  content: "";
  position: absolute;
  right: .32rem;
  bottom: -.28rem;
  left: .28rem;
  height: .55rem;
  border-radius: 0 0 8px 3px;
  background: repeating-linear-gradient(180deg, #f9ead4 0 1px, #d6b890 1px 2px, #f5e2c6 2px 4px);
  box-shadow: 0 3px 3px rgba(83,42,44,.2), 0 8px 11px rgba(123,69,73,.15);
  transform: skewX(-2deg);
}

.bible__closed-volume::after {
  content: "";
  position: absolute;
  top: .42rem;
  right: 0;
  bottom: .28rem;
  width: .42rem;
  border-radius: 0 8px 8px 0;
  background: repeating-linear-gradient(90deg, #ead1ae 0 1px, #fff2de 1px 3px, #d2ad81 3px 4px);
  box-shadow: 5px 4px 9px rgba(117,59,66,.14);
  transform: skewY(1deg);
}

.santeria-bible[data-open="true"] .bible__closed-volume {
  opacity: 0;
  transition-duration: .28s;
  transition-delay: .56s;
}

.bible__aura {
  position: absolute;
  top: 4%;
  left: 50%;
  width: min(76vw, 68rem);
  height: 78%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(255,226,179,.22) 0, rgba(255,200,139,.08) 38%, transparent 72%);
  transform: translateX(-50%);
  pointer-events: none;
}

.bible__cover {
  --cover-depth: 20px;
  position: absolute;
  z-index: 5;
  top: 0;
  right: 0;
  width: calc(var(--bible-spread-width) / 2);
  height: var(--bible-page-height);
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 3px 9px 9px 3px;
  color: #f7dfb6;
  background: transparent;
  font-family: var(--sans);
  cursor: pointer;
  transform: translateX(-50%) translateZ(.01px) rotateY(-.01deg);
  -webkit-transform: translateX(-50%) translateZ(.01px) rotateY(-.01deg);
  transform-origin: 0% 50%;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  transition: transform .9s cubic-bezier(.645,.045,.355,1);
  -webkit-tap-highlight-color: transparent;
}

.bible__cover-portal {
  position: fixed;
  z-index: 2147483000;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  perspective: 2200px;
  -webkit-perspective: 2200px;
  isolation: isolate;
  will-change: transform, opacity;
}

.bible__cover-portal-card {
  --cover-depth: 20px;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  border-radius: 3px 9px 9px 3px;
  color: #f7dfb6;
  font-family: var(--sans);
  pointer-events: none;
  transform: translate3d(0, 0, 0) rotateY(-.01deg);
  -webkit-transform: translate3d(0, 0, 0) rotateY(-.01deg);
  transform-origin: 0% 50%;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  will-change: transform, opacity;
}

.bible__cover-portal-card::before,
.bible__cover-portal-card::after {
  content: "";
  position: absolute;
  z-index: 1;
  display: block;
  pointer-events: none;
}

.bible__cover-portal-card::before {
  top: .3rem;
  right: calc(var(--cover-depth) / -2);
  bottom: .3rem;
  width: calc(var(--cover-depth) / 2);
  border-radius: 1px 5px 5px 1px;
  background: linear-gradient(90deg, #4e070e 0%, #77111a 27%, #b51e2b 66%, #5a0810 100%);
  box-shadow: inset 2px 0 rgba(255,220,174,.1), inset -3px 0 rgba(38,0,5,.28), 3px 5px 8px rgba(45,0,6,.2);
  transform: rotateY(90deg);
}

.bible__cover-portal-card::after {
  right: .35rem;
  bottom: calc(var(--cover-depth) / -2);
  left: .35rem;
  height: calc(var(--cover-depth) / 2);
  border-radius: 1px 1px 5px 5px;
  background: linear-gradient(180deg, #9c1722 0%, #650b13 48%, #3f050b 100%);
  box-shadow: inset 0 2px rgba(255,221,175,.09), 4px 5px 7px rgba(43,0,5,.2);
  transform: rotateX(90deg);
}

.bible__cover-portal-card .bible__cover-face {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transition: none;
}

.bible__cover-portal-card .bible__cover-front {
  transform: rotateY(0deg) translateZ(calc(var(--cover-depth) / 2));
  -webkit-transform: rotateY(0deg) translateZ(calc(var(--cover-depth) / 2));
}

.bible__cover-portal-card .bible__cover-back {
  transform: rotateY(180deg) translateZ(calc(var(--cover-depth) / 2));
  -webkit-transform: rotateY(180deg) translateZ(calc(var(--cover-depth) / 2));
}

.bible__cover-portal-card .bible__cover-shine { display: none !important; }

.bible__cover::before,
.bible__cover::after {
  content: "";
  position: absolute;
  z-index: 1;
  display: block;
  pointer-events: none;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.bible__cover::before {
  top: .3rem;
  right: calc(var(--cover-depth) / -2);
  bottom: .3rem;
  width: var(--cover-depth);
  border-radius: 1px 5px 5px 1px;
  background: linear-gradient(90deg, #4e070e 0%, #77111a 27%, #b51e2b 66%, #5a0810 100%);
  box-shadow: inset 2px 0 rgba(255,220,174,.1), inset -3px 0 rgba(38,0,5,.28), 3px 5px 8px rgba(45,0,6,.2);
  transform: rotateY(90deg);
}

.bible__cover::after {
  right: .35rem;
  bottom: calc(var(--cover-depth) / -2);
  left: .35rem;
  height: var(--cover-depth);
  border-radius: 1px 1px 5px 5px;
  background: linear-gradient(180deg, #9c1722 0%, #650b13 48%, #3f050b 100%);
  box-shadow: inset 0 2px rgba(255,221,175,.09), 4px 5px 7px rgba(43,0,5,.2);
  transform: rotateX(90deg);
}

.santeria-bible.is-cover-prewarm .bible__cover {
  transform: translateZ(.01px) rotateY(-2deg);
  -webkit-transform: translateZ(.01px) rotateY(-2deg);
  transition: none;
}

.santeria-bible.is-cover-opening:not(.is-cover-gsap) .bible__cover {
  pointer-events: none;
  transform: translateX(0) translateZ(.01px) rotateY(-179.98deg);
  -webkit-transform: translateX(0) translateZ(.01px) rotateY(-179.98deg);
}

.santeria-bible.is-cover-gsap .bible__cover { transition: none; }
.santeria-bible.is-cover-gsap.is-cover-opening .bible__cover { pointer-events: none; }

.santeria-bible.is-open .bible__cover { z-index: 1; }

.bible__cover-face {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  overflow: clip;
  border-radius: inherit;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  will-change: transform;
  z-index: 2;
}

.bible__cover-front {
  z-index: 3;
  opacity: 1;
  background:
    radial-gradient(circle at 70% 16%, rgba(255,255,255,.1), transparent 22%),
    radial-gradient(circle at 18% 78%, rgba(48,0,4,.25), transparent 34%),
    linear-gradient(108deg, #681018 0, #981723 13%, #b51e2b 48%, #8c131e 100%);
  box-shadow:
    -5px 7px 8px rgba(47,0,6,.25),
    -18px 27px 35px rgba(47,0,6,.37),
    19px 36px 58px rgba(47,0,6,.5),
    0 6px 0 rgba(73,7,14,.22),
    inset 0 3px 3px rgba(255,227,189,.1),
    inset 0 -10px 15px rgba(43,0,5,.2),
    inset 0 0 0 1px rgba(255,228,186,.12),
    inset -14px 0 30px rgba(55,1,8,.18);
  transform: rotateY(0deg) translateZ(calc(var(--cover-depth) / 2));
  transition: box-shadow .62s cubic-bezier(.22,.72,.24,1), filter .62s ease;
}

.bible__cover-front::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 1.2%;
  right: 0;
  bottom: 1.2%;
  width: 9px;
  border-radius: 0 8px 8px 0;
  background: linear-gradient(90deg, rgba(63,2,8,.2), rgba(255,220,175,.16) 34%, rgba(51,0,6,.5));
  box-shadow: inset 1px 0 rgba(255,231,193,.13), -4px 0 9px rgba(48,0,5,.13);
  transition: width .62s cubic-bezier(.22,.72,.24,1), box-shadow .62s ease;
  pointer-events: none;
}

.bible__cover-back {
  z-index: 2;
  opacity: .001;
  color: var(--ink);
  background: #fff8ea;
  box-shadow: inset 9px 0 18px rgba(72,35,23,.14), inset 0 -6px 0 rgba(145,104,76,.08);
  transform: rotateY(180deg) translateZ(calc(var(--cover-depth) / 2));
}

.bible__cover-back > .bible__page {
  width: 100%;
  height: 100%;
  min-height: 100%;
  border-radius: inherit;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.santeria-bible.is-cover-gsap .bible__cover-back > .bible__page {
  visibility: visible;
  opacity: 1;
}

.bible__cover-front::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(112deg, rgba(255,228,197,.17), transparent 23%, transparent 67%, rgba(35,0,5,.2)),
    repeating-linear-gradient(12deg, transparent 0 3px, rgba(255,255,255,.022) 3px 4px),
    repeating-linear-gradient(93deg, transparent 0 7px, rgba(31,0,4,.035) 7px 8px),
    url("assets/materials/leather-red-02-768.jpg") center / cover no-repeat;
  background-blend-mode: screen, soft-light, multiply, soft-light;
  filter: contrast(1.13) saturate(.82);
  opacity: .54;
  mix-blend-mode: soft-light;
  pointer-events: none;
}

.bible__cover-shine {
  position: absolute;
  z-index: 8;
  top: -12%;
  bottom: -12%;
  left: -52%;
  width: 42%;
  visibility: hidden;
  opacity: 0;
  background: linear-gradient(
    102deg,
    transparent 0%,
    rgba(255, 237, 190, .035) 24%,
    rgba(255, 247, 220, .2) 43%,
    rgba(255, 224, 158, .42) 51%,
    rgba(255, 245, 213, .13) 63%,
    transparent 100%
  );
  filter: blur(1.4px);
  mix-blend-mode: screen;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  transform: translate3d(0, 0, 2px) skewX(-14deg);
  transform-origin: 50% 50%;
  will-change: transform, opacity;
  pointer-events: none;
}

.santeria-bible[data-open="true"] .bible__cover-shine {
  visibility: hidden !important;
  opacity: 0 !important;
}

.bible__cover:hover .bible__cover-front,
.santeria-bible.is-cover-hovered:not([data-open="true"]) .bible__cover-front { box-shadow: -18px 27px 35px rgba(47,0,6,.34), 22px 40px 65px rgba(47,0,6,.52), 0 6px 0 rgba(73,7,14,.22), 0 0 70px rgba(255,218,164,.1), inset 0 3px 3px rgba(255,227,189,.1), inset 0 -10px 15px rgba(43,0,5,.2), inset 0 0 0 1px rgba(255,228,186,.17); }
.bible__cover:focus-visible { outline: 2px solid #ffe5b8; outline-offset: 10px; }

.bible__spine { position: absolute; z-index: 2; inset: 0 auto 0 0; width: 10%; border-right: 1px solid rgba(255,227,179,.2); background: linear-gradient(90deg, rgba(49,0,5,.32), rgba(255,255,255,.04) 48%, rgba(42,0,4,.18)); box-shadow: 6px 0 13px rgba(35,0,4,.18); transition: width .62s cubic-bezier(.22,.72,.24,1), box-shadow .62s ease; }
.bible__spine i { position: absolute; left: 0; width: 100%; height: 3.2%; background: linear-gradient(180deg, rgba(255,229,186,.11), rgba(40,0,4,.24)); box-shadow: 0 1px 0 rgba(255,230,191,.12); }
.bible__spine i:nth-child(1) { top: 7%; }
.bible__spine i:nth-child(2) { top: 26%; }
.bible__spine i:nth-child(3) { top: 48%; }
.bible__spine i:nth-child(4) { top: 70%; }
.bible__spine i:nth-child(5) { top: 89%; }

.bible__cover-rule { position: absolute; pointer-events: none; border: 1px solid rgba(244,208,143,.58); }
.bible__cover-rule--outer { inset: 4.5% 5.5% 4.5% 12%; }
.bible__cover-rule--inner { inset: 6.2% 7.2% 6.2% 13.7%; border-color: rgba(244,208,143,.22); }
.bible__cover-rule--inner::before,
.bible__cover-rule--inner::after { content: "✦"; position: absolute; left: 50%; color: rgba(255,224,170,.72); font-size: .75rem; transform: translateX(-50%); }
.bible__cover-rule--inner::before { top: -.55rem; }
.bible__cover-rule--inner::after { bottom: -.55rem; }

.bible__volume { position: absolute; top: 10%; right: 8%; left: 14%; font-size: .52rem; font-weight: 600; letter-spacing: .23em; text-align: center; text-transform: uppercase; opacity: .72; }
.bible__cover-brand { position: absolute; top: 20%; left: 54%; width: min(13rem, 52%); height: 4.2rem; background: linear-gradient(180deg, #ffe8b4, #d9a94f 58%, #f5d78f); transform: translateX(-50%) translateZ(1px); -webkit-transform: translateX(-50%) translateZ(1px); backface-visibility: hidden; -webkit-backface-visibility: hidden; -webkit-mask: url("../la-santeria-relume-owned/assets/logo.png") center / contain no-repeat; mask: url("../la-santeria-relume-owned/assets/logo.png") center / contain no-repeat; }
.bible__title { position: absolute; top: 48%; right: 8%; left: 14%; font: 400 clamp(3.6rem, 5vw, 5rem)/.83 var(--serif); letter-spacing: -.055em; text-align: center; text-shadow: 0 1px 0 rgba(38,0,5,.42); transform: translateY(-50%); }
.bible__subtitle { position: absolute; top: 69%; right: 11%; left: 17%; font: italic 400 .92rem/1.3 var(--serif-text); text-align: center; opacity: .82; }
.bible__prompt { position: absolute; right: 8%; bottom: 9%; left: 14%; display: flex; align-items: center; justify-content: center; font-size: .55rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }

.santeria-bible.is-cover-hovered:not([data-open="true"]) .bible__cover {
  transform: translateX(-50%) translateZ(3px) rotateY(-7deg);
}

.santeria-bible.is-cover-hovered:not([data-open="true"]) .bible__book {
  transform: translate3d(0,-6px,20px) rotateX(4.15deg) rotateY(-1.6deg) scale(1.008);
}

.santeria-bible.is-cover-hovered:not([data-open="true"]) .bible__contact-shadow {
  opacity: .8;
  transform: translate3d(-50%,.12rem,0) scaleX(.98) scaleY(.74);
}

.santeria-bible.is-cover-hovered:not([data-open="true"]) .bible__spine {
  width: 11.5%;
  box-shadow: 9px 0 18px rgba(35,0,4,.25);
}

.santeria-bible.is-cover-hovered:not([data-open="true"]) .bible__cover-front::before {
  width: 12px;
  box-shadow: inset 1px 0 rgba(255,231,193,.16), -7px 0 14px rgba(48,0,5,.2);
}

.bible__spread {
  position: absolute;
  z-index: 3;
  inset: 0;
  width: var(--bible-spread-width);
  height: var(--bible-page-height);
  min-height: var(--bible-page-height);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  visibility: hidden;
  opacity: 1;
  transform: translateZ(7px);
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  pointer-events: none;
}

.bible__spread::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: .18rem;
  bottom: -.64rem;
  left: .18rem;
  height: .76rem;
  border: 1px solid rgba(122,77,50,.15);
  border-radius: 2px 2px 8px 8px;
  background: repeating-linear-gradient(180deg, #f9ead4 0 1px, #d9bc96 1px 2px, #f5e4cb 2px 4px);
  box-shadow: none;
  transform: none;
  pointer-events: none;
}

.bible__spread::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: .72rem;
  right: -.08rem;
  bottom: .18rem;
  width: .48rem;
  border: 1px solid rgba(122,77,50,.14);
  border-radius: 0 8px 8px 0;
  background: repeating-linear-gradient(90deg, #e4c49d 0 1px, #fff1dc 1px 3px, #cfaa80 3px 4px);
  box-shadow: 5px 4px 9px rgba(61,19,25,.16);
  transform: none;
  pointer-events: none;
}

@media (min-width: 761px) {
  .bible__spread {
    visibility: visible;
    opacity: 1;
    clip-path: inset(0 50% 0 50%);
    -webkit-clip-path: inset(0 50% 0 50%);
  }

  .santeria-bible.is-cover-opening:not(.is-cover-gsap) .bible__spread {
    opacity: 1;
    clip-path: inset(0);
    -webkit-clip-path: inset(0);
    transition: opacity .58s ease .1s, clip-path .9s var(--ease-ceremony);
  }

  .santeria-bible.is-open .bible__spread {
    clip-path: inset(0);
    -webkit-clip-path: inset(0);
  }

  .santeria-bible.is-cover-opening:not(.is-open) .bible__left-static {
    opacity: 0;
  }

  .santeria-bible.is-cover-opening:not(.is-open) .bible__spread::before {
    left: calc(50% + .18rem);
  }

  .bible__spread > .bible__page--frontispiece {
    transform: rotateY(2.8deg) translateZ(1px);
    transform-origin: 100% 50%;
  }

  .bible__spread > .bible__page--menu {
    transform: rotateY(-2.8deg) translateZ(1px);
    transform-origin: 0% 50%;
  }

  .bible__spread::before { clip-path: none; }
}

.santeria-bible[data-open="true"] .bible__spread { visibility: visible; pointer-events: auto; }
.santeria-bible[data-open="true"].is-open .bible__spread { opacity: 1; }
.bible__left-static {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: 0;
  width: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: clamp(2.4rem, 3.2vw, 3.5rem) clamp(2rem, 3.4vw, 3.8rem) 4.9rem;
  border-radius: 7px 1px 1px 7px;
  color: var(--santeria-red);
  background-color: #fff8ea;
  background-image:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.98), rgba(255,235,221,.62) 35%, rgba(234,134,139,.16) 58%, transparent 76%),
    url("assets/paradiso-hero-v1.png");
  background-position: center, 36% 70%;
  background-size: auto, cover;
  background-blend-mode: normal, soft-light;
  box-shadow:
    inset 20px 0 28px rgba(61,29,19,.16),
    inset 7px 0 10px rgba(95,58,39,.08),
    inset 0 -7px 12px rgba(119,76,49,.1),
    -7px 12px 22px rgba(55,18,22,.13);
  opacity: 1;
  pointer-events: none;
}
.bible__left-static.is-active { z-index: 1; }
.bible__left-static > .bible__page {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  border-radius: inherit;
  box-shadow: none;
}
.bible__page { position: relative; min-width: 0; min-height: 100%; overflow: hidden; background-color: #fff8ea; background-image: linear-gradient(90deg, rgba(99,54,33,.08), transparent 9%), radial-gradient(circle at 28% 20%, rgba(255,255,255,.82), transparent 36%), url("assets/paradiso-hero-v1.png"); background-size: auto, auto, cover; background-position: center; box-shadow: inset 0 -1px rgba(255,255,255,.88), inset 0 -3px rgba(174,135,102,.13), inset 0 -8px rgba(122,79,53,.13), inset -3px 0 rgba(111,68,45,.1); }
.bible__page::after { content: ""; position: absolute; inset: 1.1rem; border: 1px solid rgba(151,98,59,.2); pointer-events: none; }
.bible__page--frontispiece { display: grid; place-items: center; border-radius: 7px 1px 1px 7px; background-blend-mode: normal, normal, soft-light; background-position: center, center, 32% 70%; }
.bible__spread > .bible__page--frontispiece { visibility: hidden; opacity: 0; }
.bible__page--frontispiece::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 68%, rgba(70,34,23,.08) 86%, rgba(54,25,17,.22) 100%); pointer-events: none; }
.bible__page--menu { z-index: 2; grid-column: 2; grid-row: 1; display: flex; flex-direction: column; overflow: visible; padding: 0; border-radius: 1px 7px 7px 1px; background-image: linear-gradient(90deg, rgba(99,54,33,.08), transparent 9%), radial-gradient(ellipse 34% 27% at 50% 0, rgba(255,255,255,1), rgba(255,236,212,.5) 42%, transparent 78%), url("assets/paradiso-hero-v1.png"); background-blend-mode: normal, normal, soft-light; background-position: center, center, 68% 70%; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; }
.bible__page--menu::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(52,24,16,.22), rgba(92,54,37,.1) 5%, transparent 17%); pointer-events: none; }
.bible__opening-shadow {
  position: absolute;
  z-index: 60;
  inset: 0;
  visibility: hidden;
  opacity: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(45,9,15,.38) 0%, rgba(75,30,32,.18) 5%, rgba(115,69,60,.08) 11%, rgba(151,111,92,.02) 19%, transparent 31%);
  box-shadow: inset 11px 0 19px rgba(37,0,5,.18);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translateZ(12px);
  -webkit-transform: translateZ(12px);
  will-change: opacity, transform;
  pointer-events: none;
}
.bible__frontispiece-light { position: absolute; z-index: 1; top: 14%; left: 50%; width: 72%; height: 46%; border-radius: 48%; background: radial-gradient(ellipse at 50% 48%, rgba(255,255,255,.98) 0 18%, rgba(255,238,226,.86) 38%, rgba(225,70,77,.2) 59%, transparent 78%); transform: translateX(-50%); }
.bible__frontispiece-mark { position: relative; z-index: 3; width: 58%; margin-top: -8rem; isolation: isolate; }
.bible__frontispiece-mark img { backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.bible__logo-halo { position: absolute; z-index: -1; top: -3.25rem; left: 50%; width: clamp(6.8rem, 8.5vw, 8.8rem); aspect-ratio: 1.7 / 1; opacity: .58; transform: translateX(-50%) rotate(-4deg) scaleY(.62); transform-origin: 50% 50%; animation: bible-halo-breathe 8s var(--ease-breath) infinite; }
.bible__logo-halo svg { display: block; width: 100%; height: 100%; overflow: visible; }
.bible__halo-track,
.bible__halo-orbit { fill: none; vector-effect: non-scaling-stroke; }
.bible__halo-track { stroke: rgba(182,31,44,.42); stroke-width: 1.05; }
.bible__halo-orbit { stroke: rgba(182,31,44,.8); stroke-width: 1.45; stroke-linecap: round; stroke-dasharray: 7 93; animation: bible-halo-orbit 8.5s linear infinite; }
.santeria-bible.is-cover-opening:not(.is-open) .bible__logo-halo,
.santeria-bible.is-cover-opening:not(.is-open) .bible__halo-orbit {
  animation-play-state: paused;
}
.bible__genesis { position: absolute; z-index: 3; right: 12%; bottom: 12%; left: 12%; text-align: center; }
.bible__genesis h3 { margin: 0; color: var(--santeria-red); font: 400 clamp(2.8rem, 4vw, 4rem)/.86 var(--serif); letter-spacing: -.05em; }
.bible__genesis p { max-width: 25rem; margin: 1.15rem auto 0; color: rgba(49,25,27,.57); font: italic 400 .82rem/1.5 var(--serif-text); }
.bible__folio { position: absolute; z-index: 5; bottom: 2rem; left: 2.4rem; color: rgba(119,62,45,.58); font: 400 .72rem/1 var(--serif-text); }

.bible__leaves { position: absolute; z-index: 4; inset: 0; perspective: 3200px; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; pointer-events: none; }
.bible__sheet { position: absolute; inset: 0; margin: 0; transform: rotateY(0deg); transform-origin: 0% 50%; transform-style: preserve-3d; will-change: transform; pointer-events: none; }
.bible__sheet[hidden] { display: none; }
.bible__sheet:nth-child(1) { z-index: 4; }
.bible__sheet:nth-child(2) { z-index: 3; }
.bible__sheet:nth-child(3) { z-index: 2; }
.bible__sheet:nth-child(4) { z-index: 1; }
.bible__sheet-face { position: absolute; inset: 0; padding: clamp(2.4rem, 3.2vw, 3.5rem) clamp(2rem, 3.4vw, 3.8rem) 4.9rem; overflow: hidden; overflow: clip; background: #fff8ea; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.bible__sheet-front { opacity: 1; box-shadow: inset 20px 0 28px rgba(61,29,19,.16), inset 7px 0 10px rgba(95,58,39,.08), inset 0 -7px 12px rgba(119,76,49,.1), -7px 12px 22px rgba(55,18,22,.13); transform: rotateY(0deg) translateZ(2px); -webkit-transform: rotateY(0deg) translateZ(2px); }
.bible__sheet-back { display: grid; place-items: center; opacity: 1; background-image: radial-gradient(circle at 50% 42%, rgba(255,255,255,.98), rgba(255,235,221,.62) 35%, rgba(234,134,139,.16) 58%, transparent 76%), url("assets/paradiso-hero-v1.png"); background-position: center, 36% 70%; background-size: auto, cover; background-blend-mode: normal, soft-light; box-shadow: inset -20px 0 28px rgba(61,29,19,.16), inset -7px 0 10px rgba(95,58,39,.08), inset 0 -7px 12px rgba(119,76,49,.1), 7px 12px 22px rgba(55,18,22,.13); transform: rotateY(180deg) translateZ(2px); -webkit-transform: rotateY(180deg) translateZ(2px); }
.bible__page-raster { display: none; }
.bible__right-static { display: none; }

@media (min-width: 761px) {
  .uses-raster-pages .bible__sheet[data-bible-sheet] { display: none !important; }

  .uses-raster-pages .bible__right-static {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: block;
    overflow: hidden;
    border-radius: 1px 7px 7px 1px;
    background: #fff8ea;
    box-shadow:
      inset 20px 0 28px rgba(61,29,19,.16),
      inset 7px 0 10px rgba(95,58,39,.08),
      inset 0 -7px 12px rgba(119,76,49,.1),
      -7px 12px 22px rgba(55,18,22,.13);
    pointer-events: none;
  }

  .uses-raster-pages .bible__sheet--turner {
    position: absolute;
    z-index: 60;
    top: 0;
    right: auto;
    bottom: 0;
    left: 50%;
    width: 50%;
    height: 100%;
    display: block;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform-origin: 0% 50%;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
  }

  .uses-raster-pages .bible__page-raster {
    position: absolute;
    z-index: 20;
    inset: 0;
    width: 400%;
    max-width: none;
    height: 100%;
    display: block;
    object-fit: fill;
    will-change: transform;
    user-select: none;
    pointer-events: none;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }

  .uses-raster-pages .bible__sheet-face > :not(.bible__page-raster),
  .uses-raster-pages .bible__cover-back > .bible__page--frontispiece {
    visibility: hidden !important;
  }
}
.bible__leaf { position: relative; height: 100%; display: flex; flex-direction: column; padding: .7rem .25rem 0; }
.bible__afterword { color: var(--santeria-red); text-align: center; }
.bible__afterword > span { display: block; color: rgba(143,23,33,.5); font: 400 .72rem/1 var(--serif-text); }
.bible__afterword > i { position: relative; width: 7.5rem; aspect-ratio: 1; display: block; margin: 1.4rem auto 1.7rem; border: 1px solid rgba(182,31,44,.2); border-radius: 50%; }
.bible__afterword > i::before,
.bible__afterword > i::after { content: ""; position: absolute; top: 50%; left: 50%; background: rgba(182,31,44,.28); transform: translate(-50%,-50%); }
.bible__afterword > i::before { width: 4.2rem; height: 1px; }
.bible__afterword > i::after { width: 1px; height: 4.2rem; }
.bible__afterword > p { margin: 0; font: italic 400 clamp(2.6rem, 4vw, 4.1rem)/.92 var(--serif); letter-spacing: -.04em; }
.bible__afterword > small { display: block; margin-top: 1.4rem; color: rgba(49,25,27,.5); font: 600 .52rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; }
.bible__leaf-header { padding: 0 0 1.25rem; border-bottom: 1px solid rgba(182,31,44,.17); text-align: center; }
.bible__leaf-header > p { margin: 0 0 .65rem; color: rgba(143,23,33,.68); font-size: .52rem; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; }
.bible__leaf-header h3 { margin: 0; color: var(--santeria-red); font: 400 clamp(3rem, 4vw, 4.2rem)/.82 var(--serif); letter-spacing: -.055em; }
.bible__leaf-header > span { display: block; margin-top: .75rem; color: rgba(49,25,27,.55); font: italic 400 .78rem/1.35 var(--serif-text); }
.bible__menu-list { flex: 1; padding-top: .7rem; }
.bible__menu-list article { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 1rem; min-height: 4.6rem; padding: .75rem 0; border-bottom: 1px solid rgba(182,31,44,.12); }
.bible__menu-list h4 { margin: 0 0 .22rem; color: var(--ink); font: 400 clamp(1.12rem, 1.45vw, 1.34rem)/1.05 var(--serif); letter-spacing: -.022em; }
.bible__menu-list p { max-width: 28rem; margin: 0; color: rgba(49,25,27,.52); font-size: .6rem; line-height: 1.5; }
.bible__menu-list strong { padding-top: .1rem; color: var(--santeria-red); font: 400 .94rem/1 var(--serif); }
.bible__page-footer { position: absolute; z-index: 30; right: clamp(2rem, 3.4vw, 3.8rem); bottom: 1.6rem; left: clamp(2rem, 3.4vw, 3.8rem); min-height: 3rem; display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; border-top: 1px solid rgba(182,31,44,.15); transform: translateZ(18px); }
.bible__turn { min-height: 2.4rem; display: inline-flex; align-items: center; gap: .5rem; padding: 0; border: 0; background: transparent; color: var(--santeria-red); font: 600 .52rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.bible__turn--next { justify-self: end; }
.bible__turn:disabled { opacity: .22; cursor: default; }
.bible__turn:not(:disabled):hover span { transform: translateX(.18rem); }
.bible__turn--prev:not(:disabled):hover span { transform: translateX(-.18rem); }
.bible__turn span { transition: transform .35s var(--ease-ceremony); }
.bible__turn:focus-visible { outline: 2px solid var(--santeria-red); outline-offset: 5px; }
.bible__pagination { display: flex; align-items: center; gap: .55rem; margin: 0 0 .75rem; color: rgba(49,25,27,.5); font: 400 .66rem/1 var(--serif-text); }
.bible__pagination > span:first-child { color: var(--santeria-red); }
.bible__pagination i { width: 1.8rem; height: 1px; background: rgba(182,31,44,.28); }

.invitation { --light-x: 36%; --light-y: 42%; position: relative; min-height: 105svh; display: grid; place-items: center; isolation: isolate; overflow: hidden; padding: 7rem 1.25rem; }
.invitation__photo { position: absolute; z-index: -3; inset: 0; background: url("../la-santeria-relume-owned/assets/reservation-table.jpg") center / cover no-repeat; filter: saturate(.7) contrast(1.06); }
.invitation::after { content: ""; position: absolute; z-index: -2; inset: 0; background: rgba(41,15,18,.58); }
.invitation::before { content: ""; position: absolute; z-index: -1; top: -1px; right: 0; left: 0; height: clamp(8rem, 22vh, 14rem); background: linear-gradient(180deg, #971622 0%, rgba(151,22,34,.76) 26%, rgba(151,22,34,.24) 68%, transparent 100%); pointer-events: none; }
.invitation__veil { position: absolute; z-index: -1; inset: 0; background: radial-gradient(ellipse 42% 64% at 50% 48%, transparent 18%, rgba(20,5,8,.24) 72%, rgba(13,3,5,.52) 100%); pointer-events: none; }
.invitation__light { position: absolute; z-index: -1; inset: -8%; background: radial-gradient(circle min(38vw, 34rem) at var(--light-x) var(--light-y), rgba(255,203,133,.3), rgba(255,179,91,.1) 38%, transparent 72%); mix-blend-mode: screen; animation: table-light 8s ease-in-out infinite alternate; pointer-events: none; }
.invitation__card { position: relative; width: min(680px, calc(100vw - 2.5rem)); padding: clamp(3.5rem, 7vw, 6.5rem); color: var(--ink); text-align: center; background: rgba(255,250,245,.94); border: 0; box-shadow: 0 38px 110px rgba(26,6,8,.42); }
.invitation__card::before { content: ""; position: absolute; z-index: -1; top: 50%; left: 50%; width: min(86vw, 53rem); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255,190,107,.19), transparent 66%); transform: translate(-50%,-50%); }
.invitation__card .symbol { margin: 0 auto 2rem; }
.symbol--votive span { width: .44rem; height: .72rem; background: #ffbd66; border-radius: 70% 30% 65% 35%; box-shadow: 0 0 17px 5px rgba(255,177,91,.38); transform: rotate(8deg); }
.invitation h2 { margin: 0 0 1.7rem; color: var(--santeria-red); font: 400 clamp(4rem, 7vw, 6.8rem)/.88 var(--serif); letter-spacing: -.055em; }
.invitation__card > p:not(.kicker) { margin: 0 0 2.2rem; color: rgba(49,25,27,.66); }
.invitation__phone { display: block; margin-top: 1.5rem; color: var(--santeria-red-dark); font-size: .78rem; text-decoration: none; }

.footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; padding: 3rem clamp(1.25rem, 4vw, 4rem); color: var(--santeria-red-dark); background: var(--cloud-white); border-top: 1px solid rgba(182,31,44,.16); font-size: .72rem; }
.footer > img { width: 9.5rem; }
.footer > p { margin: 0; text-align: center; }
.footer > p small { display: block; margin-top: .55rem; color: rgba(143,23,33,.54); font-size: .55rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.footer > div { display: flex; justify-content: flex-end; gap: 1.3rem; }
.footer a { text-decoration: none; }

.reveal { opacity: 1; transform: none; }
.motion-ready .reveal { opacity: 0; transform: translateY(1.5rem); transition: opacity .85s ease, transform 1.05s cubic-bezier(.22,.65,.28,1); }
.motion-ready .reveal.is-visible { opacity: 1; transform: none; }
.motion-ready.gsap-ready .reveal { transition: none; }
@keyframes devotion-cloud-drift {
  0%,100% { opacity: .12; transform: translate3d(-5%,3%,0) scale(1.08); }
  52% { opacity: .21; transform: translate3d(5%,-2%,0) scale(1.13); }
}
@keyframes table-light { from { transform: translate3d(-3%,1%,0) scale(.96); opacity: .72; } to { transform: translate3d(5%,-2%,0) scale(1.1); opacity: 1; } }
@keyframes bible-halo-breathe { 0%,100% { opacity: .5; } 50% { opacity: .66; } }
@keyframes bible-halo-orbit { to { stroke-dashoffset: -100; } }

@media (max-width: 1040px) {
  .origin__opening { grid-template-columns: 1fr; gap: 3.4rem; }
  .origin__vesuvio { width: min(76vw, 40rem); justify-self: end; }
  .origin__copy { max-width: 760px; }
}

@media (max-width: 900px) {
  .bible__theatre { --bible-spread-width: min(48rem, 96vw); --bible-page-height: 42rem; min-height: 46rem; }
  .bible__spread { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bible__sheet-face { padding-inline: 1.7rem; }
  .bible__frontispiece-mark { width: 67%; }
  .bible__genesis h3 { font-size: clamp(2.5rem, 5vw, 3.4rem); }
  .footer { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .footer > div { justify-content: center; flex-wrap: wrap; }
}

@media (max-width: 760px) {
  .paradiso__halo { width: 86vw; }
  .origin { min-height: auto; padding: 7.5rem 1.25rem 5rem; }
  .origin--bible { --bible-cloud-height: calc(100svh + 9rem); }
  .origin__cloud-stage::before {
    top: -1.88svh;
    right: -2%;
    left: -2%;
    height: 97.76svh;
    background-position: 50% center;
  }
  .origin__cloud-stage > span {
    top: -1.88svh;
    height: 97.76svh;
    background-position: 53% 53%;
  }
  .origin--devotion { min-height: 76svh; padding-top: 5.5rem; padding-bottom: 5.5rem; }
  .origin__opening { min-height: auto; grid-template-columns: 1fr; gap: 2.8rem; padding-bottom: 8rem; }
  .origin--devotion .origin__opening { padding-bottom: 0; }
  .origin__glow { width: 120vw; height: 58%; }
  .origin__vesuvio { width: min(100%, 29rem); }
  .origin__vesuvio figcaption { width: min(25rem, 94%); margin-top: .9rem; font-size: .95rem; }
  .origin h2 { font-size: clamp(3.8rem, 17vw, 5.6rem); }
  .origin__copy > p:not(.kicker) { font-size: .91rem; line-height: 1.8; }
  .origin__lead { font-size: 1.3rem !important; }
  .santeria-bible { margin-inline: -1.25rem; }
  .bible__theatre { min-height: 39rem; transition: min-height .8s var(--ease-ceremony); }
  .bible__theatre::before { bottom: 4.8rem; width: 108vw; height: 4.5rem; opacity: .18; }
  .santeria-bible[data-open="true"] .bible__theatre { min-height: 75rem; }
  .bible__contact-shadow { top: 28.8rem; bottom: auto; width: min(18rem, 72vw); height: 2.25rem; }
  .santeria-bible[data-open="true"] .bible__contact-shadow { top: auto; bottom: -1rem; width: min(25rem, 92vw); height: 3rem; opacity: .62 !important; transform: translate3d(-50%,0,0) scaleX(1) scaleY(.62) !important; filter: none !important; }
  .bible__book-mask,
  .bible__book { display: contents; }
  .bible__cover-portal { display: none; }
  .bible__left-static { display: none; }
  .bible__closed-volume { display: none; }
  .bible__aura { top: 0; width: 130vw; height: 34rem; }
  .bible__cover { top: 1rem; right: auto; left: 50%; width: min(21rem, 80vw); height: auto; aspect-ratio: .735; transform: translateX(-50%); transition: opacity .48s ease, transform .48s ease; }
  .santeria-bible.is-cover-opening .bible__cover { opacity: 0; transform: translateX(-50%) translateY(-24px) scale(.97); }
  .santeria-bible[data-open="true"] .bible__cover-front,
  .santeria-bible[data-open="true"] .bible__cover-back { animation: none; }
  .bible__cover-back { display: none; }
  .bible__title { font-size: clamp(3.05rem, 14vw, 4rem); }
  .bible__cover-brand { width: min(11rem, 51%); height: 3.5rem; }
  .bible__spread { inset: .5rem auto auto 50%; width: calc(100vw - 1.2rem); height: auto; min-height: 0; grid-template-columns: 1fr; opacity: 0; transform: translateX(-50%) translateY(20px); transition: opacity .68s var(--ease-ceremony), transform .68s var(--ease-ceremony); }
  .santeria-bible[data-open="true"] .bible__spread { opacity: 1; transform: translateX(-50%) translateY(0); transition-delay: .28s; }
  .bible__page { min-height: 0; }
  .bible__page--frontispiece { min-height: 33rem; border-radius: 7px 7px 1px 1px; }
  .bible__spread > .bible__page--frontispiece { visibility: visible; opacity: 1; }
  .bible__page--frontispiece::before { background: linear-gradient(180deg, transparent 80%, rgba(70,34,23,.13)); }
  .bible__frontispiece-light { top: 3%; width: min(83vw, 19rem); }
  .bible__frontispiece-mark { width: min(59vw, 13.5rem); margin-top: -7rem; }
  .bible__logo-halo { top: -2.8rem; width: 7.2rem; }
  .bible__genesis { right: 8%; bottom: 10%; left: 8%; }
  .bible__genesis h3 { font-size: clamp(2.65rem, 13vw, 3.6rem); }
  .bible__genesis p { max-width: 18rem; font-size: .74rem; }
  .bible__page--menu { min-height: 42rem; overflow: hidden; padding: 0; border-radius: 1px 1px 7px 7px; }
  .bible__page--menu { grid-column: 1; grid-row: auto; }
  .bible__page--menu::before { background: linear-gradient(180deg, rgba(70,34,23,.13), transparent 12%); }
  .bible__page::after { inset: .65rem; }
  .bible__leaves { inset: 0; min-height: 0; perspective: none; }
  .bible__sheet-face { padding: 2.25rem 1.35rem 4.7rem; }
  .bible__sheet-back { display: none; }
  .bible__leaf { padding: .4rem 0 0; }
  .bible__leaf-header { padding-bottom: 1rem; }
  .bible__leaf-header h3 { font-size: clamp(3.1rem, 15vw, 4rem); }
  .bible__leaf-header > span { font-size: .72rem; }
  .bible__menu-list article { min-height: 4.55rem; padding: .76rem 0; }
  .bible__menu-list h4 { font-size: 1.17rem; }
  .bible__menu-list p { font-size: .57rem; }
  .bible__turn { font-size: .46rem; letter-spacing: .08em; }
  .bible__pagination { margin-bottom: .8rem; }
  .bible__page-footer { right: 1.35rem; bottom: 1.15rem; left: 1.35rem; }
  .invitation h2 { font-size: clamp(3.8rem, 17vw, 5.5rem); }
  .invitation__card { padding-inline: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .paradiso__content,
  .paradiso__content > *,
  .paradiso__mark,
  .paradiso h1 span,
  .paradiso__sky,
  .paradiso__halo,
  .paradiso__logo-halo { opacity: 1 !important; transform: none !important; translate: none !important; filter: none !important; animation: none !important; clip-path: none !important; }
  .threshold__room { opacity: 1 !important; transform: none !important; filter: brightness(.94) saturate(.82) contrast(1.04) !important; }
  .threshold__clouds { display: none !important; }
  .threshold__light { display: none !important; }
  .threshold__mist { opacity: .18 !important; animation: none !important; }
  .origin__cloud-stage::before,
  .origin__cloud-stage > span { animation: none !important; }
  .devotion__clouds > span { animation: none !important; }
  .origin__vesuvio-static { opacity: .9 !important; transform: none !important; filter: none !important; }
  .origin__vesuvio-animation { display: none !important; }
  .bible__cover,
  .bible__closed-volume,
  .bible__book-mask,
  .bible__book,
  .bible__arrival-body,
  .bible__contact-shadow,
  .bible__spread,
  .bible__page,
  .bible__sheet,
  .bible__sheet-face,
  .bible__leaf,
  .bible__frontispiece-light,
  .bible__logo-halo,
  .bible__halo-orbit { transition: none !important; animation: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
