/* Teletín es una ilustración SVG de esta propuesta; los logos oficiales no se alteran. */
.cursor-heart-trail{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:200;contain:strict}
.cursor-trail-heart{position:absolute;line-height:1;color:#e50935;text-shadow:0 0 2px #fff,1px 1px 1px #fff,-1px -1px 1px #fff;user-select:none;pointer-events:none;animation:cursor-heart-fade .85s ease-out both}
.cursor-trail-heart:nth-child(3n){color:#ff83a3}
@keyframes cursor-heart-fade{0%{opacity:.9;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(calc(-50% + var(--trail-drift)),26px) rotate(var(--trail-turn)) scale(.2)}}
@media(prefers-reduced-motion:reduce){.cursor-heart-trail{display:none!important}}
@media print{.cursor-heart-trail{display:none}}
/* Cursores nativos; la estela decorativa no cambia el punto del clic. */
@media (hover:hover) and (pointer:fine){
  html,body{cursor:auto}
  a,button,select,summary,[role="button"],input[type="checkbox"],input[type="radio"]{cursor:pointer}
  input:not([type="checkbox"]):not([type="radio"]),textarea,[contenteditable="true"]{cursor:text}
  button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed}
}
.hero-grid{grid-template-columns:1fr .68fr 1.08fr;gap:24px;padding-top:52px;padding-bottom:50px;align-items:center}
.hero h1{font-size:64px;line-height:.97;letter-spacing:-2.8px;margin-bottom:22px}
.hero-description{font-size:14px;max-width:330px}.hero-actions{gap:3px 16px}.hero .button{font-size:12px;padding:13px 16px}.hero-secondary{font-size:11px}.hero .date-pill{font-size:11px;padding:9px 11px;margin-bottom:22px}
.count-card{padding:25px}.count-top{gap:8px;flex-wrap:wrap}.count-top .eyebrow{font-size:10px;letter-spacing:1px}.money{font-size:44px;letter-spacing:-1.7px}.count-card .count-label{margin-top:23px}
.campaign-countdown{margin-top:26px}.countdown-intro{display:block;font-size:10px;color:#ffe0e8;margin-bottom:9px}.countdown-digits{display:flex;align-items:flex-start;gap:13px}.countdown-digits>span{text-align:center;min-width:34px}.countdown-digits b{font-size:23px;font-weight:750;font-variant-numeric:tabular-nums;line-height:1;display:block;letter-spacing:-.5px}.countdown-digits small{display:block;font-size:9px;color:#ffd3de;margin-top:5px}.countdown-digits i{font-size:17px;font-style:normal;opacity:.5}.countdown-finished{font-size:14px;font-weight:650}
.mascot-scene{position:relative;align-self:center;isolation:isolate;min-width:0;text-align:center;padding-top:44px}.mascot-bubble{position:absolute;top:0;left:50%;transform:translateX(-50%);width:max-content;max-width:245px;background:#fff;color:#ba1038;border-radius:16px;padding:13px 16px;box-shadow:0 6px 20px #8c08211c;font-size:12px;font-weight:700;line-height:1.5;z-index:2}.mascot-bubble:after{content:"";position:absolute;left:48%;bottom:-6px;width:13px;height:13px;background:#fff;transform:rotate(45deg);border-radius:2px}
.mascot-stage{position:relative;margin:6px -20px 0;isolation:isolate}.mascot-button{display:block;position:relative;z-index:1;width:100%;border:0;padding:0;background:none;color:inherit;border-radius:48%;touch-action:manipulation;user-select:none;-webkit-user-select:none}.mascot-button svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 10px 15px #88062712)}.mascot-button:focus-visible{outline-color:#fff;outline-offset:0}.mascot-orbit{position:absolute;left:0;top:19%;width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffffff17,#ffffff03 70%);border:1px solid #ffffff20;transform:rotate(-16deg);z-index:-1}.mascot-orbit:before,.mascot-orbit:after{position:absolute;content:"♥";color:#ffd5df;font-size:18px;left:4%;top:7%;transform:rotate(-15deg)}.mascot-orbit:after{left:auto;right:2%;top:auto;bottom:7%;font-size:12px;transform:rotate(30deg)}.mascot-hint{font-size:10px;line-height:1.6;color:#ffe2ea;margin:4px -20px 8px}.touch-hint{display:none}.teletin-head{transform-origin:133px 142px;transform:rotate(var(--head-angle,0deg))}.teletin-eye{transform-box:fill-box;transform-origin:center}.teletin-pupil{transform:translate(var(--eye-x,0px),var(--eye-y,0px))}.waving-arm{transform-origin:191px 181px}.teletin-body{transform-origin:133px 306px}.music-note{position:absolute;color:#ffdfe7;font-size:32px;z-index:2;opacity:0;pointer-events:none}.note-one{left:2%;top:25%}.note-two{right:4%;top:9%;font-size:24px}.note-three{right:0;top:51%;font-size:22px}
.motion-enabled .mascot-scene.is-visible .teletin-body{animation:teletin-breathe 4.6s ease-in-out infinite}.motion-enabled .mascot-scene.is-visible .teletin-eye{animation:teletin-blink 6.5s infinite}.motion-enabled .mascot-scene.is-visible.is-greeting .waving-arm{animation:teletin-wave 1.45s ease-in-out}.motion-enabled .mascot-scene.is-visible.is-greeting .teletin-body{animation:teletin-hello .7s ease-in-out 2}.motion-enabled .mascot-scene.is-visible.is-dancing .teletin-body{animation:teletin-dance .74s ease-in-out infinite alternate}.motion-enabled .mascot-scene.is-visible.is-dancing .waving-arm{animation:teletin-dance-arm .74s ease-in-out infinite alternate}.motion-enabled .mascot-scene.is-visible.is-dancing .music-note{animation:teletin-note 2s ease-out infinite}.motion-enabled .mascot-scene.is-visible.is-dancing .note-two{animation-delay:.65s}.motion-enabled .mascot-scene.is-visible.is-dancing .note-three{animation-delay:1.2s}
#mascot-particles{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:visible}.heart-particle{position:absolute;left:50%;top:46%;font-size:17px;color:#fff0f4;opacity:0;animation:teletin-heart 1.2s cubic-bezier(.18,.7,.3,1) forwards;animation-delay:var(--delay,0ms)}.heart-particle:nth-child(3n){color:#ffc7d7;font-size:11px}.heart-particle:nth-child(4n){color:#fff;font-size:22px}
.motion-enabled .event-card{transition:transform .22s,box-shadow .22s,border-color .22s}.motion-enabled .event-card:hover{transform:translateY(-5px);box-shadow:0 12px 28px #4729320e;border-color:#ebc7d0}.motion-enabled .button .arrow,.motion-enabled .join-option .arrow{transition:transform .2s}.motion-enabled .button:hover .arrow,.motion-enabled .join-option:hover .arrow{transform:translate(3px,-3px)}.motion-enabled .reveal-prepared{transition:opacity .55s ease,transform .55s ease;transition-delay:var(--reveal-delay,0ms)}.motion-enabled .reveal-prepared:not(.revealed){opacity:0;transform:translateY(17px)}.motion-enabled .count-card.count-updated{animation:count-update .8s ease}.motion-enabled .anthem-disc.is-playing{animation:anthem-pulse 1.3s ease-in-out infinite}.motion-paused .heart-particle{display:none}
@keyframes teletin-breathe{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-4px) rotate(.6deg)}}
@keyframes teletin-blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.08)}}
@keyframes teletin-wave{0%,100%{transform:rotate(0)}15%,45%,75%{transform:rotate(15deg)}30%,60%,90%{transform:rotate(-12deg)}}
@keyframes teletin-hello{0%,100%{transform:translateY(0)}40%{transform:translateY(-9px)}}
@keyframes teletin-dance{from{transform:translate(-3px,-2px) rotate(-4deg)}to{transform:translate(3px,-6px) rotate(4deg)}}
@keyframes teletin-dance-arm{from{transform:rotate(-14deg)}to{transform:rotate(16deg)}}
@keyframes teletin-note{0%{opacity:0;transform:translateY(15px) rotate(-10deg)}25%{opacity:.85}100%{opacity:0;transform:translateY(-35px) rotate(12deg)}}
@keyframes teletin-heart{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}18%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--spin)) scale(.7)}}
@keyframes count-update{0%,100%{box-shadow:0 18px 50px #910b2933}40%{box-shadow:0 0 0 7px #fff8,0 18px 50px #910b2933}}
@keyframes anthem-pulse{0%,100%{box-shadow:0 0 0 7px #fff0f2}50%{box-shadow:0 0 0 12px #fff0f2}}
@media(min-width:1450px){.hero h1{font-size:69px}.hero-grid{padding-top:62px;padding-bottom:60px}}
@media(max-width:1100px){.hero-grid{grid-template-columns:1fr .72fr 1.03fr;gap:18px}.hero h1{font-size:56px}.hero-description{font-size:13px}.money{font-size:37px}.count-card{padding:21px}.mascot-bubble{font-size:11px;max-width:205px}.mascot-hint{font-size:9px}.goal-line{font-size:11px}}
@media(max-width:900px) and (min-width:761px){.hero-grid{grid-template-columns:1fr 1fr;gap:30px}.hero-copy{grid-column:1}.mascot-scene{grid-column:2;grid-row:1;width:250px;justify-self:center}.count-card{grid-column:1/-1;max-width:600px;width:100%;justify-self:center}.hero h1{font-size:60px}.money{font-size:48px}.count-top{flex-wrap:nowrap}.mascot-hint{font-size:11px}}
@media(max-width:760px){.hero-grid{grid-template-columns:1fr;gap:30px;padding-top:35px;padding-bottom:36px}.hero-copy{text-align:center}.hero .date-pill{margin-bottom:20px}.hero h1{font-size:62px;margin-bottom:20px}.hero h1 br:nth-child(2){display:none}.hero h1 .outline-word{display:block}.hero-description{font-size:14px;max-width:410px;margin:0 auto 20px}.hero-actions{justify-content:center;gap:8px 18px}.hero-secondary{font-size:12px}.campaign-countdown{margin-top:20px}.countdown-digits{justify-content:center}.mascot-scene{width:230px;max-width:100%;justify-self:center;padding-top:46px}.mascot-stage{margin-top:3px}.mascot-bubble{max-width:260px;font-size:12px}.mascot-hint{font-size:10px}.count-card{padding:25px;width:100%;max-width:500px;justify-self:center}.money{font-size:47px}.count-top{flex-wrap:nowrap}.hero-grid>.mascot-scene{margin:6px 0 0}.mascot-scene .mascot-stage{max-width:270px}.hero h1{letter-spacing:-2px}}
@media(max-width:430px){.hero h1{font-size:51px;letter-spacing:-1.8px}.hero h1 .outline-word{max-width:300px;margin:auto}.hero h1 br:nth-child(2){display:initial}.hero-description{font-size:13px}.hero-grid{gap:26px}.mascot-scene{width:205px}.count-card{padding:21px}.money{font-size:40px}.count-top .eyebrow{font-size:9px}.count-top{flex-wrap:wrap}.hero .date-pill{font-size:10px}.mascot-hint{margin-left:-25px;margin-right:-25px}}
@media(pointer:coarse){.mouse-hint{display:none}.touch-hint{display:inline}}
@media(prefers-reduced-motion:reduce){.teletin-pupil,.teletin-head{transform:none!important}.reveal-prepared{opacity:1!important;transform:none!important}.music-note,.heart-particle{display:none!important}}
@media print{.mascot-scene,.campaign-countdown{display:none}.hero-grid{grid-template-columns:1fr 1fr}.reveal-prepared{opacity:1!important;transform:none!important}}

/* Efectos continuos del baile: cantidad fija, sin crear elementos por fotograma. */
.extra-note{font-size:var(--note-size)}
.motion-enabled .mascot-scene.is-visible.is-dancing .extra-note{animation-delay:var(--note-delay)}
.dance-hearts{position:absolute;inset:0;pointer-events:none;z-index:2}
.dance-heart{position:absolute;left:var(--heart-x);top:var(--heart-y);font-size:var(--heart-size);color:#fff0f4;opacity:0;line-height:1}
.dance-heart:nth-child(3n){color:#ffc7d7}.dance-heart:nth-child(4n){color:#fff}
.motion-enabled .mascot-scene.is-visible.is-dancing .dance-heart{animation:teletin-dance-heart var(--heart-duration) ease-out infinite;animation-delay:var(--heart-delay)}
@keyframes teletin-dance-heart{0%{opacity:0;transform:translate(0,12px) scale(.45) rotate(-12deg)}20%,45%{opacity:.9}100%{opacity:0;transform:translate(var(--heart-drift),-65px) scale(1.05) rotate(18deg)}}
@media(prefers-reduced-motion:reduce){.dance-hearts{display:none!important}}

/* El eslogan y la recaudación acompañan el mismo compás visual de Teletín. */
.hero h1{transform-origin:50% 70%}
.count-card{transform-origin:50% 65%}
.motion-enabled .hero.is-dancing h1{animation:slogan-dance .74s ease-in-out infinite alternate}
.motion-enabled .hero.is-dancing .count-card{animation:count-dance .74s ease-in-out infinite alternate}
.motion-enabled .hero.is-dancing .count-card.count-updated{animation:count-dance .74s ease-in-out infinite alternate,count-update .8s ease}
@keyframes slogan-dance{from{transform:translate(-2px,0) rotate(-1.4deg)}to{transform:translate(2px,-5px) rotate(1.4deg)}}
@keyframes count-dance{from{transform:translate(1px,-2px) rotate(.7deg)}to{transform:translate(-1px,-6px) rotate(-.7deg)}}

/* Portada más compacta en celular, conservando los textos y controles. */
@media(max-width:760px){
  .hero-grid{gap:20px;padding-top:25px;padding-bottom:28px}
  .hero h1{font-size:clamp(36px,10vw,46px);line-height:1.02;letter-spacing:-1.5px;margin-bottom:14px}
  .hero h1 br:nth-child(2){display:none}
  .hero .date-pill{margin-bottom:16px}
  .hero-description{font-size:13px;line-height:1.55;margin-bottom:16px}
  .campaign-countdown{margin-top:14px}.countdown-digits b{font-size:20px}
  .mascot-scene{width:180px;padding-top:42px}
  .mascot-bubble{font-size:11px;padding:10px 13px}
  .mascot-stage{margin-left:-10px;margin-right:-10px}
  .count-card{padding:18px;border-radius:20px}
  .count-top{flex-wrap:wrap}.count-top .eyebrow{font-size:10px}
  .count-card .count-label{margin-top:14px;font-size:12px}
  .money{font-size:clamp(32px,9vw,39px);letter-spacing:-1px}
  .goal-line{margin-top:15px}.remaining{margin-bottom:14px}
  .count-footer{padding-top:12px}.count-scope{margin-top:10px}
  .section-heading h2{font-size:29px;letter-spacing:-1px}
}
