:root {
  --emoxion-black: #000;
  --emoxion-gold: #f2b632;
  --emoxion-gold-soft: rgba(242,182,50,.42);
  --emoxion-red: #8d1018;
}

body.emoxion-intro-active { overflow: hidden !important; background: #000 !important; }
body.emoxion-intro-active #app { visibility: hidden; pointer-events: none; }

.emoxion-intro {
  position: fixed;
  inset: 0;
  z-index: 999999;
  overflow: hidden;
  background: radial-gradient(circle at 50% 50%, rgba(86,8,18,.12), transparent 38%), #000;
  color: #fff;
  opacity: 1;
  transition: opacity 1.1s ease, visibility 1.1s ease;
  isolation: isolate;
}
.emoxion-intro[hidden] { display: none !important; }
.emoxion-intro.is-ending { opacity: 0; visibility: hidden; }

.emoxion-intro__skip {
  position: absolute;
  top: max(18px, env(safe-area-inset-top));
  right: max(18px, env(safe-area-inset-right));
  z-index: 20;
  border: 1px solid rgba(242,182,50,.28);
  border-radius: 999px;
  padding: 10px 15px;
  background: rgba(0,0,0,.4);
  color: rgba(255,255,255,.72);
  font: 600 13px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing: .04em;
  backdrop-filter: blur(10px);
}

.emoxion-intro__logo-stage,
.emoxion-intro__house-stage {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}

.emoxion-intro__heart-button {
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  border-radius: 50%;
  opacity: 0;
  transform: scale(.82);
  transition: opacity 1.3s ease, transform 1.35s cubic-bezier(.2,.84,.22,1), filter .5s ease;
  -webkit-tap-highlight-color: transparent;
}
.emoxion-intro.show-heart .emoxion-intro__heart-button { opacity: 1; transform: scale(1); }
.emoxion-intro__heart-button:focus-visible { outline: 2px solid var(--emoxion-gold); outline-offset: 12px; }
.emoxion-intro.is-activated .emoxion-intro__heart-button { opacity: 0; transform: scale(.82); pointer-events: none; }

.emoxion-intro__logo-wrap {
  position: relative;
  display: block;
  width: min(72vw, 440px);
  text-align: center;
  transform-origin: 50% 54%;
}
.emoxion-intro__heart,
.emoxion-intro__flying-heart,
.emoxion-intro__door-heart {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.emoxion-intro__heart {
  filter: saturate(1.05) drop-shadow(0 0 18px rgba(242,182,50,.34)) drop-shadow(0 0 42px rgba(138,8,24,.28));
}
.emoxion-intro__wordmark {
  display: block;
  margin: -7% 0 0;
  color: #eac56c;
  font: 300 clamp(17px,4vw,28px)/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing: .33em;
  text-indent: .33em;
  text-transform: lowercase;
  text-shadow: 0 0 16px rgba(242,182,50,.35);
}
.emoxion-intro__hint {
  position: absolute;
  left: 50%;
  bottom: max(8.5vh, 62px);
  transform: translateX(-50%);
  margin: 0;
  color: rgba(238,199,108,.82);
  font: 300 clamp(15px,3.6vw,20px)/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 1s ease 1.2s;
}
.emoxion-intro.show-heart .emoxion-intro__hint { opacity: .8; }
.emoxion-intro.is-activated .emoxion-intro__hint { opacity: 0; }

.emoxion-intro__logo-wrap::before,
.emoxion-intro__logo-wrap::after {
  content: "";
  position: absolute;
  inset: 7% 9% 13%;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
}
.emoxion-intro__logo-wrap::before {
  background: radial-gradient(circle, rgba(151,14,28,.48) 0%, rgba(116,0,15,.18) 44%, transparent 74%);
  filter: blur(18px);
}
.emoxion-intro__logo-wrap::after {
  border: 1px solid rgba(242,182,50,.22);
  box-shadow: 0 0 34px rgba(242,182,50,.18), inset 0 0 26px rgba(242,182,50,.08);
}
.emoxion-intro.heartbeat .emoxion-intro__logo-wrap::before { animation: aura-breathe 3.4s ease-in-out infinite; }
.emoxion-intro.heartbeat .emoxion-intro__logo-wrap::after { animation: gold-halo 2.35s ease-out infinite; }
.emoxion-intro.heartbeat .emoxion-intro__heart { animation: heart-breathe 3.6s ease-in-out infinite; }
.emoxion-intro.heartbeat .emoxion-intro__wordmark { animation: wordmark-breathe 3.4s ease-in-out infinite; }

.emoxion-intro__pulse-ring {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 64%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1.5px solid rgba(242,182,50,.75);
  transform: translate(-50%,-50%) scale(.72);
  opacity: 0;
  pointer-events: none;
  box-shadow: 0 0 18px rgba(242,182,50,.35);
}
.emoxion-intro__pulse-ring.is-soft { animation: pulse-ring-soft .82s ease-out forwards; }
.emoxion-intro__pulse-ring.is-strong { animation: pulse-ring-strong 1.05s ease-out forwards; }
.emoxion-intro__logo-wrap.pulse-soft { animation: body-soft .38s cubic-bezier(.2,.8,.2,1); }
.emoxion-intro__logo-wrap.pulse-strong { animation: body-strong .62s cubic-bezier(.12,.92,.2,1); }

.emoxion-intro__house-stage {
  opacity: 0;
  transform: scale(1.06);
  pointer-events: none;
  transition: opacity 1.15s ease, transform 1.7s cubic-bezier(.2,.75,.22,1);
}
.emoxion-intro.show-house .emoxion-intro__house-stage { opacity: 1; transform: scale(1); }
.emoxion-intro__house-wrap {
  position: relative;
  width: min(100vw, 620px);
  height: 100%;
  overflow: hidden;
  background: #000;
}
.emoxion-intro__house {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: brightness(.16) saturate(.55) contrast(1.08);
  transform: scale(1.035);
  transition: filter 2.6s ease, transform 3s cubic-bezier(.2,.75,.2,1);
}
.emoxion-intro__house-darkness {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 49%, rgba(0,0,0,.18), rgba(0,0,0,.93) 56%, #000 86%);
  transition: opacity 2.5s ease;
}
.emoxion-intro.house-awakening .emoxion-intro__house {
  filter: brightness(.62) saturate(.9) contrast(1.05);
  transform: scale(1.012);
}
.emoxion-intro.house-awakening .emoxion-intro__house-darkness { opacity: .34; }
.emoxion-intro.house-alive .emoxion-intro__house {
  filter: brightness(1) saturate(1.08) contrast(1.02);
  transform: scale(1);
}
.emoxion-intro.house-alive .emoxion-intro__house-darkness { opacity: 0; }

.emoxion-intro__door-seal-target {
  position: absolute;
  left: 50%;
  top: 47.9%;
  width: clamp(112px, 24vw, 158px);
  aspect-ratio: 1;
  transform: translate(-50%,-50%);
  border-radius: 50%;
}
.emoxion-intro__door-heart {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: scale(.42);
  transition: opacity .35s ease, transform .68s cubic-bezier(.18,1.32,.24,1);
  filter: drop-shadow(0 0 10px rgba(242,182,50,.86)) drop-shadow(0 0 24px rgba(141,16,24,.62));
}
.emoxion-intro.heart-on-door .emoxion-intro__door-heart { opacity: 1; transform: scale(1); animation: door-heart-alive 1.9s cubic-bezier(.42,0,.28,1) infinite; }
.emoxion-intro__seal-glow {
  position: absolute;
  inset: -42%;
  border-radius: 50%;
  opacity: 0;
  background: radial-gradient(circle, rgba(242,182,50,.85), rgba(141,16,24,.34) 36%, transparent 70%);
  filter: blur(14px);
}
.emoxion-intro.heart-on-door .emoxion-intro__seal-glow { animation: seal-bloom 1.35s ease-out forwards; }

.emoxion-intro__energy-wave {
  position: absolute;
  left: 50%;
  top: 49%;
  width: 80px;
  aspect-ratio: 1;
  border: 2px solid rgba(242,182,50,.8);
  border-radius: 50%;
  transform: translate(-50%,-50%) scale(.15);
  opacity: 0;
  box-shadow: 0 0 28px rgba(242,182,50,.38);
}
.emoxion-intro.house-awakening .wave-1 { animation: energy-wave 1.9s ease-out forwards; }
.emoxion-intro.house-awakening .wave-2 { animation: energy-wave 2.25s .25s ease-out forwards; }
.emoxion-intro.house-awakening .wave-3 { animation: energy-wave 2.55s .5s ease-out forwards; }

.emoxion-intro__flying-heart {
  position: fixed;
  z-index: 12;
  pointer-events: none;
  opacity: 0;
  transform-origin: center;
  will-change: transform, opacity;
}

.emoxion-intro__message {
  position: absolute;
  left: 50%;
  bottom: max(7vh, 54px);
  width: min(86vw, 720px);
  transform: translateX(-50%) translateY(10px);
  margin: 0;
  text-align: center;
  color: #f2d17b;
  font: 300 clamp(22px,5.2vw,40px)/1.15 Georgia,"Times New Roman",serif;
  opacity: 0;
  transition: opacity .75s ease, transform .75s ease;
  text-shadow: 0 0 28px rgba(242,182,50,.28);
  z-index: 15;
}
.emoxion-intro__message.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }

@keyframes heart-breathe {
  0%,100% { transform:scale(1) translateY(0); filter:brightness(1) saturate(1.04) drop-shadow(0 0 15px rgba(242,182,50,.28)); }
  48% { transform:scale(1.022) translateY(-1px); filter:brightness(1.065) saturate(1.10) drop-shadow(0 0 25px rgba(242,182,50,.40)) drop-shadow(0 0 42px rgba(141,16,24,.26)); }
  58% { transform:scale(1.015) translateY(0); }
}
@keyframes aura-breathe { 0%,100% { opacity:.24; transform:scale(.78); } 50% { opacity:.68; transform:scale(1.08); } }
@keyframes gold-halo { 0% { opacity:0; transform:scale(.78); } 12% { opacity:.64; } 38% { opacity:.18; } 100% { opacity:0; transform:scale(1.34); } }
@keyframes wordmark-breathe { 0%,100% { opacity:.72; text-shadow:0 0 8px rgba(242,182,50,.12); } 50% { opacity:1; text-shadow:0 0 22px rgba(242,182,50,.42); } }
@keyframes pulse-ring-soft { 0% { opacity:.58; transform:translate(-50%,-50%) scale(.72); } 100% { opacity:0; transform:translate(-50%,-50%) scale(1.28); } }
@keyframes pulse-ring-strong { 0% { opacity:.9; transform:translate(-50%,-50%) scale(.68); border-width:2px; } 100% { opacity:0; transform:translate(-50%,-50%) scale(1.48); border-width:.5px; } }
@keyframes body-soft {
  0%,100% { transform:scale(1); }
  26% { transform:scale(1.018,.994) translateY(-.3px); }
  54% { transform:scale(.998,1.006); }
}
@keyframes body-strong {
  0%,100% { transform:scale(1); }
  18% { transform:scale(1.052,.984) translateY(-1.2px); filter:brightness(1.08); }
  34% { transform:scale(.994,1.014) translateY(.5px); }
  58% { transform:scale(1.022,.992) translateY(-.3px); }
  80% { transform:scale(1.002,1.004); }
}
@keyframes door-heart-alive {
  0%,100% { transform:scale(1); filter:drop-shadow(0 0 12px rgba(242,182,50,.84)) drop-shadow(0 0 26px rgba(141,16,24,.58)); }
  17% { transform:scale(1.055,.982); filter:drop-shadow(0 0 22px rgba(242,182,50,.98)) drop-shadow(0 0 40px rgba(141,16,24,.76)); }
  35% { transform:scale(.998,1.01); }
  55% { transform:scale(1.018,.993); }
}
@keyframes seal-bloom { 0% { opacity:0; transform:scale(.35); } 38% { opacity:1; transform:scale(1.2); } 100% { opacity:.3; transform:scale(1.7); } }
@keyframes energy-wave { 0% { opacity:.8; transform:translate(-50%,-50%) scale(.15); } 100% { opacity:0; transform:translate(-50%,-50%) scale(10); } }

@media (max-width: 600px) {
  .emoxion-intro__logo-wrap { width: min(80vw,390px); }
  .emoxion-intro__house-wrap { width: 100vw; }
  .emoxion-intro__door-seal-target { top: 48.4%; width: clamp(106px,27vw,138px); }
}

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


/* Emoxion 3.6.7 RC7 — un solo cuore, dalla nascita al sigillo */
.emoxion-intro__logo-wrap {
  isolation: isolate;
}
.emoxion-intro__wordmark {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 57%;
  width: 72%;
  margin: 0;
  transform: translate(-50%,-50%);
  pointer-events: none;
  font-size: clamp(15px,3.6vw,25px);
  letter-spacing: .28em;
  text-indent: .28em;
  color: #f4cf72;
  text-shadow: 0 0 7px rgba(255,207,83,.52), 0 0 20px rgba(242,182,50,.34);
}
.emoxion-intro__logo-wrap.is-flying,
.emoxion-intro__logo-wrap.is-sealed {
  transform-origin: 50% 50%;
  animation: none !important;
  will-change: transform, filter;
}
.emoxion-intro__logo-wrap.is-flying .emoxion-intro__heart,
.emoxion-intro__logo-wrap.is-flying .emoxion-intro__wordmark,
.emoxion-intro__logo-wrap.is-sealed .emoxion-intro__heart,
.emoxion-intro__logo-wrap.is-sealed .emoxion-intro__wordmark {
  animation: none !important;
}
.emoxion-intro__logo-wrap.is-contacting {
  transition: transform .34s cubic-bezier(.22,.9,.28,1), filter .34s ease !important;
  transform-origin: center;
  filter: drop-shadow(0 0 30px rgba(242,182,50,1)) drop-shadow(0 0 60px rgba(145,10,25,.72)) !important;
}
.emoxion-intro__door-seal-target::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 50%;
  width: 112%;
  height: 112%;
  transform: translate(-50%,-50%) scale(.76);
  border-radius: 42%;
  opacity: 0;
  background: radial-gradient(ellipse at center, rgba(25,9,5,.98) 0%, rgba(28,12,7,.94) 56%, rgba(12,5,3,.22) 76%, transparent 82%);
  box-shadow: inset 0 0 20px rgba(242,182,50,.12), 0 0 18px rgba(0,0,0,.75);
  transition: opacity .38s ease, transform .65s cubic-bezier(.18,1.08,.22,1);
}
.emoxion-intro.heart-on-door .emoxion-intro__door-seal-target::before {
  opacity: 1;
  transform: translate(-50%,-50%) scale(1);
}
.emoxion-intro__logo-wrap.is-sealed {
  filter: drop-shadow(0 0 11px rgba(242,182,50,.9)) drop-shadow(0 0 27px rgba(141,16,24,.62));
  animation: sealed-heartbeat 2.15s cubic-bezier(.42,0,.28,1) infinite !important;
}
.emoxion-intro__logo-wrap.is-sealed .emoxion-intro__wordmark {
  font-size: clamp(10px,2.3vw,15px);
  top: 57%;
}
@keyframes sealed-heartbeat {
  0%,100% { transform:translate(-50%,-50%) scale(.96); filter:drop-shadow(0 0 10px rgba(242,182,50,.78)) drop-shadow(0 0 22px rgba(141,16,24,.54)); }
  14% { transform:translate(-50%,-50%) scale(.99,.95); filter:drop-shadow(0 0 18px rgba(242,182,50,.98)) drop-shadow(0 0 34px rgba(141,16,24,.72)); }
  28% { transform:translate(-50%,-50%) scale(.955,.972); }
  42% { transform:translate(-50%,-50%) scale(.976,.958); }
}
@media (max-width:600px) {
  .emoxion-intro__door-seal-target { top:48.4%; width:clamp(124px,31vw,158px); }
}


