.cinema-finale{text-align:center;margin:24px 0 0}
.finale-link{min-height:48px;background:transparent;color:#ffeff3;border:0;border-bottom:1px solid #efd3da6b;padding:8px 10px;font:500 1.65rem/1.25 var(--hand);transition:color .2s,transform .2s}
.finale-link span{margin-left:12px;color:#f4c4d4}
.finale-link:hover:not(:disabled){color:#fff;transform:translateY(-2px)}
.finale-link:disabled{opacity:.5}
body[data-scene='finale'] .emoji-garden{opacity:0}
body[data-scene='finale'] .summer-background{opacity:0}
.finale-scene{display:grid;place-items:center;isolation:isolate;padding:60px max(24px,env(safe-area-inset-left,0px)) 54px;overflow:hidden;animation-duration:1.15s}
.finale-light{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 74% 44%,#fff8dded 0,transparent 47%),radial-gradient(ellipse at 20% 80%,#ffeef3 0,transparent 55%),linear-gradient(130deg,#fae3ea,#fff5ed 58%,#f8e5e7)}
.finale-content{width:min(100%,1020px);display:grid;grid-template-columns:1.13fr 1fr;align-items:center;gap:56px}
.finale-words{min-width:0;position:relative}
.finale-heart{display:block;color:#ad6378;font:2.4rem/1 var(--serif);margin:0 0 28px}
.finale-intro{font:400 clamp(1.75rem,2.75vw,2.1rem)/1.25 var(--hand);color:#754950}
.finale-intro p{margin:0 0 24px;animation:finale-ink 1.2s var(--ease) both}
.finale-intro p:nth-of-type(2){animation-delay:.6s}
.finale-intro p:nth-of-type(3){animation-delay:1.2s;color:#904860}
.finale-intro p:last-child{margin-bottom:0}
.wish-stage{min-width:0;text-align:center;animation:finale-ink 1.5s .8s var(--ease) both}
.birthday-cake{position:relative;width:100%;max-width:430px;margin:0 auto;isolation:isolate}
.birthday-cake:before{content:'';position:absolute;inset:11% 1% 3%;border-radius:50%;background:#fffcdf;filter:blur(40px);z-index:-1;opacity:.65;animation:wish-glow 4s ease-in-out infinite alternate}
.birthday-cake img{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 15px #a6566b14)}
.candle-light{position:absolute;width:1px;height:1px;top:12.25%;pointer-events:none}
.candle-two{left:41.39%}.candle-four{left:57.89%}
.candle-flame{position:absolute;font-family:'Segoe UI Emoji','Apple Color Emoji',sans-serif;font-size:clamp(18px,2.1vw,25px);line-height:1;left:0;bottom:-3px;display:block;transform:translateX(-50%);transform-origin:50% 95%;filter:drop-shadow(0 0 7px #ffc45d);animation:candle-flicker 1.8s ease-in-out infinite alternate}
.candle-four .candle-flame{animation-delay:-.7s}
.candle-smoke{position:absolute;bottom:0;left:-3px;width:6px;height:30px;border-radius:50%;background:linear-gradient(0deg,#a28c8570,transparent);filter:blur(4px);opacity:0;transform-origin:bottom}
.wish-invitation{margin-top:12px;transition:opacity .45s,transform .45s}
.wish-invitation p{font:500 clamp(1.65rem,2.8vw,2rem)/1.2 var(--hand);color:#955569;margin:0 0 21px}
.wish-button{min-width:178px;border-radius:30px;background:#a54f6d;box-shadow:0 8px 24px #a64b6e24;letter-spacing:.02em}
.wish-made .candle-flame{animation:flame-out .45s ease-out both}
.wish-made .candle-smoke{animation:smoke-rise 1.65s .25s ease-out both}
.wish-made .wish-invitation{opacity:0;transform:translateY(5px);pointer-events:none}
.wish-made .finale-intro{animation:finale-away .65s .15s both}
.finale-goodwish{animation:finale-ink 1.15s var(--ease) both}
.finale-goodwish h2{font:500 clamp(2.7rem,4.8vw,4rem)/1.08 var(--hand);color:#86405a;margin:0 0 28px;text-wrap:balance}
.finale-goodwish h2 span{display:inline-block;margin-top:8px}
.finale-goodwish>p:not(.finale-signature){font:400 clamp(1.45rem,2.5vw,1.8rem)/1.35 var(--hand);margin:0;color:#754950}
.finale-signature{font:500 2rem/1.2 var(--hand);color:#92556a;margin:26px 0 34px}
.finale-actions{display:flex;align-items:flex-start;flex-direction:column;gap:8px}
.finale-return{min-height:44px;padding:10px 0;background:transparent;border:0;border-bottom:1px solid #b470852e;color:#8b5367;font:.875rem/1.45 var(--sans);transition:color .2s,border-color .2s}
.finale-return:hover{color:#6e2b45;border-color:#9f4d6a}
.wish-sparkles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3}
.wish-spark{position:absolute;color:#d39b36;font:var(--spark-size)/1 var(--serif);opacity:0;animation:golden-wish 3.8s var(--spark-delay) ease-out both;text-shadow:0 0 8px #fffbd6}
@keyframes finale-ink{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes finale-away{to{opacity:0;transform:translateY(-7px)}}
@keyframes wish-glow{to{opacity:.9;transform:scale(1.06)}}
@keyframes candle-flicker{from{transform:translateX(-50%) rotate(-3deg) scale(.96,1)}to{transform:translateX(-50%) rotate(3deg) scale(1.04,.95)}}
@keyframes flame-out{0%{opacity:1;transform:translateX(-50%) scale(1)}50%{opacity:.7;transform:translateX(-40%) rotate(22deg) scale(.7,.65)}100%{opacity:0;transform:translateX(-20%) rotate(32deg) scale(.1)}}
@keyframes smoke-rise{0%{opacity:0;transform:translateY(0) scaleY(.2)}18%{opacity:.55}100%{opacity:0;transform:translate(14px,-45px) scale(3,2)}}
@keyframes golden-wish{0%{opacity:0;transform:scale(.3)}16%{opacity:.9}65%{opacity:.65}100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) rotate(70deg) scale(.6)}}
@media(max-width:700px){
  .cinema-finale{margin-top:22px}.finale-link{font-size:1.5rem}
  .finale-scene{padding:30px 23px max(34px,env(safe-area-inset-bottom,0px));align-items:start}
  .finale-content{grid-template-columns:1fr;gap:18px;text-align:center;max-width:430px}
  .finale-heart{font-size:1.9rem;margin-bottom:18px}
  .finale-intro{font-size:1.5rem;line-height:1.23}.finale-intro p{margin-bottom:15px}
  .birthday-cake{width:min(100%,290px)}
  .wish-invitation{margin-top:0}.wish-invitation p{font-size:1.65rem;margin-bottom:16px}
  .finale-goodwish h2{font-size:2.8rem;margin-bottom:20px}.finale-goodwish>p:not(.finale-signature){font-size:1.5rem}
  .finale-signature{margin:21px 0;font-size:1.85rem}.finale-actions{align-items:center;gap:6px}
  .finale-complete{align-items:center}.finale-complete .finale-content{gap:12px}.finale-complete .birthday-cake{width:min(65vw,230px)}
}
@media(prefers-reduced-motion:reduce){
  .finale-intro p,.wish-stage,.finale-goodwish{animation:none}
  .birthday-cake:before,.candle-flame{animation:none}
  .wish-made .candle-flame,.candle-smoke,.wish-sparkles{display:none}
  .wish-made .finale-intro{animation:none}
}
