/* ============================================================
   Tema «galaxia» · Inolvidia — demo infantil-espacio («Misión Cumple»)
   Espacio profundo pero alegre: azul galaxia, estrella, cohete y menta.
   Tipos: Bungee (títulos grandes / números) + Fredoka (todo lo demás).
   Decoración 100 % CSS/SVG propio: estrellas que titilan en cada sección,
   planetas, un cohete que cruza la pantalla (.inv-fx) y la intro «giftbox»
   convertida en un regalo envuelto en papel de estrellas flotando en el espacio.
   Todo acotado bajo html[data-theme="galaxia"] y solo con clases públicas del motor.
   ============================================================ */

:root {
  /* — contrato §5 — */
  --bg: #1D2B64;
  --bg-alt: #17225A;
  --surface: #25397F;
  --ink: #F7F7FF;
  --ink-soft: #CDD4F4;
  --accent: #FFD23F;
  --accent-2: #3BCEAC;
  --accent-ink: #141B45;
  --line: rgba(247, 247, 255, .17);
  --font-display: 'Fredoka', 'Nunito', system-ui, sans-serif;
  --font-script: 'Bungee', 'Fredoka', system-ui, sans-serif;
  --font-body: 'Fredoka', 'Nunito', system-ui, sans-serif;
  --radius: 24px;
  --shadow: 0 18px 36px -20px rgba(4, 7, 28, .9);
  --hero-overlay: linear-gradient(180deg, rgba(18, 26, 66, .1), rgba(18, 26, 66, .75));
  --hero-ink: #F7F7FF;
  --intro-bg: #121A42;
  --intro-ink: #F7F7FF;
  --seal: #EE4266;
  /* estrellitas de 4 puntas y polvo estelar */
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300' viewBox='0 0 300 300'%3E%3Cpath d='M40,44c0,5.6 2.24,8 6.88,8c-4.64,0 -6.88,2.4 -6.88,8c0,-5.6 -2.24,-8 -6.88,-8c4.64,0 6.88,-2.4 6.88,-8z' fill='%23FFD23F' fill-opacity='0.5'/%3E%3Cpath d='M212,144.8c0,3.64 1.46,5.2 4.47,5.2c-3.02,0 -4.47,1.56 -4.47,5.2c0,-3.64 -1.46,-5.2 -4.47,-5.2c3.02,0 4.47,-1.56 4.47,-5.2z' fill='%23FFD23F' fill-opacity='0.45'/%3E%3Cpath d='M118,256c0,4.2 1.68,6 5.16,6c-3.48,0 -5.16,1.8 -5.16,6c0,-4.2 -1.68,-6 -5.16,-6c3.48,0 5.16,-1.8 5.16,-6z' fill='%23FFD23F' fill-opacity='0.4'/%3E%3Cpath d='M262,31.4c0,3.22 1.29,4.6 3.96,4.6c-2.67,0 -3.96,1.38 -3.96,4.6c0,-3.22 -1.29,-4.6 -3.96,-4.6c2.67,0 3.96,-1.38 3.96,-4.6z' fill='%233BCEAC' fill-opacity='0.55'/%3E%3Cpath d='M74,166.4c0,2.52 1.01,3.6 3.1,3.6c-2.09,0 -3.1,1.08 -3.1,3.6c0,-2.52 -1.01,-3.6 -3.1,-3.6c2.09,0 3.1,-1.08 3.1,-3.6z' fill='%233BCEAC' fill-opacity='0.5'/%3E%3Cpath d='M170,84.8c0,2.24 0.9,3.2 2.75,3.2c-1.86,0 -2.75,0.96 -2.75,3.2c0,-2.24 -0.9,-3.2 -2.75,-3.2c1.86,0 2.75,-0.96 2.75,-3.2z' fill='%23EE4266' fill-opacity='0.55'/%3E%3Cpath d='M286,247c0,2.1 0.84,3 2.58,3c-1.74,0 -2.58,0.9 -2.58,3c0,-2.1 -0.84,-3 -2.58,-3c1.74,0 2.58,-0.9 2.58,-3z' fill='%23EE4266' fill-opacity='0.45'/%3E%3Cg fill='%23F7F7FF'%3E%3Ccircle cx='100' cy='20' r='1.4' fill-opacity='0.7'/%3E%3Ccircle cx='290' cy='120' r='1.1' fill-opacity='0.5'/%3E%3Ccircle cx='20' cy='236' r='1.6' fill-opacity='0.45'/%3E%3Ccircle cx='150' cy='200' r='1' fill-opacity='0.6'/%3E%3Ccircle cx='236' cy='262' r='1.3' fill-opacity='0.45'/%3E%3Ccircle cx='280' cy='206' r='0.9' fill-opacity='0.55'/%3E%3Ccircle cx='60' cy='110' r='1.2' fill-opacity='0.5'/%3E%3Ccircle cx='190' cy='284' r='1' fill-opacity='0.5'/%3E%3Ccircle cx='132' cy='140' r='0.8' fill-opacity='0.6'/%3E%3Ccircle cx='240' cy='80' r='1' fill-opacity='0.5'/%3E%3Ccircle cx='14' cy='14' r='1' fill-opacity='0.5'/%3E%3C/g%3E%3C/svg%3E");
  /* separador: estela punteada, cohete y estrellas */
  --ornament: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 56'%3E%3Cg fill='%23F7F7FF'%3E%3Ccircle cx='24' cy='40' r='1.6' fill-opacity='.35'/%3E%3Ccircle cx='44' cy='38' r='1.9' fill-opacity='.45'/%3E%3Ccircle cx='66' cy='35.5' r='2.2' fill-opacity='.55'/%3E%3Ccircle cx='90' cy='32.5' r='2.5' fill-opacity='.7'/%3E%3Ccircle cx='114' cy='30' r='2.8' fill-opacity='.85'/%3E%3C/g%3E%3Cg transform='rotate(62 146 26)'%3E%3Cpath d='M146 8c6 4 8.4 11 8.4 19v7h-16.8v-7c0-8 2.4-15 8.4-19z' fill='%23F7F7FF'/%3E%3Cpath d='M146 8c3 2 5 5 6.3 8.6h-12.6C141 13 143 10 146 8z' fill='%23EE4266'/%3E%3Ccircle cx='146' cy='22.5' r='3.4' fill='%231D2B64' stroke='%233BCEAC' stroke-width='1.8'/%3E%3Cpath d='M137.6 27l-5 6.6v4l5-2zM154.4 27l5 6.6v4l-5-2z' fill='%23EE4266'/%3E%3Cpath d='M141.5 34h9c0 4.4-2 7.4-4.5 10-2.5-2.6-4.5-5.6-4.5-10z' fill='%23FFD23F'/%3E%3C/g%3E%3Cpath d='M204 12c0 7 2.8 10 8.6 10-5.8 0-8.6 3-8.6 10 0-7-2.8-10-8.6-10 5.8 0 8.6-3 8.6-10z' fill='%23FFD23F'/%3E%3Cpath d='M236 30c0 4 1.6 5.8 5 5.8-3.4 0-5 1.8-5 5.8 0-4-1.6-5.8-5-5.8 3.4 0 5-1.8 5-5.8z' fill='%233BCEAC'/%3E%3Ccircle cx='258' cy='16' r='2.2' fill='%23F7F7FF' fill-opacity='.7'/%3E%3C/svg%3E");

  /* — internas del tema — */
  --gx-star: #FFD23F;
  --gx-rocket: #EE4266;
  --gx-mint: #3BCEAC;
  --gx-moon: #F7F7FF;
  --gx-deep: #121A42;
  --gx-lilac: #9DA9FF;
  /* cohete (apunta arriba a la derecha) */
  --gx-rocket-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-10 -10 84 84'%3E%3Cg transform='rotate(45 32 32)'%3E%3Cpath d='M27 48h10c0 6-2.6 10-5 14.5-2.4-4.5-5-8.5-5-14.5z' fill='%23FFD23F'/%3E%3Cpath d='M29.6 48h4.8c0 3.6-1.1 6-2.4 8.6-1.3-2.6-2.4-5-2.4-8.6z' fill='%23fff'/%3E%3Cpath d='M32 4c9 6 12 17 12 29v11H20V33c0-12 3-23 12-29z' fill='%23F7F7FF'/%3E%3Cpath d='M38 10c3.6 5 6 12.5 6 23v11h-5V33c0-9-.6-16.6-1-23z' fill='%23C9D0F2'/%3E%3Cpath d='M32 4c4.4 3 7.4 7.4 9.2 12.4H22.8C24.6 11.4 27.6 7 32 4z' fill='%23EE4266'/%3E%3Ccircle cx='32' cy='27' r='5.6' fill='%231D2B64' stroke='%233BCEAC' stroke-width='2.6'/%3E%3Ccircle cx='30.2' cy='25.2' r='1.6' fill='%23fff' fill-opacity='.8'/%3E%3Cpath d='M20 33l-8.5 10.5v6.5l8.5-3.2zM44 33l8.5 10.5v6.5L44 46.8z' fill='%23EE4266'/%3E%3Cpath d='M25 44h14l-2 4.2H27z' fill='%238C95C9'/%3E%3C/g%3E%3C/svg%3E");
  /* planeta con anillo */
  --gx-planet-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 140'%3E%3Cg transform='rotate(-16 100 72)'%3E%3Cellipse cx='100' cy='72' rx='90' ry='21' fill='none' stroke='%23FFD23F' stroke-width='7' stroke-opacity='.55'/%3E%3C/g%3E%3Ccircle cx='100' cy='70' r='42' fill='%23EE4266'/%3E%3Cpath d='M60 56c22 7 58 7 80-1M58 78c24 8 60 8 84-2' stroke='%23fff' stroke-opacity='.22' stroke-width='6' fill='none' stroke-linecap='round'/%3E%3Cpath d='M130 40a42 42 0 0 1-54 64 42 42 0 0 0 54-64z' fill='%23121A42' fill-opacity='.3'/%3E%3Ccircle cx='84' cy='52' r='6' fill='%23fff' fill-opacity='.18'/%3E%3Cg transform='rotate(-16 100 72)'%3E%3Cpath d='M10 72a90 21 0 0 0 180 0' fill='none' stroke='%23FFD23F' stroke-width='7'/%3E%3C/g%3E%3C/svg%3E");
  /* luna con cráteres */
  --gx-moon-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='44' fill='%23F7F7FF'/%3E%3Cpath d='M82 22a44 44 0 0 1-58 66 44 44 0 0 0 58-66z' fill='%23C9D0F2'/%3E%3Ccircle cx='36' cy='36' r='9' fill='%23DDE2F7'/%3E%3Ccircle cx='60' cy='62' r='6' fill='%23DDE2F7'/%3E%3Ccircle cx='62' cy='30' r='4' fill='%23DDE2F7'/%3E%3C/svg%3E");
  /* planeta menta pequeño */
  --gx-mint-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='40' fill='%233BCEAC'/%3E%3Cpath d='M14 40c22 8 50 8 72-2M12 58c24 9 52 9 76-1' stroke='%23fff' stroke-opacity='.25' stroke-width='5' fill='none' stroke-linecap='round'/%3E%3Cpath d='M78 22a40 40 0 0 1-50 62 40 40 0 0 0 50-62z' fill='%23121A42' fill-opacity='.28'/%3E%3C/svg%3E");
  /* campo de estrellas sueltas (se superpone en capas) */
  --gx-stars-a:
    radial-gradient(1.6px 1.6px at 8% 12%, #fff 50%, transparent 55%),
    radial-gradient(1.2px 1.2px at 22% 64%, #fff 50%, transparent 55%),
    radial-gradient(2px 2px at 37% 28%, #FFD23F 50%, transparent 55%),
    radial-gradient(1.3px 1.3px at 52% 86%, #fff 50%, transparent 55%),
    radial-gradient(1.8px 1.8px at 66% 16%, #fff 50%, transparent 55%),
    radial-gradient(1.2px 1.2px at 79% 52%, #3BCEAC 50%, transparent 55%),
    radial-gradient(1.6px 1.6px at 91% 80%, #fff 50%, transparent 55%),
    radial-gradient(1.1px 1.1px at 95% 8%, #fff 50%, transparent 55%);
  --gx-stars-b:
    radial-gradient(1.3px 1.3px at 14% 40%, #fff 50%, transparent 55%),
    radial-gradient(1.8px 1.8px at 29% 92%, #FFD23F 50%, transparent 55%),
    radial-gradient(1.2px 1.2px at 45% 8%, #fff 50%, transparent 55%),
    radial-gradient(1.6px 1.6px at 58% 48%, #fff 50%, transparent 55%),
    radial-gradient(1.2px 1.2px at 73% 90%, #fff 50%, transparent 55%),
    radial-gradient(2px 2px at 86% 30%, #fff 50%, transparent 55%),
    radial-gradient(1.2px 1.2px at 4% 76%, #3BCEAC 50%, transparent 55%);
}

/* ---------- fondo general (escritorio: el cosmos a los lados) ---------- */
html[data-theme="galaxia"] {
  background-color: var(--gx-deep);
  background-image:
    radial-gradient(60vw 50vh at 8% 12%, rgba(59, 206, 172, .14), transparent 70%),
    radial-gradient(55vw 55vh at 96% 88%, rgba(238, 66, 102, .18), transparent 70%),
    radial-gradient(40vw 40vh at 90% 20%, rgba(157, 169, 255, .12), transparent 70%),
    var(--gx-stars-a), var(--gx-stars-b), var(--pattern), var(--pattern);
  background-size: auto, auto, auto, 430px 430px, 610px 610px, 300px, 470px;
  background-position: 0 0, 0 0, 0 0, 0 0, 90px 40px, 0 0, 140px 170px;
}
/* planetas grandes a los lados de la columna (solo se ven en pantallas anchas) */
html[data-theme="galaxia"] body.inv::before,
html[data-theme="galaxia"] body.inv::after {
  content: ''; position: fixed; z-index: -1; pointer-events: none;
  background: center / contain no-repeat;
}
html[data-theme="galaxia"] body.inv::before {
  width: 340px; aspect-ratio: 200 / 140; left: calc(50% - 280px - 330px); top: 14vh;
  background-image: var(--gx-planet-svg);
  animation: gxBob 9s ease-in-out infinite;
}
html[data-theme="galaxia"] body.inv::after {
  width: 150px; aspect-ratio: 1; right: calc(50% - 280px - 210px); bottom: 16vh;
  background-image: var(--gx-moon-svg);
  animation: gxBob 11s ease-in-out -4s infinite;
}
@keyframes gxBob { 0%, 100% { translate: 0 0; rotate: 0deg; } 50% { translate: 0 -14px; rotate: 3deg; } }

/* ---------- capa de efectos: cohete que cruza y estrella fugaz ---------- */
html[data-theme="galaxia"] .inv-fx::before {
  content: ''; position: absolute; left: 0; top: 0; width: 58px; height: 58px;
  background: var(--gx-rocket-svg) center / contain no-repeat;
  filter: drop-shadow(0 0 10px rgba(255, 210, 63, .45));
  opacity: 0;
  animation: gxRocketFly 19s linear 3s infinite;
}
@keyframes gxRocketFly {
  0% { transform: translate(-70px, 88vh) rotate(-8deg); opacity: 0; }
  1.5% { opacity: 1; }
  15% { transform: translate(calc(100vw + 10px), 8vh) rotate(-8deg); opacity: 1; }
  15.5%, 100% { transform: translate(calc(100vw + 10px), 8vh) rotate(-8deg); opacity: 0; }
}
html[data-theme="galaxia"] .inv-fx::after {
  content: ''; position: absolute; left: 70%; top: 14%; width: 120px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, .35) 30%, transparent);
  transform: rotate(-24deg); transform-origin: 0 50%; opacity: 0;
  animation: gxShoot 13s ease-in 7s infinite;
}
@keyframes gxShoot {
  0% { transform: translate(0, 0) rotate(-24deg) scaleX(.2); opacity: 0; }
  2% { opacity: 1; }
  7% { transform: translate(-260px, 120px) rotate(-24deg) scaleX(1); opacity: 0; }
  100% { opacity: 0; }
}

/* ---------- tipografía ---------- */
html[data-theme="galaxia"] .inv-eyebrow { font-weight: 600; letter-spacing: .22em; }
html[data-theme="galaxia"] .inv-title { font-weight: 600; letter-spacing: -.01em; line-height: 1.04; }
html[data-theme="galaxia"] .inv-text { font-size: 1.02rem; line-height: 1.66; }
html[data-theme="galaxia"] ::selection { background: var(--gx-star); color: var(--gx-deep); }

/* ---------- secciones: cielo estrellado que titila ---------- */
html[data-theme="galaxia"] .inv-section,
html[data-theme="galaxia"] .inv-footer { isolation: isolate; }
html[data-theme="galaxia"] .inv-section {
  background-image: var(--gx-stars-b);
  background-size: 100% 520px;
}
/* las secciones alternas se funden con las vecinas: el espacio no tiene costuras */
html[data-theme="galaxia"] .inv-section.is-alt {
  background-image:
    radial-gradient(90% 38% at 100% 30%, rgba(157, 169, 255, .12), transparent 70%),
    radial-gradient(80% 32% at 0% 80%, rgba(59, 206, 172, .09), transparent 70%),
    var(--gx-stars-b),
    linear-gradient(180deg, var(--bg), var(--bg-alt) 120px, var(--bg-alt) calc(100% - 120px), var(--bg));
  background-size: auto, auto, 100% 520px, auto;
}
html[data-theme="galaxia"] .inv-section::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: var(--gx-stars-a);
  background-size: 100% 440px;
  animation: gxTwinkle 3.6s ease-in-out infinite alternate;
}
html[data-theme="galaxia"] .inv-section:nth-of-type(even)::before { animation-delay: -1.8s; background-position: 0 180px; }
@keyframes gxTwinkle { from { opacity: .25; } to { opacity: 1; } }

/* ============================================================
   HERO — ventanilla de nave (layout framed)
   ============================================================ */
html[data-theme="galaxia"] .inv-hero {
  background-color: var(--gx-deep);
  background-image:
    radial-gradient(80% 36% at 50% 24%, rgba(59, 206, 172, .22), transparent 70%),
    radial-gradient(70% 34% at 100% 66%, rgba(238, 66, 102, .26), transparent 70%),
    radial-gradient(70% 34% at 0% 92%, rgba(157, 169, 255, .2), transparent 70%),
    var(--gx-stars-a), var(--gx-stars-b), var(--pattern), var(--pattern);
  background-size: auto, auto, auto, 100% 380px, 100% 300px, 300px, 460px;
  background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 120px 150px;
}
html[data-theme="galaxia"] .inv-hero::before,
html[data-theme="galaxia"] .inv-hero::after {
  content: ''; position: absolute; z-index: -1; pointer-events: none; background: center / contain no-repeat;
}
html[data-theme="galaxia"] .inv-hero::before {
  width: 150px; aspect-ratio: 200 / 140; left: -46px; top: 30px;
  background-image: var(--gx-planet-svg);
  animation: gxBob 8s ease-in-out infinite;
}
html[data-theme="galaxia"] .inv-hero::after {
  width: 70px; aspect-ratio: 1; right: -8px; top: 282px;
  background-image: var(--gx-mint-svg);
  animation: gxBob 10s ease-in-out -3s infinite;
}
html[data-theme="galaxia"] .inv-hero--framed {
  justify-content: flex-start;
  padding-top: calc(44px + env(safe-area-inset-top));
}
html[data-theme="galaxia"] .inv-hero--framed .inv-hero__media {
  width: min(56vw, 232px); aspect-ratio: 1; padding: 0; border: 0; border-radius: 50%;
  background: radial-gradient(circle at 50% 38%, #2E4394, #0D1438 72%);
  box-shadow: 0 26px 50px -18px rgba(3, 6, 26, .9);
}
html[data-theme="galaxia"] .inv-hero--framed .inv-hero__img { border-radius: 50%; object-position: 50% 30%; }
html[data-theme="galaxia"] .inv-hero__img.is-broken { opacity: 0; }
/* resplandor detrás de la ventanilla */
html[data-theme="galaxia"] .inv-hero--framed .inv-hero__media::before {
  inset: -54px; border: 0; border-radius: 50%; z-index: -1;
  background: radial-gradient(closest-side, rgba(59, 206, 172, .34), rgba(59, 206, 172, .1) 60%, transparent 100%);
}
/* aro metálico con remaches */
html[data-theme="galaxia"] .inv-hero--framed .inv-hero__media::after {
  --bolt: radial-gradient(circle at 50% 50%, #fff 0 1.4px, #C9D0F2 1.9px 2.8px, #5F6AA3 3.3px 4px, transparent 4.5px);
  content: ''; position: absolute; inset: -17px; border-radius: 50%; pointer-events: none;
  background:
    var(--bolt) 50% 4px / 10px 10px no-repeat,
    var(--bolt) 50% calc(100% - 4px) / 10px 10px no-repeat,
    var(--bolt) 4px 50% / 10px 10px no-repeat,
    var(--bolt) calc(100% - 4px) 50% / 10px 10px no-repeat,
    var(--bolt) calc(14.645% + 2.83px) calc(14.645% + 2.83px) / 10px 10px no-repeat,
    var(--bolt) calc(85.355% - 2.83px) calc(14.645% + 2.83px) / 10px 10px no-repeat,
    var(--bolt) calc(14.645% + 2.83px) calc(85.355% - 2.83px) / 10px 10px no-repeat,
    var(--bolt) calc(85.355% - 2.83px) calc(85.355% - 2.83px) / 10px 10px no-repeat,
    conic-gradient(from 210deg, #8E98CC, #F7F7FF 10%, #B7BFE6 22%, #737EB6 38%, #E9ECFF 52%, #A2ABD8 66%, #F7F7FF 80%, #8E98CC);
  -webkit-mask: radial-gradient(closest-side, transparent calc(100% - 18px), #000 calc(100% - 17px));
  mask: radial-gradient(closest-side, transparent calc(100% - 18px), #000 calc(100% - 17px));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5);
}
/* reflejo del vidrio */
html[data-theme="galaxia"] .inv-hero--framed .inv-hero__shade {
  display: block; border-radius: 50%;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .32) 0%, rgba(255, 255, 255, .08) 26%, transparent 42%),
    radial-gradient(closest-side, transparent 72%, rgba(8, 12, 40, .55) 100%);
}
html[data-theme="galaxia"] .inv-hero--framed .inv-hero__content { padding-top: 28px; }
html[data-theme="galaxia"] .inv-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px 7px 12px; margin-bottom: .75rem;
  border-radius: 99px; border: 1.5px solid rgba(59, 206, 172, .55);
  background: rgba(59, 206, 172, .1); color: var(--gx-mint); opacity: 1;
  font-size: .7rem; letter-spacing: .24em;
}
html[data-theme="galaxia"] .inv-hero__eyebrow::before {
  content: ''; width: 12px; height: 12px; flex: none;
  background: var(--gx-mint);
  clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%);
}
html[data-theme="galaxia"] .inv-hero__title {
  font-size: clamp(2.5rem, 11.6vw, 3.7rem);
  line-height: 1.02; letter-spacing: .005em;
  color: var(--gx-star);
  text-shadow: 0 3px 0 var(--gx-rocket), 0 6px 0 #A8264A, 0 14px 26px rgba(3, 6, 26, .55);
  margin: .12em 0 .34em;
}
html[data-theme="galaxia"] .inv-hero__subtitle {
  font-family: var(--font-body); font-style: normal; font-weight: 500;
  font-size: 1.14rem; line-height: 1.42; color: var(--ink-soft); opacity: 1; max-width: 19rem;
}
html[data-theme="galaxia"] .inv-hero__date { margin-top: 1.15rem; margin-bottom: .75rem; font-weight: 600; letter-spacing: .2em; }
html[data-theme="galaxia"] .inv-hero__date-side { border-color: rgba(247, 247, 255, .35); }
html[data-theme="galaxia"] .inv-hero__date-day {
  font-family: var(--font-script); font-size: 3rem; color: var(--gx-mint); line-height: .95;
  text-shadow: 0 0 18px rgba(59, 206, 172, .45);
}
html[data-theme="galaxia"] .inv-hero__time { color: var(--gx-star); opacity: 1; font-weight: 600; }
html[data-theme="galaxia"] .inv-hero__place { font-weight: 500; opacity: 1; }
html[data-theme="galaxia"] .inv-hero__place .inv-icon { color: var(--gx-rocket); }
html[data-theme="galaxia"] .inv-hero .inv-guest {
  background: rgba(18, 26, 66, .6);
  border: 1.5px dashed rgba(255, 210, 63, .55);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
html[data-theme="galaxia"] .inv-guest__label { color: var(--gx-star); opacity: 1; }
html[data-theme="galaxia"] .inv-guest__name { font-family: var(--font-display); font-weight: 600; }
html[data-theme="galaxia"] .inv-hero__cue { color: var(--ink-soft); }

/* ============================================================
   SECCIONES
   ============================================================ */
/* botones con volumen de juguete */
html[data-theme="galaxia"] .inv-btn { font-weight: 600; letter-spacing: .02em; }
html[data-theme="galaxia"] .inv-btn:not(.inv-btn--ghost):not(.is-draft):not(.inv-btn--wa) {
  border-color: #FFE27A;
  box-shadow: 0 4px 0 #C99700, 0 14px 22px -12px rgba(255, 210, 63, .75);
}
html[data-theme="galaxia"] .inv-btn:not(.inv-btn--ghost):not(.is-draft):not(.inv-btn--wa):active { box-shadow: 0 1px 0 #C99700; transform: translateY(3px); }

/* cuenta regresiva: pantallas del tablero de control */
html[data-theme="galaxia"] .inv-section--countdown::after {
  content: ''; position: absolute; right: 7%; top: 30px; width: 58px; height: 58px; pointer-events: none;
  background: var(--gx-rocket-svg) center / contain no-repeat;
  rotate: -45deg;
  filter: drop-shadow(0 0 10px rgba(255, 210, 63, .35));
  animation: gxLaunch 2.4s ease-in-out infinite;
}
@keyframes gxLaunch { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
html[data-theme="galaxia"] .inv-countdown { gap: 9px; }
html[data-theme="galaxia"] .inv-countdown__unit {
  padding: 18px 2px 14px; border-radius: 20px;
  background: linear-gradient(180deg, #0D1438, #1A2766);
  border: 2px solid rgba(59, 206, 172, .55);
  box-shadow: inset 0 0 24px rgba(59, 206, 172, .16), 0 0 0 5px rgba(59, 206, 172, .08), var(--shadow);
}
html[data-theme="galaxia"] .inv-countdown__unit::before {
  inset: 0; height: auto; opacity: 1;
  background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .045) 0 2px, transparent 2px 5px);
}
html[data-theme="galaxia"] .inv-countdown__num {
  font-family: var(--font-script); font-weight: 400; color: var(--gx-star);
  font-size: clamp(1.7rem, 8.2vw, 2.35rem);
  text-shadow: 0 0 16px rgba(255, 210, 63, .5);
}
html[data-theme="galaxia"] .inv-countdown__lbl { color: var(--gx-mint); letter-spacing: .16em; font-size: .66rem; }
html[data-theme="galaxia"] .inv-countdown__done { font-family: var(--font-script); font-style: normal; font-size: 1.5rem; color: var(--gx-star); }

/* planetas que asoman por los bordes de algunas secciones */
html[data-theme="galaxia"] :is(.inv-section--events, .inv-section--timeline, .inv-section--wishes)::after {
  content: ''; position: absolute; z-index: -1; pointer-events: none; background: center / contain no-repeat;
  animation: gxBob 10s ease-in-out infinite;
}
html[data-theme="galaxia"] .inv-section--events::after { left: 7%; top: 34px; width: 44px; aspect-ratio: 1; background-image: var(--gx-moon-svg); }
html[data-theme="galaxia"] .inv-section--timeline::after { right: -48px; top: -34px; width: 126px; aspect-ratio: 200 / 140; background-image: var(--gx-planet-svg); animation-delay: -3s; }
html[data-theme="galaxia"] .inv-section--wishes::after { left: -18px; top: 44px; width: 58px; aspect-ratio: 1; background-image: var(--gx-mint-svg); animation-delay: -6s; }

/* lugares */
html[data-theme="galaxia"] .inv-event {
  background: radial-gradient(120% 60% at 50% 0%, rgba(255, 210, 63, .12), transparent 60%), linear-gradient(165deg, #2B418F, #1E2E6E 70%);
  border: 1.5px solid rgba(247, 247, 255, .16);
}
html[data-theme="galaxia"] .inv-event__icon {
  width: 68px; height: 68px; color: var(--gx-deep); background: var(--gx-star); border: 0;
  box-shadow: 0 0 0 7px rgba(255, 210, 63, .16), 0 0 34px rgba(255, 210, 63, .4);
}
html[data-theme="galaxia"] .inv-event.has-img .inv-event__icon { background: var(--gx-star); }
html[data-theme="galaxia"] .inv-event__name { font-weight: 600; }
html[data-theme="galaxia"] .inv-event__meta { color: var(--ink-soft); }
html[data-theme="galaxia"] .inv-event__meta .inv-icon { color: var(--gx-mint); }
html[data-theme="galaxia"] .inv-event__map { border: 2px solid rgba(247, 247, 255, .2); background: #16215A; }

/* itinerario: planetas en órbita */
html[data-theme="galaxia"] .inv-timeline::before {
  left: 26.5px; width: 3px;
  background: repeating-linear-gradient(180deg, rgba(247, 247, 255, .55) 0 3px, transparent 3px 11px);
}
html[data-theme="galaxia"] .inv-timeline__dot {
  --p: var(--gx-star);
  border: 0; color: var(--gx-deep);
  background: radial-gradient(circle at 32% 28%, rgba(255, 255, 255, .5), transparent 42%), var(--p);
  box-shadow: 0 0 0 6px var(--bg), inset -7px -9px 0 rgba(0, 0, 0, .16), 0 12px 22px -10px rgba(0, 0, 0, .7);
}
html[data-theme="galaxia"] .inv-section.is-alt .inv-timeline__dot { box-shadow: 0 0 0 6px var(--bg-alt), inset -7px -9px 0 rgba(0, 0, 0, .16), 0 12px 22px -10px rgba(0, 0, 0, .7); }
html[data-theme="galaxia"] .inv-timeline__item:nth-child(6n + 2) .inv-timeline__dot { --p: var(--gx-rocket); color: #fff; }
html[data-theme="galaxia"] .inv-timeline__item:nth-child(6n + 3) .inv-timeline__dot { --p: var(--gx-mint); }
html[data-theme="galaxia"] .inv-timeline__item:nth-child(6n + 4) .inv-timeline__dot { --p: var(--gx-lilac); }
html[data-theme="galaxia"] .inv-timeline__item:nth-child(6n + 5) .inv-timeline__dot { --p: #FF9F5A; }
html[data-theme="galaxia"] .inv-timeline__item:nth-child(6n) .inv-timeline__dot { --p: var(--gx-moon); }
html[data-theme="galaxia"] .inv-timeline__time { color: var(--gx-star); letter-spacing: .16em; }
html[data-theme="galaxia"] .inv-timeline__title { font-weight: 600; font-size: 1.32rem; }
html[data-theme="galaxia"] .inv-timeline__text { color: var(--ink-soft); }

/* código de vestimenta: traje espacial */
html[data-theme="galaxia"] .inv-dress {
  padding: 34px 22px 30px; border-radius: 28px;
  background: radial-gradient(120% 70% at 50% 0%, rgba(255, 210, 63, .15), transparent 60%), var(--surface);
  border: 2px dashed rgba(255, 210, 63, .42);
  box-shadow: var(--shadow);
}
html[data-theme="galaxia"] .inv-dress__icon { width: 70px; height: 70px; color: var(--gx-deep); background: var(--gx-star); border: 0; box-shadow: 0 0 0 7px rgba(255, 210, 63, .15); }
html[data-theme="galaxia"] .inv-dress__code {
  font-family: var(--font-script); font-size: clamp(1.45rem, 6.8vw, 1.9rem); line-height: 1.15;
  color: var(--gx-star); text-shadow: 0 3px 0 rgba(238, 66, 102, .75);
}
html[data-theme="galaxia"] .inv-dress__label { color: var(--gx-mint); }
html[data-theme="galaxia"] .inv-chip { background: rgba(13, 20, 56, .55); border-color: rgba(247, 247, 255, .18); color: var(--ink); }
html[data-theme="galaxia"] .inv-chip__swatch { box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .4), 0 2px 8px rgba(0, 0, 0, .35); }
html[data-theme="galaxia"] .inv-chip--avoid { color: var(--ink-soft); text-decoration-color: rgba(238, 66, 102, .8); }
html[data-theme="galaxia"] .inv-chip--avoid .inv-icon { color: var(--gx-rocket); }

/* galería: fotos pegadas en la bitácora */
html[data-theme="galaxia"] .inv-gallery__item { background: #2B3E8C var(--pattern); }
html[data-theme="galaxia"] .inv-gallery--polaroids { gap: 26px 14px; padding-top: 16px; }
html[data-theme="galaxia"] .inv-gallery--polaroids .inv-gallery__item {
  background: linear-gradient(135deg, #DDE2F7, #C9D0F2) 8px 8px / calc(100% - 16px) calc(100% - 52px) no-repeat, #F7F7FF;
  border-radius: 6px; padding: 8px 8px 44px;
  box-shadow: 0 20px 30px -14px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 255, 255, .6);
}
html[data-theme="galaxia"] .inv-gallery--polaroids .inv-gallery__item img { background: #DDE2F7; }
html[data-theme="galaxia"] .inv-gallery--polaroids .inv-gallery__item::before {
  content: ''; position: absolute; z-index: 2; top: -9px; left: 50%; width: 62px; height: 20px;
  transform: translateX(-50%) rotate(-5deg);
  background: repeating-linear-gradient(90deg, rgba(255, 210, 63, .92) 0 8px, rgba(255, 226, 122, .92) 8px 16px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
}
html[data-theme="galaxia"] .inv-gallery--polaroids .inv-gallery__item:nth-child(3n + 2)::before { background: repeating-linear-gradient(90deg, rgba(59, 206, 172, .9) 0 8px, rgba(120, 225, 200, .9) 8px 16px); transform: translateX(-50%) rotate(4deg); }
html[data-theme="galaxia"] .inv-gallery--polaroids .inv-gallery__item:nth-child(3n)::before { background: repeating-linear-gradient(90deg, rgba(238, 66, 102, .88) 0 8px, rgba(245, 120, 150, .88) 8px 16px); }
html[data-theme="galaxia"] .inv-gallery__cap {
  font-family: var(--font-display); font-weight: 600; font-size: .88rem; line-height: 1.15;
  color: var(--bg); bottom: 8px; min-height: 2.3em; letter-spacing: .01em;
  display: flex; align-items: center; justify-content: center;
  white-space: normal; text-wrap: balance;
}
html[data-theme="galaxia"] .inv-gallery__dots span.is-on { background: var(--gx-star); }

/* aviso para papás: bitácora de vuelo */
html[data-theme="galaxia"] .inv-note {
  padding: 24px 20px 24px 18px;
  background: linear-gradient(160deg, rgba(255, 210, 63, .16), rgba(255, 210, 63, .03) 60%), var(--surface);
  border: 2px solid rgba(255, 210, 63, .45);
  box-shadow: var(--shadow);
}
html[data-theme="galaxia"] .inv-note__icon { width: 50px; height: 50px; background: var(--gx-star); color: var(--gx-deep); box-shadow: 0 0 0 6px rgba(255, 210, 63, .14); }
html[data-theme="galaxia"] .inv-note__title { font-weight: 600; }
html[data-theme="galaxia"] .inv-note .inv-text { white-space: pre-line; color: var(--ink); opacity: .92; line-height: 1.6; }

/* muro de mensajes */
html[data-theme="galaxia"] .inv-wish { border-color: rgba(247, 247, 255, .14); }
html[data-theme="galaxia"] .inv-wish:nth-child(3n + 2) { background: color-mix(in srgb, var(--gx-mint) 14%, var(--surface)); }
html[data-theme="galaxia"] .inv-wish:nth-child(3n) { background: color-mix(in srgb, var(--gx-rocket) 12%, var(--surface)); }
html[data-theme="galaxia"] .inv-wish::before { color: var(--gx-star); opacity: .5; }
html[data-theme="galaxia"] .inv-wish__msg p { font-family: var(--font-body); font-weight: 500; font-size: 1.08rem; }
html[data-theme="galaxia"] .inv-wishes__spark,
html[data-theme="galaxia"] .inv-divider__spark,
html[data-theme="galaxia"] .inv-hero__art-spark { color: var(--gx-star); }

/* formularios sobre fondo oscuro */
html[data-theme="galaxia"] .inv-input { background: rgba(10, 15, 45, .55); border-color: rgba(247, 247, 255, .22); }
html[data-theme="galaxia"] .inv-input:focus { background: #142058; border-color: var(--gx-star); }
html[data-theme="galaxia"] .inv-field__label { color: var(--ink); }
html[data-theme="galaxia"] .inv-rsvp__face,
html[data-theme="galaxia"] .inv-stepper { background: rgba(10, 15, 45, .5); border-color: rgba(247, 247, 255, .2); }
html[data-theme="galaxia"] .inv-rsvp__radio:checked + .inv-rsvp__face { background: color-mix(in srgb, var(--gx-star) 12%, var(--surface)); }
html[data-theme="galaxia"] .inv-stepper__btn { background: var(--surface); border-color: rgba(255, 210, 63, .5); }
html[data-theme="galaxia"] .inv-rsvp__seats i { border-color: rgba(255, 210, 63, .7); }
html[data-theme="galaxia"] .inv-section.inv-rsvp {
  background-image: radial-gradient(90% 40% at 50% 0%, rgba(255, 210, 63, .14), transparent 70%), var(--gx-stars-b);
  background-size: auto, 100% 520px;
}
html[data-theme="galaxia"] .inv-rsvp__note { background: rgba(10, 15, 45, .5); }

/* pie */
html[data-theme="galaxia"] .inv-footer {
  background: radial-gradient(90% 60% at 50% 100%, rgba(59, 206, 172, .14), transparent 70%), linear-gradient(180deg, var(--bg-alt), var(--gx-deep));
}
html[data-theme="galaxia"] .inv-footer::before {
  content: ''; position: absolute; right: 9%; top: 26px; width: 54px; aspect-ratio: 1; pointer-events: none;
  background: var(--gx-moon-svg) center / contain no-repeat; opacity: .9;
  animation: gxBob 9s ease-in-out infinite;
}
html[data-theme="galaxia"] .inv-footer__orn { color: var(--gx-star); }
html[data-theme="galaxia"] .inv-footer__text {
  font-size: clamp(1.6rem, 7.6vw, 2.1rem); line-height: 1.12; color: var(--gx-star);
  text-shadow: 0 3px 0 var(--gx-rocket);
}
html[data-theme="galaxia"] .inv-footer__date { color: var(--ink-soft); }

/* barra de acciones */
html[data-theme="galaxia"] .inv-actionbar {
  background: rgba(18, 26, 66, .86);
  border-color: rgba(247, 247, 255, .16);
  box-shadow: 0 18px 40px -14px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .08);
}
html[data-theme="galaxia"] .inv-actionbar__btn:not(.is-primary) .inv-icon { color: var(--gx-mint); }

/* ============================================================
   INTRO «giftbox» — un regalo envuelto en papel de estrellas
   que levita en el espacio, junto a planetas y una luna.
   ============================================================ */
html[data-theme="galaxia"] .inv-intro--giftbox { background: var(--gx-deep); }
html[data-theme="galaxia"] .inv-intro--giftbox .inv-intro__bg {
  background-image:
    radial-gradient(48% 30% at 50% 50%, rgba(255, 210, 63, .2), transparent 70%),
    radial-gradient(70% 40% at 10% 16%, rgba(59, 206, 172, .22), transparent 70%),
    radial-gradient(70% 45% at 94% 88%, rgba(238, 66, 102, .28), transparent 70%),
    radial-gradient(120% 80% at 50% 45%, transparent 55%, rgba(4, 6, 24, .65) 100%),
    var(--gx-stars-b), var(--pattern), var(--pattern);
  background-size: auto, auto, auto, auto, 100% 360px, 300px, 470px;
  background-position: 0 0, 0 0, 0 0, 0 0, 0 0, 0 0, 140px 190px;
}
html[data-theme="galaxia"] .inv-intro--giftbox .inv-intro__bg::before {
  content: ''; position: absolute; inset: 0;
  background:
    var(--gx-planet-svg) left -62px bottom 15% / 196px auto no-repeat,
    var(--gx-moon-svg) right 9% top 12% / 56px auto no-repeat,
    var(--gx-mint-svg) right -16px bottom 31% / 60px auto no-repeat;
  animation: gxBob 9s ease-in-out infinite;
}
html[data-theme="galaxia"] .inv-intro--giftbox .inv-intro__bg::after {
  mix-blend-mode: normal; opacity: 1;
  background-image: var(--gx-stars-a);
  background-size: 100% 300px;
  animation: gxTwinkle 2.6s ease-in-out infinite alternate;
}
html[data-theme="galaxia"] .inv-intro--giftbox .inv-intro__eyebrow { color: var(--gx-mint); }
html[data-theme="galaxia"] .gift {
  --box: var(--gx-rocket);
  --rib: var(--gx-star);
  --rib-hi: #FFE88F;
  --rib-lo: #D49D00;
  --gx-wrap: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cpath d='M16 8c0 5.4 2.2 7.8 6.6 7.8-4.4 0-6.6 2.4-6.6 7.8 0-5.4-2.2-7.8-6.6-7.8 4.4 0 6.6-2.4 6.6-7.8z' fill='%23FFD23F'/%3E%3Cpath d='M42 32c0 3.6 1.4 5.2 4.4 5.2-3 0-4.4 1.6-4.4 5.2 0-3.6-1.4-5.2-4.4-5.2 3 0 4.4-1.6 4.4-5.2z' fill='%23F7F7FF'/%3E%3Ccircle cx='44' cy='12' r='1.8' fill='%23F7F7FF' fill-opacity='.85'/%3E%3Ccircle cx='12' cy='44' r='1.5' fill='%23FFD23F' fill-opacity='.85'/%3E%3C/svg%3E");
}
html[data-theme="galaxia"] .gift__rays {
  background: repeating-conic-gradient(from 0deg, rgba(255, 210, 63, .34) 0 5deg, transparent 5deg 15deg);
  opacity: .36;
}
html[data-theme="galaxia"] .gift__box::before { opacity: .95; background-image: var(--gx-wrap); background-size: 46px; }
html[data-theme="galaxia"] .gift__lid::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit; opacity: .9;
  background: var(--gx-wrap) 0 0 / 46px;
}
html[data-theme="galaxia"] .gift__mono {
  font-size: calc(var(--w) * .15); color: var(--bg);
  background: radial-gradient(circle at 40% 30%, #fff, #E4E8FA);
  text-shadow: 0 2px 0 rgba(238, 66, 102, .35);
}
html[data-theme="galaxia"] .gift__tag { color: var(--bg); background: linear-gradient(160deg, #fff, #E4E8FA); }
html[data-theme="galaxia"] .gift__tag-label { opacity: 1; color: #BE1F4A; /* cohete más profundo: AA en letra tan pequeña */ }
html[data-theme="galaxia"] .gift__tag-name { font-family: var(--font-display); font-weight: 600; font-size: calc(var(--w) * .078); line-height: 1.1; overflow-wrap: normal; }
/* sin piso en el espacio: el regalo levita sobre un halo */
html[data-theme="galaxia"] .gift__shadow {
  bottom: -10%; height: 13%;
  background: radial-gradient(closest-side, rgba(59, 206, 172, .55), rgba(59, 206, 172, .12) 60%, transparent);
}
html[data-theme="galaxia"] .inv-intro--giftbox .inv-intro__cta {
  background: var(--gx-star); color: var(--gx-deep); font-weight: 700;
  box-shadow: 0 4px 0 #C99700, 0 18px 30px -12px rgba(255, 210, 63, .6);
}
html[data-theme="galaxia"] .inv-intro--giftbox .inv-intro__cta:focus-visible { outline-color: var(--gx-star); }

/* ---------- intros alternativas (?intro=…) ----------
   «Papel» de sobre, pase, nubes y placa del telón en blanco lunar con tinta azul noche
   (variables del motor). */
html[data-theme="galaxia"] .inv-intro { --paper: #F7F7FF; --paper-2: #E4E8FA; --paper-3: #C3CAEC; --paper-ink: #1D2B64; }
html[data-theme="galaxia"] .cnf { --cloud: #F7F7FF; }
html[data-theme="galaxia"] .cnf__date { background: var(--gx-rocket); color: #fff; }
html[data-theme="galaxia"] .cnf__title { color: var(--bg); }
html[data-theme="galaxia"] .cur__plaque-in { color: var(--bg); background: radial-gradient(120% 90% at 50% 0%, #fff, transparent 60%), linear-gradient(160deg, #F7F7FF, #DDE2F7); }
/* título amarillo con sombra 3D también sobre foto (el motor usa --hero-ink en portadas con foto) */
html[data-theme="galaxia"] .inv-hero--photo:not(.inv-hero--noimg) .inv-hero__title.inv-title { color: var(--gx-star); }