/* Emoxion 3.6.8 RC8 — battito morbido e sigillo pieno */
.emoxion-intro__pulse-ring { border-color: rgba(242,182,50,.54); box-shadow: 0 0 14px rgba(242,182,50,.22); }
.emoxion-intro__logo-wrap.pulse-soft { animation: rc8-body-soft .52s cubic-bezier(.16,.72,.24,1); }
.emoxion-intro__logo-wrap.pulse-strong { animation: rc8-body-strong .78s cubic-bezier(.14,.82,.2,1); }
.emoxion-intro.heartbeat .emoxion-intro__heart { animation: rc8-heart-breathe 4.15s ease-in-out infinite; }
.emoxion-intro.heartbeat .emoxion-intro__wordmark { animation: rc8-wordmark-breathe 4.15s ease-in-out infinite; }
.emoxion-intro__door-seal-target { width: clamp(136px, 29vw, 184px); }
.emoxion-intro__door-seal-target::before { width: 122%; height: 116%; border-radius: 38%; background: radial-gradient(ellipse at center, rgba(24,8,4,.99) 0%, rgba(26,10,5,.96) 53%, rgba(14,5,2,.48) 72%, transparent 84%); }
.emoxion-intro__logo-wrap.is-sealed { animation: rc8-sealed-heartbeat 2.7s cubic-bezier(.36,0,.26,1) infinite !important; }
.emoxion-intro__logo-wrap.is-sealed .emoxion-intro__wordmark { font-size: clamp(11px,2.5vw,17px); text-shadow: 0 0 8px rgba(255,207,83,.55), 0 0 20px rgba(242,182,50,.34); }

