:root{--cream:#f4ead6;--paper:#fbf5e6;--red:#b3262d;--green:#2f7d3b;--mustard:#e2a23a;--denim:#3c6ea5;--pink:#e8587a;--ink:#2b1d17;--f-display:"Abril Fatface", "Playfair Display", serif;--f-hand:"Caveat", cursive;--f-serif:"Playfair Display", Georgia, serif;--f-body:"Nunito", system-ui, sans-serif;--f-type:"Special Elite", monospace;--px:0;--py:0}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth;background:var(--cream)}body{font-family:var(--f-body);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}body.locked{height:100svh;overflow:hidden}img{max-width:100%}button{font:inherit;color:inherit}::selection{background:var(--mustard);color:#fff}body:after{content:"";pointer-events:none;z-index:100;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .22 0 0 0 0 .15 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.hand{font-family:var(--f-hand);font-weight:700}.display{font-family:var(--f-display);letter-spacing:.01em;margin:0;font-weight:400;line-height:1.04}.fx{z-index:130;pointer-events:none;position:fixed;inset:0}.sec{--bg:var(--cream);background-color:var(--bg);flex-direction:column;align-items:center;min-height:100svh;padding:clamp(90px,14vh,150px) 18px clamp(80px,12vh,130px);display:flex;position:relative;overflow-x:clip}.sec+.sec:before{content:"";z-index:2;pointer-events:none;background:var(--bg);height:24px;transition:background-color 1.6s;position:absolute;top:-22px;left:0;right:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='24' viewBox='0 0 90 24'%3E%3Cpath d='M0 24V15l9-8 8 7 10-10 9 9 8-6 10 8 9-9 9 8 8-5 10 8V24z'/%3E%3C/svg%3E") bottom/90px 24px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='24' viewBox='0 0 90 24'%3E%3Cpath d='M0 24V15l9-8 8 7 10-10 9 9 8-6 10 8 9-9 9 8 8-5 10 8V24z'/%3E%3C/svg%3E") bottom/90px 24px repeat-x}.sec-head{z-index:6;text-align:center;max-width:780px;position:relative}.kicker{color:var(--red);margin:0 0 6px;font-size:clamp(24px,3.4vw,34px);transform:rotate(-2deg)}.sec-head h2{font-size:clamp(38px,7.4vw,84px)}.sub{opacity:.85;margin:14px 0 0;font-size:clamp(16px,2vw,19px)}.orn{pointer-events:none;position:absolute}.orn-p{transform:translate3d(calc(var(--px) * var(--d,0) * 1px), calc(var(--py) * var(--d,0) * 1px), 0);will-change:transform}.orn-bob{animation:6.5s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-14px)rotate(1.5deg)}}.sticker{pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 6px 8px #28140a40);width:100%;display:block}.sticker.spin{animation:spin var(--spin,30s) linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.orn-photo{pointer-events:auto;cursor:grab;touch-action:pan-y}.polaroid{-webkit-user-select:none;user-select:none;background:#fffdf6;padding:6% 6% 0;display:block;position:relative;box-shadow:0 10px 22px #28140a52,inset 0 1px #fffc;container-type:inline-size}.polaroid img{aspect-ratio:4/5;object-fit:cover;background:#ddd;width:100%;display:block}.polaroid .cap{line-clamp:2;-webkit-line-clamp:2;text-align:center;color:#3a2a22;-webkit-box-orient:vertical;min-height:2.9em;padding:6cqw 2cqw;font-size:max(10px,9cqw);line-height:1.1;display:-webkit-box;overflow:hidden}.tape{z-index:2;clip-path:polygon(0 10%,4% 0,8% 12%,12% 0,100% 0,96% 50%,100% 100%,0 100%,3% 50%);background:#ecd68cd1;width:34%;height:18px;position:absolute;top:-9px;left:50%;transform:translate(-50%)rotate(-3deg);box-shadow:0 1px 2px #00000026}.lb{z-index:400;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#180a0adb;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.lb-card{background:#fffdf6;width:min(88vw,520px);margin:0;padding:14px 14px 6px;position:relative;box-shadow:0 30px 60px #00000080}.lb-card img{object-fit:contain;background:#151010;width:100%;max-height:66vh;display:block}.lb-card figcaption{text-align:center;color:#3a2a22;padding:12px 6px 10px;font-size:clamp(22px,4vw,30px);line-height:1.1}.lb-nav,.lb-close{color:var(--ink);cursor:pointer;background:#fffdf6;border:0;border-radius:50%;width:48px;height:48px;font-size:28px;line-height:1;position:fixed;box-shadow:0 4px #0000004d}.lb-nav{margin-top:-24px;top:50%}.lb-nav.prev{left:14px}.lb-nav.next{right:14px}.lb-close{font-size:18px;top:14px;right:14px}.gate{z-index:300;background:radial-gradient(circle at 50% 30%,#5a0f1c,#2a050b);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.curtain{z-index:2;background:linear-gradient(90deg,#0006,#0000 22%,#ffffff1a 50%,#0000 78%,#0006),repeating-linear-gradient(90deg,#7d1020 0,#b3263a 24px,#7d1020 48px,#5e0a16 72px);width:51%;position:absolute;top:0;bottom:0;box-shadow:inset 0 40px 60px #00000073,inset 0 -30px 60px #0006}.curtain.l{left:0}.curtain.r{right:0}.curtain:after{content:"";background:linear-gradient(#2a050b,#0000);height:36px;position:absolute;top:0;left:0;right:0}.gate-ball{z-index:4;width:150px;margin-left:-75px;position:absolute;top:0;left:50%}.gate-ball .string{background:#ddd;width:2px;height:14vh;margin:0 auto;display:block}.gate-ball img{transform-origin:50% -14vh;filter:drop-shadow(0 10px 20px #ffffff59);width:150px;animation:4.2s ease-in-out infinite alternate swing;display:block}@keyframes swing{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}.gate-lang{z-index:6;font:800 12px var(--f-body);cursor:pointer;background:#fff3df;border:2px solid #2b1d17;border-radius:999px;padding:6px 12px;position:absolute;top:14px;right:14px}.gate-card{z-index:5;text-align:center;color:#fff3df;flex-direction:column;align-items:center;gap:20px;margin-top:24vh;padding:20px;display:flex;position:relative}.gate-card .kicker{color:#ffd9a0;font-size:clamp(26px,5vw,36px)}.gate-name{max-width:92vw}.gate-btn{cursor:pointer;color:var(--red);font-family:var(--f-display);background:#fff3df;border:3px solid #2b1d17;border-radius:999px;align-items:center;gap:12px;padding:16px 34px;font-size:clamp(22px,4vw,28px);animation:1.8s ease-in-out infinite pulse;display:inline-flex;box-shadow:0 7px #2b1d17}@keyframes pulse{50%{box-shadow:0 7px #2b1d17,0 0 0 12px #fff3df2e}}.gate-card .hint{opacity:.8;margin:0;font-size:24px}.loader{flex-direction:column;align-items:center;gap:8px;font-size:24px;display:flex}.bar{background:#ffffff38;border-radius:99px;width:min(240px,70vw);height:10px;overflow:hidden}.bar i{background:var(--mustard);border-radius:inherit;height:100%;transition:width .3s;display:block}.ransom{flex-wrap:wrap;justify-content:center;gap:.05em;line-height:1;display:inline-flex}.ransom>span{padding:.06em .16em .02em;animation:3.4s ease-in-out infinite alternate wob;display:inline-block;box-shadow:0 3px 7px #00000047}.ransom .ransom-gap{width:.45em;box-shadow:none;background:0 0!important}@keyframes wob{to{translate:0 -3px;rotate:2deg}}.hero{--bg:var(--cream);background-image:radial-gradient(circle at 50% 38%,#fff6df 0,#0000 60%);justify-content:center;min-height:112svh}.disco-lights{pointer-events:none;position:absolute;inset:0;overflow:hidden}.disco-lights i{filter:blur(55px);opacity:.2;border-radius:50%;animation:16s ease-in-out infinite alternate drift;position:absolute}@keyframes drift{0%{transform:translate(-40px)scale(.9)}to{transform:translate(60px,50px)scale(1.2)}}.hang{z-index:2;transform-origin:top;pointer-events:none;flex-direction:column;align-items:center;animation:5s ease-in-out infinite alternate swing;display:flex;position:absolute;top:0}.hang .string{background:#8a8178;width:2px;display:block}.hang img{filter:drop-shadow(0 12px 14px #0000004d);margin-top:-2px;display:block}.hang.small{animation-duration:3.6s;animation-direction:alternate-reverse}.hero-center{z-index:5;text-align:center;flex-direction:column;align-items:center;margin-top:4vh;display:flex;position:relative}.hero-happy{-webkit-user-select:none;user-select:none;filter:drop-shadow(0 8px 10px #0003);width:min(80vw,640px)}.hero-bday{-webkit-user-select:none;user-select:none;filter:drop-shadow(0 8px 10px #0003);width:min(88vw,760px);margin-top:-1.5%}.hero-name{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;margin-top:clamp(20px,4vh,40px);display:flex}.age{aspect-ratio:1;cursor:pointer;background:0 0;border:0;width:clamp(90px,14vw,130px);padding:0;position:relative}.age img{filter:drop-shadow(0 6px 8px #00000040);width:100%;animation:30s linear infinite spin;position:absolute;inset:0}.age b{font-family:var(--f-display);color:#6d1820;text-shadow:0 2px #fff6;place-items:center;font-size:clamp(34px,5.6vw,52px);font-weight:400;display:grid;position:absolute;inset:0}.hero-sub{color:var(--red);margin:16px 0 0;font-size:clamp(28px,4.4vw,44px);line-height:1.1}.hero-fav{filter:drop-shadow(0 6px 8px #0003);width:min(46vw,230px);margin-top:8px}.scroll-cue{z-index:6;color:var(--ink);opacity:.75;flex-direction:column;align-items:center;font-size:24px;text-decoration:none;display:flex;position:absolute;bottom:20px;left:50%;translate:-50%}.scroll-cue i{font-size:34px;font-style:normal;line-height:.6;animation:1.4s ease-in-out infinite bounce}@keyframes bounce{50%{transform:translateY(8px)}}.letter{--bg:#f8efe0;background-image:linear-gradient(90deg,#b3262d17 50%,#0000 50%),linear-gradient(#b3262d17 50%,#0000 50%);background-size:56px 56px}.letter-stage{z-index:6;flex-direction:column;align-items:center;gap:34px;width:100%;max-width:660px;margin-top:110px;display:flex;position:relative}.env{aspect-ratio:1.55;cursor:pointer;filter:drop-shadow(0 16px 20px #3c1e0a4d);background:0 0;border:0;width:min(84vw,430px);padding:0;transition:width .9s cubic-bezier(.3,1,.4,1);position:relative}.env.small{width:min(50vw,210px)}.env>span{display:block;position:absolute}.env-back{background:#d3ad78;border-radius:6px;inset:0}.env-paper{background:#fffaf0;border-radius:4px;transition:transform 1s cubic-bezier(.3,1.3,.5,1) .4s;inset:8% 7%}.env.open .env-paper{transform:translateY(-46%)}.env-front{clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);background:linear-gradient(135deg,#ecd0a2,#dfba88);border-radius:6px;inset:0}.env-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:3;background:linear-gradient(#c9a26c,#dcb882);height:56%;transition:transform .8s,z-index 0s .4s;top:0;left:0;right:0}.env.open .env-flap{z-index:0;transform:rotateX(180deg)}.seal{z-index:4;filter:drop-shadow(0 4px 4px #00000059);width:18%;transition:all .5s;animation:1.4s ease-in-out infinite beat;position:absolute;top:45%;left:50%;translate:-50% -50%}.env.open .seal{opacity:0;animation:none;rotate:20deg;scale:1.8}@keyframes beat{0%,to{scale:1}15%{scale:1.18}30%{scale:1}45%{scale:1.12}}.tap-hint{color:var(--red);margin:-10px 0 0;font-size:28px;animation:1.6s ease-in-out infinite bounce}.paper{width:min(94vw,600px);font-family:var(--f-hand);color:#3a2a22;cursor:pointer;background-color:#fffbf1;background-image:repeating-linear-gradient(#0000 0 35px,#3c6ea54d 35px 36px);background-position:0 46px;padding:46px clamp(22px,5vw,52px) 40px clamp(48px,9vw,74px);font-size:clamp(22px,3.4vw,28px);font-weight:600;line-height:36px;position:relative;box-shadow:0 24px 40px #3c1e0a47}.paper:after{content:"";background:#b3262d73;width:2px;position:absolute;top:0;bottom:0;left:clamp(36px,7vw,58px)}.paper p{min-height:0;margin:0 0 36px}.paper p.greet{color:var(--red);font-size:1.25em;font-weight:700}.paper .sign{text-align:right;color:var(--red);margin:0;font-size:1.4em}.hrt{animation:1.4s infinite beat;display:inline-block}.caret{background:var(--ink);vertical-align:-.1em;width:2px;height:1em;margin-left:2px;animation:.8s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.skip{cursor:pointer;opacity:.55;background:0 0;border:0;font-size:20px;position:absolute;bottom:8px;right:16px}.cam{--bg:#255a31;color:#fff3df;background-image:radial-gradient(#ffffff12 2px,#0000 2.5px);background-size:26px 26px}.cam .kicker,.wishes .kicker{color:#ffd37a}.cam-wrap{z-index:6;cursor:pointer;width:min(88vw,620px);margin-top:36px;position:relative}.cam-img{z-index:2;pointer-events:none;filter:drop-shadow(0 20px 22px #00000073);width:100%;height:100%;position:absolute;inset:0}.lcd{z-index:1;background:#111;position:absolute;overflow:hidden}.lcd img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.lcd-tag{z-index:3;font-family:var(--f-type);color:#ffeb7a;text-shadow:0 0 3px #000;font-size:clamp(8px,1.6vw,12px);position:absolute;bottom:4px;right:6px}.cam-hint{z-index:6;color:#ffd37a;text-align:center;margin:18px 0 0;font-size:clamp(24px,3.4vw,32px);position:relative}.prints{z-index:6;flex-wrap:wrap;justify-content:center;max-width:94vw;min-height:250px;margin-top:20px;display:flex;position:relative}.print{cursor:pointer;background:0 0;border:0;width:clamp(118px,21vw,190px);margin:0 -10px;padding:0}.flash{z-index:350;pointer-events:none;background:#fff;position:fixed;inset:0}.wishes{--bg:#16264a;color:#f4ead6;background:linear-gradient(#16264a,#0d1a38 60%,#14233f)}.stars-bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.stars-bg i{background:#fff;border-radius:50%;animation:3.2s ease-in-out infinite twinkle;position:absolute}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.8)}50%{opacity:1;transform:scale(1.4)}}.shoot{opacity:0;background:linear-gradient(90deg,#fff,#0000);width:140px;height:2px;animation:8s linear infinite shoot;position:absolute;rotate:28deg}.shoot.a{top:6%;left:90%}.shoot.b{animation-delay:3s;top:30%;left:70%}.shoot.c{animation-delay:5.5s;top:55%;left:95%}@keyframes shoot{0%{opacity:0;translate:0}4%{opacity:1}14%{opacity:0;translate:-700px 360px}to{opacity:0;translate:-700px 360px}}.wishes .sub{color:#b9c8ee}.counter{color:#ffd37a;flex-direction:column;align-items:center;gap:6px;margin-top:18px;font-size:24px;display:flex}.wgrid{z-index:6;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:22px;width:min(1000px,94vw);margin-top:40px;display:grid;position:relative}.wcard{perspective:900px;cursor:pointer;background:0 0;border:0;height:190px;padding:0}.wcard-in{width:100%;height:100%;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.2,.8,.2,1);display:block;position:relative}.wcard.open .wcard-in{transform:rotateY(180deg)}.wf,.wb{backface-visibility:hidden;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.wf{background:#ffffff12;border:1.5px dashed #ffffff59}.wf img{filter:drop-shadow(0 0 14px #ffdc788c);width:52%;animation:5s ease-in-out infinite bob}.wf b{font-family:var(--f-display);color:#fff;margin-top:4px;font-size:28px;font-weight:400}.wb{color:#3a2a22;background:#fffbf1;padding:24px 14px 18px;transform:rotateY(180deg);box-shadow:0 12px 26px #0006}.wb .hand{text-align:center;font-size:21px;line-height:1.15}.wb small{opacity:.45;font-family:var(--f-type);position:absolute;bottom:6px;right:10px}.secret{z-index:7;color:#5a1a1a;text-align:center;background:#fff3df;border-radius:14px;max-width:580px;margin:70px auto 0;padding:0 30px 34px;position:relative;box-shadow:0 20px 50px #00000080}.secret img{width:90px;margin:-44px auto 6px;animation:1.4s infinite beat;display:block}.secret h3{color:var(--red);font-size:clamp(28px,5vw,40px)}.secret p{font-family:var(--f-serif);margin:14px 0 10px;font-size:clamp(19px,2.6vw,24px);font-style:italic;line-height:1.5}.secret .hand{color:var(--red);font-size:28px}.make-wish{z-index:7;flex-direction:column;gap:12px;width:min(480px,90vw);margin-top:70px;display:flex;position:relative}.make-wish textarea{resize:none;color:#fff;font:600 24px var(--f-hand);background:#ffffff14;border:1.5px solid #ffffff59;border-radius:14px;outline:none;padding:14px 16px}.make-wish textarea:focus{border-color:var(--mustard)}.make-wish textarea::placeholder{color:#ffffff8c}.make-wish button,.btns button,.again-btn{cursor:pointer;font-family:var(--f-display);background:var(--mustard);color:#2b1d17;border:3px solid #2b1d17;border-radius:999px;padding:12px 26px;font-size:20px;transition:transform .15s,box-shadow .15s;box-shadow:0 5px #2b1d17}.make-wish button:disabled{opacity:.45;cursor:default}.make-wish button:active:not(:disabled),.btns button:active,.again-btn:active{transform:translateY(4px);box-shadow:0 1px #2b1d17}.lanterns{pointer-events:none;z-index:8;position:absolute;inset:0;overflow:hidden}.lantern{text-align:center;background:radial-gradient(circle at 50% 70%,#ffe29a,#ff9d3a 70%,#c9561a);border-radius:42% 42% 30% 30%/50% 50% 40% 40%;place-items:center;width:104px;min-height:120px;padding:18px 10px;display:grid;position:absolute;bottom:-20px;box-shadow:0 0 40px 12px #ffaa4699}.lantern span{font:700 16px/1.1 var(--f-hand);color:#5a2a00;word-break:break-word}.cake{--bg:#170d28;color:#f6e9d0;background:#fbd57a radial-gradient(#b3262d2e 3px,#0000 3.5px) 0 0/34px 34px;justify-content:flex-start;transition:color 1.6s}.cake.bright{--bg:#fbd57a;color:#3a1a10}.cake:after{content:"";z-index:4;pointer-events:none;background:radial-gradient(62% 52%,#170d2866 0%,#170d28ed 58%,#170d28 92%);transition:opacity 1.8s;position:absolute;inset:0}.cake.bright:after{opacity:0}.cake .kicker{color:#ffd37a;transition:color 1.6s}.cake.bright .kicker{color:var(--red)}.cake .spot{z-index:4;pointer-events:none;position:absolute;inset:0}.cake-wrap{z-index:6;width:min(92vw,640px);margin-top:30px;position:relative}.cake-img{filter:drop-shadow(0 22px 22px #00000073);-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.flame{cursor:pointer;z-index:3;background:0 0;border:0;padding:0;position:absolute}.flame:after{content:"";position:absolute;inset:-22px -16px -6px}.flame img{transform-origin:50% 96%;width:100%;height:100%;animation:flick var(--fd,1s) ease-in-out var(--fo,0s) infinite alternate;transition:opacity .3s,scale .3s;display:block;position:relative}.flame .glow{aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#ffbe5080,#0000 62%);width:480%;transition:opacity .3s;animation:1.3s ease-in-out infinite alternate glowp;position:absolute;top:40%;left:50%;translate:-50% -50%}.flame:not(.on){pointer-events:none}.flame:not(.on) img{opacity:0;scale:.2}.flame:not(.on) .glow{opacity:0}@keyframes flick{0%{transform:scaleY(.96)rotate(-2.5deg)}to{transform:scaleY(1.09)scaleX(.93)rotate(2.5deg)}}@keyframes glowp{0%{opacity:.55}to{opacity:1}}.smoke{z-index:7;filter:blur(3px);pointer-events:none;background:radial-gradient(circle,#e1e1ebd9,#0000 70%);border-radius:50%;width:26px;height:26px;margin:-13px 0 0 -13px;position:absolute}.cake-ui{z-index:6;text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:94vw;min-height:170px;margin-top:30px;display:flex;position:relative}.cake-ui>p.hand{color:#ffd9a0;margin:0;font-size:clamp(24px,3.4vw,30px)}.btns{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.btns button{color:var(--red);background:#fff3df}.done{flex-direction:column;align-items:center;gap:16px;display:flex}.lyrics{font-family:var(--f-serif);font-size:clamp(20px,3.6vw,30px);font-style:italic;line-height:1.5}.lyrics p{opacity:.3;margin:0;transition:opacity .3s}.lyrics p.cur{opacity:1}.lyrics span{transition:color .2s,transform .2s;display:inline-block}.lyrics span.sung{color:var(--red);font-weight:700;transform:scale(1.06)}.wish-done{max-width:700px;font-size:clamp(26px,5vw,44px)}.again{cursor:pointer;font:700 24px var(--f-hand);text-underline-offset:6px;color:inherit;opacity:.8;background:0 0;border:0;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.finale{--bg:#8f1d28;color:#fff2dd;background:radial-gradient(circle at 50% 28%,#b3262d 0,#8f1d28 55%,#5e0f1a 100%);justify-content:flex-start}.finale .kicker{color:#ffd9a0}.end-body{z-index:6;flex-wrap:wrap;justify-content:center;align-items:center;gap:36px;max-width:980px;margin-top:40px;display:flex;position:relative}.end-stickers{align-items:flex-end;display:flex;position:relative}.end-ily{-webkit-user-select:none;user-select:none;filter:drop-shadow(0 10px 14px #0006);width:min(34vw,190px);margin-right:-14px}.putri-wrap{position:relative}.end-putri{cursor:pointer;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 14px 16px #0006);width:min(46vw,270px);display:block}.bubble{color:#8f1d28;text-align:center;z-index:9;background:#fff2dd;border-radius:20px;width:max-content;max-width:70vw;padding:10px 18px;font-size:24px;position:absolute;bottom:102%;left:50%;translate:-50%}.end-text{flex:320px;max-width:470px}.end-text p{font-family:var(--f-serif);margin:0 0 20px;font-size:clamp(20px,2.7vw,26px);font-style:italic;line-height:1.55}.end-sign{flex-direction:column;align-items:flex-start;gap:8px;margin:26px 0;display:flex}.end-sign .hand{color:#ffd9a0;font-size:32px}.again-btn{color:var(--red);background:#fff2dd}.foot{z-index:6;opacity:.7;text-align:center;margin-top:70px;font-size:14px;position:relative}.ribbon{z-index:160;transform-origin:0;background:repeating-linear-gradient(90deg,#b3262d 0 24px,#e2a23a 24px 48px,#2f7d3b 48px 72px,#3c6ea5 72px 96px);height:6px;position:fixed;top:0;left:0;right:0}.dots{z-index:150;flex-direction:column;gap:14px;display:flex;position:fixed;top:50%;right:12px;translate:0 -50%}.dots a{background:#fff9ec;border:2px solid #2b1d17;border-radius:50%;width:11px;height:11px;transition:transform .25s,background .25s}.dots a.on{background:var(--red);transform:scale(1.5)}.lang{z-index:155;cursor:pointer;font:800 12px var(--f-body);background:#fff9ec;border:2px solid #2b1d17;border-radius:999px;padding:0;display:flex;position:fixed;top:16px;right:14px;overflow:hidden}.lang b{color:#2b1d17;padding:6px 10px}.lang b.on{color:#fff;background:#2b1d17}.player{z-index:155;background:#fff9ec;border:2px solid #2b1d17;border-radius:999px;align-items:center;gap:4px;max-width:calc(100vw - 28px);padding:5px 12px 5px 5px;display:flex;position:fixed;bottom:14px;left:14px;box-shadow:0 5px #2b1d17}.player.collapsed{padding:5px}.vinyl{cursor:pointer;color:#fff;background:radial-gradient(circle, var(--red) 0 24%, #111 26% 100%);border:0;border-radius:50%;flex:none;width:42px;height:42px;font-size:15px}.player.playing .vinyl{animation:3.2s linear infinite spin}.ptitle{white-space:nowrap;width:clamp(70px,24vw,170px);font:700 12px var(--f-body);overflow:hidden;-webkit-mask:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.ptitle span{padding-left:100%;animation:11s linear infinite marq;display:inline-block}@keyframes marq{to{transform:translate(-100%)}}.pn{cursor:pointer;color:var(--ink);background:0 0;border:0;padding:0 5px;font-size:22px;line-height:1}.vol{width:66px;accent-color:var(--red)}@media (width<=640px){.vol{display:none}.dots{gap:11px;right:6px}.dots a{width:9px;height:9px}.wgrid{grid-template-columns:repeat(2,1fr);gap:14px}.wcard{height:200px}.sec{padding-left:14px;padding-right:14px}.hero{min-height:105svh}.sec:not(.hero) .sec-head{padding-top:78px}.end-stickers{justify-content:center}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
