/* =========================================================
   Navidad de los Deseos · Chinoin — Panorámica 2.5D
   La escena vive en un único <canvas> WebGL; el HTML lleva
   tipografía, paneles, formulario, navegación y accesibilidad.
   ========================================================= */

/* Parisienne (Astigmatic, licencia SIL Open Font License) — incrustada para que funcione también con doble clic y sin internet */
@font-face { font-family: 'Parisienne'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(data:font/woff2;base64,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) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --green-950: #01140f;
  --green-900: #021f19;
  --green-800: #03291f;
  --green-700: #05382f;
  --green-600: #0a4a3d;
  --ivory: #faf7ef;
  --ivory-dim: #d3ddd4;
  --ivory-mute: #a9bbb0;
  --gold-100: #fff3d6;
  --gold-300: #f2d9a0;
  --gold-400: #e2c27f;
  --gold-500: #c9a25a;
  --line: #e2c27f33;
  --line-strong: #e2c27f66;
  --danger: #f0a58c;

  --gutter: clamp(20px, 5vw, 80px);
  --ease-out-expo: cubic-bezier(.19, 1, .22, 1);
  --ease-out-quart: cubic-bezier(.25, 1, .5, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  background: var(--green-950);
  color: var(--ivory);
  font: 400 16px/1.6 'DM Sans', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
  overscroll-behavior: none;
}
img { display: block; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
a { color: inherit; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.center { text-align: center; justify-content: center; }
:focus-visible { outline: 2px solid var(--gold-400); outline-offset: 4px; }
[tabindex="-1"]:focus { outline: none; }

/* ---------------------------------------------------------
   Escena
   --------------------------------------------------------- */
.scene { position: fixed; inset: 0; overflow: hidden; }
#gl, #fx { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
#fx { pointer-events: none; }
.scene-fallback {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 0% 50%;
  display: none;
  transition: object-position 2.4s var(--ease-in-out), filter 1.2s;
}
body.no-webgl #gl { display: none; }
body.no-webgl .scene-fallback { display: block; }
body.no-webgl[data-screen="gratitude"] .scene-fallback { object-position: 50% 50%; }
body.no-webgl:not([data-screen="welcome"]):not([data-screen="gratitude"]) .scene-fallback { object-position: 100% 50%; }
body.no-webgl.is-panel .scene-fallback { filter: brightness(.45); }

/* Sombra para legibilidad */
.shade {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, #01140fa6 0%, transparent 16%),
    linear-gradient(90deg, #01140fd6 0%, #01140f9e 24%, #01140f33 44%, transparent 60%),
    linear-gradient(0deg, #01140fb8 0%, transparent 20%);
  opacity: 0;
  transition: opacity 2s var(--ease-out-quart) .4s;
}
body.is-ready .shade { opacity: 1; }
body.is-panel .shade { opacity: .55; }

.grain {   /* el grano ahora se genera en el shader (más ligero) */
  display: none;
  position: absolute; inset: 0; pointer-events: none; opacity: .06;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------
   Header
   --------------------------------------------------------- */
.topbar {
  position: fixed; z-index: 30;
  top: clamp(16px, 3.4vh, 34px); left: var(--gutter); right: var(--gutter);
  display: flex; align-items: center; justify-content: space-between;
  opacity: 0; transform: translateY(-12px);
  transition: opacity 1.2s var(--ease-out-quart) .4s, transform 1.4s var(--ease-out-expo) .4s;
}
body.is-ready .topbar { opacity: 1; transform: none; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ivory); font: 400 15px 'Playfair Display', Georgia, serif; letter-spacing: .02em; }
.brand-star { color: var(--gold-400); transition: transform .6s var(--ease-out-expo); }
.brand:hover .brand-star { transform: rotate(45deg) scale(1.2); }
.tools { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 28px); }
.logo { height: clamp(15px, 1.7vw, 21px); width: auto; }
.icon-btn {
  width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%;
  border: 1px solid #e2c27f55; background: #021f19b3;
  transition: border-color .3s, background .3s, transform .3s var(--ease-out-quart);
}
.icon-btn:hover { border-color: var(--gold-400); background: var(--green-700); transform: scale(1.05); }
.eq { display: flex; align-items: flex-end; gap: 2px; height: 13px; }
.eq i { width: 2px; height: 13px; background: var(--gold-300); border-radius: 1px; transform: scaleY(.3); transform-origin: bottom; }
.icon-btn[aria-pressed="true"] .eq i { animation: eq 1s ease-in-out infinite; }
.icon-btn[aria-pressed="true"] .eq i:nth-child(2) { animation-delay: -.3s; }
.icon-btn[aria-pressed="true"] .eq i:nth-child(3) { animation-delay: -.6s; }
.icon-btn[aria-pressed="true"] .eq i:nth-child(4) { animation-delay: -.15s; }
@keyframes eq { 0%, 100% { transform: scaleY(.25); } 50% { transform: scaleY(1); } }

/* ---------------------------------------------------------
   Slides narrativos (columna izquierda)
   --------------------------------------------------------- */
.slides { position: fixed; inset: 0; z-index: 10; pointer-events: none; outline: none; }
.slide {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: center;
  padding: 110px var(--gutter) 120px calc(var(--gutter) + clamp(0px, 3vw, 60px));
  max-width: 980px;
  visibility: hidden;
  transition: visibility 0s linear .9s;
  --d: 1.1s;
}
.slide.is-active { visibility: visible; transition-delay: 0s; }
.slide.is-active .actions, .slide.is-active .panel, .slide.is-active .letter { pointer-events: auto; }
body.first-reveal .slide { --d: 1.6s; }
.slide-tree.is-late { --d: 3.3s; }   /* al enviar el deseo, el texto espera a que la estrella llegue */

.eyebrow { display: flex; align-items: center; gap: 16px; margin: 0 0 clamp(16px, 2.8vh, 28px); font-size: 12px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; color: var(--gold-400); }
.eyebrow-center { justify-content: center; text-align: center; }
.eyebrow-line { display: block; flex: none; width: 44px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold-400)); transform: scaleX(0); transform-origin: left; }
.slide .eyebrow-text { opacity: 0; transform: translate3d(-18px, 0, 0); }

.title { margin: 0 0 clamp(20px, 3.4vh, 34px); font: 400 clamp(36px, 4.6vw, 70px)/1.08 'Playfair Display', Georgia, serif; letter-spacing: -.02em; outline: none; }
.title-sm { font-size: clamp(34px, 3.9vw, 58px); }
.title .line { display: block; overflow: hidden; padding: .04em 0 .12em; margin-bottom: -.1em; }
.title .line-inner { display: inline-block; transform: translate3d(0, 115%, 0) rotate(4deg); transform-origin: 0 100%; opacity: 0; }

.intro { margin: 0 0 clamp(28px, 4.6vh, 46px); max-width: 440px; font-size: clamp(15px, 1.15vw, 18px); font-weight: 300; line-height: 1.75; color: var(--ivory-dim); }
.intro span { display: block; opacity: 0; transform: translate3d(0, 16px, 0); }
.intro span + span { margin-top: .6em; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; opacity: 0; transform: translate3d(0, 18px, 0); }
.rise { opacity: 0; transform: translate3d(0, 14px, 0); }

/* Salida */
.slide .eyebrow-line, .slide .eyebrow-text, .slide .line-inner, .slide .intro span, .slide .actions, .slide .rise {
  transition: opacity .6s var(--ease-out-quart), transform .8s var(--ease-in-out);
}
.slide.is-leaving .line-inner { transform: translate3d(0, -110%, 0); opacity: 0; }
.slide.is-leaving .intro span, .slide.is-leaving .actions, .slide.is-leaving .rise { transform: translate3d(0, -12px, 0); }

/* Entrada escalonada */
.slide.is-active .eyebrow-line { transform: none; transition: transform 1.4s var(--ease-out-expo) var(--d); }
.slide.is-active .eyebrow-text { opacity: 1; transform: none; transition: opacity 1.2s var(--ease-out-quart) calc(var(--d) + .15s), transform 1.6s var(--ease-out-expo) calc(var(--d) + .15s); }
.slide.is-active .line-inner { opacity: 1; transform: none; transition: transform 1.6s var(--ease-out-expo), opacity 1.2s var(--ease-out-quart); }
.slide.is-active .line:nth-child(1) .line-inner { transition-delay: calc(var(--d) + .3s); }
.slide.is-active .line:nth-child(2) .line-inner { transition-delay: calc(var(--d) + .45s); }
.slide.is-active .line:nth-child(3) .line-inner { transition-delay: calc(var(--d) + .6s); }
.slide.is-active .intro span { opacity: 1; transform: none; transition: opacity 1.3s var(--ease-out-quart), transform 1.5s var(--ease-out-expo); }
.slide.is-active .intro span:nth-child(1) { transition-delay: calc(var(--d) + .85s); }
.slide.is-active .intro span:nth-child(2) { transition-delay: calc(var(--d) + 1s); }
.slide.is-active .rise { opacity: 1; transform: none; transition: opacity 1.2s var(--ease-out-quart) calc(var(--d) + .8s + var(--i, 0) * .14s), transform 1.4s var(--ease-out-expo) calc(var(--d) + .8s + var(--i, 0) * .14s); }
.slide.is-active .actions { opacity: 1; transform: none; transition: opacity 1.2s var(--ease-out-quart) calc(var(--d) + 1.2s), transform 1.5s var(--ease-out-expo) calc(var(--d) + 1.2s); }

.shimmer {
  font-style: italic;
  background: linear-gradient(100deg, var(--gold-500) 0%, var(--gold-300) 30%, var(--gold-100) 45%, var(--gold-300) 60%, var(--gold-500) 100%);
  background-size: 250% 100%; background-position: 100% 0;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  padding-right: .08em;
  animation: shimmer 7s var(--ease-in-out) 4s infinite;
}
@keyframes shimmer { 0% { background-position: 100% 0; } 40%, 100% { background-position: -50% 0; } }

/* ---------------------------------------------------------
   Botones
   --------------------------------------------------------- */
.btn-gold {
  position: relative; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  padding: 17px 30px 17px 34px;
  border: 1px solid #f6e2b3; border-radius: 999px;
  background: linear-gradient(135deg, #f6e3b5 0%, #e2c27f 55%, #c9a25a 100%);
  color: var(--green-800); font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  box-shadow: 0 10px 30px -10px #e2b45a80, inset 0 1px 0 #ffffffaa;
  transition: transform .5s var(--ease-out-expo), box-shadow .5s var(--ease-out-expo), opacity .4s, filter .4s;
}
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 16px 40px -10px #e2b45ab0, inset 0 1px 0 #ffffffaa; }
.btn-gold:active { transform: translateY(0) scale(.98); }
.btn-gold:disabled { opacity: .35; filter: saturate(.4); cursor: default; transform: none; box-shadow: none; }
.btn-gold:focus-visible { outline: 2px solid var(--gold-300); outline-offset: 5px; }
.btn-block { width: 100%; }
.btn-arrow { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .5s var(--ease-out-expo); }
.btn-gold:hover .btn-arrow { transform: translateX(5px); }
.btn-star { font-size: 15px; transition: transform .6s var(--ease-out-expo); }
.btn-gold:hover .btn-star { transform: rotate(45deg) scale(1.15); }
.btn-shine { position: absolute; top: 0; left: 0; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, #ffffffb3, transparent); transform: translateX(-150%) skewX(-20deg); pointer-events: none; animation: shine 5s var(--ease-in-out) 5s infinite; }
.btn-gold:disabled .btn-shine { animation: none; }
@keyframes shine { 0% { transform: translateX(-150%) skewX(-20deg); } 30%, 100% { transform: translateX(350%) skewX(-20deg); } }

.btn-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 13px 24px; border: 1px solid var(--line-strong); border-radius: 999px;
  color: var(--gold-300); font-size: 12.5px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  background: #01140f40;
  transition: border-color .3s, background .3s, color .3s, transform .4s var(--ease-out-expo);
}
.btn-outline:hover { border-color: var(--gold-400); background: #e2c27f14; color: var(--gold-100); transform: translateY(-1px); }
.btn-ghost { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ivory-dim); padding: 8px 2px; border-bottom: 1px solid #e2c27f55; text-decoration: none; transition: color .3s, border-color .3s; }
.btn-ghost:hover { color: var(--gold-300); border-color: var(--gold-400); }

/* ---------------------------------------------------------
   Paneles (pasos con formulario o lectura)
   --------------------------------------------------------- */
.panel-slide {
  max-width: none; align-items: center;
  padding: clamp(84px, 12vh, 112px) var(--gutter) clamp(96px, 13vh, 120px);
  overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #e2c27f40 transparent;
  justify-content: safe center;
  --pd: .55s;
}
.panel-slide.is-active { pointer-events: auto; }
.panel {
  position: relative;
  width: min(640px, 100%);
  padding: clamp(28px, 3.6vw, 52px);
  border: 1px solid var(--line); border-radius: 28px;
  background: linear-gradient(180deg, #032a21f2 0%, #01140ff0 100%);
  box-shadow: 0 24px 48px -24px #000000c0, inset 0 1px 0 #ffffff12;
  will-change: transform;            /* capa propia: el hover de sus tarjetas no repinta la escena */
  contain: layout paint;
}
.panel::before { /* filo dorado superior */
  content: ""; position: absolute; left: 12%; right: 12%; top: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-400), transparent); opacity: .7;
}
.panel-wide { width: min(1080px, 100%); }
.panel-slide .panel, .panel-slide .letter {
  opacity: 0; transform: translate3d(0, 28px, 0) scale(.985);
  transition: opacity .5s var(--ease-out-quart), transform .7s var(--ease-in-out);
}
.panel-slide.is-active .panel, .panel-slide.is-active .letter {
  opacity: 1; transform: none;
  transition: opacity 1s var(--ease-out-quart) var(--pd), transform 1.4s var(--ease-out-expo) var(--pd);
}
.panel-slide.is-active .closing { transition-delay: calc(var(--pd) + .15s); }

.panel-star, .letter-star { display: block; text-align: center; color: var(--gold-400); font-size: 26px; line-height: 1; margin-bottom: 14px; animation: twinkle 3.2s ease-in-out infinite; }
@keyframes twinkle { 0%, 100% { opacity: .65; transform: scale(.9); } 50% { opacity: 1; transform: scale(1.1) rotate(45deg); } }
.panel-title { margin: 0 0 14px; font: 400 clamp(30px, 3.2vw, 46px)/1.1 'Playfair Display', Georgia, serif; letter-spacing: -.015em; outline: none; }
.panel-title em, .panel-subtitle em { font-style: italic; color: var(--gold-300); }
.panel-choose .panel-title, .dialog .panel-title { text-align: center; }
.panel-subtitle { margin: 0 0 8px; font: 400 clamp(22px, 2vw, 28px)/1.2 'Playfair Display', Georgia, serif; }
.panel-text { margin: 0 0 18px; font-size: 15px; font-weight: 300; line-height: 1.7; color: var(--ivory-dim); }
.badge { display: inline-block; margin: 0 0 16px; padding: 7px 16px; border: 1px solid var(--line); border-radius: 999px; font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-300); background: #e2c27f0d; }
.note { margin: 10px 0 0; font-size: 12.5px; color: var(--ivory-mute); line-height: 1.6; }
.pending { display: inline-block; margin: 2px 0 16px; padding: 6px 12px; border-radius: 8px; font-size: 12px; letter-spacing: .04em; color: var(--gold-300); background: #e2c27f12; border: 1px dashed #e2c27f44; }
.status-line { min-height: 1.2em; margin: 10px 0 0; font-size: 13px; color: var(--gold-300); }
.panel-actions { display: flex; justify-content: center; margin-top: 30px; }

/* --- Paso 4: elegir deseo --- */
.panel-choose { width: min(1040px, 100%); text-align: center; }
.choices { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin: 26px 0 0; padding: 0; border: 0; }
.choice { position: relative; cursor: pointer; }
.choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice-card {
  height: 100%; display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 26px 14px 22px; border: 1px solid var(--line); border-radius: 20px;
  background: linear-gradient(180deg, #ffffff08, #ffffff02);
  transition: border-color .3s, background-color .3s, transform .5s var(--ease-out-expo);
  will-change: transform;
}
.choice:hover .choice-card { border-color: var(--line-strong); transform: translateY(-3px); }
.choice-symbol { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; border: 1px solid var(--line); font-size: 22px; color: var(--gold-300); transition: background .3s, color .3s, border-color .3s, transform .5s var(--ease-out-expo); }
.choice-name { font: 400 20px/1.15 'Playfair Display', Georgia, serif; color: var(--ivory); }
.choice-desc { font-size: 12.5px; line-height: 1.5; color: var(--ivory-mute); }
.choice input:checked + .choice-card {
  border-color: var(--gold-400);
  background: linear-gradient(180deg, #e2c27f1f, #e2c27f08);
  box-shadow: inset 0 0 0 1px #e2c27f59;
}
.choice input:checked + .choice-card .choice-symbol { background: linear-gradient(135deg, #f6e3b5, #c9a25a); color: var(--green-800); border-color: transparent; transform: rotate(-8deg) scale(1.06); }
.choice input:focus-visible + .choice-card { outline: 2px solid var(--gold-400); outline-offset: 3px; }

/* --- Paso 5: escribir deseo --- */
.panel-compose { width: min(1000px, 100%); display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(28px, 4vw, 60px); align-items: start; }
.compose-head { padding-top: 6px; }
.compose-head .btn-ghost { margin-top: 6px; }
.wish-form { display: grid; gap: 16px; }
.row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.row-name { grid-template-columns: 150px 1fr; }
.field { display: grid; gap: 7px; min-width: 0; }
.field label { font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-400); }
.optional { color: var(--ivory-mute); letter-spacing: .06em; text-transform: none; font-weight: 400; }
.field input, .field textarea, .field select, .filter select {
  width: 100%; padding: 14px 16px; border: 1px solid #ffffff1f; border-radius: 14px;
  background: #00100bb0; color: var(--ivory); font: 400 15px/1.5 'DM Sans', sans-serif;
  transition: border-color .3s, background .3s, box-shadow .3s;
  -webkit-appearance: none; appearance: none;
}
.field textarea { resize: none; min-height: 104px; font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-size: 17px; }
.field input::placeholder, .field textarea::placeholder { color: #a9bbb080; }
.field input:hover, .field textarea:hover, .field select:hover { border-color: #e2c27f40; }
.field input:focus, .field textarea:focus, .field select:focus, .filter select:focus { outline: none; border-color: var(--gold-400); background: #021f19; box-shadow: 0 0 0 4px #e2c27f1a; }
.field.has-error input, .field.has-error textarea, .field.has-error select { border-color: var(--danger); }
.select-wrap { position: relative; }
.select-wrap::after { content: ""; position: absolute; right: 16px; top: 50%; width: 8px; height: 8px; border-right: 1.5px solid var(--gold-400); border-bottom: 1.5px solid var(--gold-400); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.select-wrap select { padding-right: 38px; cursor: pointer; }
select option { background: var(--green-900); color: var(--ivory); }
.field-foot { display: flex; justify-content: space-between; gap: 10px; }
.field-error { min-height: 0; font-size: 12px; color: var(--danger); }
#count { font-size: 11.5px; color: var(--ivory-mute); margin-left: auto; }
.consent { position: relative; display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 13px; line-height: 1.55; color: var(--ivory-dim); cursor: pointer; }
.consent input { position: absolute; opacity: 0; }
.consent-box { width: 22px; height: 22px; border: 1px solid var(--line-strong); border-radius: 7px; background: #00100bb0; display: grid; place-items: center; transition: background .3s, border-color .3s; }
.consent-box::after { content: "✓"; font-size: 13px; color: var(--green-800); opacity: 0; transform: scale(.4); transition: opacity .2s, transform .4s var(--ease-out-expo); }
.consent input:checked + .consent-box { background: linear-gradient(135deg, #f6e3b5, #c9a25a); border-color: transparent; }
.consent input:checked + .consent-box::after { opacity: 1; transform: none; }
.consent input:focus-visible + .consent-box { outline: 2px solid var(--gold-400); outline-offset: 3px; }
.wish-form .btn-gold { margin-top: 6px; }

/* --- Paso 6: árbol --- */
.tree-context { margin: 0 0 18px; max-width: 420px; font-size: clamp(15px, 1.1vw, 17px); font-weight: 300; color: var(--ivory-dim); }
.tree-quote {
  margin: 0 0 12px; max-width: 460px; padding: 4px 0 4px 22px; border-left: 1px solid var(--gold-400);
  font: italic 400 clamp(18px, 1.6vw, 23px)/1.5 'Playfair Display', Georgia, serif; color: var(--ivory);
}
.tree-quote::before { content: "“"; } .tree-quote::after { content: "”"; }
.tree-quote:empty { display: none; }
.tree-dedication { margin: 0 0 22px 22px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-300); }
.lighting-status { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-size: 14px; color: var(--ivory); }
.status-star { color: var(--gold-400); animation: spin 2.4s linear infinite; display: inline-block; }
body.tree-lit .status-star { animation: twinkle 3.2s ease-in-out infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.save-status { min-height: 1.3em; margin: 0 0 22px; font-size: 13px; color: var(--ivory-mute); }

.tree-overlay { position: fixed; z-index: 5; pointer-events: none; opacity: 0; transition: opacity 1s var(--ease-out-quart); left: var(--tx, 60%); top: var(--ty, 10%); width: var(--tw, 30%); height: var(--th, 70%); }
body.tree-lit[data-screen="tree"] .tree-overlay { opacity: 1; }
.tree-theme span { position: absolute; color: var(--gold-300); font-size: clamp(16px, 1.6vw, 24px); text-shadow: 0 0 18px #e2c27f; animation: float 5s ease-in-out infinite; animation-delay: calc(var(--i) * -1.6s); }
.tree-theme span:nth-child(1) { left: -6%; top: 34%; }
.tree-theme span:nth-child(2) { left: 50%; top: -9%; transform: translateX(-50%); font-size: clamp(12px, 1vw, 15px); }
.tree-theme span:nth-child(3) { right: -6%; top: 52%; }
@keyframes float { 0%, 100% { translate: 0 0; opacity: .7; } 50% { translate: 0 -10px; opacity: 1; } }
.tree-caption { position: absolute; left: 50%; bottom: -54px; transform: translateX(-50%); display: grid; justify-items: center; gap: 4px; white-space: nowrap; }
.tree-caption span:first-child { font-size: 11px; letter-spacing: .32em; color: var(--gold-400); }
.tree-caption span:last-child { font: italic 400 15px 'Playfair Display', Georgia, serif; color: var(--ivory-dim); }

/* --- Paso 7: gracias --- */
.thanks-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(20px, 3vw, 40px); width: min(1060px, 100%); align-items: center; }
.letter {
  position: relative; text-align: center;
  padding: clamp(36px, 4.6vw, 64px) clamp(26px, 4vw, 60px);
  border-radius: 6px;
  background:
    radial-gradient(120% 70% at 50% 0%, #0b4a3c 0%, transparent 60%),
    linear-gradient(180deg, #04342a, #02201a);
  box-shadow: 0 30px 60px -30px #000000d0, 0 0 0 1px #e2c27f55, inset 0 0 0 10px #02201a, inset 0 0 0 11px #e2c27f40;
  will-change: transform;
}
.letter-name { margin: 6px 0 14px; font: 400 clamp(30px, 3.2vw, 46px)/1.12 'Playfair Display', Georgia, serif; color: var(--ivory); outline: none; }
.letter-text { margin: 0; font-size: 15px; font-weight: 300; line-height: 1.7; color: var(--ivory-dim); }
.letter-quote { margin: 22px auto; max-width: 440px; font: italic 400 clamp(19px, 1.7vw, 24px)/1.5 'Playfair Display', Georgia, serif; color: var(--gold-100); }
.letter-quote::before { content: "“"; } .letter-quote::after { content: "”"; }
.divider { display: flex; align-items: center; gap: 14px; justify-content: center; margin: 0 auto 18px; width: 180px; color: var(--gold-400); font-size: 12px; }
.divider::before, .divider::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--gold-400)); }
.divider::after { transform: scaleX(-1); }
.letter-logo { height: 18px; width: auto; margin: 28px auto 0; opacity: .9; }
.closing { width: auto; }
.closing .btn-gold { margin-top: 4px; }
.closing-cause { margin: 26px 0 18px; padding-top: 24px; border-top: 1px solid var(--line); }

/* --- Paso 8: deseos --- */
.wishes-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.wish-total { display: grid; justify-items: end; padding: 14px 22px; border: 1px solid var(--line); border-radius: 18px; background: #e2c27f0a; }
.wish-total strong { font: 400 40px/1 'Playfair Display', Georgia, serif; color: var(--gold-300); }
.wish-total span { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ivory-mute); }
.wish-filters { display: flex; align-items: center; gap: 20px; margin: 18px 0 6px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.filter { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-400); }
.filter select { width: auto; padding: 9px 38px 9px 14px; font-size: 14px; border-radius: 999px; }
.wish-gallery { columns: 3 260px; column-gap: 16px; margin-top: 14px; }
.wish-entry {
  break-inside: avoid; margin: 0 0 16px; padding: 22px 22px 18px;
  border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(180deg, #ffffff09, #ffffff03);
  animation: rise-in .8s var(--ease-out-expo) both; animation-delay: calc(var(--i, 0) * 60ms);
}
@keyframes rise-in { from { opacity: 0; transform: translateY(14px); } }
.wish-category { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-400); }
.wish-entry blockquote { margin: 10px 0 14px; font: italic 400 18px/1.5 'Playfair Display', Georgia, serif; color: var(--ivory); overflow-wrap: anywhere; }
.wish-author { margin: 0; font-size: 14px; font-weight: 500; color: var(--ivory); }
.wish-context { margin: 2px 0 0; font-size: 12px; color: var(--ivory-mute); }
.wishes-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.wishes-footer-cause { display: flex; align-items: center; gap: 18px; max-width: 620px; }
.wishes-footer-cause p { margin: 0; font-size: 13px; color: var(--ivory-mute); line-height: 1.55; }
.wishes-footer-cause .btn-outline { flex: none; }

/* --- Paso 9: causas --- */
.panel-causes { text-align: center; }
.panel-causes .panel-title { text-align: center; }
.cause-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 30px 0 10px; text-align: left; }
.cause { position: relative; padding: 30px 28px 26px; border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(180deg, #ffffff0a, #ffffff02); display: flex; flex-direction: column; align-items: flex-start; }
.cause .eyebrow { font-size: 10.5px; margin-bottom: 10px; }
.cause-num { position: absolute; right: 24px; top: 20px; font: italic 400 34px/1 'Playfair Display', Georgia, serif; color: #e2c27f40; }
.cause-title { margin: 0 0 10px; font: 400 28px/1.15 'Playfair Display', Georgia, serif; }
.cause > .btn-outline, .cause-detail { margin-top: auto; }
.cause-detail { width: 100%; }
.cause-detail summary { list-style: none; cursor: pointer; }
.cause-detail summary::-webkit-details-marker { display: none; }
.cause-detail[open] summary { margin-bottom: 18px; }
.cause-more { display: grid; gap: 14px; justify-items: start; animation: rise-in .6s var(--ease-out-expo); }
.cause-more .panel-text { margin: 0; }
.cause-return { display: flex; justify-content: center; gap: 28px; margin-top: 22px; }

/* ---------------------------------------------------------
   Diálogos
   --------------------------------------------------------- */
.dialog {
  width: min(520px, calc(100vw - 32px)); max-height: calc(100svh - 40px); overflow: auto;
  padding: clamp(32px, 4vw, 48px); border: 1px solid var(--line); border-radius: 28px;
  background: linear-gradient(180deg, #04342ae8, #01140ff0); color: var(--ivory); text-align: center;
  box-shadow: 0 30px 70px -30px #000;
}
.dialog::backdrop { background: #000806b8; }
.dialog[open] { animation: dialog-in .8s var(--ease-out-expo); }
.dialog[open]::backdrop { animation: fade-in .6s ease; }
@keyframes dialog-in { from { opacity: 0; transform: translateY(24px) scale(.97); } }
@keyframes fade-in { from { opacity: 0; } }
.dialog-actions { display: grid; justify-items: center; gap: 14px; margin-top: 24px; }
.dialog-close { position: absolute; top: 16px; right: 18px; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); font-size: 20px; line-height: 1; color: var(--gold-300); transition: background .3s, border-color .3s; }
.dialog-close:hover { background: #e2c27f14; border-color: var(--gold-400); }
.dialog .pending { display: block; }
.share-preview { width: 150px; aspect-ratio: 4 / 5; height: auto; margin: 6px auto 0; border-radius: 8px; box-shadow: 0 20px 50px -20px #000, 0 0 0 1px var(--line); object-fit: cover; background: var(--green-900); }
.share-preview:not([src]) { visibility: hidden; height: 0; margin: 0; }

/* ---------------------------------------------------------
   Navegación
   --------------------------------------------------------- */
.progress { position: fixed; z-index: 20; left: var(--gutter); bottom: clamp(22px, 4vh, 40px); display: grid; gap: 12px; opacity: 0; transition: opacity 1.2s var(--ease-out-quart) .8s; }
body.is-ready.is-started .progress, body.is-ready.is-started .arrows { opacity: 1; }
.progress-label { margin: 0; display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--ivory-dim); }
#step-num { color: var(--gold-400); font-weight: 500; }
.progress-sep { width: 22px; height: 1px; background: var(--line-strong); }
.progress-track { display: flex; gap: 6px; }
.progress-track button { position: relative; width: clamp(18px, 2.6vw, 36px); height: 14px; }
.progress-track button::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; border-radius: 2px; background: #ffffff26; transition: background .4s, transform .4s var(--ease-out-expo); }
.progress-track button:hover::before { background: #e2c27f80; }
.progress-track button.is-done::before { background: #e2c27f73; }
.progress-track button[aria-current="step"]::before { background: var(--gold-400); transform: scaleY(1.6); box-shadow: 0 0 10px #e2c27f80; }
.progress-track button .tip { position: absolute; bottom: 22px; left: 50%; transform: translate(-50%, 4px); padding: 6px 10px; border-radius: 8px; background: var(--green-900); border: 1px solid var(--line); font-size: 11px; letter-spacing: .06em; white-space: nowrap; color: var(--ivory); opacity: 0; pointer-events: none; transition: opacity .25s, transform .35s var(--ease-out-expo); }
.progress-track button:hover .tip, .progress-track button:focus-visible .tip { opacity: 1; transform: translate(-50%, 0); }

.arrows { position: fixed; z-index: 20; right: var(--gutter); bottom: clamp(18px, 4vh, 36px); display: flex; gap: 10px; opacity: 0; transition: opacity 1.2s var(--ease-out-quart) .8s; }
.arrow { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid #e2c27f55; background: #01140fc7; transition: border-color .3s, background .3s, opacity .3s, transform .4s var(--ease-out-expo); }
.arrow:hover { border-color: var(--gold-400); background: var(--green-700); transform: scale(1.06); }
.arrow:disabled { opacity: .25; pointer-events: none; }
.arrow svg { width: 18px; height: 18px; fill: none; stroke: var(--gold-300); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.wish-hint {
  position: fixed; z-index: 20; left: 50%; bottom: clamp(26px, 4.4vh, 44px);
  margin: 0; display: flex; align-items: center; gap: 10px;
  padding: 10px 18px 10px 14px; border: 1px solid #e2c27f40; border-radius: 999px;
  background: #01140fe0;
  color: var(--ivory-dim); font-size: 12px; letter-spacing: .04em; white-space: nowrap;
  opacity: 0; transform: translate3d(-50%, 10px, 0);
  transition: opacity 1s var(--ease-out-quart), transform 1.2s var(--ease-out-expo);
  pointer-events: none;
}
.wish-hint-star { color: var(--gold-400); display: inline-block; animation: hint-star 2.4s ease-in-out infinite; }
@keyframes hint-star { 0%, 100% { transform: scale(.8); opacity: .6; } 50% { transform: scale(1.2) rotate(45deg); opacity: 1; } }
body.hint-on .wish-hint { opacity: 1; transform: translate3d(-50%, 0, 0); }

/* ---------------------------------------------------------
   Árbol 3D de deseos
   --------------------------------------------------------- */
#tree3d { position: fixed; inset: 0; z-index: 8; width: 100%; height: 100%; display: block; pointer-events: none; touch-action: none; }
body[data-screen="tree"] #tree3d { pointer-events: auto; cursor: grab; }
body[data-screen="tree"] #tree3d.is-dragging { cursor: grabbing; }
body[data-screen="tree"] #tree3d.is-over { cursor: pointer; }
.btn-gold:disabled .btn-star { opacity: .5; }

.tree-tip {
  position: fixed; z-index: 24; left: 0; top: 0; pointer-events: none;
  padding: 7px 12px; border-radius: 10px; border: 1px solid var(--line);
  background: #01140fe0;
  font-size: 12px; letter-spacing: .04em; color: var(--ivory); white-space: nowrap;
  transform: translate(-50%, calc(-100% - 16px));
}
.tree-tip b { font-weight: 500; color: var(--gold-300); }
.own-label {
  position: fixed; z-index: 9; left: 0; top: 0; pointer-events: none;
  padding: 5px 11px; border-radius: 999px; border: 1px solid #e2c27f80;
  background: #01140fcc; color: var(--gold-300); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; white-space: nowrap;
  transform: translate(-50%, calc(-100% - 18px));
  transition: opacity .4s;
}
.own-label::after { content: ""; position: absolute; left: 50%; top: 100%; width: 1px; height: 12px; background: linear-gradient(#e2c27f80, transparent); }

/* Modo exploración */
.tree-hud { position: fixed; inset: 0; z-index: 25; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity .8s var(--ease-out-quart), visibility 0s linear .8s; }
body.tree-explore .tree-hud { opacity: 1; visibility: visible; transition-delay: .25s, 0s; }
.tree-hud > * { pointer-events: auto; }
.hud-top { position: absolute; left: var(--gutter); top: clamp(84px, 13vh, 120px); max-width: 360px; }
.hud-top .eyebrow { margin-bottom: 14px; }
.hud-top .eyebrow-line { transform: none; }
.hud-title { margin: 0 0 20px; font: 400 clamp(28px, 2.8vw, 42px)/1.12 'Playfair Display', Georgia, serif; }
.hud-title em { color: var(--gold-300); }
#hud-count { color: var(--gold-300); }
.hud-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: #01140f99; font-size: 12px; letter-spacing: .04em; color: var(--ivory-dim); transition: border-color .3s, background .3s, color .3s; }
.chip:hover { border-color: var(--line-strong); color: var(--ivory); }
.chip.is-on { background: linear-gradient(135deg, #f6e3b5, #c9a25a); color: var(--green-800); border-color: transparent; font-weight: 500; }
.hud-demo { margin: 16px 0 0; display: inline-block; padding: 5px 10px; border-radius: 8px; border: 1px dashed #e2c27f44; font-size: 11px; color: var(--gold-300); background: #e2c27f0d; }
.hud-bottom { position: absolute; left: 50%; bottom: clamp(20px, 4vh, 38px); transform: translateX(-50%); display: flex; align-items: center; gap: 18px; padding: 10px 12px 10px 14px; border-radius: 999px; border: 1px solid var(--line); background: #01140fed; box-shadow: 0 30px 60px -30px #000; white-space: nowrap; }
.hud-bottom .btn-outline { padding: 10px 18px; }
.hud-bottom .btn-ghost { border: 0; padding: 8px 10px; }
.exit-x { display: none; }
.hud-nav { display: flex; align-items: center; gap: 10px; }
.hud-nav .arrow { width: 40px; height: 40px; }
.hud-pos { min-width: 116px; text-align: center; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--ivory-dim); }
.hud-hint { position: absolute; right: var(--gutter); top: clamp(84px, 13vh, 120px); margin: 0; max-width: 220px; text-align: right; font-size: 12px; line-height: 1.7; color: var(--ivory-mute); pointer-events: none !important; transition: opacity .6s; }
body.tree-explore.card-open .hud-hint { opacity: 0; }

body.tree-explore .slides,
body.tree-explore .progress,
body.tree-explore .arrows,
body.tree-explore .tree-overlay { opacity: 0 !important; visibility: hidden; pointer-events: none !important; transition: opacity .5s, visibility 0s linear .5s; }
body.tree-explore .shade { opacity: .35; }

.wish-card {
  position: fixed; z-index: 26; right: var(--gutter); top: 50%;
  width: min(380px, calc(100vw - 32px));
  padding: 34px 30px 22px; border-radius: 24px; border: 1px solid var(--line);
  background: linear-gradient(180deg, #04342af7, #01140ffa);
  box-shadow: 0 24px 50px -24px #000, inset 0 1px 0 #ffffff12;
  will-change: transform;
  transform: translate(0, -50%);
  animation: card-in .7s var(--ease-out-expo);
}
.wish-card::before { content: ""; position: absolute; left: 14%; right: 14%; top: -1px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold-400), transparent); }
@keyframes card-in { from { opacity: 0; transform: translate(24px, -50%); } }
.wish-card.is-swap .card-msg, .wish-card.is-swap .card-name, .wish-card.is-swap .card-ctx, .wish-card.is-swap .card-cat { animation: rise-in .6s var(--ease-out-expo); }
.card-own { display: inline-block; margin: 0 0 12px; padding: 5px 12px; border-radius: 999px; background: linear-gradient(135deg, #f6e3b5, #c9a25a); color: var(--green-800); font-size: 10.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.card-cat { margin: 0 0 10px; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--gold-400); }
.card-msg { margin: 0 0 18px; font: italic 400 clamp(20px, 1.7vw, 24px)/1.45 'Playfair Display', Georgia, serif; color: var(--ivory); overflow-wrap: anywhere; }
.card-msg::before { content: "“"; } .card-msg::after { content: "”"; }
.card-name { margin: 0; font-size: 15px; font-weight: 500; }
.card-ctx { margin: 2px 0 0; font-size: 12.5px; color: var(--ivory-mute); }
.card-nav { display: flex; align-items: center; justify-content: space-between; margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 12px; letter-spacing: .12em; color: var(--ivory-dim); }
.card-nav .arrow { width: 38px; height: 38px; }

.btn-tree { padding: 9px 16px; margin-left: auto; }
.closing-links { display: grid; justify-items: start; gap: 6px; }

/* Desvanece el contenido que se desplaza bajo la navegación inferior */
body.is-started.is-panel::after {
  content: ""; position: fixed; z-index: 15; left: 0; right: 0; bottom: 0; height: clamp(90px, 13vh, 120px); pointer-events: none;
  background: linear-gradient(180deg, transparent, #01140fd9 55%, #01140f);
}
@media (max-height: 820px) and (min-width: 821px) {
  .panel { padding: 30px 36px; }
  .panel-title { font-size: clamp(28px, 2.8vw, 40px); }
  .choices { margin-top: 18px; }
  .choice-card { padding: 20px 12px 16px; }
  .wish-filters { margin-top: 12px; }
}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */
@media (max-width: 1180px) {
  .wish-hint { bottom: auto; top: clamp(70px, 10vh, 96px); }
  .choices { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .panel-compose { grid-template-columns: 1fr; gap: 18px; }
  .thanks-layout { grid-template-columns: 1fr; }
  .cause-grid { grid-template-columns: 1fr; }
  .wishes-footer-cause { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 820px), (orientation: portrait) {
  .shade {
    background:
      linear-gradient(180deg, #01140ff2 0%, #01140fcc 30%, #01140f55 52%, transparent 66%),
      linear-gradient(0deg, #01140fd0 0%, transparent 22%);
  }
  .slide { justify-content: flex-start; padding: clamp(92px, 13vh, 130px) var(--gutter) 130px; overflow-y: auto; }
  .slide.is-active { pointer-events: auto; }
  .title { font-size: clamp(32px, 8.6vw, 52px); }
  .title-sm { font-size: clamp(28px, 7.4vw, 44px); }
  .intro { font-size: 15px; line-height: 1.6; }
  .slide-tree { padding-top: calc(var(--tree-bottom, 48vh) + 64px); }
  body[data-screen="tree"] .shade { background: linear-gradient(0deg, #01140ff5 0%, #01140fd0 45%, #01140f40 60%, transparent 75%); }
  .progress-label #step-name { display: none; }
  .slide-tree.is-active { pointer-events: none; }
  .slide-tree.is-active > * { pointer-events: auto; }
  .hud-top { top: 74px; left: 16px; right: 16px; max-width: none; }
  .hud-title { font-size: 22px; margin-bottom: 10px; }
  .hud-title br { display: none; }
  .hud-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; margin-right: -16px; scrollbar-width: none; }
  .hud-filters::-webkit-scrollbar { display: none; }
  .chip { flex: none; }
  .hud-hint { top: auto; right: 0; left: 0; bottom: 92px; max-width: none; text-align: center; font-size: 11px; }
  .hint-zoom { display: none; }
  .hud-bottom { left: 12px; right: 12px; transform: none; justify-content: space-between; gap: 6px; padding: 8px; }
  .hud-bottom .btn-outline { padding: 9px 12px; font-size: 11px; letter-spacing: .08em; }
  .hud-pos { min-width: 0; font-size: 10.5px; }
  .hud-pos, .exit-label { display: none; }
  .exit-x { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); font-size: 20px; color: var(--gold-300); }
  .hud-bottom .hud-exit { padding: 0; }
  .tree-hud::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 250px; background: linear-gradient(180deg, #01140ff0 30%, transparent); pointer-events: none; }
  .tree-hud > .hud-top { z-index: 1; }
  .wish-card { left: 12px; right: 12px; top: auto; bottom: 86px; width: auto; transform: none; padding: 26px 22px 16px; animation-name: card-up; }
  @keyframes card-up { from { opacity: 0; transform: translateY(24px); } }
  .card-msg { font-size: 19px; }
  body.is-started::after { /* desvanece el contenido que se desplaza bajo la navegación */
    content: ""; position: fixed; z-index: 15; left: 0; right: 0; bottom: 0; height: 118px; pointer-events: none;
    background: linear-gradient(180deg, transparent, #01140fe6 55%, #01140f);
  }
  .wish-hint { top: auto; bottom: 96px; }
}
@media (max-width: 560px) {
  .brand-text { font-size: 12px; }
  .tools { gap: 12px; }
  .logo { height: 13px; }
  .icon-btn { width: 36px; height: 36px; }
  .btn-gold { padding: 15px 22px 15px 26px; font-size: 13px; }
  .arrow { width: 42px; height: 42px; }
  .wish-hint { font-size: 11px; }
  .panel { border-radius: 22px; }
  .panel-slide { padding-left: 14px; padding-right: 14px; }
  .choices { grid-template-columns: 1fr 1fr; gap: 10px; }
  .choice:last-child { grid-column: 1 / -1; }
  .choice-card { padding: 18px 10px 16px; }
  .choice-desc { display: none; }
  .row, .row-name { grid-template-columns: 1fr; }
  .row-name { grid-template-columns: 136px 1fr; }
  .row-name .select-wrap select { padding-right: 30px; }
  .wish-total { justify-items: start; }
  .progress-track button { width: 16px; }
  .cause-return { flex-direction: column; align-items: center; gap: 12px; }
}
@media (max-height: 560px) and (orientation: landscape) {
  .slide { padding-top: 76px; padding-bottom: 70px; overflow-y: auto; }
  .title { font-size: clamp(26px, 4vw, 40px); }
  .intro { margin-bottom: 18px; }
  .wish-hint { display: none; }
}

/* ---------------------------------------------------------
   Compartir en redes
   --------------------------------------------------------- */
.share-ico { width: 17px; height: 17px; fill: none; stroke: var(--gold-300); stroke-width: 1.6; stroke-linecap: round; }
.share-ico circle { fill: none; }
.dialog-share { width: min(560px, calc(100vw - 24px)); }
.share-tabs { display: inline-flex; gap: 4px; margin: 2px auto 16px; padding: 4px; border-radius: 999px; border: 1px solid var(--line); background: #00100b99; }
.share-tabs button { padding: 8px 16px; border-radius: 999px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ivory-dim); transition: background .3s, color .3s; }
.share-tabs button[aria-selected="true"] { background: linear-gradient(135deg, #f6e3b5, #c9a25a); color: var(--green-800); font-weight: 600; }
.share-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 8px; margin: 18px 0 4px; }
.share-btn { width: 84px; display: grid; justify-items: center; gap: 7px; text-decoration: none; color: var(--ivory-dim); font-size: 11.5px; letter-spacing: .03em; }
.share-ic { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); color: var(--gold-300); background: #00100b80; transition: background .3s, color .3s, border-color .3s, transform .4s var(--ease-out-expo); }
.share-ic svg { width: 22px; height: 22px; }
.share-btn:hover .share-ic, .share-btn:focus-visible .share-ic { background: linear-gradient(135deg, #f6e3b5, #c9a25a); color: var(--green-800); border-color: transparent; transform: translateY(-2px); }
.share-btn:hover { color: var(--ivory); }
.share-btn:focus-visible { outline: none; }
.dialog-share .share-preview { width: 132px; margin-top: 2px; }
.dialog-share .dialog-actions { margin-top: 18px; }

/* Compartir justo debajo del deseo (paso del árbol) */
.tree-share { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 var(--space-3, 22px) 22px; }
.btn-share {
  display: inline-flex; align-items: center; gap: 10px; padding: 11px 20px 11px 16px;
  border-radius: 999px; border: 1px solid #e2c27f80; background: #e2c27f14; color: var(--gold-100);
  font-size: 12.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase;
  transition: background .3s, border-color .3s, transform .4s var(--ease-out-expo);
}
.btn-share .share-ico { width: 16px; height: 16px; }
.btn-share:hover { background: linear-gradient(135deg, #f6e3b5, #c9a25a); color: var(--green-800); border-color: transparent; transform: translateY(-1px); }
.btn-share:hover .share-ico { stroke: var(--green-800); }
.quick-share { display: flex; gap: 8px; }
.quick { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); color: var(--gold-300); background: #00100b80; transition: background .3s, color .3s, border-color .3s, transform .4s var(--ease-out-expo); }
.quick svg { width: 18px; height: 18px; }
.quick:hover, .quick:focus-visible { background: linear-gradient(135deg, #f6e3b5, #c9a25a); color: var(--green-800); border-color: transparent; transform: translateY(-2px); }
.tree-share-status { flex-basis: 100%; margin: 0; min-height: 0; font-size: 12.5px; color: var(--gold-300); }
.tree-share-status:empty { display: none; }
.share-grid .share-btn { width: 92px; }
@media (max-width: 560px) {
  .share-grid .share-btn { width: 70px; }
  .share-grid { gap: 12px 6px; }
  .tree-share { margin-left: 0; }
}

/* Deseo propio (aunque no se haya compartido) */
.wish-entry.is-mine { border-color: #e2c27f80; background: linear-gradient(180deg, #e2c27f17, #e2c27f05); }
.mine-badge { display: inline-block; margin: 0 0 10px; padding: 4px 10px; border-radius: 999px; background: linear-gradient(135deg, #f6e3b5, #c9a25a); color: var(--green-800); font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.wish-entry.is-mine .wish-category { display: block; }
.card-private { margin: -4px 0 12px; font-size: 12px; color: var(--ivory-mute); font-style: italic; }

@media (max-height: 820px), (max-width: 560px) {
  .dialog-share { padding: 24px 20px 20px; }
  .dialog-share .panel-star { margin-bottom: 6px; font-size: 22px; }
  .dialog-share .panel-title { font-size: 30px; margin-bottom: 10px; }
  .dialog-share .share-tabs { margin-bottom: 10px; }
  .dialog-share .panel-text { margin-bottom: 10px; }
  .dialog-share .share-preview { width: 92px; }
  .dialog-share .share-grid { margin-top: 12px; gap: 10px 6px; }
  .dialog-share .share-ic { width: 46px; height: 46px; }
  .dialog-share .dialog-actions { margin-top: 12px; }
}
@media (max-width: 560px) {
  .share-btn { width: 72px; font-size: 11px; }
  .share-ic { width: 48px; height: 48px; }
  .tools { gap: 10px; }
}

/* =========================================================
   MAQUETACIÓN — ejes, centrado, justificado y ritmo vertical
   (va al final para tener la última palabra)
   ========================================================= */
:root {
  --safe-top: clamp(84px, 12.5vh, 124px);      /* espacio bajo el encabezado */
  --safe-bottom: clamp(100px, 14vh, 136px);    /* espacio sobre la navegación inferior */
  --space-1: clamp(8px, 1.1vh, 12px);
  --space-2: clamp(12px, 1.9vh, 20px);
  --space-3: clamp(18px, 2.9vh, 32px);
  --space-4: clamp(26px, 4.2vh, 46px);
}

/* Un solo eje izquierdo: encabezado, texto de cada paso, navegación y panel del árbol comparten el margen */
.slide { padding: var(--safe-top) var(--gutter) var(--safe-bottom); max-width: calc(var(--gutter) * 2 + 860px); }
.panel-slide { padding: var(--safe-top) var(--gutter) var(--safe-bottom); max-width: none; }

/* Ritmo vertical de los pasos narrativos */
.eyebrow { margin-bottom: var(--space-3); font-size: clamp(11px, .78vw, 13px); }
.title { margin-bottom: var(--space-3); }
.intro { margin-bottom: var(--space-4); max-width: clamp(400px, 31vw, 560px); }
.intro span + span { margin-top: var(--space-1); }
.tree-context { margin-bottom: var(--space-2); }
.tree-quote { margin-bottom: var(--space-1); }
.tree-dedication { margin-bottom: var(--space-3); }
.save-status { margin-bottom: var(--space-3); }

/* Párrafos justificados (bloques parejos, con división silábica en español) */
.intro span, .tree-context, .compose-head .panel-text, .closing .panel-text, .cause .panel-text,
.cause-more .panel-text, .wishes-head .panel-text, .wishes-footer-cause p, .consent > span:last-child {
  text-align: justify; text-justify: inter-word;
  -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 7 3 3;
  text-wrap: pretty;
}
/* Títulos y textos centrados: renglones equilibrados (sin palabras sueltas) */
.panel-title, .panel-subtitle, .letter-name, .hud-title, .cause-title, .card-msg, .letter-quote, .letter-text,
.panel-choose .panel-text, .dialog .panel-text, .panel-text.center, .choice-desc, .note, .pending { text-wrap: balance; }
.tree-quote, .wish-entry blockquote { text-wrap: pretty; }

/* Paso 4 · elegir deseo */
.panel-choose .eyebrow { margin-bottom: var(--space-1); }
.panel-choose .panel-title { margin-bottom: 0; }
.choices { margin-top: var(--space-3); }
.choice-card { justify-content: flex-start; }
.panel-actions { margin-top: var(--space-3); }

/* Paso 5 · escribir deseo: encabezado centrado verticalmente frente al formulario */
.panel-compose { align-items: center; }
.compose-head .badge { margin-bottom: var(--space-2); }

/* Paso 7 · gracias: carta y acciones con la misma altura y contenido centrado */
.thanks-layout { align-items: stretch; }
.letter, .closing { display: flex; flex-direction: column; justify-content: center; }
.closing-cause { margin: var(--space-3) 0 var(--space-2); padding-top: var(--space-3); }

/* Paso 8 · deseos */
.wish-filters { flex-wrap: wrap; row-gap: 10px; margin: var(--space-2) 0 4px; }

/* Paso 9 · causas: compacto para que todo quepa en pantalla */
.panel-causes .badge { margin-bottom: var(--space-2); }
.panel-causes .panel-title { margin-bottom: var(--space-1); }
.cause-grid { margin: var(--space-3) 0 var(--space-2); }
.cause { padding: clamp(20px, 3vh, 30px) clamp(20px, 2vw, 28px) clamp(18px, 2.6vh, 26px); }
.cause .eyebrow { margin-bottom: var(--space-1); }
.cause-title { margin-bottom: var(--space-1); }
.cause-return { margin-top: var(--space-2); }

/* Pantallas bajas (laptops 768 px): paneles más compactos */
@media (max-height: 820px) and (min-width: 821px) {
  .letter { padding: 28px 40px; }
  .letter-quote { margin: 14px auto; }
  .letter-logo { margin-top: 16px; }
  .letter-name { margin-bottom: 8px; }
  .panel-causes .panel-text { margin-bottom: 0; }
}

/* Pantallas grandes (1080p o más): paneles a escala para que no se vean pequeños */
@media (min-width: 1680px) and (min-height: 940px) {
  .panel-slide > .panel, .panel-slide > .thanks-layout, .dialog, .wish-card, .hud-top, .hud-bottom { zoom: 1.14; }
}

/* Celular / vertical */
@media (max-width: 820px), (orientation: portrait) {
  .slide { padding: clamp(92px, 13vh, 130px) var(--gutter) 132px; }
  .panel-slide { padding: clamp(84px, 11vh, 110px) var(--gutter) 132px; }
  .slide-tree { padding-top: calc(var(--tree-bottom, 48vh) + 64px); }
  .eyebrow { font-size: 11px; letter-spacing: .22em; }
  .panel-compose { align-items: start; }
  .thanks-layout { align-items: start; }
}
@media (max-width: 560px) {
  .panel-slide { padding-left: 14px; padding-right: 14px; }
  .badge { letter-spacing: .14em; }
  .btn-tree { margin-left: 0; width: 100%; justify-content: center; }
  .wish-filters { gap: 12px 16px; }
  .filter select { width: 150px; }
  .intro { max-width: none; }
}
@media (max-height: 560px) and (orientation: landscape) {
  .slide { padding-top: 76px; padding-bottom: 70px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; }
}

/* =========================================================
   TIPOGRAFÍA ANIMADA (revisión 2)
   Letras con serifa: aparecen una a una. Cursiva: caligrafía dorada escrita a mano.
   --base: inicio del título · --t: retraso de cada letra/palabra · --dur: duración del trazo
   ========================================================= */
.title.fx { --base: calc(var(--d) + .25s); text-shadow: 0 2px 22px #01140fcc, 0 1px 3px #01140f99; }
.panel-title.fx { --base: calc(var(--pd, .2s) + .3s); }
.dialog .panel-title.fx { --base: .25s; }
.letter-name.fx { --base: calc(var(--pd, .2s) + .45s); }
.title.fx .line { overflow: visible; }
.title.fx .line-inner, .slide.is-active .title.fx .line-inner, .slide.is-leaving .title.fx .line-inner { opacity: 1; transform: none; transition: none; }
.fx .fxw { display: inline-block; white-space: nowrap; }
.fx .ch { display: inline-block; opacity: 0; }
:is(.is-active, .is-leaving, dialog[open]) .fx .ch { animation: ch-in 1.1s var(--ease-out-expo) calc(var(--base) + var(--t)) both; }
@keyframes ch-in {
  0% { opacity: 0; transform: translate3d(0, .38em, 0) rotate(7deg); filter: blur(7px); }
  55% { filter: blur(0); }
  100% { opacity: 1; transform: none; filter: none; }
}

/* Caligrafía */
.script {
  font-family: 'Parisienne', 'Segoe Script', 'Brush Script MT', cursive;
  font-style: normal; font-weight: 400;
  font-size: 1.3em; line-height: .95; letter-spacing: 0;
  -webkit-text-fill-color: initial; background: none; animation: none; padding: 0;
}
.letter-name.script { font-size: clamp(34px, 3.4vw, 50px); line-height: 1.15; }
.ink { position: relative; display: inline-block; }
.ink-t {
  display: inline-block;
  padding: .22em .34em .3em .16em; margin: -.22em -.34em -.3em -.16em;   /* espacio para los rasgos de la letra */
  background: linear-gradient(100deg, #e4c37e 0%, #f7e2b0 26%, #fffaf0 40%, #f7e2b0 54%, #ecd093 76%, #e4c37e 100%);
  background-size: 260% 100%; background-position: 100% 0;
  text-shadow: none;
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
  -webkit-mask-image: linear-gradient(90deg, #000 44%, transparent 56%); mask-image: linear-gradient(90deg, #000 44%, transparent 56%);
  -webkit-mask-size: 230% 100%; mask-size: 230% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: 100% 0; mask-position: 100% 0;
  filter: drop-shadow(0 2px 10px #01140fcc) drop-shadow(0 0 18px #e2b45a55);
}
:is(.is-active, .is-leaving, dialog[open]) .ink-t {
  animation: ink-write var(--dur) cubic-bezier(.42, 0, .58, 1) calc(var(--base) + var(--t)) both,
             ink-shine 7s var(--ease-in-out) calc(var(--base) + var(--t) + 2.5s) infinite;
}
@keyframes ink-write {
  from { -webkit-mask-position: 100% 0; mask-position: 100% 0; }
  to { -webkit-mask-position: 0 0; mask-position: 0 0; }
}
@keyframes ink-shine { 0% { background-position: 100% 0; } 45%, 100% { background-position: -60% 0; } }
/* plumilla de luz que va escribiendo */
.ink::after {
  content: ""; position: absolute; left: 0; top: 52%;
  width: .5em; height: .5em; margin: -.25em 0 0 -.25em; border-radius: 50%;
  background: radial-gradient(circle, #fff 0 10%, #fff1c9 22%, #f5cf7a66 45%, transparent 70%);
  opacity: 0; pointer-events: none;
}
:is(.is-active, .is-leaving, dialog[open]) .ink::after { animation: ink-nib var(--dur) cubic-bezier(.42, 0, .58, 1) calc(var(--base) + var(--t)) both; }
@keyframes ink-nib {
  0% { left: -4%; opacity: 0; transform: translateY(.1em) scale(.6); }
  12% { opacity: 1; transform: translateY(-.28em) scale(1); }
  35% { transform: translateY(.2em); }
  60% { transform: translateY(-.24em); }
  85% { opacity: 1; transform: translateY(.12em); }
  100% { left: 104%; opacity: 0; transform: translateY(-.1em) scale(.5); }
}

/* Párrafos: palabra por palabra, más grandes y con más contraste para leer sobre la escena */
.intro { font-size: clamp(16px, 1.22vw, 19.5px); font-weight: 400; color: #e6ede5; text-shadow: 0 1px 14px #01140fe6, 0 0 2px #01140f; }
.intro.fx-intro > span, .slide.is-active .intro.fx-intro > span, .slide.is-leaving .intro.fx-intro > span { opacity: 1; transform: none; transition: none; }
.fx-intro .iw { display: inline-block; opacity: 0; }
:is(.is-active, .is-leaving) .fx-intro .iw { animation: word-in .9s var(--ease-out-quart) calc(var(--d) + .25s + var(--t)) both; }
@keyframes word-in { from { opacity: 0; transform: translate3d(0, .55em, 0); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }
.slide.is-active .actions { transition-delay: calc(var(--d) + var(--ta, 1.2s)); }

/* Salida: el bloque de texto se desvanece hacia arriba */
.slide .title.fx, .slide .fx-intro { transition: opacity .55s var(--ease-out-quart), transform .8s var(--ease-in-out); }
.slide.is-leaving:not(.is-active) .title.fx, .slide.is-leaving:not(.is-active) .fx-intro { opacity: 0; transform: translate3d(0, -14px, 0); }

/* Velo suave detrás de la columna de texto para que se lea sobre la ciudad */
.slide:not(.panel-slide)::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  left: 0; top: 0; bottom: 0; width: min(1100px, 80vw);
  background: radial-gradient(ellipse 62% 58% at 26% 50%, #01140fb8 0%, #01140f66 45%, transparent 75%);
  opacity: 0; transition: opacity 1.2s var(--ease-out-quart);
}
.slide.is-active:not(.panel-slide)::before { opacity: 1; transition-delay: calc(var(--d) * .5); }
@media (max-width: 760px) {
  .slide:not(.panel-slide)::before { width: 100%; background: linear-gradient(180deg, #01140f99 0%, #01140f55 60%, transparent 100%); }
  .script { font-size: 1.25em; }
}

/* =========================================================
   INTRO (estrella fugaz → logo → título escrito)
   ========================================================= */
.intro-seq { position: fixed; inset: 0; z-index: 60; display: none; place-items: center; pointer-events: none;
  background: radial-gradient(ellipse 60% 45% at 50% 42%, #01140f99 0%, #01140f40 55%, transparent 80%); }
body.intro-on .intro-seq { display: grid; animation: fade-in .8s var(--ease-out-quart) both; }
body.intro-out .intro-seq { opacity: 0; transform: scale(1.06); filter: blur(6px); transition: opacity 1s var(--ease-in-out), transform 1.2s var(--ease-in-out), filter 1s; }
.intro-card { display: grid; justify-items: center; gap: clamp(14px, 2.4vh, 24px); transform: translateY(-4vh); text-align: center; }
.intro-logo { width: min(440px, 64vw); height: auto;
  -webkit-mask-image: linear-gradient(90deg, #000 45%, transparent 55%); mask-image: linear-gradient(90deg, #000 45%, transparent 55%);
  -webkit-mask-size: 230% 100%; mask-size: 230% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: 100% 0; mask-position: 100% 0; }
.intro-glow { display: block; filter: drop-shadow(0 0 22px #ffe7b066); }
body.intro-on .intro-logo { animation: ink-write .5s cubic-bezier(.3, 0, .6, 1) .35s both; }
body.intro-on .intro-glow { animation: logo-glow 2.4s var(--ease-in-out) .9s both; }
@keyframes logo-glow { 0% { filter: drop-shadow(0 0 22px #ffe7b066); } 25% { filter: drop-shadow(0 0 40px #ffe7b0cc) brightness(1.25); } 100% { filter: drop-shadow(0 0 18px #ffe7b040); } }
.intro-title { --base: 1.1s; margin: 0; font-family: 'Parisienne', 'Segoe Script', cursive; font-size: clamp(40px, 5.4vw, 78px); line-height: 1.1; color: var(--gold-300); }
.intro-year { display: flex; align-items: center; gap: 14px; margin: 0; font-size: 12px; font-weight: 500; letter-spacing: .34em; text-transform: uppercase; color: var(--gold-400); opacity: 0; }
.intro-year span { width: 40px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold-400)); }
.intro-year span:last-child { transform: scaleX(-1); }
body.intro-on .intro-year { animation: word-in 1.1s var(--ease-out-quart) 2.6s both; }
.intro-skip { position: absolute; right: var(--gutter); bottom: clamp(24px, 5vh, 48px); pointer-events: auto;
  font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--ivory-mute); padding: 10px 4px; opacity: 0;
  animation: fade-in .6s ease 1.4s forwards; }
.intro-skip:hover { color: var(--gold-300); }

/* Botones dorados con halo que respira */
.slide.is-active .btn-gold:not(:disabled):not(:hover), .dialog .btn-gold:not(:hover) { animation: halo 3.6s var(--ease-in-out) 3s infinite; }
@keyframes halo {
  0%, 100% { box-shadow: 0 10px 30px -10px #e2b45a80, inset 0 1px 0 #ffffffaa, 0 0 0 0 #f5d48a00; }
  50% { box-shadow: 0 10px 34px -8px #e2b45ab0, inset 0 1px 0 #ffffffaa, 0 0 26px 4px #f5d48a55; }
}
@media (prefers-reduced-motion: reduce) { .btn-gold { animation: none !important; } }
.dialog .script { font-size: 1.18em; }
/* Modo captura (?captura): solo la escena, para exportar cuadros a Flow */
body.capture > *:not(.scene) { display: none !important; }

/* Video de la intro (Flow): encima de la escena, debajo de destellos y textos */
.cine { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 1.4s var(--ease-in-out), visibility 0s linear 1.4s; }
.cine.on { opacity: 1; visibility: visible; transition: opacity .6s var(--ease-out-quart), visibility 0s; }
@media (orientation: portrait) { .cine { object-position: 44% 50%; } }
body.intro-video .intro-seq { background: radial-gradient(ellipse 58% 42% at 50% 42%, #01140fc4 0%, #01140f66 55%, transparent 82%); }
.intro-card { transition: opacity 1.4s var(--ease-in-out), transform 1.6s var(--ease-in-out), filter 1.4s; }
body.intro-logo-out .intro-card { opacity: 0; transform: translateY(-9vh) scale(.95); filter: blur(5px); }
body.intro-logo-out .intro-seq { background: transparent; transition: background 1.4s; }
.topbar .brand, .topbar .logo, #share-exp { transition: opacity .8s var(--ease-out-quart); }
body.intro-on .topbar .brand, body.intro-on .topbar .logo, body.intro-on #share-exp { opacity: 0; pointer-events: none; }
.cine.cut { transition: none !important; }

/* Velo verde sobre los videos de la intro (se ve el video, más oscuro y teñido de verde Chinoin).
   Para aclarar u oscurecer: cambiar la transparencia (último número de cada rgba). */
.cine-veil {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(3, 48, 38, .78) 0%, rgba(6, 70, 56, .5) 40%, rgba(5, 60, 48, .52) 65%, rgba(2, 30, 23, .85) 100%);
  opacity: 0; visibility: hidden;
  transition: opacity 1.4s var(--ease-in-out), visibility 0s linear 1.4s;
}
.cine-veil.on { opacity: 1; visibility: visible; transition: opacity .6s var(--ease-out-quart), visibility 0s; }

/* Mientras los videos son el fondo (bienvenida y agradecimiento), el texto entra de inmediato */
body.cine-fast .slide { --d: .2s; }

/* Intro en video con pausas */
.dialog-welcome { padding: clamp(26px, 3vw, 36px) clamp(30px, 4vw, 48px); }
.dialog-welcome .dialog-actions { margin-top: 0; }
body.intro-video .intro-skip { display: none; }
/* durante la intro en video no hay barra de pasos ni flechas: solo avanzan los botones de cada pantalla */
.progress, .arrows { transition: opacity .6s var(--ease-out-quart); }
body.cine-mode:not(.is-panel) .progress, body.cine-mode:not(.is-panel) .arrows,
body.intro-on .progress, body.intro-on .arrows { opacity: 0; pointer-events: none; }
/* en los paneles (elegir y escribir deseo) el video de fondo se oscurece más */
.cine-veil::after { content: ""; position: absolute; inset: 0; background: rgba(1, 20, 15, .55); opacity: 0; transition: opacity 1s var(--ease-out-quart); }
body.is-panel .cine-veil::after { opacity: 1; }
.dialog-welcome { width: fit-content; min-width: min(340px, calc(100vw - 32px)); max-width: calc(100vw - 32px); }
.dialog-welcome::backdrop { background: #01140f59; }

/* Escena final: imagen fija de la plaza (assets/plaza-arbol.png) con luces dinámicas en el cielo */
.final-bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none;
  opacity: 0; visibility: hidden; transition: opacity 1.4s var(--ease-in-out), visibility 0s linear 1.4s; }
body.final-on .final-bg { opacity: 1; visibility: visible; transition: opacity 1.4s var(--ease-in-out), visibility 0s; }
#final-img { position: absolute; left: 0; top: 0; width: 1804px; height: 872px; max-width: none;
  transform-origin: 0 0; will-change: transform; }
#final-sky { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.final-dim { position: absolute; inset: 0; background: #01140f; opacity: 0; }

/* Letra chica estilizada: antetítulos y párrafos aparecen palabra por palabra con un destello dorado */
.eyebrow { font-size: clamp(11.5px, .86vw, 14px); letter-spacing: .3em; color: var(--gold-300); }
.eyebrow-line { position: relative; }
.eyebrow-line::after { content: ""; position: absolute; right: -3px; top: -2px; width: 5px; height: 5px; transform: rotate(45deg);
  background: var(--gold-100); box-shadow: 0 0 8px 2px #ffe7b0aa; }
.eyebrow-text.fx-eb { text-shadow: 0 0 18px #f2d9a059, 0 1px 8px #01140fd9; }
.slide .eyebrow-text.fx-eb, .slide.is-active .eyebrow-text.fx-eb { opacity: 1; transform: none; transition: opacity .55s var(--ease-out-quart); }
.slide.is-leaving:not(.is-active) .eyebrow-text.fx-eb { opacity: 0; }
.fx-eb .ew { display: inline-block; opacity: 0; }
:is(.is-active, .is-leaving) .fx-eb .ew { animation: ew-in 1.1s var(--ease-out-quart) calc(var(--d) + var(--t)) both; }
@keyframes ew-in {
  0%   { opacity: 0; transform: translate3d(-.6em, 0, 0); filter: blur(6px); color: #fff; text-shadow: 0 0 16px #ffe7b0, 0 0 4px #fff; }
  55%  { opacity: 1; filter: blur(0); color: var(--gold-100); text-shadow: 0 0 14px #ffe7b0cc; }
  100% { opacity: 1; transform: none; filter: none; }
}
.intro { line-height: 1.72; letter-spacing: .005em; }
.fx-intro .iw.kw { font-family: 'Playfair Display', Georgia, serif; font-style: italic; font-size: 1.05em; line-height: 1; letter-spacing: 0; color: var(--gold-300); }
:is(.is-active, .is-leaving) .fx-intro .iw { animation: iw-in 1.15s var(--ease-out-quart) calc(var(--d) + .25s + var(--t)) both; }
/* palabras en línea (no inline-block) para conservar el justificado y la división silábica */
.fx-intro .iw { display: inline; position: relative; }
@keyframes iw-in {
  0%   { opacity: 0; top: .7em; filter: blur(7px); color: var(--gold-100); text-shadow: 0 0 18px #ffe7b0; }
  45%  { opacity: 1; filter: blur(0); color: var(--gold-100); text-shadow: 0 0 12px #ffe7b099, 0 1px 14px #01140fe6; }
  100% { opacity: 1; top: 0; filter: none; }
}

/* Orden de aparición: antetítulo → título → párrafo → demás textos → botones (tiempos calculados en app.js) */
.slide.is-active .rise { transition-delay: calc(var(--d) + var(--tr, .8s) + var(--i, 0) * .16s); }
.panel-slide.is-active .fx-eb .ew, .panel-slide.is-leaving .fx-eb .ew { animation-delay: calc(var(--pd, .55s) + var(--t)); }
.final-bg { background: #01140f; }

/* ---------- Celular (vertical) ---------- */
@media (max-width: 820px), (orientation: portrait) {
  .eyebrow { font-size: 11px; letter-spacing: .2em; }
  .slide:not(.panel-slide) { padding-bottom: 150px; }
  .panel-slide { padding-bottom: 150px; }
  /* la navegación inferior tapa con un degradado sólido lo que pasa por debajo */
  body.is-started::after { height: 150px; background: linear-gradient(180deg, transparent 0%, #01140fe0 42%, #01140f 70%); }

  /* Árbol: imagen arriba con la plataforma bajo el árbol; textos compactos para que se vean los botones */
  .final-bg.is-portrait #final-img { -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 99%); mask-image: linear-gradient(180deg, #000 70%, transparent 99%); }
  body[data-screen="tree"] .shade { background: linear-gradient(0deg, #01140f 0%, #01140ff2 40%, #01140f99 52%, transparent 62%); }
  .tree-caption { display: none; }
  .slide-tree { padding-top: calc(var(--tree-bottom, 48vh) - 14px); }
  .slide-tree .eyebrow { margin-bottom: 10px; font-size: 10.5px; letter-spacing: .16em; }
  .slide-tree .eyebrow-line { display: none; }
  .slide-tree .title-sm { font-size: clamp(26px, 7.4vw, 34px); margin-bottom: 10px; }
  .slide-tree .tree-context { display: none; }
  .slide-tree .tree-quote { font-size: 17px; margin-bottom: 6px; padding-left: 16px; }
  .slide-tree .tree-dedication { margin: 0 0 12px 17px; font-size: 11px; }
  .slide-tree .tree-share { margin: 0 0 12px; gap: 8px; }
  .slide-tree .btn-share { padding: 9px 14px 9px 12px; font-size: 11px; letter-spacing: .1em; }
  .slide-tree .quick { width: 34px; height: 34px; }
  .slide-tree .lighting-status { font-size: 12.5px; margin-bottom: 12px; }
  .slide-tree .save-status { margin-bottom: 10px; font-size: 12px; }
  .slide-tree .actions { gap: 10px 12px; }
  .slide-tree .actions .btn-gold { padding: 13px 18px 13px 20px; font-size: 12px; }
  .slide-tree .actions .btn-outline { padding: 12px 16px; font-size: 11.5px; }
  .slide-tree .actions .btn-ghost { font-size: 11.5px; }
}
@media (max-width: 380px) {
  .brand-text { display: none; }
}
@media (max-width: 900px) {
  .thanks-layout { grid-template-columns: minmax(0, 1fr); }
  .thanks-layout > * { min-width: 0; }
}
@media (max-width: 420px) {
  .slide-tree .quick-share { display: none; }   /* en celular "Compartir" abre todas las redes */
  .letter { padding: 32px 20px; }
  .letter .eyebrow { letter-spacing: .14em; }
}
/* ---------- Celular horizontal ---------- */
@media (max-height: 560px) and (orientation: landscape) {
  .slide:not(.panel-slide) { justify-content: flex-start; padding-top: 68px; padding-bottom: 84px; }
  .eyebrow { font-size: 10.5px; letter-spacing: .18em; margin-bottom: 10px; }
  .title { font-size: clamp(24px, 3.8vw, 36px); margin-bottom: 10px; }
  .title-sm { font-size: clamp(22px, 3.4vw, 32px); }
  .intro { font-size: 13.5px; line-height: 1.55; margin-bottom: 14px; }
  .btn-gold { padding: 12px 20px 12px 22px; font-size: 12px; }
  .slide-tree { max-width: 60vw; }
  .slide-tree .tree-context { display: none; }
  .slide-tree .tree-quote { font-size: 16px; margin-bottom: 4px; }
  .slide-tree .tree-dedication { margin-bottom: 10px; font-size: 11px; }
  .slide-tree .tree-share { margin-bottom: 10px; }
  .slide-tree .btn-share { padding: 8px 14px 8px 12px; font-size: 11px; }
  .slide-tree .quick { width: 32px; height: 32px; }
  .slide-tree .lighting-status { font-size: 12px; margin-bottom: 10px; }
  .slide-tree .actions { gap: 8px 12px; }
  .slide-tree .actions .btn-outline { padding: 10px 14px; font-size: 11px; }
  .tree-caption { display: none; }
}
@media (orientation: portrait) and (max-height: 760px) {
  .slide-tree .save-status { display: none; }
  .slide-tree .lighting-status { margin-bottom: 8px; }
  .slide-tree .title-sm { font-size: 25px; }
}
/* antetítulos de los paneles: las palabras van en línea (no como elementos flex separados) */
p.eyebrow.fx-eb { display: block; }