@keyframes rc8-heart-breathe {
  0%,100% { transform:scale(1) translateY(0); filter:brightness(1) saturate(1.04) drop-shadow(0 0 15px rgba(242,182,50,.25)); }
  46% { transform:scale(1.014) translateY(-.5px); filter:brightness(1.045) saturate(1.08) drop-shadow(0 0 22px rgba(242,182,50,.34)) drop-shadow(0 0 36px rgba(141,16,24,.20)); }
  58% { transform:scale(1.009) translateY(0); }
}
@keyframes rc8-wordmark-breathe {
  0%,100% { opacity:.76; text-shadow:0 0 7px rgba(242,182,50,.18); }
  46% { opacity:.98; text-shadow:0 0 18px rgba(242,182,50,.42); }
  58% { opacity:.90; }
}
@keyframes rc8-body-soft {
  0%,100% { transform:scale(1); }
  28% { transform:scale(1.014) translateY(-.2px); }
  58% { transform:scale(1.004); }
}
@keyframes rc8-body-strong {
  0%,100% { transform:scale(1); }
  16% { transform:scale(1.035) translateY(-.7px); filter:brightness(1.055); }
  34% { transform:scale(1.008) translateY(.2px); }
  52% { transform:scale(1.024) translateY(-.3px); }
  72% { transform:scale(1.004); }
}
@keyframes rc8-sealed-heartbeat {
  0%,100% { transform:translate(-50%,-50%) scale(.985); filter:drop-shadow(0 0 11px rgba(242,182,50,.72)) drop-shadow(0 0 23px rgba(141,16,24,.50)); }
  13% { transform:translate(-50%,-50%) scale(1.012); filter:drop-shadow(0 0 19px rgba(242,182,50,.98)) drop-shadow(0 0 35px rgba(141,16,24,.69)); }
  27% { transform:translate(-50%,-50%) scale(.992); }
  43% { transform:translate(-50%,-50%) scale(1.004); }
  63% { transform:translate(-50%,-50%) scale(.985); }
}
@media (max-width:600px) {
  .emoxion-intro__door-seal-target { top:48.4%; width:clamp(142px,35vw,178px); }
}


