/* waiv-finale.css — giant waving "Tappy" finale in the closing CTA. */

.wv-cta{position:relative;overflow:hidden;}
.wv-particles + .wv-cta-glow{z-index:0;}
.fin-wrap{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;text-align:center;}

.fin-eyebrow{display:inline-flex;align-items:center;gap:11px;font-family:'Space Mono',monospace;font-size:13px;
  letter-spacing:.26em;text-transform:uppercase;color:var(--yellow);margin-bottom:18px;}
.fin-title{font-family:'Ubuntu',sans-serif;font-size:clamp(34px,5.4vw,72px);line-height:1.0;font-weight:700;letter-spacing:-.04em;
  color:#fff;margin:0;max-width:16em;text-wrap:balance;}
.fin-title em{font-style:normal;color:var(--yellow);}
.fin-sub{font-size:clamp(16px,1.4vw,20px);color:rgba(230,235,255,.7);margin:30px 0 30px;max-width:30em;}
.fin-cta{justify-content:center;}

/* ── NFC ripple rings from the mascot ── */
.fin-rings{position:absolute;left:50%;top:54%;z-index:1;pointer-events:none;width:0;height:0;}
.fin-rings span{position:absolute;left:0;top:0;width:260px;height:260px;margin:-130px;border-radius:50%;
  border:2px solid rgba(255,213,39,.5);transform:scale(.2);opacity:0;}
.fin-rings.is-on span{animation:fin-ring 1.2s ease-out forwards;}
.fin-rings.is-on span:nth-child(2){animation-delay:.16s;}
.fin-rings.is-on span:nth-child(3){animation-delay:.32s;}
@keyframes fin-ring{0%{transform:scale(.2);opacity:.8}100%{transform:scale(4);opacity:0}}

/* ── giant mascot ── */
.fin-mascot{position:relative;width:200px;height:128px;margin:54px 0 8px;cursor:pointer;
  -webkit-user-select:none;user-select:none;animation:fin-bob 3.6s ease-in-out infinite;}
@keyframes fin-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.fin-mascot.is-happy{animation:fin-jump .5s ease;}
@keyframes fin-jump{0%,100%{transform:translateY(0)}40%{transform:translateY(-26px)}}

.fin-body{position:absolute;inset:0;border-radius:16px;z-index:2;
  box-shadow:0 30px 60px -20px rgba(0,2,12,.85),inset 0 1px 0 rgba(255,255,255,.18),inset 0 0 0 1px rgba(120,150,210,.3);}
.fin-logo{position:absolute;left:14px;top:13px;height:18px;z-index:3;opacity:.95;}
.fin-chip{position:absolute;right:13px;bottom:12px;width:18px;height:13px;border-radius:3px;z-index:3;
  background:linear-gradient(140deg,#c7b27a,#8a7340);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.3);}

/* arms + hands */
.fin-arm{position:absolute;top:42%;width:34px;height:11px;border-radius:7px;background:#0a1326;z-index:1;}
.fin-arm-l{left:-26px;transform-origin:right center;transform:rotate(18deg);}
.fin-arm-r{right:-26px;transform-origin:left center;transform:rotate(-32deg);animation:fin-wave 1.1s ease-in-out infinite;}
@keyframes fin-wave{0%,100%{transform:rotate(-32deg)}50%{transform:rotate(-58deg)}}
.fin-mascot.is-happy .fin-arm-l{animation:fin-wave-l .5s ease-in-out infinite;}
@keyframes fin-wave-l{0%,100%{transform:rotate(18deg)}50%{transform:rotate(44deg)}}
.fin-hand{position:absolute;width:17px;height:17px;border-radius:50%;background:#0a1326;top:50%;transform:translateY(-50%);}
.fin-arm-l .fin-hand{left:-9px;}
.fin-arm-r .fin-hand{right:-9px;}

/* face */
.fin-face{position:absolute;left:0;right:0;top:34px;z-index:4;}
.fin-brows{display:flex;justify-content:center;height:0;}
.fin-brows i{position:absolute;width:18px;height:4px;border-radius:2px;background:#0a1326;opacity:0;top:-10px;}
.fin-brows i:nth-child(1){margin-left:-22px;}
.fin-brows i:nth-child(2){margin-left:22px;}

.fin-blush{position:absolute;left:0;right:0;top:24px;display:flex;justify-content:center;gap:46px;}
.fin-blush i{width:14px;height:8px;border-radius:50%;background:rgba(255,120,120,.5);filter:blur(.6px);
  opacity:0;transition:opacity .3s;}
.fin-mascot.is-happy .fin-blush i{opacity:1;}

.fin-eyes{display:flex;justify-content:center;gap:16px;}
.fin-eye{width:24px;height:24px;border-radius:50%;background:#fbfdff;position:relative;
  box-shadow:inset 0 -2px 3px rgba(0,0,40,.18);animation:fin-blink 4.4s infinite;}
@keyframes fin-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.fin-pupil{position:absolute;left:50%;top:50%;width:11px;height:11px;border-radius:50%;background:#0a1326;transform:translate(-50%,-50%);transition:transform .1s;}
.fin-mascot.is-happy .fin-eye{height:13px;border-radius:0 0 24px 24px;background:transparent;box-shadow:none;border-bottom:4px solid #0a1326;animation:none;}
.fin-mascot.is-happy .fin-pupil{display:none;}

.fin-mouth{width:22px;height:12px;margin:9px auto 0;border:4px solid #0a1326;border-top:0;border-radius:0 0 22px 22px;transition:all .2s;}
.fin-mascot.is-happy .fin-mouth{width:26px;height:18px;background:#0a1326;border-radius:0 0 26px 26px;}

/* tap hint */
.fin-tip{position:absolute;left:50%;top:-30px;transform:translateX(-50%);font-family:'Ubuntu',sans-serif;font-weight:700;font-size:12px;
  color:#0a1326;background:var(--yellow);padding:6px 12px;border-radius:11px;white-space:nowrap;box-shadow:0 8px 18px -6px rgba(255,213,39,.6);
  animation:fin-tip 2.4s ease-in-out infinite;}
.fin-tip::after{content:"";position:absolute;left:50%;bottom:-4px;transform:translateX(-50%) rotate(45deg);width:9px;height:9px;background:var(--yellow);border-radius:2px;}
.fin-mascot.is-happy .fin-tip{opacity:0;}
@keyframes fin-tip{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}

/* confetti */
.fin-confetti{position:absolute;left:50%;top:50%;width:0;height:0;z-index:6;pointer-events:none;}
.fin-confetti i{position:absolute;left:0;top:0;width:9px;height:13px;border-radius:2px;
  transform:translate(-50%,-50%);animation:fin-confetti 1.4s ease-out forwards;}
@keyframes fin-confetti{
  0%{opacity:0;transform:translate(-50%,-50%) rotate(0)}
  10%{opacity:1}
  100%{opacity:0;transform:translate(calc(-50% + var(--cx)), calc(-50% + var(--cy))) rotate(var(--cr))}
}

@media (prefers-reduced-motion: reduce){
  .fin-mascot,.fin-arm-r,.fin-tip{animation:none !important;}
}
@media (max-width:620px){
  .fin-mascot{transform:scale(.86);}
}
