@font-face{font-family:Figtree;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/gift/Figtree.woff2) format("woff2")}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/gift/Caveat-600.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/gift/PlayfairDisplay-500.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/gift/PlayfairDisplay-i500.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/gift/CormorantGaramond-600.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(/fonts/gift/CormorantGaramond-i600.woff2) format("woff2")}@font-face{font-family:Fredoka;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/gift/Fredoka.woff2) format("woff2")}.gift-root{--gvw:1vw;--gvh:1vh;position:fixed;inset:0;z-index:60;overflow:hidden;font-family:Figtree,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.gift-desk{display:none}@media (min-width:640px) and (min-height:560px){.gift-root{--frame-h:min(880px,calc(100vh - 56px));--frame-w:min(420px,calc(var(--frame-h) * 0.49));--gvw:calc(var(--frame-w) / 100);--gvh:calc(var(--frame-h) / 100);inset:auto;top:50%;left:50%;width:var(--frame-w);height:var(--frame-h);transform:translate(-50%,-50%);border-radius:34px;box-shadow:0 0 0 1px rgba(0,0,0,.06),0 30px 80px -20px rgba(0,0,0,.35),0 12px 30px -12px rgba(0,0,0,.25)}.gift-desk{display:block;position:fixed;inset:0;z-index:59;background:radial-gradient(120% 90% at 50% 0,#fbeee9,#ecd9d3)}.gift-desk.gw-letter{background:radial-gradient(120% 90% at 50% 0,#f5e3dc,#e6cfc7)}.gift-desk.gw-midnight{background:radial-gradient(120% 90% at 50% 0,#1c2036,#07080f)}.gift-desk.gw-party{background:radial-gradient(120% 90% at 50% 0,#f6d6ec,#e9c9f3)}}.gift-root *{box-sizing:border-box;margin:0}.gift-root button{font:inherit;color:inherit;cursor:pointer}.gift-root .bg{position:absolute;inset:0;pointer-events:none}.gift-root .scene{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:max(24px,env(safe-area-inset-top)) 26px max(22px,env(safe-area-inset-bottom));opacity:0;visibility:hidden;transform:scale(1.04);filter:blur(8px);transition:opacity .8s,transform .8s,filter .8s,visibility 0s .8s}.gift-root .scene.on{opacity:1;visibility:visible;transform:none;filter:none;transition:opacity 1s .35s,transform 1.2s .35s,filter 1s .35s}.gift-root.preview .scene{padding-top:max(60px,calc(env(safe-area-inset-top) + 44px))}.gift-root .rise{opacity:0;transform:translateY(16px)}.gift-root .scene.on .rise{animation:g-rise .9s cubic-bezier(.2,.8,.2,1) forwards}@keyframes g-rise{to{opacity:1;transform:none}}.gift-root .scene-1{transition-delay:0s}.gift-root .media{position:absolute;inset:0;z-index:1;opacity:0;transform:scale(1.15);transition:opacity 1.2s,transform 6s cubic-bezier(.2,.7,.2,1),filter 1s}.gift-root .media .photo,.gift-root .media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.gift-root .media .photo{animation:g-kb 20s ease-in-out infinite alternate}@keyframes g-kb{to{transform:scale(1.12) translate(-2%,-2%)}}.gift-root .media video{opacity:0;transition:opacity .8s}.gift-root.mvlive .media video{opacity:1}.gift-root .media.is-cover .blur{position:absolute;inset:-40px;background-size:cover;background-position:50%;filter:blur(30px) brightness(.55)}.gift-root .media.is-cover .cover{position:absolute;left:50%;top:44%;width:min(calc(78 * var(--gvw)),calc(52 * var(--gvh)));aspect-ratio:1;object-fit:cover;transform:translate(-50%,-50%);border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.55);animation:g-kb2 18s ease-in-out infinite alternate}@keyframes g-kb2{to{transform:translate(-50%,-50%) scale(1.06)}}.gift-root .media:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.62),transparent 28%,transparent 55%,rgba(0,0,0,.85))}.gift-root[data-scene="4"] .media,.gift-root[data-scene="5"] .media{opacity:1;transform:none}.gift-root[data-scene="5"] .media{filter:blur(16px) brightness(.45);transform:scale(1.08)}.gift-root .flash{position:absolute;left:50%;top:50%;width:200px;height:200px;margin:-100px;border-radius:50%;z-index:4;pointer-events:none;opacity:0}.gift-root.opened .flash{animation:g-flash 1.9s ease-out forwards}@keyframes g-flash{0%{opacity:0;transform:scale(.2)}35%{opacity:1;transform:scale(3)}to{opacity:0;transform:scale(9)}}.gift-root .letter-text{min-height:7.5em;white-space:pre-wrap}.gift-root .letter-text:after{content:"|";animation:g-blink 1s steps(1) infinite;opacity:.6}.gift-root.typed .letter-text:after{display:none}@keyframes g-blink{50%{opacity:0}}.gift-root .after-type{opacity:0;transform:translateY(14px);transition:all .8s cubic-bezier(.2,.8,.2,1);pointer-events:none}.gift-root.typed .after-type{opacity:1;transform:none;pointer-events:auto}.gift-root.typed .after-type+.after-type{transition-delay:.5s}.gift-root .next{margin-top:16px;background:none;border:0;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .8s}.gift-root .next.show{opacity:.9;pointer-events:auto}.gift-root .scene-4{justify-content:space-between}.gift-root .track{position:relative;height:5px;border-radius:5px;background:rgba(255,255,255,.22);cursor:pointer;overflow:hidden}.gift-root .track:before{content:"";position:absolute;inset:-12px 0}.gift-root .fill{height:100%;width:0}.gift-root .times{display:flex;justify-content:space-between;font-size:12px;margin-top:6px}.gift-root .controls{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:10px}.gift-root .play{width:68px;height:68px;border-radius:50%;border:0;display:grid;place-items:center}.gift-root .side{width:44px;height:44px}.gift-root .to-mv{margin-top:14px;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:99px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.3);backdrop-filter:blur(10px);color:#fff;font-size:13px;font-weight:600;transition:opacity .5s}.gift-root .to-mv i{font-style:normal;opacity:.7;font-weight:500}.gift-root.mvlive .to-mv{opacity:0;pointer-events:none}.gift-root .mini{position:absolute;top:max(22px,env(safe-area-inset-top));display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;border-radius:99px;font-size:13px;font-weight:500}.gift-root.preview .mini{top:max(56px,calc(env(safe-area-inset-top) + 44px))}.gift-root .acts{width:100%;max-width:380px;margin-top:26px;display:grid;gap:10px}.gift-root .acts .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gift-root .acts .also{justify-self:center;margin:-2px 0 2px;font-size:13px;opacity:.75;text-decoration:underline;text-underline-offset:3px}.gift-root .off{font-size:12px;margin:-2px 0 4px}.gift-root .replay{margin-top:16px;background:none;border:0;font-size:14px;font-weight:500}.gift-root .scene-5 footer{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));font-size:12px}.gift-root .scene-5 footer a{text-decoration:none;font-weight:600}.gift-root .backbtn{position:absolute;top:max(18px,env(safe-area-inset-top));left:14px;z-index:6;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.28);backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;transition:opacity .4s}.gift-root.preview .backbtn{top:max(52px,calc(env(safe-area-inset-top) + 40px))}.gift-root[data-scene="1"] .backbtn{opacity:0;pointer-events:none}.gift-root .pv{position:absolute;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:12px;padding:max(8px,env(safe-area-inset-top)) 12px 8px;background:rgba(20,20,22,.88);backdrop-filter:blur(10px);color:#fff;font-size:13px;font-weight:600}.gift-root .pv a{border-radius:99px;background:#fff;color:#111;font-size:12px;font-weight:700;padding:5px 12px;text-decoration:none}.gift-root .confetti{position:absolute;inset:0;pointer-events:none;z-index:9;overflow:hidden}.gift-root .confetti i{position:absolute;top:-20px;width:7px;height:13px;border-radius:2px;animation:g-fall linear forwards}@keyframes g-fall{to{top:110%;transform:translateX(40px) rotate(2turn)}}.gift-root .sheet{position:absolute;inset:0;z-index:20;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}.gift-root .sheet.show{opacity:1;visibility:visible;transition:opacity .25s}.gift-root .sheet-card{width:100%;max-width:460px;margin:0 auto;background:#fff;color:#1d1a22;border-radius:22px 22px 0 0;padding:18px 16px max(16px,env(safe-area-inset-bottom));display:grid;gap:10px;transform:translateY(100%);transition:transform .3s cubic-bezier(.2,.9,.3,1);text-align:left;font-family:Figtree,system-ui,sans-serif}.gift-root .sheet.show .sheet-card{transform:none}.gift-root .sheet-card b{text-align:center;font-size:15px;margin-bottom:2px}.gift-root .sheet-card a,.gift-root .sheet-card button{display:flex;align-items:center;gap:14px;padding:14px;border-radius:16px;border:1px solid #ece8ef;background:#faf8fb;color:inherit;text-decoration:none;text-align:left}.gift-root .sheet-card span.ico{font-size:24px}.gift-root .sheet-card strong{display:block;font-size:16px}.gift-root .sheet-card small{color:#8a8590;font-size:13px}.gift-root .sheet-card .cancel{justify-content:center;background:none;border:0;font-weight:600;color:#8a8590}@keyframes g-pulse{50%{opacity:.4}}@keyframes g-float{50%{transform:translateY(-8px)}}.gw-midnight{--gold:#e9c98b;--gold2:#b8894a;--ink:#0b0c14;--muted:#9a9cb0;background:var(--ink);color:#f4f1ea}.gw-midnight .bg{background:radial-gradient(60% 40% at 50% 0,rgba(233,201,139,.16),transparent 70%),radial-gradient(50% 35% at 50% 100%,rgba(120,90,200,.14),transparent 70%)}.gw-midnight .bg:after{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 20% 30%,#fff8,transparent),radial-gradient(1px 1px at 70% 20%,#fff6,transparent),radial-gradient(1.5px 1.5px at 40% 70%,#fff5,transparent),radial-gradient(1px 1px at 85% 60%,#fff7,transparent),radial-gradient(1px 1px at 10% 85%,#fff5,transparent),radial-gradient(1.5px 1.5px at 60% 45%,#fff4,transparent);animation:g-twinkle 4s ease-in-out infinite alternate}@keyframes g-twinkle{to{opacity:.4}}.gw-midnight .kicker{letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-size:11px}.gw-midnight .scene-1 h1{font-family:Playfair Display,Songti SC,STSong,"Noto Serif SC",SimSun,serif;font-weight:500;font-size:34px;margin:10px 0 40px}.gw-midnight .box{position:relative;width:180px;height:160px;margin:0 auto;border:0;background:none;animation:g-float 3s ease-in-out infinite}.gw-midnight .box .base{position:absolute;bottom:0;left:10px;right:10px;height:116px;border-radius:6px;background:linear-gradient(160deg,#2a2d48,#161829);box-shadow:0 30px 60px rgba(0,0,0,.55),0 0 60px rgba(233,201,139,.15),inset 0 1px 0 rgba(255,255,255,.08)}.gw-midnight .box .lid{position:absolute;top:18px;left:0;right:0;height:38px;border-radius:6px;background:linear-gradient(160deg,#343858,#1d2036);box-shadow:0 8px 18px rgba(0,0,0,.4);transition:transform .9s cubic-bezier(.2,.9,.3,1.3),opacity .6s .3s}.gw-midnight .box .rib{position:absolute;top:18px;bottom:0;left:50%;width:18px;margin-left:-9px;background:linear-gradient(90deg,var(--gold2),var(--gold),var(--gold2))}.gw-midnight .box .bow{position:absolute;top:-6px;left:50%;width:70px;height:34px;margin-left:-35px;transition:transform .9s cubic-bezier(.2,.9,.3,1.3),opacity .6s .3s}.gw-midnight .box .bow:after,.gw-midnight .box .bow:before{content:"";position:absolute;top:4px;width:32px;height:26px;border:6px solid var(--gold);border-radius:50% 50% 10% 50%}.gw-midnight .box .bow:before{left:0;transform:rotate(-20deg)}.gw-midnight .box .bow:after{right:0;transform:rotate(20deg) scaleX(-1)}.gw-midnight.opened .box .bow,.gw-midnight.opened .box .lid{transform:translateY(-220px) rotate(-22deg);opacity:0}.gw-midnight .tap{margin-top:36px;color:var(--muted);font-size:14px;animation:g-pulse 1.8s infinite}.gw-midnight .flash{background:radial-gradient(circle,#fff6e0 0,var(--gold) 35%,rgba(233,201,139,0) 70%)}.gw-midnight .glow{position:absolute;width:calc(140 * var(--gvw));height:calc(140 * var(--gvw));max-width:700px;max-height:700px;border-radius:50%;background:radial-gradient(circle,rgba(233,201,139,.22),transparent 60%);animation:g-breathe 4s ease-in-out infinite}@keyframes g-breathe{50%{transform:scale(1.12);opacity:.7}}.gw-midnight .scene-2 h1{font-style:italic;font-weight:500;font-size:64px;color:var(--gold);margin:18px 0 14px}.gw-midnight .scene-2 h1,.gw-midnight .scene-2 p{position:relative;font-family:Playfair Display,Songti SC,STSong,"Noto Serif SC",SimSun,serif}.gw-midnight .scene-2 p{font-size:22px;line-height:1.4}.gw-midnight .scene-2 p.sub{color:var(--muted);font-size:17px;margin-top:6px}.gw-midnight .hint{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));font-size:12px;color:#6d6f84}.gw-midnight .card{width:100%;max-width:380px;margin:16px 0 0;padding:26px 24px 20px;border-radius:18px;text-align:left;background:linear-gradient(160deg,#1b1d30,#12131f);border:1px solid rgba(233,201,139,.25);box-shadow:0 30px 60px rgba(0,0,0,.5)}.gw-midnight .card .dear{font-family:Caveat,Kaiti SC,STKaiti,KaiTi,cursive;font-size:26px;color:var(--gold);margin-bottom:6px}.gw-midnight .card .letter-text{font-family:Caveat,Kaiti SC,STKaiti,KaiTi,cursive;font-size:27px;line-height:1.3;color:#f1e3c6}.gw-midnight .card .sign{text-align:right;font-family:Caveat,Kaiti SC,STKaiti,KaiTi,cursive;font-size:26px;color:var(--gold);margin-top:8px}.gw-midnight .btn-main{height:56px;padding:0 30px;border:0;border-radius:99px;background:linear-gradient(90deg,var(--gold2),var(--gold));color:var(--ink);font-size:16px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:10px}.gw-midnight.typed .play-song{animation:g-ring-gold 2s 1.3s infinite}@keyframes g-ring-gold{0%{box-shadow:0 0 0 0 rgba(233,201,139,.55)}to{box-shadow:0 0 0 22px rgba(233,201,139,0)}}.gift-root .play-song{margin-top:30px}.gw-midnight .scene-4 h2{font-family:Playfair Display,Songti SC,STSong,"Noto Serif SC",SimSun,serif;font-weight:500;font-size:30px;line-height:1.15;margin:10px 0 6px;text-shadow:0 2px 20px rgba(0,0,0,.5)}.gw-midnight .scene-4 .top p,.gw-midnight .times{color:#d9d6e2;font-size:14px}.gw-midnight .times{font-size:12px}.gw-midnight .fill{background:linear-gradient(90deg,var(--gold2),var(--gold))}.gw-midnight .disc{width:44px;height:44px;border-radius:50%;background:repeating-radial-gradient(#111 0 2px,#1d1d1d 2px 4px);position:relative;box-shadow:0 0 0 1px rgba(255,255,255,.12)}.gw-midnight .disc:after{content:"";position:absolute;inset:16px;border-radius:50%;background:var(--gold)}.gw-midnight.playing .disc{animation:g-spin 4s linear infinite}@keyframes g-spin{to{transform:rotate(1turn)}}.gw-midnight .play{background:var(--gold);color:var(--ink);box-shadow:0 10px 30px rgba(233,201,139,.3)}.gw-midnight .mini{border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.3);backdrop-filter:blur(10px);color:#f4f1ea}.gw-midnight .scene-5 .heart{font-size:30px;color:var(--gold)}.gw-midnight .scene-5 h2{font-family:Playfair Display,Songti SC,STSong,"Noto Serif SC",SimSun,serif;font-weight:500;font-size:32px;line-height:1.2;margin:10px 0}.gw-midnight .scene-5 h2 em{color:var(--gold)}.gw-midnight .scene-5>p{color:#d9d6e2;font-size:15px;line-height:1.5;max-width:300px}.gw-midnight .off{color:var(--gold)}.gw-midnight .ghost{height:50px;border-radius:99px;background:rgba(255,255,255,.08);color:#f4f1ea;border:1px solid rgba(255,255,255,.2);font-size:15px;font-weight:600;backdrop-filter:blur(8px)}.gw-midnight .replay{color:#d9d6e2}.gw-midnight .scene-5 footer{color:#8e90a5}.gw-midnight .scene-5 footer a{color:var(--gold)}.gw-letter{--rose:#c9566e;--ink:#3a2a2e;--muted:#8c7b7e;background:#fbf5ee;color:var(--ink)}.gw-letter .bg{background-image:radial-gradient(rgba(201,86,110,.07) 1px,transparent 0);background-size:18px 18px;overflow:hidden}.gw-letter .bg i{position:absolute;top:-20px;width:12px;height:12px;border-radius:60% 0 60% 0;background:rgba(232,139,156,.35);animation:g-drift 14s linear infinite}.gw-letter .bg i:first-child{left:12%;animation-delay:-2s}.gw-letter .bg i:nth-child(2){left:38%;animation-delay:-7s;animation-duration:17s}.gw-letter .bg i:nth-child(3){left:66%;animation-delay:-4s}.gw-letter .bg i:nth-child(4){left:86%;animation-delay:-10s;animation-duration:19s}@keyframes g-drift{to{top:105%;transform:translateX(-40px) rotate(400deg)}}.gw-letter .kicker{letter-spacing:.25em;text-transform:uppercase;color:var(--rose);font-size:11px}.gw-letter .scene-1 h1{font-family:Cormorant Garamond,serif;font-weight:600;font-size:34px;margin:10px 0 34px}.gw-letter .env{position:relative;width:250px;height:160px;margin:0 auto;border:0;background:none;perspective:900px;animation:g-float 3.2s ease-in-out infinite}.gw-letter .env .back{position:absolute;inset:0;z-index:0;border-radius:8px;background:#f3d6d6;box-shadow:0 24px 50px rgba(150,70,80,.25)}.gw-letter .env .paper{position:absolute;left:14px;right:14px;top:14px;bottom:10px;z-index:2;padding:14px 18px 0;border-radius:4px;background:#fffdf9;box-shadow:0 -2px 8px rgba(150,70,80,.12);text-align:left;transition:transform .9s ease .4s}.gw-letter .env .paper-dear{display:block;font-family:Caveat,Kaiti SC,STKaiti,KaiTi,cursive;font-weight:600;font-size:19px;line-height:1;color:var(--rose)}.gw-letter .env .paper-line{display:block;height:2px;margin-top:11px;border-radius:2px;background:rgba(168,58,82,.16)}.gw-letter .env .paper-line.short{width:60%}.gw-letter .env .front{position:absolute;inset:0;z-index:3;border-radius:8px;background:linear-gradient(to top right,rgba(255,255,255,.18) 50%,transparent 0) 0/50% 100% no-repeat,linear-gradient(to top left,rgba(255,255,255,.18) 50%,transparent 0) 100%/50% 100% no-repeat,#f7dede;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%)}.gw-letter .env .flap{position:absolute;left:0;right:0;top:0;height:95px;transform-origin:top;background:linear-gradient(180deg,#ecc4c6,#e6b4b7);clip-path:polygon(0 0,100% 0,50% 100%);z-index:5;transition:transform .7s ease,z-index 0s linear .35s}.gw-letter .env .seal{position:absolute;left:50%;top:72px;width:44px;height:44px;margin-left:-22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#e0687f,#a83a52);color:#fde;display:grid;place-items:center;font-size:18px;z-index:6;box-shadow:0 4px 10px rgba(120,30,50,.35);transition:opacity .3s,transform .5s}.gw-letter .env .name{position:absolute;left:0;right:0;bottom:18px;font-family:Caveat,Kaiti SC,STKaiti,KaiTi,cursive;font-size:26px;color:var(--rose);z-index:4}.gw-letter.opened .env .flap{z-index:1;transform:rotateX(180deg)}.gw-letter .scene-1>:not(.env){transition:opacity .35s ease}.gw-letter.opened .scene-1>:not(.env){opacity:0}.gw-letter.opened .env .seal{opacity:0;transform:scale(1.6)}.gw-letter.opened .env .paper{transform:translateY(-90px)}.gw-letter .tap{margin-top:34px;color:var(--muted);font-size:14px;animation:g-pulse 1.8s infinite}.gw-letter .flash{background:radial-gradient(circle,#fff 0,#fde3e7 40%,rgba(253,227,231,0) 70%)}.gw-letter .scene-2 h1{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:600;font-size:70px;color:var(--rose);margin:14px 0 12px}.gw-letter .scene-2 p{font-family:Cormorant Garamond,serif;font-size:25px;line-height:1.35}.gw-letter .scene-2 p.sub{color:var(--muted);font-size:19px;margin-top:4px;font-style:italic}.gw-letter .hint{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));font-size:12px;color:var(--muted)}.gw-letter .card{width:100%;max-width:380px;margin:16px 0 0;padding:26px 24px 18px;border-radius:6px;text-align:left;background:#fffdf9;box-shadow:0 24px 50px rgba(120,60,70,.16);background-image:repeating-linear-gradient(transparent 0 33px,#f1dfdf 33px 34px);background-position:0 8px}.gw-letter .scene-3.on .card{transform:rotate(-1deg)}.gw-letter .card .dear,.gw-letter .card .letter-text,.gw-letter .card .sign{font-family:Caveat,Kaiti SC,STKaiti,KaiTi,cursive;font-size:27px;line-height:34px}.gw-letter .card .dear,.gw-letter .card .sign{color:var(--rose)}.gw-letter .card .sign{text-align:right}.gw-letter .btn-main{height:56px;padding:0 30px;border:0;border-radius:99px;background:var(--rose);color:#fff;font-size:16px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 12px 26px rgba(201,86,110,.3)}.gw-letter.typed .play-song{animation:g-ring-rose 2s 1.3s infinite}@keyframes g-ring-rose{0%{box-shadow:0 0 0 0 rgba(201,86,110,.45)}to{box-shadow:0 0 0 22px rgba(201,86,110,0)}}.gw-letter .scene-4{color:#fff}.gw-letter .scene-4 .kicker{color:#ffd6de}.gw-letter .scene-4 h2{font-family:Cormorant Garamond,serif;font-weight:600;font-size:34px;line-height:1.1;margin:8px 0 6px;text-shadow:0 2px 20px rgba(0,0,0,.5)}.gw-letter .scene-4 .top p,.gw-letter .times{color:#f3e6e8;font-size:14px}.gw-letter .times{font-size:12px}.gw-letter .track{background:rgba(255,255,255,.3)}.gw-letter .fill{background:#fff}.gw-letter .heart{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);color:#fff;font-size:18px}.gw-letter.playing .heart{animation:g-beat 1s infinite}@keyframes g-beat{15%{transform:scale(1.15)}30%{transform:scale(1)}}.gw-letter .play{background:var(--rose);color:#fff;box-shadow:0 10px 30px rgba(201,86,110,.45)}.gw-letter .scene-4 .next{color:#fff}.gw-letter .scene-5{background:rgba(251,245,238,.9);backdrop-filter:blur(6px)}.gw-letter .mini{border:1px solid #ecd8da;background:#fff;color:var(--ink)}.gw-letter .polaroid{width:150px;background:#fff;padding:8px 8px 30px;box-shadow:0 16px 34px rgba(120,60,70,.2);position:relative}.gw-letter .scene-5.on .polaroid{transform:rotate(-4deg)}.gw-letter .polaroid img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.gw-letter .polaroid span{position:absolute;left:0;right:0;bottom:4px;font-family:Caveat,Kaiti SC,STKaiti,KaiTi,cursive;font-size:19px}.gw-letter .scene-5 h2{font-family:Cormorant Garamond,serif;font-weight:600;font-size:34px;line-height:1.1;margin:22px 0 8px}.gw-letter .scene-5 h2 em{color:var(--rose)}.gw-letter .scene-5>p{color:var(--muted);font-size:15px;line-height:1.5;max-width:300px}.gw-letter .off{color:var(--rose)}.gw-letter .ghost{height:50px;border-radius:99px;background:#fff;color:var(--ink);border:1px solid #ecd8da;font-size:15px;font-weight:600}.gw-letter .replay,.gw-letter .scene-5 footer{color:var(--muted)}.gw-letter .scene-5 footer a{color:var(--rose)}.gw-letter[data-scene="2"] .backbtn,.gw-letter[data-scene="3"] .backbtn,.gw-letter[data-scene="5"] .backbtn{background:#fff;color:var(--ink);border-color:#ecd8da}.gw-party{--a:#7b5cff;--b:#ff5fa2;--c:#ffb347;--ink:#1d1530;color:#fff;background:var(--b)}.gw-party .bg{background:linear-gradient(160deg,var(--a) 0,var(--b) 55%,var(--c) 100%);overflow:hidden}.gw-party .bg i{position:absolute;border-radius:50%;background:rgba(255,255,255,.14);animation:g-bob 6s ease-in-out infinite}.gw-party .bg i:first-child{width:120px;height:120px;left:-30px;top:12%}.gw-party .bg i:nth-child(2){width:70px;height:70px;right:8%;top:22%;animation-delay:-2s}.gw-party .bg i:nth-child(3){width:160px;height:160px;right:-50px;bottom:10%;animation-delay:-4s}.gw-party .bg i:nth-child(4){width:50px;height:50px;left:14%;bottom:18%;animation-delay:-1s}@keyframes g-bob{50%{transform:translateY(-16px) scale(1.05)}}.gw-party .kicker{font-family:Fredoka,sans-serif;font-weight:600;font-size:13px;background:rgba(255,255,255,.22);padding:5px 12px;border-radius:99px}.gw-party .scene-1 h1{font:700 46px/1.05 Fredoka,sans-serif;margin:16px 0 30px;text-shadow:0 4px 0 rgba(0,0,0,.12)}.gw-party .box{position:relative;width:180px;height:170px;margin:0 auto;border:0;background:none;animation:g-wiggle 2.4s ease-in-out infinite}.gw-party .box .base{position:absolute;bottom:0;left:12px;right:12px;height:118px;border-radius:16px;background:#fff;box-shadow:0 24px 50px rgba(60,20,90,.35)}.gw-party .box .lid{position:absolute;top:30px;left:0;right:0;height:40px;border-radius:14px;background:#fff;box-shadow:0 6px 0 rgba(0,0,0,.06);transition:transform .8s cubic-bezier(.2,.9,.3,1.4),opacity .6s .3s}.gw-party .box .rib{position:absolute;top:30px;bottom:0;left:50%;width:26px;margin-left:-13px;background:var(--b);border-radius:4px}.gw-party .box .bow{position:absolute;top:0;left:50%;width:90px;height:40px;margin-left:-45px;transition:transform .8s cubic-bezier(.2,.9,.3,1.4),opacity .6s .3s}.gw-party .box .bow:after,.gw-party .box .bow:before{content:"";position:absolute;top:2px;width:40px;height:34px;background:var(--b);border-radius:50% 50% 50% 0}.gw-party .box .bow:before{left:2px;transform:rotate(-25deg)}.gw-party .box .bow:after{right:2px;transform:rotate(25deg) scaleX(-1)}.gw-party.opened .box .bow,.gw-party.opened .box .lid{transform:translateY(-240px) rotate(25deg);opacity:0}@keyframes g-wiggle{0%,70%,to{transform:rotate(0)}75%{transform:rotate(-6deg)}85%{transform:rotate(6deg)}92%{transform:rotate(-3deg)}}.gw-party .tap{margin-top:28px;font:600 16px Fredoka,sans-serif;opacity:.9;animation:g-pulse 1.6s infinite}.gw-party .flash{background:radial-gradient(circle,#fff 0,#fff6 45%,rgba(255,255,255,0) 70%)}.gw-party .emoji{font-size:54px}.gw-party .scene-2.on .emoji{animation:g-pop .7s cubic-bezier(.2,1.6,.4,1) .2s both}@keyframes g-pop{0%{transform:scale(0) rotate(-30deg)}}.gw-party .scene-2 h1{font:700 64px/1 Fredoka,sans-serif;margin:14px 0;text-shadow:0 5px 0 rgba(0,0,0,.1)}.gw-party .scene-2 p{font:600 22px/1.3 Fredoka,sans-serif}.gw-party .scene-2 p.sub{opacity:.85;font-size:18px;margin-top:6px}.gw-party .hint{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));font:600 12px Fredoka,sans-serif;opacity:.8}.gw-party .card{width:100%;max-width:380px;margin:18px 0 0;padding:24px 22px 18px;border-radius:26px;text-align:left;background:#fff;color:var(--ink);box-shadow:0 22px 50px rgba(60,20,90,.3)}.gw-party .scene-3.on .card{transform:rotate(-1.5deg)}.gw-party .card .dear{font:600 20px Fredoka,sans-serif;color:var(--b);margin-bottom:6px}.gw-party .card .letter-text{font-family:Caveat,Kaiti SC,STKaiti,KaiTi,cursive;font-size:28px;line-height:1.25}.gw-party .card .sign{text-align:right;margin-top:8px}.gw-party .btn-main,.gw-party .card .sign{font:600 18px Fredoka,sans-serif;color:var(--b)}.gw-party .btn-main{height:58px;padding:0 30px;border:0;border-radius:99px;background:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 8px 0 rgba(0,0,0,.08)}.gw-party.typed .play-song{animation:g-jump 1.4s 1.3s infinite}@keyframes g-jump{0%,60%,to{transform:none}30%{transform:translateY(-6px) scale(1.04)}}.gw-party .scene-4 h2{font:700 34px/1.05 Fredoka,sans-serif;margin:10px 0 6px;text-shadow:0 3px 16px rgba(0,0,0,.35)}.gw-party .scene-4 .top p{font-size:14px;opacity:.9}.gw-party .times{font:600 12px Fredoka,sans-serif}.gw-party .track{height:7px;background:rgba(255,255,255,.3)}.gw-party .fill{background:#fff}.gw-party .bars{display:flex;gap:3px;align-items:flex-end;height:34px;width:44px;justify-content:center}.gw-party .bars span{width:5px;height:30%;background:#fff;border-radius:3px}.gw-party.playing .bars span{animation:g-eq .8s ease-in-out infinite}.gw-party .bars span:nth-child(2){animation-delay:.2s}.gw-party .bars span:nth-child(3){animation-delay:.4s}.gw-party .bars span:nth-child(4){animation-delay:.1s}@keyframes g-eq{50%{height:100%}}.gw-party .play{width:70px;height:70px;background:#fff;color:var(--b);box-shadow:0 8px 0 rgba(0,0,0,.1)}.gw-party .next{font:600 15px Fredoka,sans-serif}.gw-party .scene-5{background:linear-gradient(160deg,rgba(123,92,255,.92),rgba(255,95,162,.92) 55%,rgba(255,179,71,.92))}.gw-party .mini{border:0;background:rgba(255,255,255,.22);color:#fff;font-family:Fredoka,sans-serif;font-weight:600}.gw-party .scene-5 .big{font-size:56px}.gw-party .scene-5 h2{font:700 38px/1.05 Fredoka,sans-serif;margin:12px 0 10px}.gw-party .scene-5>p{font-size:16px;line-height:1.45;max-width:300px;opacity:.95}.gw-party .off{font:600 13px Fredoka,sans-serif;margin:0 0 4px}.gw-party .ghost{height:52px;border-radius:99px;background:rgba(255,255,255,.16);color:#fff;border:2px solid rgba(255,255,255,.55);font:600 16px Fredoka,sans-serif}.gw-party .replay{color:#fff;font:600 15px Fredoka,sans-serif}.gw-party .scene-5 footer{opacity:.9}.gw-party .scene-5 footer a{color:#fff}.gw-letter .acts .btn-main,.gw-midnight .acts .btn-main,.gw-party .acts .btn-main{width:100%}.gift-root .d1{animation-delay:.3s!important}.gift-root .d2{animation-delay:.5s!important}.gift-root .d3{animation-delay:.8s!important}.gift-root .d4{animation-delay:1s!important}.gift-root .d5{animation-delay:1.3s!important}.gift-root .d6{animation-delay:1.6s!important}.gift-root .d7{animation-delay:1.9s!important}.gift-root .d8{animation-delay:2.7s!important}.gift-root .d9{animation-delay:3.6s!important}.gift-root .soundbtn{position:absolute;top:max(18px,env(safe-area-inset-top));right:14px;z-index:6;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.28);backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .4s}.gift-root .soundbtn.show{opacity:1;pointer-events:auto}.gift-root.preview .soundbtn{top:max(52px,calc(env(safe-area-inset-top) + 40px))}.gw-letter .soundbtn{background:#fff;color:var(--ink);border-color:#ecd8da}.gift-root .sound-hint{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:0;right:0;font-size:12px;opacity:.7}.gw-letter .sound-hint,.gw-midnight .sound-hint{color:var(--muted)}.gw-midnight{--acc:#e9c98b;--title:"Playfair Display","Songti SC",STSong,"Noto Serif SC",SimSun,serif;--pink:#f4f1ea;--soft:#a6a8bc;--track:rgba(255,255,255,0.18);--playbg:#e9c98b;--playfg:#0b0c14}.gw-letter{--acc:#c9566e;--title:"Cormorant Garamond",serif;--pink:#3a2a2e;--soft:#8c7b7e;--track:rgba(201,86,110,0.18);--playbg:#c9566e;--playfg:#ffffff}.gw-party{--acc:#ffffff;--title:"Fredoka",sans-serif;--pink:#ffffff;--soft:rgba(255,255,255,0.85);--track:rgba(255,255,255,0.35);--playbg:#ffffff;--playfg:#ff5fa2}.gift-root .scene.scene-4{justify-content:flex-start;gap:clamp(6px,calc(1.3 * var(--gvh)),12px);padding:0 26px max(14px,env(safe-area-inset-bottom));color:var(--pink)}.gift-root.preview .scene.scene-4{padding-top:0}.gift-root .scene-4>*{position:relative;z-index:1}.gift-root .scene-4 .stage{width:calc(100% + 52px);margin:0 -26px;height:min(calc(54 * var(--gvh)),calc(112 * var(--gvw)));flex:none}.gift-root .scene-4 .stage-art{display:block;width:100%;height:100%}.gift-root .scene-4 .stage .cover-art{transition:opacity .45s}.gift-root.mvlive .scene-4 .stage .cover-art{opacity:0;transition:opacity .3s .25s}.gift-root .scene-4 .stage .pillow{animation:g-squish 3.2s ease-in-out infinite;transform-origin:446px 300px;transform-box:view-box}@keyframes g-squish{50%{transform:scale(1.04,.97)}}.gift-root .scene-4 .stage .flame{animation:g-flame .8s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 100%}@keyframes g-flame{to{transform:scaleY(1.18) scaleX(.86)}}.gift-root .scene-4 .stage .bulb,.gift-root .scene-4 .stage .twinkle{animation:g-tw 2.2s ease-in-out infinite}@keyframes g-tw{50%{opacity:.35}}.gift-root .scene-4 .stage .balloon{animation:g-bal 4s ease-in-out infinite}@keyframes g-bal{50%{transform:translateY(-8px)}}.gift-root .scene-4 .meta{margin-top:2px}.gift-root .scene-4 .meta h2{font-family:var(--title);font-weight:600;font-size:clamp(22px,calc(3.3 * var(--gvh)),30px);line-height:1.12;margin:0;color:var(--acc);text-shadow:none}.gw-letter .scene-4 .meta h2{font-style:italic}.gift-root .scene-4 .meta p{margin-top:3px;font-size:13px;color:var(--soft)}.gift-root .scene-4 .lyric{width:100%;max-width:380px;min-height:3.6em;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.gift-root .scene-4 .lyric .now{font-family:var(--title);font-size:clamp(17px,calc(2.4 * var(--gvh)),22px);line-height:1.3;font-weight:600;color:var(--pink);animation:g-line .55s cubic-bezier(.2,.8,.2,1)}.gift-root .scene-4 .lyric .then{font-size:13px;line-height:1.4;color:var(--soft);opacity:.8;animation:g-line .55s cubic-bezier(.2,.8,.2,1) .08s both}@keyframes g-line{0%{opacity:0;transform:translateY(10px)}}.gift-root .scene-4 .to-mv{margin:0}.gw-letter .scene-4 .to-mv{background:#fff;color:var(--acc);border-color:#f1d3da}.gift-root .scene-4 .bottom{width:100%;max-width:400px;margin-top:auto}.gift-root .scene-4 .seekbar{position:relative;height:30px;display:flex;align-items:center;cursor:pointer;touch-action:none}.gift-root .scene-4 .seekbar .track{flex:1;height:6px;background:var(--track)}.gift-root .scene-4 .seekbar .fill{background:var(--acc)}.gift-root .scene-4 .knob{position:absolute;top:50%;font-size:24px;line-height:1;transform:translate(-50%,-54%);filter:drop-shadow(0 3px 5px rgba(0,0,0,.25));transition:transform .15s;pointer-events:none}.gift-root .scene-4 .knob.held{transform:translate(-50%,-54%) scale(1.35)}.gift-root .scene-4 .times{color:var(--soft);font-family:Figtree,sans-serif;font-size:12px;margin-top:0}.gift-root .scene-4 .controls{gap:34px;margin-top:4px}.gift-root .scene-4 .skip{width:44px;height:44px;border:0;background:none;color:var(--pink);opacity:.85;display:grid;place-items:center}.gift-root .scene-4 .play{width:64px;height:64px;background:var(--playbg);color:var(--playfg);box-shadow:0 10px 26px rgba(0,0,0,.18)}.gift-root .scene-4 .next{color:var(--pink);font-family:Figtree,sans-serif;margin-top:8px}.gw-letter[data-scene="4"] .backbtn{background:#fff;color:var(--ink);border-color:#ecd8da}.gift-root .scene-4 .fx{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.gift-root .scene-4 .fx i{position:absolute;top:-24px;display:block}.gw-letter .scene-4 .fx i{width:calc(13px * var(--s));height:calc(10px * var(--s));border-radius:80% 0 80% 0;background:linear-gradient(135deg,#ffd3dc,#f28ba3);opacity:.85;animation:g-petal linear infinite}@keyframes g-petal{0%{transform:translate(0) rotate(0)}25%{transform:translate(28px,calc(26 * var(--gvh))) rotate(90deg)}50%{transform:translate(-12px,calc(52 * var(--gvh))) rotate(180deg)}75%{transform:translate(22px,calc(78 * var(--gvh))) rotate(270deg)}to{transform:translate(-6px,calc(108 * var(--gvh))) rotate(1turn)}}.gw-party .scene-4 .fx i{width:calc(7px * var(--s));height:calc(13px * var(--s));border-radius:2px;background:var(--c);animation:g-confetti linear infinite}@keyframes g-confetti{0%{transform:translateY(0) rotateX(0) rotate(0)}to{transform:translateY(calc(108 * var(--gvh))) rotateX(2turn) rotate(240deg)}}.gw-midnight .scene-4 .fx i{width:calc(12px * var(--s));height:calc(12px * var(--s));background:#ffe7b0;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);animation:g-spark ease-in-out infinite}@keyframes g-spark{0%,to{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}.gw-midnight .scene-4 .fx .shooting{position:absolute;top:8%;left:110%;width:120px;height:2px;background:linear-gradient(90deg,rgba(255,240,200,0),#fff3cf);border-radius:2px;transform:rotate(-22deg);animation:g-shoot 9s ease-in 3s infinite}@keyframes g-shoot{0%,88%{left:110%;top:8%;opacity:0}90%{opacity:1}to{left:-30%;top:32%;opacity:0}}.gift-root .scene-4 .mvlayer{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none;clip-path:inset(var(--ct,30%) var(--cr,30%) var(--cb,50%) var(--cl,30%) round 8px);-webkit-clip-path:inset(var(--ct,30%) var(--cr,30%) var(--cb,50%) var(--cl,30%) round 8px);transition:clip-path 1s cubic-bezier(.65,0,.35,1),-webkit-clip-path 1s cubic-bezier(.65,0,.35,1),opacity .35s .65s}.gift-root .scene-4 .mvlayer video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1}.gift-root .scene-4 .mvlayer:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.4),transparent 24%,transparent 46%,rgba(0,0,0,.82));opacity:0;transition:opacity .8s .4s}.gift-root.mvlive .scene-4 .mvlayer{opacity:1;clip-path:inset(0 0 0 0 round 0);-webkit-clip-path:inset(0 0 0 0 round 0);transition:opacity .25s,clip-path 1s cubic-bezier(.65,0,.35,1) .1s,-webkit-clip-path 1s cubic-bezier(.65,0,.35,1) .1s}.gift-root.mvlive .scene-4 .mvlayer:after{opacity:1}.gift-root.mvlive .scene-4{--pink:#ffffff;--soft:rgba(255,255,255,0.8);--acc:#ffffff;--track:rgba(255,255,255,0.3)}.gift-root.mvlive .scene-4 .bottom,.gift-root.mvlive .scene-4 .lyric,.gift-root.mvlive .scene-4 .meta,.gift-root.mvlive .scene-4 .to-mv{z-index:4}.gift-root.mvlive .scene-4 .fx{opacity:0}.gift-root.mvlive .scene-4 .to-mv{visibility:hidden}@media (max-height:720px){.gift-root .scene-4 .stage{height:min(calc(43 * var(--gvh)),calc(104 * var(--gvw)))}.gift-root .scene.scene-4{gap:5px}.gift-root .scene-4 .meta h2{font-size:21px}.gift-root .scene-4 .lyric{min-height:3em}.gift-root .scene-4 .lyric .now{font-size:17px}.gift-root .scene-4 .play{width:56px;height:56px}.gift-root .scene-4 .controls{margin-top:0}.gift-root .scene-4 .next{margin-top:2px}}.gshare{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;font-family:Figtree,system-ui,sans-serif;animation:gshare-in .2s}@keyframes gshare-in{0%{opacity:0}}.gshare-card{width:100%;max-width:480px;margin:0 auto;background:#fff;color:#1d1a22;border-radius:22px 22px 0 0;padding:18px 16px max(16px,env(safe-area-inset-bottom));display:grid;gap:14px;animation:gshare-up .28s cubic-bezier(.2,.9,.3,1)}@keyframes gshare-up{0%{transform:translateY(100%)}}.gshare-card b{text-align:center;font-size:15px}.gshare-apps{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.gshare-apps a{display:grid;justify-items:center;gap:6px;font-size:11px;color:#555;text-decoration:none}.gshare-apps i{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;color:#fff;font-style:normal;font-size:22px}.gshare-link{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;border-radius:99px;background:#f4f2f6;font-size:13px}.gshare-link span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#444}.gshare-link button{height:38px;padding:0 16px;border-radius:99px;border:0;background:#1d1a22;color:#fff;font-weight:700;font-size:13px;cursor:pointer;flex:none}.gshare-cancel{border:0;background:none;color:#8a8590;font-weight:600;font-size:14px;padding:4px;cursor:pointer}.gift-root .btn-main .off-tag{margin-left:4px;padding:3px 8px;border-radius:99px;font-size:12px;font-weight:700;line-height:1.2;font-family:Figtree,system-ui,sans-serif}.gw-midnight .btn-main .off-tag{background:rgba(11,12,20,.16);color:var(--ink)}.gw-letter .btn-main .off-tag{background:rgba(255,255,255,.25);color:#fff}.gw-party .btn-main .off-tag{background:#ff5fa2;color:#fff}.gift-root .scene-5 .acts{margin-top:22px}.wrap-flip .second{opacity:0;animation:wrap-flip 8s ease-in-out infinite}@keyframes wrap-flip{0%,38%{opacity:0}50%,88%{opacity:1}to{opacity:0}}