.jp-finale{width:min(720px,calc(100vw - 24px));max-height:92svh;padding:0;border:1px solid #be975f;border-radius:22px;background:#102c30;color:#fff4dc;overflow:auto;box-shadow:0 24px 100px #000a}.jp-finale::backdrop{background:#031419db;backdrop-filter:blur(6px)}.jp-finale [hidden]{display:none!important}.final-close{position:absolute;right:12px;top:10px;z-index:5;background:#122a30dd;border:1px solid #b3a482;border-radius:50%;width:44px;height:44px;font-size:28px;color:#fff4dc;cursor:pointer}.final-sky{height:260px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 60% 100%,#426d66 0, #132f44 48%,#091726 100%);border-bottom:1px solid #eaca7840}.final-moon{position:absolute;right:17%;top:25px;width:80px;height:80px;border-radius:50%;background:#fbe9be;box-shadow:0 0 70px #f3d9a360}.final-stars{position:absolute;inset:20px;font-size:24px;color:#fceac0;letter-spacing:17px;line-height:2;opacity:.65}.final-sleigh{position:absolute;width:330px;max-width:none;top:48px;left:-350px;filter:drop-shadow(0 5px 10px #f8d77850)}.is-flying .final-sleigh{animation:jp-flight 5.6s ease-in-out both}.has-arrived .final-sleigh{left:calc(50% - 165px);top:42px;transform:scale(.85)}.final-hills{position:absolute;bottom:-68px;left:-10%;width:120%;height:130px;border-radius:50%;background:#c9e0dc;box-shadow:0 -18px 0 #70999a}.final-flight-label{position:absolute;bottom:3px;width:100%;text-align:center;color:#183a40;font-size:13px;font-style:italic;z-index:2}.final-copy{padding:26px 36px 32px;text-align:center}.final-eyebrow{text-transform:uppercase;letter-spacing:2px;color:#efcd8a;font-size:10px}.final-copy h2{font:clamp(28px,5vw,40px)/1.1 Georgia,serif;margin:12px 0}.final-copy>p:not(.final-eyebrow){color:#d6e2db;line-height:1.6}.final-gift{display:flex;flex-direction:column;align-items:center;gap:18px;margin:26px auto 24px;background:none;color:#f8df9f;border:0;cursor:pointer;font-size:17px;padding:10px 24px}.gift-box{display:block;position:relative;width:94px;height:74px;background:linear-gradient(110deg,#bb4345,#721e32);border-radius:4px;box-shadow:0 0 50px #ffd27845,inset 0 0 0 1px #f0b77c66}.gift-box:before{content:'';position:absolute;left:39px;width:17px;height:100%;background:#f1ca72}.gift-box:after{content:'';position:absolute;left:-5px;right:-5px;top:-7px;height:17px;background:linear-gradient(90deg,#cf5550 42%,#ffe098 42%,#ffe098 59%,#a7353e 59%);border-radius:3px}.gift-box i:before,.gift-box i:after{content:'';position:absolute;width:34px;height:21px;top:-28px;left:13px;border:5px solid #edca81;border-radius:50% 50% 0 50%;transform:rotate(15deg)}.gift-box i:after{left:44px;transform:rotate(-15deg) scaleX(-1)}.final-gift:hover .gift-box{transform:rotate(-5deg)}.final-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.final-controls button{min-height:44px}.final-skip{width:100%;color:#d8c28e}.final-entry{grid-column:1/-1;justify-self:start}.falling-gift{z-index:1;position:absolute;width:24px;height:23px;background:linear-gradient(90deg,#bb3c48 40%,#edcb77 40%,#edcb77 60%,#bb3c48 60%);border:1px solid #e9b665;top:100px;opacity:0;box-shadow:0 0 20px #ffe8a8}.gift-one{left:32%;--delay:1.7s}.gift-two{left:51%;--delay:2.4s}.gift-three{left:69%;--delay:3s}.is-flying .falling-gift{animation:jp-gift 1.8s var(--delay) ease-in both}.has-arrived .falling-gift{opacity:1;top:204px;transform:rotate(-8deg)}#final-letter{background:#f4e8cb;color:#233b36;padding:24px;border:1px solid #d5b36b;border-radius:8px;margin:18px 0 24px;box-shadow:0 4px 20px #0004;line-height:1.7}#final-letter .final-eyebrow{color:#795020}#final-letter h3{font:27px/1.2 Georgia,serif;margin:12px 0}#final-letter p{font-size:15px}#final-letter small{display:block;border-top:1px solid #9b794b55;padding-top:14px;font-size:12px}.final-signature{font-family:Georgia,serif;font-style:italic}.jp-finale button:focus-visible,#final-letter:focus-visible{outline:3px solid #f6d07c;outline-offset:4px}@keyframes jp-flight{0%{left:-350px;transform:translateY(30px) rotate(-7deg)}45%{transform:translateY(-22px) rotate(3deg)}100%{left:110%;transform:translateY(8px) rotate(-8deg)}}@keyframes jp-gift{0%{opacity:0;transform:translateY(-10px) rotate(0)}10%{opacity:1}100%{opacity:1;transform:translateY(104px) rotate(350deg)}}@media(max-width:520px){.final-copy{padding:20px 18px 24px}.final-sky{height:220px}.final-controls .button{width:100%;font-size:13px}.final-moon{right:12%;width:65px;height:65px}.final-sleigh{width:280px}.has-arrived .final-sleigh{left:calc(50% - 140px)}.final-flight-label{font-size:11px}.has-arrived .falling-gift{top:172px}#final-letter{padding:20px 16px}}@media(prefers-reduced-motion:reduce){.jp-finale *{animation:none!important;transition:none!important}.final-gift:hover .gift-box{transform:none}}
