/* Atmósfera dibujada en tiempo real. Los lienzos nunca capturan interacciones. */
:root { --storm-light: 0; }
.page-atmosphere {
  position: fixed;
  inset: 0;
  z-index: 4;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
}
.page-atmosphere canvas {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
#atmosphere-fog {
  filter: blur(3px);
  transform: scale(1.025);
}
.effects-control {
  position: fixed;
  right: 20px;
  bottom: 18px;
  z-index: 15;
  min-height: 44px;
  padding: 10px 15px;
  border: 1px solid #a781c47a;
  border-radius: 30px;
  color: #dfcbe9;
  background: #170d24ed;
  font: 600 11px/1.2 var(--font-body, sans-serif);
  backdrop-filter: blur(12px);
}
.effects-control:hover { color: #fff; border-color: #d7adff; }
.effects-control:focus-visible { outline: 3px solid #ffb15b; outline-offset: 4px; }
.scene-photo {
  --scene-scale: 1.11;
  transform: translate3d(var(--scene-x, 0px), var(--scene-y, 0px), 0) scale(var(--scene-scale));
  will-change: transform;
}
.hero-photo { filter: brightness(.74) saturate(.78); }
.hero-scrim {
  background: linear-gradient(90deg, #10091aef, #10091acc 48%, #10091a4f),
    linear-gradient(0deg, #160d22, transparent 65%);
}
.hero::after, .hotel-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 85% 12%, #d2beff, #9672d629 60%, transparent 80%);
  opacity: var(--storm-light);
  pointer-events: none;
  z-index: 1;
}
.hero-content { z-index: 2; }
.moon {
  width: 94px;
  top: 18%;
  opacity: .46;
  filter: blur(.35px);
  background: radial-gradient(circle at 35% 30%, #e1d5ed, #a690ba 70%);
  box-shadow: 0 0 70px #d2aff425, inset -12px -6px 0 #5d447d33;
}
.moon, .pumpkin-ornament, .hotel-key {
  translate: var(--scene-x, 0px) var(--scene-y, 0px);
}
.pumpkin-ornament {
  animation: lantern-glow 8s ease-in-out infinite alternate;
}
.hotel-key {
  transform: rotate(8deg);
  animation: key-sway 12s ease-in-out infinite alternate;
}
.hotel-intro { grid-template-columns: 1fr 190px; gap: 65px; }
.hotel-intro h2 { max-width: 840px; }
.hotel-intro p:not(.kicker) { max-width: 690px; }
.hotel-scene {
  min-height: 470px;
  padding: 42px;
  border-color: #76538c9c;
}
.hotel-scene > img {
  object-position: center 60%;
  filter: brightness(.67) saturate(.8);
}
.hotel-scene-shade {
  background: linear-gradient(0deg, #190d26ef 0, #190d2633 48%, #130c2330);
}
.hotel-scene .hotel-welcome {
  position: relative;
  z-index: 2;
  max-width: 610px;
}
.hotel-welcome .kicker { color: #f5c98e; font-size: 11px; margin-bottom: 16px; }
.hotel-welcome h3 {
  font-family: var(--font-heading);
  font-size: clamp(29px, 4vw, 47px);
  line-height: 1.1;
  margin: 0 0 20px;
  text-shadow: 0 2px 24px #140b22;
}
.hotel-scene .hotel-welcome p:last-child {
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}
.activity-image { overflow: hidden; }
.activity-image .number-sticker { bottom: 14px; }
.activity-image .scene-photo { transform-origin: center; }
.experience {
  background: radial-gradient(ellipse at 75% 30%, #312040 0, #170e24 50%, #100a18 100%);
}
.final-invite {
  background: radial-gradient(ellipse at 50% 100%, #321942, #100a18 70%);
}
.footer { padding-bottom: 85px; }

@keyframes lantern-glow {
  from { filter: brightness(.72) saturate(.9) drop-shadow(0 0 8px #dc7b2320); }
  to { filter: brightness(.91) saturate(1.03) drop-shadow(0 0 22px #dc7b2340); }
}
@keyframes key-sway {
  from { rotate: -3deg; }
  to { rotate: 4deg; }
}
.effects-paused *, .page-hidden * { animation-play-state: paused !important; }
.effects-paused .scene-photo { will-change: auto; transform: none; }
.effects-paused .page-atmosphere { visibility: hidden; }

@media (max-width: 700px) {
  .hotel-intro { grid-template-columns: 1fr; gap: 12px; }
  .hotel-key { position: static; width: 110px; height: 145px; justify-self: end; margin-top: -12px; opacity: .65; }
  .hotel-scene { min-height: 390px; padding: 25px; margin-top: 20px; }
  .hotel-scene > img { object-position: center 65%; }
  .hotel-welcome h3 { font-size: 31px; }
  .hotel-scene .hotel-welcome p:last-child { font-size: 13px; }
  .effects-control { bottom: 12px; right: 12px; font-size: 10px; }
  .scene-bottom > span { max-width: calc(100% - 125px); }
  .hero-scrim {
    background: linear-gradient(90deg, #10091aeb, #10091ab8),
      linear-gradient(0deg, #160d22, transparent 60%);
  }
  .moon { width: 65px; top: 15%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .pumpkin-ornament, .hotel-key { animation: none; }
}

/* Escena cuadrada y postal del equipo. */
.hotel-scene { aspect-ratio: 1 / 1; min-height: 0; width: 100%; }
.hotel-scene-shade { aspect-ratio: 1 / 1; }
.price-summary { line-height: 1.7; color: #e2d1ee; }
.team-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 65px; align-items: center; text-align: left; }
.team-postcard { margin: 0; padding: 10px; background: #2d1b3c; border: 1px solid #a782bd; border-radius: 16px; box-shadow: 8px 8px 0 #0d0815; transform: rotate(-2deg); }
.team-postcard img { display: block; width: 100%; height: auto; border-radius: 8px; }
.team-postcard figcaption { padding: 12px 4px 3px; font-size: 10px; color: #d4bbdf; text-align: center; }
@media(max-width:700px) {
 .hotel-scene { aspect-ratio: 1 / 1; min-height: 0; padding: 22px; }
 .hotel-welcome h3 { font-size: 28px; }
 .team-grid { grid-template-columns: 1fr; gap: 38px; }
 .team-postcard { transform: none; }
}

.booking-deadline{margin:24px 0 16px;color:#ead7f6;font-size:14px}.whatsapp-share{background:#254d3b;color:#fff;border:1px solid #81b995;pointer-events:auto}.whatsapp-share:hover{background:#32664e;color:#fff}.deadline-banner{padding:18px 24px;border:1px solid #b58acb;border-radius:12px;background:#352044;text-align:center;margin-bottom:34px;font-size:15px}