/* Emoxion 3.6.9 RC9 — Heart Alive: stesso cuore, battito più umano */
.emoxion-intro__logo-wrap.beat-primary {
  animation: rc9-beat-primary .72s cubic-bezier(.18,.78,.18,1) both !important;
}
.emoxion-intro__logo-wrap.beat-secondary {
  animation: rc9-beat-secondary .54s cubic-bezier(.2,.72,.2,1) both !important;
}
.emoxion-intro__logo-wrap.beat-primary .emoxion-intro__heart,
.emoxion-intro__logo-wrap.beat-secondary .emoxion-intro__heart,
.emoxion-intro__logo-wrap.beat-primary .emoxion-intro__wordmark,
.emoxion-intro__logo-wrap.beat-secondary .emoxion-intro__wordmark {
  animation: none !important;
}
.emoxion-intro__logo-wrap.beat-primary::before {
  animation: rc9-aura-primary .82s ease-out both !important;
}
.emoxion-intro__logo-wrap.beat-secondary::before {
  animation: rc9-aura-secondary .64s ease-out both !important;
}
.emoxion-intro__logo-wrap.beat-primary .emoxion-intro__wordmark {
  animation: rc9-word-primary .72s ease-out both !important;
}
.emoxion-intro__logo-wrap.beat-secondary .emoxion-intro__wordmark {
  animation: rc9-word-secondary .54s ease-out both !important;
}

