/* Festa de fim: ocupa a cena (o cabeçalho com a casinha continua à mão dos pais). */
.party{position:absolute;inset:0;z-index:60;overflow:hidden;container-type:size;background:radial-gradient(circle at 50% 38%,#fff6d6 0 18%,#ffe39a 45%,#ffc977 100%);touch-action:manipulation}
.party-rays{position:absolute;left:50%;top:36%;width:180vmax;height:180vmax;translate:-50% -50%;background:repeating-conic-gradient(#fff3 0 10deg,#fff0 10deg 20deg);animation:party-spin 18s linear infinite;pointer-events:none}
.party-confetti{position:absolute;inset:0;pointer-events:none}
.party-sticker{position:absolute;left:50%;top:36%;z-index:3;transform:translate(-50%,-50%);width:min(62cqw,42cqh,300px);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:#fffdf8;border:8px solid #fff;box-shadow:0 0 0 6px #ffb84d,0 18px 40px rgba(120,70,20,.25);animation:party-pop 700ms cubic-bezier(.2,1.6,.4,1) both}
.party-sticker-art{display:grid;place-items:center;width:78%;height:78%}
.party-sticker-art>*,.party-sticker-art .art-img,.party-sticker-art img,.party-sticker-art svg{width:100%;height:100%;object-fit:contain}
.party-sticker.flown{visibility:hidden}
.party-album{position:absolute;right:14px;top:14px;z-index:4;width:64px;height:64px;padding:8px;border-radius:50%;background:#fffdf8;box-shadow:0 6px 16px rgba(120,70,20,.2);opacity:.9}
.party-album .art-img{width:100%;height:100%;object-fit:contain}
.party-album.got{box-shadow:0 0 0 5px #ffd36d,0 6px 16px rgba(120,70,20,.2)}
.party-friend{position:absolute;bottom:-2%;z-index:2;width:min(46cqw,40%);height:auto;max-height:42%;object-fit:contain;object-position:bottom;animation:party-jump 760ms cubic-bezier(.3,.7,.4,1) infinite alternate;pointer-events:none}
.party-maya{left:2%}
.party-tutu{right:2%;animation-delay:-380ms}
.party.choosing .party-friend{max-height:30%;opacity:.95}
.party.choosing .party-rays{opacity:.5}
.party-choices{position:absolute;left:0;right:0;top:46%;z-index:5;translate:0 -50%;display:flex;justify-content:center;align-items:center;gap:4cqw;padding:0 3cqw}
.party-choice{position:relative;flex:none;width:min(27cqw,24cqh,170px);aspect-ratio:1;display:grid;place-items:center;padding:0;border:6px solid #fff;border-radius:50%;background:#fffdf8;box-shadow:0 10px 24px rgba(120,70,20,.22);animation:party-bob 1.6s ease-in-out infinite;animation-delay:calc(var(--i) * -.45s)}
.party-choice:active{scale:.94}
.party-choice-art{display:grid;place-items:center;width:76%;height:76%;pointer-events:none}
.party-choice-art>*,.party-choice-art .art-img,.party-choice-art img,.party-choice-art svg{width:100%;height:100%;object-fit:contain}
.party-choice.again{border-color:#ffd36d}
.party-again{position:absolute;right:-6px;bottom:-6px;width:44%;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:#2fa866;color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.15)}
.party-again .ui-icon{width:62%;height:62%;stroke-width:3}
@keyframes party-spin{to{rotate:360deg}}
@keyframes party-pop{from{transform:translate(-50%,-50%) scale(.2) rotate(-20deg);opacity:0}to{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}}
@keyframes party-jump{from{translate:0 0}to{translate:0 -14%}}
@keyframes party-bob{0%,100%{translate:0 0;rotate:-3deg}50%{translate:0 -10px;rotate:3deg}}
@media (prefers-reduced-motion:reduce){.party-rays,.party-friend,.party-choice,.party-sticker{animation:none}}
/* Transição da aventura e descanso, sem texto para ler. */
.journey-transition{position:absolute;inset:0;z-index:65;display:flex;align-items:flex-end;justify-content:center;gap:4%;background:radial-gradient(circle at 50% 60%,#fff6d6,#cfe9d6);pointer-events:none;animation:party-fade 650ms ease both}
.journey-transition img{height:min(55%,320px);max-width:44%;object-fit:contain;animation:party-run 650ms ease-in-out both}
.journey-transition img+img{animation-delay:80ms}
@keyframes party-fade{from{opacity:0}to{opacity:1}}
@keyframes party-run{from{translate:-120% 0}to{translate:0 0}}
.journey-home{display:grid;place-items:center;width:96px;height:96px;border:0;border-radius:50%;background:var(--sun);box-shadow:0 8px 20px rgba(75,55,57,.15)}
.journey-home .ui-icon{width:48px;height:48px}
/* Toque em qualquer lugar deixa um brilho curto (camada global do plano). */
.touch-spark{position:fixed;z-index:90;width:0;height:0;pointer-events:none}
.touch-spark i{position:absolute;left:0;top:0;width:12px;height:12px;margin:-6px;border-radius:50%;opacity:0}
.journey-rest{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 30%,#fff6d6,#ffe0e8 60%,#f6d6ec)!important}
.journey-friends{height:clamp(200px,42vh,380px)!important;max-width:420px!important}
.journey-friends img{animation:party-jump 1.2s ease-in-out infinite alternate}.journey-friends img+img{animation-delay:-.6s}
.journey-rest-actions{display:flex;gap:24px}
.journey-more{background:#9be07a}
.journey-hearts{position:absolute;inset:0;pointer-events:none}
.journey-hearts i{position:absolute;bottom:-30px;font-style:normal;font-size:28px;color:#f472b6;animation:rest-heart 6s linear infinite;opacity:.8}
.journey-hearts i:nth-child(1){left:10%}.journey-hearts i:nth-child(2){left:25%;animation-delay:-1s;color:#ff8a7a}.journey-hearts i:nth-child(3){left:40%;animation-delay:-2.2s}.journey-hearts i:nth-child(4){left:55%;animation-delay:-3s;color:#c7aeff}.journey-hearts i:nth-child(5){left:70%;animation-delay:-4s}.journey-hearts i:nth-child(6){left:85%;animation-delay:-5s;color:#ff8a7a}.journey-hearts i:nth-child(7){left:62%;animation-delay:-.5s;color:#c7aeff}
@keyframes rest-heart{from{translate:0 0;rotate:-10deg}to{translate:0 -110vh;rotate:10deg}}
@media (prefers-reduced-motion:reduce){.journey-hearts,.journey-friends img{animation:none}}
