/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.grid{display:grid}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--ink:#2b2523;--maroon:#7d2f36;--muted:#9a8f88;--hand:"Gaegu", "Caveat", cursive;--script:"Caveat", "Gaegu", cursive;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%}body{color:var(--ink);font-family:var(--hand);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#f3f1ee url(/assets/paper_texture_canva-DNh0d2Ph.png) 50%/cover no-repeat fixed;margin:0}button{cursor:pointer}button:disabled{cursor:default;pointer-events:none}.app{place-items:center;min-height:100dvh;padding:16px;display:grid;position:relative;overflow:hidden}.app.app-scroll{padding:0;display:block}.stage{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.scatter{pointer-events:none;z-index:0;position:fixed;inset:0}.doodle{--k:1;opacity:0;height:auto;scale:var(--k);animation:doodle-in .8s ease calc(var(--i) * 90ms + .3s) both, drift calc(5s + var(--i) * .35s) ease-in-out calc(var(--i) * -.8s) infinite;position:absolute}.burst{pointer-events:none;z-index:8;width:0;height:0;position:absolute;top:50%;left:50%}.bp{height:auto;animation:1.2s cubic-bezier(.2,.8,.3,1) both burst;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.env-wrap{--top:min(22vw, 88px);padding-top:var(--top);animation:1s cubic-bezier(.2,1.2,.3,1) .1s both env-in;position:relative}.cover.is-leaving .env-wrap{animation:.82s cubic-bezier(.55,0,.9,.45) both cover-out}.env-label{top:calc(var(--top) - 38px);text-align:center;font-family:var(--hand);color:var(--maroon);margin:0;font-size:22px;font-weight:700;transition:opacity .3s;animation:1.8s ease-in-out infinite label-pulse;position:absolute;left:0;right:0}.env-label.is-hidden{opacity:0;animation:none}.env{aspect-ratio:220/140;perspective:900px;width:min(60vw,240px);animation:4.4s ease-in-out 1.2s infinite float;position:relative;container-type:inline-size}.env.is-open{animation:5s ease-in-out 2.4s infinite float-soft}.env>*{position:absolute}.env>.burst{top:50%;left:50%}.env-shadow{filter:blur(7px);z-index:0;background:#3a2a2040;border-radius:50%;height:10%;animation:4.4s ease-in-out 1.2s infinite shadow-breathe;bottom:-3%;left:6%;right:6%}.env-front{z-index:3;width:100%;height:100%;top:0;left:0;overflow:visible}.env-flap{z-index:4;transform-origin:50% 0;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.45,0,.2,1);inset:0}.env-flap.is-flipped{transform:rotateX(180deg)}.env-flap.is-behind{z-index:1}.flap-face{backface-visibility:hidden;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.flap-back{transform:rotateY(180deg)}.env-letter{z-index:2;width:90%;height:72%;transition:transform 1s cubic-bezier(.3,1.15,.4,1);display:block;top:16%;left:5%}.env.is-open .env-letter{transition-delay:.6s;transform:translateY(-96%)}.env.is-ready .env-letter{animation:3s ease-in-out infinite letter-bob}.env.is-open .env-letter:not(:disabled):hover,.env.is-open .env-letter:not(:disabled):focus-visible{transition-duration:.25s;transition-delay:0s;transform:translateY(calc(-96% - 3px))rotate(-.8deg)}.letter-bg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.letter-text{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1cqw;padding-bottom:26%;display:flex;position:absolute;inset:0}.letter-main{font-family:var(--script);color:var(--ink);font-size:8.4cqw;font-weight:700;line-height:1.1;transform:rotate(-1.5deg)}.letter-sub{font-family:var(--hand);color:var(--muted);font-size:5.4cqw}.env.is-ready .letter-sub{animation:1.6s ease-in-out infinite label-pulse}.env-hit{z-index:6;border-radius:6px;inset:0}.env-letter:focus-visible,.env-hit:focus-visible{outline:2px dashed var(--maroon);outline-offset:4px}.unlock{gap:clamp(20px,4.5vh,32px);width:min(100%,360px)}.title-wrap{position:relative}.unlock-title{width:min(82vw,300px);height:auto;overflow:visible}.tile{transform-box:fill-box;transform-origin:50%;animation:tile-in .75s cubic-bezier(.3, 1.5, .5, 1) calc(var(--n) * 90ms + .15s) both, tile-idle 3.6s ease-in-out calc(1.5s + var(--n) * .14s) infinite}.key-sway{transform-box:fill-box;transform-origin:50% 0;animation:.9s cubic-bezier(.3,1.4,.5,1) .1s both key-in,3.2s ease-in-out 1.2s infinite key-sway}.lock-j{transform-box:fill-box;transform-origin:50% 0;animation:lock-in .7s cubic-bezier(.3, 1.5, .5, 1) calc(.9s + var(--d,0s)) both, lock-jiggle 2.8s ease-in-out calc(1.8s + var(--d,0s)) infinite}.lock.is-open .lock-j{animation:none}.lock .shackle{transform-box:fill-box;transform-origin:100% 100%;transition:transform .5s cubic-bezier(.3, 1.5, .5, 1) var(--d,0s)}.lock.is-open .shackle{transform:translateY(-2px)rotate(35deg)}.slots{cursor:text;justify-content:center;gap:5px;display:flex;position:relative}.slot{aspect-ratio:48/62;width:clamp(40px,12.6vw,50px);transform:translateY(var(--y,0px)) rotate(var(--r,0deg));animation:slot-in .7s cubic-bezier(.3, 1.4, .5, 1) calc(.55s + var(--i) * 90ms) both, slot-idle 4s ease-in-out calc(1.8s + var(--i) * .25s) infinite;position:relative}.slot:first-child{--r:-2deg;--y:2px}.slot:nth-child(2){--r:3deg;--y:-2px}.slot:nth-child(3){--r:-1deg;--y:3px}.slot:nth-child(4){--r:2deg;--y:-1px}.slot:nth-child(5){--r:-3deg;--y:2px}.slot:nth-child(6){--r:2deg;--y:-2px}.piece{width:100%;height:100%;display:block;overflow:visible}.digit{width:78%;animation:.32s cubic-bezier(.3,1.6,.5,1) both stick;position:absolute;top:54%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.caret{background:#b4444e;width:1.5px;height:36%;animation:1s step-end infinite blink;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)}.slots-input{z-index:2;opacity:0;caret-color:#0000;cursor:text;background:0 0;border:0;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.slots.is-wrong{animation:.45s shake}.unlock-hint{text-align:center;min-height:1.5em;font-family:var(--hand);color:var(--muted);margin:0;font-size:15px;animation:.6s 1.4s both fade-in}.unlock-hint.is-ok{color:var(--maroon);font-weight:700}.unlock.is-out .tile{animation:tile-out .6s cubic-bezier(.5, 0, .9, .4) calc(var(--n) * 45ms) both}.unlock.is-out .key-sway{animation:.6s cubic-bezier(.5,0,.9,.4) both tile-out}.unlock.is-out .lock-j{animation:.6s cubic-bezier(.5,0,.9,.4) .25s both tile-out}.unlock.is-out .slot{animation:slot-out .55s cubic-bezier(.5, 0, .9, .4) calc(var(--i) * 40ms) both}.unlock.is-out .unlock-hint{animation:.4s ease-in both leave}.scroll{z-index:1;width:100%;position:relative}.sec{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:72px 16px;display:flex;position:relative}.sec-end{padding-bottom:96px}.sec-title{font-family:var(--script);color:var(--maroon);margin:0 0 14px;font-size:28px;font-weight:700;line-height:1.1;transform:rotate(-1deg)}.scroll-hint{color:var(--muted);flex-direction:column;align-items:center;gap:2px;margin:0;font-size:15px;animation:2s ease-in-out infinite bob;display:flex;position:absolute;bottom:20px;left:0;right:0}.scroll-hint svg{width:14px;height:22px}.tape{clip-path:polygon(2% 0,100% 8%,98% 100%,0 90%);background:#e9dcaee0;width:60px;height:18px;position:absolute}.rv{opacity:0;transition:opacity .45s,transform .5s}.rv-up{transform:translateY(36px)scale(.96)}.rv-left{transform:translate(-60px)rotate(-8deg)}.rv-right{transform:translate(60px)rotate(8deg)}.rv-pop{transform:scale(.55)rotate(-8deg)translateY(20px)}.rv.st-in{opacity:1;transition:opacity .8s ease var(--d,0s), transform 1s cubic-bezier(.3, 1.35, .5, 1) var(--d,0s);transform:none}.rv.st-out{opacity:0;transform:translateY(-26px)scale(.95)}.msg{width:min(86vw,330px);margin-top:34px;padding:30px 26px 122px;position:relative}.msg-bg{transform-origin:50% 0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.msg-tape{top:-8px;left:50%;transform:translate(-50%)rotate(-3deg)}.msg-body{position:relative}.msg-title{font-family:var(--script);color:var(--maroon);margin:0 0 10px;font-size:30px;font-weight:700}.msg-p{margin:0 0 12px;font-size:16.5px;line-height:1.5}.w{display:inline-block}.msg-sign{font-family:var(--script);color:var(--maroon);margin:6px 0 0;font-size:24px;font-weight:700}.msg :is(.msg-bg,.msg-tape,.msg-title,.w,.msg-sign,.msg-pol,.stk){opacity:0}.msg.st-in .msg-bg{animation:.9s cubic-bezier(.2,.8,.3,1) both unroll}.msg.st-in .msg-tape{animation:.5s .6s both fade-in}.msg.st-in .msg-title{animation:.8s .5s both title-in}.msg.st-in .w{animation:word-in .45s cubic-bezier(.3, 1.4, .5, 1) calc(.9s + var(--w) * 45ms) both}.msg.st-in .msg-sign{animation:word-in .7s ease calc(1s + var(--tw) * 45ms) both}.msg.st-in .msg-pol{animation:.85s cubic-bezier(.3,1.5,.4,1) 1.1s both drop-stick,5.5s ease-in-out 2.4s infinite sway}.msg.st-in .stk-a{animation:.7s cubic-bezier(.3,1.5,.4,1) 1.5s both drop-stick,3.4s ease-in-out 2.4s infinite bob}.msg.st-in .stk-b{animation:.7s cubic-bezier(.3,1.5,.4,1) 1.8s both drop-stick,3.9s ease-in-out 2.8s infinite bob}.msg.st-out :is(.msg-bg,.msg-tape,.msg-body,.msg-pol,.stk){animation:.45s ease-in both leave}.msg.st-out :is(.msg-title,.w,.msg-sign){opacity:1}.msg-pol{--rot:5deg;width:min(44vw,150px);transform:rotate(var(--rot));transform-origin:50% 0;background:#fbf8f1;margin:0;padding:7px 7px 0;position:absolute;bottom:-44px;right:-10px;box-shadow:0 2px 8px #3a2a2047}.msg-pol-photo{aspect-ratio:1;background:#eee;display:block;overflow:hidden}.msg-pol-photo img{object-fit:cover;width:100%;height:100%;display:block}.msg-pol-cap{text-align:center;min-height:1.2em;font-family:var(--script);color:var(--ink);padding:5px 0 7px;font-size:16px;font-weight:700}.msg-bow{width:46px;position:absolute;bottom:4px;right:-14px;transform:rotate(-8deg)}.pol-tape{top:-9px;left:50%;transform:translate(-50%)rotate(2deg)}.stk{pointer-events:none;height:auto;transform:rotate(var(--rot));filter:drop-shadow(1.5px 0 #fff)drop-shadow(-1.5px 0 #fff)drop-shadow(0 1.5px #fff)drop-shadow(0 -1.5px #fff)drop-shadow(0 2px 4px #3a2a204d);display:block;position:absolute}.stk-ph{filter:none}.stk-a{--rot:3deg;width:78px;top:-50px;right:-8px}.stk-b{--rot:-4deg;width:82px;bottom:-36px;left:-14px}.mem{flex-direction:column;align-items:center;display:flex}.mem-hint{color:var(--muted);margin:22px 0 0;font-size:13px}.heart{aspect-ratio:32/29;width:min(88vw,340px);position:relative;container-type:inline-size}.hp{left:var(--x);top:var(--y);z-index:1;width:calc(var(--s) * 1cqw);transform:translate(-50%, -50%) rotate(var(--r));opacity:0;background:#fbf8f1;padding:1.1cqw 1.1cqw 3.2cqw;transition:filter .2s;display:block;position:absolute;box-shadow:0 1px 5px #3a2a2047}.heart.st-in{animation:2.8s ease-in-out 2.4s infinite beat}.heart.st-in .hp{animation:heart-in .65s cubic-bezier(.3, 1.4, .4, 1) calc(var(--i) * .11s) both, heart-bob 4s ease-in-out calc(2s + var(--i) * .3s) infinite}.heart.st-out .hp{animation:heart-out .5s ease-in calc(var(--i) * 30ms) both}.hp:hover,.hp:focus-visible{z-index:3;filter:brightness(1.04)drop-shadow(0 3px 6px #3a2a204d)}.hp:focus-visible{outline:2px dashed var(--maroon);outline-offset:2px}.hp-img{aspect-ratio:1;display:block;overflow:hidden}.hp-img img{object-fit:cover;width:100%;height:100%;display:block}.heart-center{font-family:var(--script);color:var(--maroon);opacity:0;margin:0;font-size:9cqw;font-weight:700;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)rotate(-6deg)}.heart.st-in .heart-center{animation:1s 1.6s both fade-in}.heart.st-out .heart-center{animation:.4s ease-in both leave}.pol-photo{aspect-ratio:1;background:#eee;width:100%;display:block;overflow:hidden}.pol-photo img{object-fit:cover;width:100%;height:100%;display:block}.pol-ph{background:linear-gradient(135deg,#f1dad5,#e8e0cc);place-items:center;width:100%;height:100%;display:grid}.pol-ph svg{width:34%}.pol-label{text-align:center;font-family:var(--script);color:var(--ink);place-items:center;font-size:19px;font-weight:700;display:grid}.lb{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#f3f1eedb;flex-direction:column;justify-content:center;align-items:center;gap:10px;animation:.25s both fade-in;display:flex;position:fixed;inset:0}.lb-card{background:#fbf8f1;width:min(76vw,320px);padding:12px 12px 0;animation:.4s cubic-bezier(.3,1.4,.4,1) both lb-pop;position:relative;transform:rotate(-2deg);box-shadow:0 4px 16px #3a2a2047}.lb-card .pol-label{min-height:54px}.lb-date{color:var(--muted);margin:6px 0 0;font-size:15px}.lb-x{font-family:var(--hand);color:var(--maroon);background:#f3ead2;padding:4px 14px;font-size:16px;font-weight:700;transform:rotate(-1.5deg);box-shadow:0 1px 5px #3a2a2038}.songs{flex-direction:column;align-items:center;display:flex}.sbox{aspect-ratio:100/118;width:min(88vw,340px);position:relative;container-type:inline-size}.sbox>*{opacity:0}.sv{--rot:2deg;width:86%;transform:rotate(var(--rot));background:#fbf8f1;margin:0;padding:3cqw 3cqw 0;position:absolute;top:0;right:0;box-shadow:0 2px 8px #3a2a2042}.sv-tape{top:-9px;left:50%;transform:translate(-50%)rotate(3deg)}.yt{aspect-ratio:16/9;background:#e9e2d2;border:0;width:100%;display:block}.yt-empty{color:var(--muted);text-align:center;place-items:center;font-size:3.8cqw;display:grid}.yt-empty p{margin:0}.sv-cap{flex-direction:column;align-items:center;padding:2cqw 0 3cqw;line-height:1.1;display:flex}.sv-cap b{font-family:var(--script);color:var(--ink);font-size:6.6cqw;font-weight:700}.sv-cap small{color:var(--muted);font-size:4cqw}.sn{--rot:-1.5deg;width:66cqw;transform:rotate(var(--rot));color:#5c2430;background:#f3c9d3;padding:4.5cqw;font-size:4.7cqw;line-height:1.3;position:absolute;top:60cqw;right:-1cqw;box-shadow:0 2px 8px #3a2a2038}.sn p{margin:0}.sn-msg{margin:1.5cqw 0!important}.sn-from{text-align:right;font-family:var(--script);font-size:5.6cqw;font-weight:700}.sp{--rot:-6deg;width:28cqw;transform:rotate(var(--rot));background:#fbf8f1;margin:0;padding:1.6cqw 1.6cqw 5cqw;position:absolute;top:64cqw;left:3cqw;box-shadow:0 2px 7px #3a2a2042}.sp-img{aspect-ratio:1;display:block;overflow:hidden}.sp-img img{object-fit:cover;width:100%;height:100%;display:block}.stamp{--rot:-9deg;width:24cqw;height:auto;transform:rotate(var(--rot));position:absolute;top:92cqw;left:-1cqw;overflow:visible}.sbox.st-in .sv{--fx:0px;--fy:-60px;--fr:-8deg;--fs:.9;animation:.9s cubic-bezier(.3,1.3,.4,1) .15s both pop-rot}.sbox.st-in .sn{--fx:70px;--fy:0px;--fr:6deg;--fs:.9;animation:.8s cubic-bezier(.3,1.3,.4,1) .55s both pop-rot,5s ease-in-out 1.7s infinite sway}.sbox.st-in .sp{--fx:-40px;--fy:30px;--fr:-40deg;--fs:.4;animation:.8s cubic-bezier(.3,1.3,.4,1) .85s both pop-rot,4s ease-in-out 1.9s infinite bob}.sbox.st-in .stamp{--fx:0px;--fy:0px;--fr:18deg;--fs:2.6;animation:.5s cubic-bezier(.3,1.6,.5,1) 1.25s both pop-rot,4.5s ease-in-out 2s infinite wobble}.sbox.st-out>*{animation:.45s ease-in both leave}.closing{flex-direction:column;align-items:center;display:flex}.cake-wrap{position:relative}.cake-btn{width:min(46vw,170px);animation:4s ease-in-out infinite cake-idle;display:block}.cake-btn.is-out{animation:.75s cubic-bezier(.3,1.5,.5,1) both cake-jump,4s ease-in-out .8s infinite cake-idle}.cake{width:100%;height:auto;display:block;overflow:visible}.flame{transform-box:fill-box;transform-origin:50% 100%;transition:transform .35s,opacity .35s;animation:.9s ease-in-out infinite flicker}.cake.is-out .flame{opacity:0;animation:none;transform:scale(0)}.smoke{opacity:0}.cake.is-out .smoke{animation:1.6s ease-out both smoke}.closing-body{text-align:center;flex-direction:column;align-items:center;width:min(88vw,340px);min-height:250px;margin-top:12px;display:flex}.wish{color:var(--muted);margin:28px 0 0;font-size:18px;line-height:1.4;animation:2.6s ease-in-out infinite pulse-soft}.finale{flex-direction:column;align-items:center;display:flex}.rw{height:auto;display:block;overflow:visible}.rw-a{width:min(40vw,150px)}.rw-b{width:min(74vw,260px);margin-top:-4px}.pop{transform-box:fill-box;transform-origin:50%;animation:pop .45s cubic-bezier(.3, 1.6, .5, 1) calc(var(--base,0s) + var(--n) * 70ms) both, wave 3.2s ease-in-out calc(2s + var(--n) * .13s) infinite}.finale-name{font-family:var(--script);color:var(--maroon);margin:4px 0 6px;font-size:34px;font-weight:700;line-height:1;animation:.8s 1.7s both fade-in}.finale-note{background:#f7f3ea;padding:10px 16px;font-size:16px;line-height:1.4;animation:.8s 2.2s both fade-in;transform:rotate(-1deg);box-shadow:0 2px 8px #3a2a202e}.finale-note p{margin:0 0 4px}.finale-note p:last-child{margin:0}.confetti{z-index:5;pointer-events:none;position:fixed;inset:0;overflow:hidden}.cf{animation:linear infinite both fall;display:block;position:absolute;top:-6%}.cf-svg{width:100%;height:auto;display:block}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes leave{0%{opacity:1}to{opacity:0;translate:0 -18px;scale:.94}}@keyframes bob{50%{translate:0 -4px}}@keyframes sway{0%,to{rotate:0deg}50%{rotate:1.6deg}}@keyframes wobble{0%,to{rotate:0deg}50%{rotate:3deg}}@keyframes pulse-soft{50%{opacity:.55}}@keyframes doodle-in{0%{opacity:0;scale:.2}to{opacity:1;scale:var(--k,1)}}@keyframes drift{0%,to{translate:0;rotate:0deg}50%{translate:4px -9px;rotate:8deg}}@keyframes burst{0%{opacity:0;translate:0;scale:.2}15%{opacity:1}to{opacity:0;translate:var(--dx) var(--dy);rotate:80deg;scale:1.1}}@keyframes env-in{0%{opacity:0;transform:translateY(-70px)rotate(-8deg)scale(.8)}to{opacity:1;transform:none}}@keyframes float{0%,to{translate:0;rotate:0deg}30%{translate:0 -6px;rotate:-1deg}60%{translate:0 -2px;rotate:1deg}85%{translate:0;rotate:0deg}89%{rotate:-2.6deg}93%{rotate:2.2deg}97%{rotate:-1deg}}@keyframes float-soft{50%{translate:0 -4px}}@keyframes shadow-breathe{50%{opacity:.7;scale:.88 1}}@keyframes label-pulse{50%{opacity:.7;scale:1.08}}@keyframes letter-bob{50%{translate:0 -4px;rotate:.6deg}}@keyframes cover-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-40px)scale(2.6)rotate(4deg)}}@keyframes tile-in{0%{opacity:0;transform:translateY(-46px)rotate(-30deg)scale(.4)}to{opacity:1;transform:none}}@keyframes tile-idle{0%,to{transform:none}50%{transform:translateY(-2.2px)rotate(1.6deg)}}@keyframes tile-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-110px)rotate(40deg)scale(.5)}}@keyframes key-in{0%{opacity:0;transform:rotate(-50deg)translateY(-30px)}to{opacity:1;transform:none}}@keyframes key-sway{0%,to{transform:rotate(0)}50%{transform:rotate(4deg)}}@keyframes lock-in{0%{opacity:0;transform:translateY(-40px)scale(.4)}to{opacity:1;transform:none}}@keyframes lock-jiggle{0%,70%,to{transform:rotate(0)}76%{transform:rotate(-6deg)}82%{transform:rotate(5deg)}88%{transform:rotate(-3deg)}94%{transform:rotate(1deg)}}@keyframes slot-in{0%{opacity:0;transform:translateY(46px) rotate(calc(var(--r,0deg) * 4)) scale(.7)}to{opacity:1;transform:translateY(var(--y,0px)) rotate(var(--r,0deg))}}@keyframes slot-idle{50%{translate:0 -3px}}@keyframes slot-out{0%{opacity:1;transform:translateY(var(--y,0px)) rotate(var(--r,0deg))}to{opacity:0;transform:translateY(80px) rotate(calc(var(--r,0deg) * 5)) scale(.6)}}@keyframes stick{0%{opacity:0;transform:translate(-50%,-50%)scale(1.5)rotate(-12deg)}to{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}}@keyframes blink{50%{opacity:0}}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes unroll{0%{opacity:0;transform:scaleY(.05)}to{opacity:1;transform:none}}@keyframes title-in{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes word-in{0%{opacity:0;transform:translateY(8px)rotate(-4deg)scale(.9)}to{opacity:1;transform:none}}@keyframes drop-stick{0%{opacity:0;transform:translateY(-14px) scale(.75) rotate(calc(var(--rot) - 10deg))}to{opacity:1;transform:rotate(var(--rot))}}@keyframes heart-in{0%{opacity:0;transform:translate(-50%, -50%) scale(.2) rotate(calc(var(--r) - 40deg))}to{opacity:1;transform:translate(-50%, -50%) rotate(var(--r))}}@keyframes heart-bob{50%{translate:0 -1.2cqw}}@keyframes heart-out{0%{opacity:1}to{opacity:0;rotate:25deg;scale:.3}}@keyframes beat{0%,40%,to{scale:1}10%{scale:1.045}20%{scale:1}30%{scale:1.03}}@keyframes lb-pop{0%{opacity:0;transform:scale(.85)rotate(-6deg)}to{opacity:1;transform:rotate(-2deg)}}@keyframes pop-rot{0%{opacity:0;transform:translate(var(--fx), var(--fy)) scale(var(--fs)) rotate(calc(var(--rot) + var(--fr)))}to{opacity:1;transform:rotate(var(--rot))}}@keyframes pop{0%{opacity:0;transform:scale(0)rotate(-20deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes wave{0%,to{transform:none}50%{transform:translateY(-3px)rotate(2deg)}}@keyframes flicker{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(.92,1.12)rotate(2deg)}}@keyframes smoke{0%{opacity:.7;transform:translateY(0)}to{opacity:0;transform:translateY(-14px)}}@keyframes cake-idle{50%{translate:0 -4px;rotate:1deg}}@keyframes cake-jump{0%{scale:1}35%{translate:0 -12px;scale:1.14}to{translate:0;scale:1}}@keyframes fall{0%{transform:translate(0)rotate(0)}to{transform:translate(var(--sway), 112vh) rotate(var(--rot))}}@media (width>=900px){.doodle{--k:1.2}.env-wrap{--top:110px}.env{width:clamp(270px,22vw,330px)}.env-label{top:calc(var(--top) - 44px);font-size:26px}.unlock{gap:34px;width:min(100%,480px)}.unlock-title{width:clamp(340px,28vw,400px)}.slots{gap:8px}.slot{width:clamp(54px,4.3vw,62px)}.unlock-hint{font-size:18px}.sec{padding:80px 24px}.sec-title{margin-bottom:18px;font-size:34px}.scroll-hint{font-size:17px;bottom:24px}.mem-hint{font-size:16px}.msg{width:660px;margin-top:70px;padding:44px 300px 44px 44px}.msg-title{font-size:36px}.msg-p{margin-bottom:12px;font-size:19px}.msg-sign{font-size:28px}.msg-tape{width:76px;height:22px}.msg-pol{--rot:4deg;width:230px;padding:10px 10px 0;top:calc(50% - 140px);bottom:auto;right:-30px}.msg-pol-cap{padding:6px 0 10px;font-size:22px}.msg-bow{width:66px;bottom:8px;right:-20px}.stk-a{width:120px;top:-84px;right:-18px}.stk-b{width:120px;bottom:-56px;left:-52px}.heart{width:440px}.lb-card{width:360px;padding:14px 14px 0}.lb-card .pol-label{min-height:64px;font-size:24px}.lb-date{font-size:18px}.lb-x{padding:5px 16px;font-size:18px}.sbox{width:430px}.cake-btn{width:210px}.closing-body{width:460px;min-height:300px;margin-top:14px}.wish{margin-top:32px;font-size:20px}.rw-a{width:190px}.rw-b{width:340px}.finale-name{margin:6px 0 8px;font-size:42px}.finale-note{padding:14px 24px;font-size:18px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