@keyframes rc9-beat-primary {
  0%   { transform:scale(1); filter:brightness(1); }
  16%  { transform:scale(1.038) translateY(-.8px); filter:brightness(1.075); }
  34%  { transform:scale(1.008) translateY(.15px); filter:brightness(1.025); }
  56%  { transform:scale(1.017) translateY(-.2px); }
  100% { transform:scale(1); filter:brightness(1); }
}
@keyframes rc9-beat-secondary {
  0%   { transform:scale(1); filter:brightness(1); }
  20%  { transform:scale(1.026) translateY(-.35px); filter:brightness(1.052); }
  48%  { transform:scale(1.004); }
  100% { transform:scale(1); filter:brightness(1); }
}
@keyframes rc9-aura-primary {
  0%   { opacity:.25; transform:scale(.86); }
  18%  { opacity:.82; transform:scale(1.07); }
  52%  { opacity:.42; transform:scale(1.16); }
  100% { opacity:.24; transform:scale(.9); }
}
@keyframes rc9-aura-secondary {
  0%   { opacity:.24; transform:scale(.9); }
  22%  { opacity:.62; transform:scale(1.035); }
  100% { opacity:.24; transform:scale(.92); }
}
@keyframes rc9-word-primary {
  0%   { opacity:.78; letter-spacing:.28em; text-shadow:0 0 8px rgba(242,182,50,.20); }
  18%  { opacity:1; letter-spacing:.292em; text-shadow:0 0 10px rgba(255,211,104,.78),0 0 26px rgba(242,182,50,.48); }
  48%  { opacity:.9; letter-spacing:.284em; }
  100% { opacity:.78; letter-spacing:.28em; text-shadow:0 0 8px rgba(242,182,50,.20); }
}
@keyframes rc9-word-secondary {
  0%   { opacity:.8; letter-spacing:.28em; }
  24%  { opacity:.98; letter-spacing:.287em; text-shadow:0 0 9px rgba(255,211,104,.66),0 0 21px rgba(242,182,50,.40); }
  100% { opacity:.8; letter-spacing:.28em; }
}

/* Il respiro di fondo resta quasi fermo: il battito viene dalla luce, non da una deformazione. */
.emoxion-intro.heartbeat .emoxion-intro__heart { animation:rc9-resting-breath 4.8s ease-in-out infinite; }
.emoxion-intro.heartbeat .emoxion-intro__wordmark { animation:rc9-resting-word 4.8s ease-in-out infinite; }
@keyframes rc9-resting-breath {
  0%,100% { transform:scale(1); filter:brightness(1) saturate(1.04) drop-shadow(0 0 15px rgba(242,182,50,.24)); }
  50% { transform:scale(1.006); filter:brightness(1.025) saturate(1.07) drop-shadow(0 0 21px rgba(242,182,50,.32)) drop-shadow(0 0 34px rgba(141,16,24,.18)); }
}
@keyframes rc9-resting-word {
  0%,100% { opacity:.78; text-shadow:0 0 7px rgba(242,182,50,.18); }
  50% { opacity:.9; text-shadow:0 0 15px rgba(242,182,50,.34); }
}


