/*! 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{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.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;--paper:#f3f1ee;--dot:#7d2f3633;--dot-alt:#9a8f8857;--dot-gap:26px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--hand);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0}body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(circle, var(--dot) 0 1.6px, transparent 2px), radial-gradient(circle, var(--dot-alt) 0 1px, transparent 1.4px);background-size:var(--dot-gap) var(--dot-gap);background-position:0 0, calc(var(--dot-gap) / 2) calc(var(--dot-gap) / 2);position:fixed;inset:0;-webkit-mask-image:radial-gradient(75% 70%,#00000047,#000 100%);mask-image:radial-gradient(75% 70%,#00000047,#000 100%)}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}.app-scroll>section{box-sizing:border-box;width:100%}.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);will-change:translate, opacity;animation-name:rise;animation-timing-function:linear;animation-iteration-count: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{bottom:calc(100% - var(--top) + 8px);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(50vw,200px);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(10px,2.2vh,18px);width:min(100%,360px)}.title-wrap{position:relative}.unlock-title{width:min(66vw,250px);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 .3s cubic-bezier(.3, 1.5, .5, 1) var(--d,0s)}.lock.is-open .shackle{transform:translateY(-2px)rotate(35deg)}.form{flex-direction:column;align-items:flex-start;gap:clamp(10px,2vh,16px);display:flex}.slots{--sw:clamp(38px, 11.5vw, 46px);cursor:text;justify-content:center;align-items:flex-end;gap:0;display:flex;position:relative}.slot+.slot{margin-left:calc(var(--sw) * -.2)}.slot{z-index:calc(var(--i) + 1);width:var(--sw);aspect-ratio:var(--ar,48 / 62);transform:translateY(var(--y,0px)) rotate(var(--r,0deg));transform-origin:50% 100%;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:calc(var(--sw) * -.26)}.slot:nth-child(2){--r:3deg;--y:0px}.slot:nth-child(3){--r:-5deg;--y:calc(var(--sw) * -.1)}.slot:nth-child(4){--r:1deg;--y:calc(var(--sw) * -.3)}.slot:nth-child(5){--r:3deg;--y:calc(var(--sw) * -.28)}.slot:nth-child(6){--r:-8deg;--y:0px}.piece{width:100%;height:100%;display:block;overflow:visible}.digit{width:68%;animation:.32s cubic-bezier(.3,1.6,.5,1) both stick;position:absolute;top:55%;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:20;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:left;min-height:1.5em;font-family:var(--hand);color:var(--muted);margin:0;font-size:13px;animation:.6s 1.4s both fade-in}.unlock-hint.is-ok{color:var(--maroon);font-weight:700}.unlock.is-out .tile{animation:tile-out .38s cubic-bezier(.5, 0, .9, .4) calc(var(--n) * 25ms) both}.unlock.is-out .key-sway{animation:.38s cubic-bezier(.5,0,.9,.4) both tile-out}.unlock.is-out .lock-j{animation:.38s cubic-bezier(.5,0,.9,.4) .1s both tile-out}.unlock.is-out .slot{animation:slot-out .36s cubic-bezier(.5, 0, .9, .4) calc(var(--i) * 22ms) both}.unlock.is-out .unlock-hint{animation:.25s ease-in both leave}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes leave{0%{opacity:1}to{opacity:0;translate:0 -18px;scale:.94}}@keyframes rise{0%{opacity:0;translate:0;rotate:0deg}8%{opacity:1}33%{translate:var(--sw) -40vh}66%{translate:calc(var(--sw) * -1) -80vh}92%{opacity:1}to{opacity:0;translate:0 -120vh;rotate:var(--spin)}}@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)}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gift{z-index:1;grid-template-columns:minmax(0,1fr);place-items:center;min-height:100dvh;padding:44px 14px 28px;display:grid;position:relative}.book{background:#46332a;border-radius:24px;width:min(100vw - 28px,380px,62.5dvh - 38px);padding:6px;animation:.45s cubic-bezier(.3,1.2,.5,1) both book-in;display:block;position:relative;box-shadow:0 16px 28px -10px #3a2a2073,inset 0 0 0 1px #ffffff12}.book:after{content:"";z-index:-1;background:#8f8f96;border-radius:0 0 2px 2px;width:10px;height:20px;position:absolute;bottom:-12px;left:50%;translate:-50%}.spine{z-index:7;pointer-events:none;background:linear-gradient(#0000,#46342624 42%,#4634263d 50%,#fff6 56%,#0000);height:7%;display:none;position:absolute;top:50%;left:6px;right:6px;translate:0 -50%}.sheet{aspect-ratio:100/160;background:radial-gradient(120% 70% at 50% 0,#ffffff8c,#0000 60%),#f1efe6;border-radius:18px;position:relative;box-shadow:0 1px #d8d4c6,0 2px #f1efe6,0 3px #cfcbbc;container-type:inline-size}.page{display:contents}.charm{z-index:6;transform-origin:50% 8%;opacity:0;filter:drop-shadow(0 1cqw 1.2cqw #3a2a204d);width:17cqw;height:auto;position:absolute;top:-10cqw;right:3cqw}.is-in .charm{animation:.7s cubic-bezier(.3,1.3,.5,1) .1s both charm-in}.hb{z-index:3;text-align:center;font-family:var(--script);white-space:nowrap;color:var(--maroon);opacity:0;margin:0;font-size:8.4cqw;font-weight:700;line-height:1;position:absolute;top:8cqw;left:0;right:0;rotate:-3deg}.is-in .hb{animation:.35s ease-out .15s both tt-in}.age{z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;top:15cqw;left:0;right:0}.dg{color:#3f6fd8;-webkit-text-stroke:1.8cqw #fff;paint-order:stroke fill;text-shadow:.6cqw .8cqw 1cqw #3a2a2047;transform:rotate(var(--sr,0deg));opacity:0;flex:none;font-family:Abril Fatface,serif;font-size:42cqw;line-height:.82}.dg-2{--sr:-5deg}.dg-0{--sr:4deg}.is-in .dg-2{animation:.4s cubic-bezier(.3,1.6,.5,1) .25s both sl-in}.is-in .dg-0{animation:.4s cubic-bezier(.3,1.6,.5,1) .4s both sl-in}.face{z-index:4;aspect-ratio:100/118;flex:none;width:36cqw;margin:0 -3cqw;display:block;position:relative}.face img{object-fit:contain;width:100%;height:100%;display:block}.fl{left:var(--mx);top:var(--my);width:var(--ms);z-index:1;height:auto;transform:translate(-50%, -50%) rotate(var(--r,0deg));opacity:0;pointer-events:none;filter:drop-shadow(.3cqw .5cqw .6cqw #5a3c3247);position:absolute}.is-in .fl{animation:bloom .4s cubic-bezier(.3, 1.4, .5, 1) calc(.1s + var(--n,0) * 55ms) both}.fl-d{display:none}.note{z-index:3;text-align:center;width:84cqw;font-family:var(--hand);color:var(--ink);opacity:0;margin:0;font-size:3.9cqw;line-height:1.4;position:absolute;top:133cqw;left:8cqw}.is-in .note{animation:.45s ease-out .8s both rise-in}.letter{--rot:8deg;width:52cqw;height:64cqw;transform:rotate(var(--rot));opacity:0;filter:drop-shadow(0 .7cqw 1.4cqw #3a2a2047);position:absolute;top:60cqw;left:4cqw}.is-in .letter{animation:.45s ease-out 50ms both letter-in}.letter-sheet{clip-path:polygon(.6% .8%,18% 0,47% .9%,78% .2%,100% 1%,99.2% 34%,100% 66%,98.8% 100%,66% 99.2%,34% 100%,3% 99.3%,0 70%,1% 34%);background:linear-gradient(100deg,#0000 31%,#78583024 31.4%,#0000 32.2%),linear-gradient(8deg,#0000 58%,#7858301f 58.3%,#0000 59%),radial-gradient(60% 40% at 20% 88%,#a0784633,#0000 70%),linear-gradient(165deg,#f4e8cf,#ead8b4 55%,#e2cca0);position:absolute;inset:0}.ink{font-family:var(--script);white-space:nowrap;color:#a94a50;opacity:.72;margin:0;font-size:3.9cqw;font-weight:700;line-height:1.25;position:absolute;rotate:-9deg}.ink span{display:block}.ink-a{text-align:right;transform-origin:100% 0;top:5cqw;right:3cqw}.ink-b{transform-origin:0 0;top:15cqw;left:5cqw}.ink-c{transform-origin:0 0;top:50cqw;left:6cqw}.pol{z-index:2;opacity:0;background:linear-gradient(#ececf1,#e4e4ea);width:58cqw;margin:0;padding:3cqw 3cqw 10cqw;position:absolute;top:66cqw;left:37cqw;transform:rotate(-1.5deg);box-shadow:0 .6cqw 1.6cqw #3a2a204d,inset 0 0 0 .2cqw #ffffffb3}.is-in .pol{animation:.45s cubic-bezier(.3,1.2,.5,1) .2s both pol-in}.pol img{aspect-ratio:1.04;object-fit:cover;background:#d9d6cf;width:100%;display:block}.gs{left:var(--mx);top:var(--my);width:var(--ms);z-index:4;height:auto;transform:rotate(var(--r,0deg));opacity:0;position:absolute}.is-in .gs{animation:gs-in .3s cubic-bezier(.3, 1.6, .5, 1) calc(.5s + var(--n,0) * 60ms) both}.stamp{z-index:5;color:#b8332f;flex-direction:column;align-items:flex-start;margin:0;font-family:Alfa Slab One,serif;font-size:8.6cqw;line-height:1;display:flex;position:absolute;top:105cqw;left:60cqw}.stamp-line:nth-child(2){margin-left:6cqw}.sl{-webkit-text-stroke:1.1cqw #fff;paint-order:stroke fill;text-shadow:.3cqw .4cqw .6cqw #3a2a2059;transform:rotate(var(--sr,0deg)) translateY(var(--sy,0));opacity:0;display:inline-block}.is-in .sl{animation:sl-in .3s cubic-bezier(.3, 1.6, .5, 1) calc(.65s + var(--n,0) * 50ms) both}@keyframes book-in{0%{opacity:0;translate:0 18px;scale:.96}to{opacity:1;translate:0;scale:1}}@keyframes charm-in{0%{opacity:0;transform:translateY(-14cqw)rotate(-40deg)}55%{opacity:1;transform:rotate(9deg)}to{opacity:1;transform:rotate(-3deg)}}@keyframes draw{0%{opacity:1;stroke-dashoffset:1px}to{opacity:1;stroke-dashoffset:0}}@keyframes tt-in{0%{opacity:0;translate:0 .8cqw;scale:.92}to{opacity:1;translate:0;scale:1}}@keyframes bloom{0%{opacity:0;transform:translate(-50%, -50%) rotate(calc(var(--r,0deg) - 50deg)) scale(.2)}to{opacity:1;transform:translate(-50%, -50%) rotate(var(--r,0deg))}}@keyframes rise-in{0%{opacity:0;translate:0 2cqw}to{opacity:1;translate:0}}@keyframes letter-in{0%{opacity:0;transform:translateY(5cqw) rotate(calc(var(--rot) - 6deg))}to{opacity:1;transform:rotate(var(--rot))}}@keyframes pol-in{0%{opacity:0;transform:translateY(-6cqw)rotate(-8deg)scale(.94)}to{opacity:1;transform:rotate(-1.5deg)}}@keyframes gs-in{0%{opacity:0;transform:rotate(calc(var(--r,0deg) - 40deg)) scale(.2)}to{opacity:1;transform:rotate(var(--r,0deg))}}@keyframes sl-in{0%{opacity:0;transform:rotate(calc(var(--sr,0deg) - 25deg)) translateY(-2cqw) scale(.4)}to{opacity:1;transform:rotate(var(--sr,0deg)) translateY(var(--sy,0))}}@media (width>=900px){.gift{padding:48px 24px 40px}.book{width:min(94vw,900px)}.sheet{aspect-ratio:auto;box-shadow:none;background:0 0;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;container-type:normal}.page{aspect-ratio:100/128;background:radial-gradient(120% 70% at 50% 0,#ffffff8c,#0000 60%),#f1efe6;justify-self:stretch;width:100%;display:block;position:relative;box-shadow:0 1px #d8d4c6,0 2px #f1efe6,0 3px #cfcbbc;container-type:inline-size}.page-l{border-radius:18px 0 0 18px}.page-r{border-radius:0 18px 18px 0;overflow:hidden}.charm{width:22cqw;top:-11cqw;left:-5cqw;right:auto}.hb{font-size:9cqw;top:14cqw}.age{top:22cqw}.dg{-webkit-text-stroke-width:1.7cqw;font-size:44cqw}.face{width:34cqw}.fl{left:var(--x);top:var(--y);width:var(--s)}.fl-d{display:block}.note{width:72cqw;font-size:4.5cqw;top:80cqw;left:14cqw}.letter{width:72cqw;height:108cqw;top:8cqw;left:14cqw}.ink{font-size:4.3cqw}.ink-a{top:7cqw;right:3cqw}.ink-b{top:17cqw;left:6cqw}.ink-c{top:96cqw;left:8cqw}.pol{width:62cqw;padding:3.4cqw 3.4cqw 15cqw;top:33cqw;left:11cqw}.gs{left:var(--x);top:var(--y);width:var(--s)}.stamp{font-size:10cqw;top:88cqw;left:56cqw}.spine{background:linear-gradient(90deg,#0000,#46342624 42%,#46342642 50%,#fff6 56%,#0000);width:6%;height:auto;display:block;inset:6px auto 6px 50%;translate:-50%}}.mom{z-index:2;clip-path:polygon(0 14px,5% 4px,11% 12px,17% 2px,24% 11px,31% 5px,38% 14px,46% 3px,53% 12px,60% 4px,68% 13px,75% 2px,83% 11px,90% 5px,96% 13px,100% 6px,100% calc(100% - 10px),95% calc(100% - 3px),88% calc(100% - 11px),80% calc(100% - 4px),72% calc(100% - 12px),64% calc(100% - 3px),56% calc(100% - 10px),47% calc(100% - 2px),39% calc(100% - 11px),31% calc(100% - 4px),22% calc(100% - 12px),14% calc(100% - 3px),6% calc(100% - 10px),0 calc(100% - 4px));background:radial-gradient(70% 45% at 50% 25%,#ffffff0d,#0000 70%),#6b2828;grid-template-columns:minmax(0,1fr);gap:44px;padding:56px 22px 68px;display:grid;position:relative}.mm-row{grid-template-columns:minmax(0,1fr);place-items:center;gap:30px;width:min(100%,760px);margin:0 auto;display:grid}.mm{opacity:0;width:min(100%,250px);position:relative}.mm-text{text-align:center;max-width:34ch;font-family:var(--hand);color:#f6e9e2;opacity:0;margin:0;font-size:15.5px;line-height:1.4}.is-in .mm{animation:.5s cubic-bezier(.3,1.2,.5,1) both mm-in}.is-in .mm-text{animation:.45s ease-out .15s both mm-text-in}.mm-env{aspect-ratio:300/262}.env2{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.stripe{background:repeating-linear-gradient(90deg,#e8a3b6 0 7px,#f8e6ea 7px 10px,#69b5ad 10px 17px,#f8e6ea 17px 20px,#b794d6 20px 27px,#f8e6ea 27px 30px);width:88%;padding:3.4%;position:absolute;bottom:5%;left:3%;transform:rotate(-1deg);box-shadow:0 8px 16px #00000059,inset 0 0 0 2px #ffffff80}.stripe img,.pola img{aspect-ratio:1.5;object-fit:cover;background:#3b1a1a;width:100%;display:block}.pola{background:#f8f8f5;margin:0;padding:5%;transform:rotate(1.5deg);box-shadow:0 8px 18px #00000061,inset 0 0 0 1px #fffc}.tape{filter:drop-shadow(0 1px 1px #00000040);width:24%;height:auto;position:absolute}.tape-a{top:-4%;right:-6%;rotate:42deg}.tape-b{bottom:-4%;left:-7%;rotate:42deg}.patch{width:17%;height:auto;position:absolute;top:-9%;left:-5%;rotate:-12deg}@keyframes mm-in{0%{opacity:0;translate:0 26px;scale:.94}to{opacity:1;translate:0;scale:1}}@keyframes mm-text-in{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0}}@media (width>=900px){.mom{gap:84px;padding:96px 40px 108px}.mm-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px}.mm{width:min(100%,320px)}.mm-text{text-align:left;max-width:32ch;font-size:clamp(18px,1.4vw,21px)}.mm-row.is-flip .mm{order:2}}.memo{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:14px;margin-top:-14px;padding:80px 14px 60px;display:flex;position:relative;overflow:hidden}.memo-title{letter-spacing:.01em;color:#5a1f2a;opacity:0;margin:0 0 22px;padding-bottom:14px;font-family:Playfair Display,serif;font-size:clamp(24px,7vw,30px);font-weight:500;position:relative}.memo-title:after{content:"";clip-path:polygon(0 0,100% 0,97% 25%,100% 50%,97% 75%,100% 100%,0 100%,3% 75%,0 50%,3% 25%);filter:drop-shadow(0 1px 1px #3a2a2040);background:repeating-linear-gradient(90deg,#e8a3b6 0 7px,#f8e6ea 7px 10px,#69b5ad 10px 17px,#f8e6ea 17px 20px,#b794d6 20px 27px,#f8e6ea 27px 30px);width:116px;height:14px;position:absolute;bottom:-2px;left:50%;translate:-50%;rotate:-2deg}.is-in .memo-title{animation:.4s ease-out both fade-in}.heart{aspect-ratio:100/120;width:min(100%,280px);position:relative;container-type:inline-size}.ht{rotate:var(--rot,0deg);opacity:0;cursor:pointer;background:0 0;border:0;margin:0;padding:0;transition:transform .2s;position:absolute}.ht-in{background:#fff;border:3px solid #fff;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 0 1px #7d2f3629,0 4px 12px #3a2a204d}.ht img{object-fit:cover;width:100%;height:100%;display:block}.ht:nth-of-type(3n+1):before{content:"";z-index:2;pointer-events:none;clip-path:polygon(0 0,100% 0,96% 25%,100% 50%,96% 75%,100% 100%,0 100%,4% 75%,0 50%,4% 25%);background:#ebe6bdeb;width:44px;height:16px;position:absolute;top:-8px;left:50%;translate:-50%;rotate:-5deg}.ht-cap{text-align:left;font-family:var(--hand);color:#fff;opacity:0;background:linear-gradient(#0000,#3c141eb8);padding:16px 8px 6px;font-size:clamp(13px,3.8cqw,18px);line-height:1.1;transition:opacity .2s,translate .2s;position:absolute;inset:auto 0 0;translate:0 30%}.ht:hover,.ht:focus-visible{z-index:3;outline:none;transform:scale(1.06)}.ht:focus-visible .ht-in{outline:2px dashed var(--maroon);outline-offset:3px}.ht:hover .ht-cap,.ht:focus-visible .ht-cap{opacity:1;translate:0}@media (hover:none){.ht-cap{opacity:1;translate:0}}.is-in .ht{animation:ht-in .35s cubic-bezier(.3, 1.4, .5, 1) calc(.1s + var(--n,0) * 45ms) both}@keyframes ht-in{0%{opacity:0;scale:.6;rotate:calc(var(--rot,0deg) - 6deg)}to{opacity:1;scale:1;rotate:var(--rot,0deg)}}.hs{z-index:4;pointer-events:none;height:auto;transform:rotate(var(--r,0deg));filter:drop-shadow(0 2px 2px #3a2a204d);opacity:0;position:absolute}.is-in .hs{animation:gs-in .3s cubic-bezier(.3, 1.6, .5, 1) calc(.6s + var(--n,0) * 70ms) both}.hs-a{--r:-16deg;width:15cqw;top:-6cqw;left:-4cqw}.hs-b{--r:14deg;width:12cqw;top:-7cqw;right:-3cqw}.hs-c{--r:-8deg;width:11cqw;top:46%;left:-4cqw}.hs-d{--r:16deg;width:13cqw;top:54%;right:-4cqw}.hs-e{--r:10deg;width:11cqw;bottom:-5cqw;left:58%}.memo-note{font-family:var(--script);color:var(--maroon);opacity:0;margin:22px 0 0;font-size:20px;font-weight:700;line-height:1.2;rotate:-2deg}.is-in .memo-note{animation:.5s ease-out .7s both fade-in}.dd{pointer-events:none;filter:drop-shadow(0 2px 2px #3a2a2040);opacity:0;height:auto;position:absolute}.is-in .dd{animation:.5s ease-out .3s both fade-in}.dd-a{width:44px;top:60px;left:7%;rotate:-14deg}.dd-b{width:38px;top:68px;right:8%;rotate:12deg}.dd-c,.dd-d{display:none}.lb{z-index:100;background:#2a1014d6;place-items:center;padding:64px 16px 32px;animation:.2s ease-out both fade-in;display:grid;position:fixed;inset:0}.lb-fig{background:#f8f5ee;max-width:min(94vw,640px);margin:0;padding:10px 10px 14px;animation:.3s cubic-bezier(.3,1.2,.5,1) both mm-in;rotate:-1deg;box-shadow:0 20px 40px #00000080}.lb-fig img{object-fit:contain;background:#e9e4da;max-width:100%;max-height:70dvh;margin:0 auto;display:block}.lb-fig figcaption{text-align:center;font-family:var(--hand);color:var(--ink);margin-top:10px;font-size:20px}.lb-x{top:max(16px, env(safe-area-inset-top));font-family:var(--hand);color:#f6e9e2;background:0 0;border:1.5px solid #f6e9e280;border-radius:999px;padding:6px 16px;font-size:20px;position:absolute;right:16px}@media (width>=900px){.memo{padding:110px 40px 96px}.heart{aspect-ratio:300/265;width:min(100%,440px)}.ht-in{border-width:4px}.ht:nth-of-type(3n+1):before{width:52px;height:18px;top:-9px}.memo-note{font-size:27px}.dd-a{width:72px;top:11%;left:10%}.dd-b{width:60px;top:12%;right:11%}.dd-c{width:54px;display:block;bottom:24%;left:12%;rotate:-10deg}.dd-d{width:74px;display:block;bottom:14%;right:11%;rotate:14deg}}.sg{z-index:2;text-align:center;clip-path:polygon(0 12px,6% 3px,13% 11px,20% 2px,28% 10px,36% 4px,44% 12px,52% 3px,60% 11px,68% 4px,76% 12px,84% 2px,91% 10px,96% 4px,100% 9px,100% 100%,0 100%);background:radial-gradient(70% 40% at 50% 38%,#ffdcaa14,#0000 70%),#3a2a22;flex-direction:column;align-items:center;margin-top:-14px;padding:110px 22px 130px;display:flex;position:relative;overflow:hidden}.sg-kicker{font-family:var(--script);color:#e9c98a;opacity:0;margin:0;font-size:24px;font-weight:700}.sg-title{color:#f6e9e2;opacity:0;margin:4px 0 0;font-family:Playfair Display,serif;font-size:clamp(26px,3.4vw,38px);font-weight:500;line-height:1.15}.sg-artist{font-family:var(--hand);color:#cdb8a8;opacity:0;margin:6px 0 0;font-size:18px}.is-in .sg-kicker,.is-in .sg-title,.is-in .sg-artist{animation:.4s ease-out both fade-in}.is-in .sg-title{animation-delay:80ms}.is-in .sg-artist{animation-delay:.16s}.sg-wrap{width:min(100vw - 56px,340px);margin:120px 0 0;position:relative}.sg-card{opacity:0;background:#f1efe6;border-radius:6px;padding:12px 12px 16px;position:relative;rotate:-1.2deg;box-shadow:0 16px 30px -8px #0009}.is-in .sg-card{animation:.5s cubic-bezier(.3,1.2,.5,1) .2s both mm-in}.sg-card:before,.sgp:before{content:"";clip-path:polygon(0 0,100% 0,96% 25%,100% 50%,96% 75%,100% 100%,0 100%,4% 75%,0 50%,4% 25%);background:#ebe6bde6;width:46px;height:17px;position:absolute;top:-9px;left:50%;translate:-50%;rotate:-4deg}.sg-screen{aspect-ratio:16/9;background:#1c1411;border-radius:3px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000040}.sg-screen iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.sg-msg{font-family:var(--hand);color:var(--ink);margin:14px 0 0;font-size:18px;line-height:1.3}.sg-from{text-align:right;font-family:var(--script);color:var(--maroon);margin:2px 6px 0 0;font-size:21px;font-weight:700}.sgp{z-index:2;opacity:0;background:#f8f5ee;margin:0;padding:6px 6px 22px;position:absolute;box-shadow:0 8px 16px #00000073}.sgp img{aspect-ratio:1/1.05;object-fit:cover;background:#d9d6cf;width:100%;display:block}.sgp:before{width:38px;height:14px;top:-8px}.sgp-a{--r:-7deg;width:33%;rotate:var(--r);top:-38%;left:-4%}.sgp-b{--r:6deg;width:30%;rotate:var(--r);top:-30%;right:-3%}.sgp-b:before{rotate:5deg}.sgp-c{--r:-4deg;width:34%;rotate:var(--r);bottom:-34%;right:6%}.is-in .sgp{animation:sgp-in .45s cubic-bezier(.3, 1.3, .5, 1) calc(.35s + var(--n,0) * 90ms) both}@keyframes sgp-in{0%{opacity:0;translate:0 24px;scale:.85}to{opacity:1;translate:0;scale:1}}@media (width>=900px){.sg{padding:150px 40px 170px}.sg-wrap{width:560px;margin-top:90px}.sg-msg{font-size:22px}.sgp{padding:8px 8px 30px}.sgp-a{width:28%;top:4%;left:-22%}.sgp-b{width:26%;top:-14%;right:-20%}.sgp-c{width:28%;bottom:-20%;right:-12%}}.ws{z-index:2;clip-path:polygon(0 12px,6% 3px,13% 11px,20% 2px,28% 10px,36% 4px,44% 12px,52% 3px,60% 11px,68% 4px,76% 12px,84% 2px,91% 10px,96% 4px,100% 9px,100% 100%,0 100%);background:radial-gradient(70% 40% at 50% 34%,#ffdcaa14,#0000 70%),#3a2a22;justify-content:center;margin-top:-14px;padding:80px 22px 130px;display:flex;position:relative;overflow:hidden}.ws-board{width:min(100%,320px);position:relative}.ws-card{opacity:0;filter:drop-shadow(0 14px 16px #00000073);position:relative;rotate:-1.6deg}.is-in .ws-card{animation:.5s cubic-bezier(.3,1.2,.5,1) .1s both mm-in}.ws-card:before,.ws-pol:before{content:"";z-index:3;clip-path:polygon(0 0,100% 0,96% 25%,100% 50%,96% 75%,100% 100%,0 100%,4% 75%,0 50%,4% 25%);background:#ebe6bde6;width:54px;height:18px;position:absolute;top:-9px;left:50%;translate:-50%;rotate:-4deg}.ws-sheet{aspect-ratio:7/5;text-align:center;clip-path:polygon(.5% .6%,14% 0,38% .5%,66% 0,100% .4%,99.6% 30%,100% 62%,99.4% 100%,70% 99.5%,40% 100%,12% 99.6%,0 99.4%,.4% 64%,0 30%);background:radial-gradient(60% 40% at 18% 90%,#a0784624,#0000 70%),linear-gradient(100deg,#0000 31%,#78583012 31.4%,#0000 32.2%),linear-gradient(165deg,#f7f2e5,#f1e9d5);flex-direction:column;justify-content:center;padding:26px 22px 44px;display:flex;position:relative}.ws-title{font-family:var(--script);color:var(--maroon);margin:0;font-size:28px;font-weight:700;line-height:1.05;rotate:-2deg}.ws-text{font-family:var(--hand);color:var(--ink);text-wrap:pretty;margin:8px auto 0;font-size:15px;line-height:1.5}.ws-from{font-family:var(--script);color:var(--maroon);margin:0;font-size:22px;font-weight:700;line-height:1;position:absolute;bottom:12px;left:54px;rotate:-4deg}.ws-pol{z-index:3;opacity:0;background:#f8f5ee;width:34%;margin:0;padding:7px 7px 26px;position:absolute;bottom:-96px;right:-6px;rotate:5deg;box-shadow:0 10px 20px #00000080}.ws-pol:before{width:42px;height:15px;rotate:6deg}.ws-pol img{aspect-ratio:1/1.05;object-fit:cover;background:#d9d6cf;width:100%;display:block}.is-in .ws-pol{animation:.45s cubic-bezier(.3,1.3,.5,1) .35s both sgp-in}.ws-bloom{z-index:4;pointer-events:none;height:auto;rotate:var(--r,0deg);filter:drop-shadow(0 4px 5px #0006);opacity:0;position:absolute}.is-in .ws-bloom{animation:ws-bloom-in .45s cubic-bezier(.3, 1.4, .5, 1) var(--d,.5s) both}.ws-bloom-a{width:72px;bottom:-26px;left:-22px}.ws-bloom-b{width:46px;top:-20px;right:-10px}@keyframes ws-bloom-in{0%{opacity:0;scale:.2;rotate:calc(var(--r,0deg) - 50deg)}to{opacity:1;scale:1;rotate:var(--r,0deg)}}.ws-st{z-index:4;pointer-events:none;height:auto;transform:rotate(var(--r,0deg));filter:drop-shadow(0 2px 2px #00000059);opacity:0;position:absolute}.is-in .ws-st{animation:gs-in .3s cubic-bezier(.3, 1.6, .5, 1) calc(.75s + var(--n,0) * 70ms) both}.ws-st-a{width:24px;top:30px;left:-10px}.ws-st-b{width:22px;bottom:-90px;left:46%}.ws-st-c{width:26px;bottom:20px;right:-10px}@media (width>=900px){.ws{padding:110px 40px 140px}.ws-board{width:760px}.ws-card{width:560px}.ws-sheet{padding:40px 48px 56px}.ws-title{font-size:46px}.ws-text{margin-top:12px;font-size:23px}.ws-from{font-size:30px;bottom:26px;left:100px}.ws-pol{width:210px;padding:8px 8px 28px;bottom:-50px;right:30px}.ws-pol:before{width:46px;height:16px}.ws-bloom-a{width:120px;bottom:-40px;left:-50px}.ws-bloom-b{width:66px;top:-30px;left:470px;right:auto}.ws-st-a{width:32px;top:70px;left:-24px}.ws-st-b{width:30px;bottom:-60px;left:400px}.ws-st-c{width:34px;bottom:150px;right:18px}:root{--dot-gap:30px}.env-wrap{--top:120px}.env{width:clamp(200px,15vw,280px)}.env-label{font-size:28px}.unlock{gap:18px;width:min(100%,620px)}.unlock-title{width:clamp(280px,22vw,360px)}.slots{--sw:clamp(58px, 5.6vw, 88px)}.unlock-hint{font-size:14px}}@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}