/* Emoxion 3.7.0 — Il Primo Battito: cuore solo, cinque parole, attraversamento */
.emoxion-intro { background: radial-gradient(circle at 50% 46%, rgba(108,0,18,.13), transparent 35%), #000; }
.emoxion-intro__logo-stage { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(12px,2.5vh,26px); }
.emoxion-intro__wordmark {
  position:relative; left:auto; top:auto; width:auto; margin:0 0 clamp(2px,1vh,10px); transform:none;
  color:rgba(225,184,98,.62); font:300 clamp(18px,4.4vw,31px)/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.48em; text-indent:.48em; text-transform:uppercase; text-shadow:0 0 18px rgba(225,184,98,.16);
  opacity:0; transition:opacity 1.2s ease .25s;
}
.emoxion-intro.show-heart .emoxion-intro__wordmark { opacity:.72; }
.emoxion-intro__heart-button { border-radius:42%; }
.emoxion-intro__logo-wrap { width:min(74vw,430px); transform-origin:50% 52%; }
.emoxion-intro__heart { filter:drop-shadow(0 0 20px rgba(221,13,38,.34)) drop-shadow(0 0 46px rgba(120,0,15,.24)); }
.emoxion-intro__hint {
  position:relative; left:auto; bottom:auto; transform:none; margin:clamp(6px,1.3vh,16px) 0 0;
  color:rgba(231,198,128,.54); font-size:clamp(13px,3.3vw,18px); letter-spacing:.30em; text-indent:.30em;
  transition:opacity 1.1s ease .65s;
}
.emoxion-intro.show-heart .emoxion-intro__hint { opacity:.72; }
.emoxion-intro.is-activated .emoxion-intro__wordmark,
.emoxion-intro.is-activated .emoxion-intro__hint { opacity:0; transition-delay:0s; }
.emoxion-intro.is-activated .emoxion-intro__heart-button { opacity:1; transform:none; }
.emoxion-intro__logo-wrap::before { background:radial-gradient(circle,rgba(220,10,34,.34),rgba(97,0,18,.10) 54%,transparent 73%); }
.emoxion-intro__logo-wrap::after { border-color:rgba(225,55,70,.26); }
.emoxion-intro__pulse-ring { border-color:rgba(235,42,58,.42); box-shadow:0 0 18px rgba(221,13,38,.25); }
.emoxion-intro__message {
  top:50%; bottom:auto; transform:translate(-50%,-50%) translateY(12px); width:min(88vw,700px);
  color:rgba(255,255,255,.92); font:300 clamp(27px,6vw,48px)/1.15 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.055em; text-shadow:0 0 24px rgba(255,255,255,.12); z-index:18;
}
.emoxion-intro__message.is-visible { transform:translate(-50%,-50%) translateY(0); }
.emoxion-intro.is-journey .emoxion-intro__message { pointer-events:none; }
.emoxion-intro__house-stage { transition:opacity 1.2s ease,transform 1.8s cubic-bezier(.2,.75,.22,1); }
.emoxion-intro__house { filter:brightness(.08) saturate(.42) contrast(1.10); }
.emoxion-intro__house-darkness { background:radial-gradient(circle at 50% 48%,rgba(0,0,0,.28),rgba(0,0,0,.96) 58%,#000 88%); }
.emoxion-intro__door-seal-target { top:45.4%; width:clamp(100px,22vw,142px); }
.emoxion-intro__door-seal-target::before { display:none !important; }
.emoxion-intro__seal-glow { inset:-65%; background:radial-gradient(circle,rgba(232,30,48,.90),rgba(176,10,30,.34) 33%,rgba(242,182,50,.12) 50%,transparent 72%); filter:blur(18px); }
.emoxion-intro.door-contact .emoxion-intro__seal-glow { animation:passage-bloom 1.65s ease-out forwards; }
.emoxion-intro.house-awakening .emoxion-intro__house { filter:brightness(.58) saturate(.88) contrast(1.06); }
.emoxion-intro.house-alive .emoxion-intro__house { filter:brightness(1) saturate(1.05) contrast(1.02); }
.emoxion-intro.house-awakening .emoxion-intro__house-darkness { opacity:.36; }
.emoxion-intro.house-alive .emoxion-intro__house-darkness { opacity:0; }
.emoxion-intro__logo-wrap.is-flying .emoxion-intro__heart { animation:journey-heart 2.9s ease-in-out infinite !important; }
.emoxion-intro__logo-wrap.is-passing-through { filter:brightness(1.45) blur(1.2px) !important; }
.home-door-emoxion,.home-door-seal-backdrop { display:none !important; }
@keyframes journey-heart {
  0%,100% { transform:translateY(0) rotate(-.55deg) scale(1); }
  50% { transform:translateY(-5px) rotate(.55deg) scale(1.012); }
}
@keyframes passage-bloom {
  0% { opacity:0; transform:scale(.22); }
  35% { opacity:1; transform:scale(1.18); }
  100% { opacity:.18; transform:scale(2.25); }
}
@media(max-width:600px){
  .emoxion-intro__logo-wrap{width:min(78vw,390px)}
  .emoxion-intro__door-seal-target{top:45.7%;width:clamp(92px,24vw,126px)}
}

/* 3.7.1 — FIX INTRO FULLSCREEN + ASSET UFFICIALE ISOLATO */
html, body { background:#000; }
body.emoxion-intro-active { margin:0 !important; overflow:hidden !important; }
body.emoxion-intro-active #app { visibility:hidden !important; opacity:0 !important; pointer-events:none !important; }
.emoxion-intro {
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100dvh !important;
  min-height:100svh !important;
  z-index:2147483647 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:#000 !important;
  overflow:hidden !important;
}
.emoxion-intro__logo-stage,
.emoxion-intro__house-stage { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; }
.emoxion-intro__logo-stage { gap:clamp(10px,1.8vh,18px) !important; }
.emoxion-intro__logo-wrap { width:min(52vw,300px) !important; }
.emoxion-intro__heart { filter:drop-shadow(0 0 16px rgba(220,12,38,.28)) drop-shadow(0 0 34px rgba(110,0,18,.18)) !important; }
.emoxion-intro__wordmark {
  font-size:clamp(13px,3vw,20px) !important;
  letter-spacing:.44em !important;
  text-indent:.44em !important;
  color:rgba(225,184,98,.46) !important;
}
.emoxion-intro__hint {
  font-size:clamp(10px,2.5vw,14px) !important;
  letter-spacing:.28em !important;
  text-indent:.28em !important;
  color:rgba(231,198,128,.43) !important;
}
.emoxion-intro__message {
  top:72% !important;
  width:min(86vw,620px) !important;
  font-size:clamp(21px,5vw,36px) !important;
  letter-spacing:.04em !important;
}
.emoxion-intro.is-journey .emoxion-intro__logo-wrap { z-index:14 !important; }
.emoxion-intro__skip { top:max(18px,env(safe-area-inset-top)) !important; right:max(18px,env(safe-area-inset-right)) !important; }
@media (max-width:600px){
  .emoxion-intro__logo-wrap { width:min(50vw,260px) !important; }
  .emoxion-intro__message { top:74% !important; }
}

/* 3.7.2 — INTRO PULITA: UN SOLO CUORE, TESTI SOLO NEL VIAGGIO */
body.emoxion-intro-active,
body.emoxion-intro-active #app { background:#000 !important; }

.emoxion-intro {
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100dvh !important;
  min-height:100svh !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#000 !important;
  overflow:hidden !important;
  z-index:2147483647 !important;
}

.emoxion-intro__logo-stage {
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  display:grid !important;
  grid-template-rows:auto auto auto !important;
  align-content:center !important;
  justify-items:center !important;
  gap:clamp(18px,3vh,34px) !important;
  padding:clamp(74px,10vh,120px) 20px clamp(72px,9vh,110px) !important;
  box-sizing:border-box !important;
  background:#000 !important;
}

.emoxion-intro__wordmark {
  position:static !important;
  width:auto !important;
  margin:0 !important;
  transform:none !important;
  color:rgba(220,177,84,.48) !important;
  font:300 clamp(12px,2.7vw,18px)/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  letter-spacing:.48em !important;
  text-indent:.48em !important;
  text-transform:uppercase !important;
  text-shadow:0 0 13px rgba(224,177,76,.12) !important;
  pointer-events:none !important;
}

.emoxion-intro__heart-button {
  width:min(46vw,260px) !important;
  border-radius:38% !important;
  overflow:visible !important;
}
.emoxion-intro__logo-wrap {
  width:100% !important;
  max-width:none !important;
  isolation:isolate !important;
}
.emoxion-intro__heart {
  width:100% !important;
  height:auto !important;
  object-fit:contain !important;
  filter:drop-shadow(0 0 12px rgba(232,18,46,.25)) drop-shadow(0 0 28px rgba(112,0,18,.16)) !important;
}
.emoxion-intro__logo-wrap::before,
.emoxion-intro__logo-wrap::after { display:none !important; }

.emoxion-intro__hint {
  position:static !important;
  margin:0 !important;
  transform:none !important;
  color:rgba(220,177,84,.42) !important;
  font:300 clamp(9px,2.1vw,13px)/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  letter-spacing:.32em !important;
  text-indent:.32em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  pointer-events:none !important;
}

.emoxion-intro.is-activated .emoxion-intro__wordmark,
.emoxion-intro.is-activated .emoxion-intro__hint {
  opacity:0 !important;
  visibility:hidden !important;
}

/* Le cinque frasi appartengono al viaggio, mai sopra il cuore iniziale. */
.emoxion-intro__message {
  position:absolute !important;
  left:50% !important;
  top:61% !important;
  bottom:auto !important;
  width:min(82vw,560px) !important;
  margin:0 !important;
  transform:translate(-50%,18px) !important;
  color:rgba(255,255,255,.88) !important;
  font:300 clamp(20px,4.8vw,34px)/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  letter-spacing:.025em !important;
  text-align:center !important;
  text-shadow:0 0 18px rgba(255,255,255,.08) !important;
  opacity:0 !important;
  z-index:30 !important;
  pointer-events:none !important;
  transition:opacity .55s ease, transform .65s ease !important;
}
.emoxion-intro__message.is-visible {
  opacity:1 !important;
  transform:translate(-50%,0) !important;
}

.emoxion-intro__house-stage,
.emoxion-intro__house-wrap {
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#000 !important;
}
.emoxion-intro__house-wrap { max-width:none !important; }
.emoxion-intro__house { object-fit:cover !important; }

@media (max-width:600px) {
  .emoxion-intro__heart-button { width:min(44vw,230px) !important; }
  .emoxion-intro__logo-stage { gap:clamp(15px,2.4vh,24px) !important; }
  .emoxion-intro__message { top:62% !important; }
}

/* 3.7.3 — VIAGGIO CONTROLLATO: parole separate, cuore centrato, Home nascosta */
.emoxion-intro.journey-hold .emoxion-intro__logo-stage {
  opacity:1 !important;
  visibility:visible !important;
}
.emoxion-intro.journey-hold .emoxion-intro__heart-button {
  opacity:1 !important;
  transform:none !important;
}
.emoxion-intro.journey-hold .emoxion-intro__logo-wrap {
  width:min(43vw,230px) !important;
  transform:none !important;
  animation:none !important;
}
.emoxion-intro.journey-hold .emoxion-intro__heart {
  animation:journey-hold-heart 2.8s ease-in-out infinite !important;
  filter:drop-shadow(0 0 13px rgba(220,12,38,.24)) drop-shadow(0 0 26px rgba(110,0,18,.14)) !important;
}
.emoxion-intro.journey-hold .emoxion-intro__wordmark,
.emoxion-intro.journey-hold .emoxion-intro__hint {
  opacity:0 !important;
}
.emoxion-intro.journey-hold .emoxion-intro__message {
  top:72% !important;
  bottom:auto !important;
  color:rgba(255,255,255,.92) !important;
  font-size:clamp(20px,5vw,34px) !important;
  text-shadow:0 0 18px rgba(255,255,255,.10) !important;
  z-index:30 !important;
}
.emoxion-intro.is-journey:not(.show-house) .emoxion-intro__house-stage {
  opacity:0 !important;
  visibility:hidden !important;
}
.emoxion-intro__logo-wrap.is-flying,
.emoxion-intro__logo-wrap.is-flying .emoxion-intro__heart {
  animation:none !important;
}
@keyframes journey-hold-heart {
  0%,100% { transform:translateY(0) scale(1); filter:brightness(1); }
  18% { transform:translateY(-1px) scale(1.035,.985); filter:brightness(1.06); }
  34% { transform:translateY(0) scale(.998,1.008); }
  55% { transform:translateY(-.5px) scale(1.014,.994); }
}
@media(max-width:600px){
  .emoxion-intro.journey-hold .emoxion-intro__logo-wrap { width:min(42vw,210px) !important; }
  .emoxion-intro.journey-hold .emoxion-intro__message { top:70% !important; }
}


/* 3.7.4 — LOCK: cuore +12%, traiettoria centrale, attraversamento porta */
.emoxion-intro__heart-button { width:min(51.5vw,291px) !important; }
.emoxion-intro.journey-hold .emoxion-intro__logo-wrap { width:min(48.2vw,258px) !important; }
.emoxion-intro__logo-wrap.is-flying {
  will-change:transform,opacity,filter !important;
  animation:none !important;
}
.emoxion-intro__logo-wrap.is-passing-through {
  transform-origin:50% 50% !important;
}
.emoxion-intro.heart-beyond-door .emoxion-intro__seal-glow {
  opacity:1 !important;
  transform:scale(1.28) !important;
}
@media(max-width:600px){
  .emoxion-intro__heart-button { width:min(49.3vw,258px) !important; }
  .emoxion-intro.journey-hold .emoxion-intro__logo-wrap { width:min(47vw,235px) !important; }
}


/* 3.7.5 — HEART BIG: il cuore deve dominare lo schermo */
.emoxion-intro__heart-button {
  width: min(68vw, 390px) !important;
}
.emoxion-intro.journey-hold .emoxion-intro__logo-wrap {
  width: min(58vw, 330px) !important;
}
@media (max-width:600px) {
  .emoxion-intro__heart-button {
    width: min(68vw, 320px) !important;
  }
  .emoxion-intro.journey-hold .emoxion-intro__logo-wrap {
    width: min(58vw, 275px) !important;
  }
}
