/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer properties;@layer theme,base,components,utilities;@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-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{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{color:inherit;border-top-width:1px;height:0}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;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{position:relative;vertical-align:baseline;font-size:75%;line-height:0}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{display:block;vertical-align:middle}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}::-webkit-file-upload-button{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:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}:where(select:-moz-any([multiple],[size])) optgroup option{padding-inline-start:20px}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::-webkit-file-upload-button{margin-inline-end:4px}::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{text-align:inherit;min-height:1lh}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-year-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-month-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-day-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-hour-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-minute-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-second-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-millisecond-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-meridiem-field{padding-block-start:0;padding-block-end:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{appearance:button}input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-file-upload-button{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 utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px);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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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,)}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--birthday-rose:#c9767a;--birthday-blue:#7f9ab3;--birthday-gold:#d9a955;--birthday-sage:#8fa58a;--birthday-paper:#f7f1e6;--birthday-paper-deep:#eadcc8;--birthday-ink:#2c2622}html,body,#root{overflow:hidden;height:100%}body{color:#f3eee6;background:#070b16;min-height:100dvh;margin:0;font-family:Newsreader,Iowan Old Style,Palatino,Palatino Linotype,Georgia,serif}button{font:inherit;color:inherit}::selection{color:#f3eee6;background:#8c3a3a}:focus-visible{outline:2px solid var(--birthday-gold);outline-offset:4px}.sound-toggle,.chapter-progress{position:fixed;z-index:8;top:max(1rem,env(safe-area-inset-top))}.sound-toggle{right:max(1rem,env(safe-area-inset-right));color:#f3eee6db;letter-spacing:.06em;backdrop-filter:blur(8px);cursor:pointer;background:#070b1685;border:1px solid #f3eee62e;border-radius:999px;min-height:44px;padding:.45rem .72rem;transition:color .25s,border-color .25s,transform .25s;font-size:.78rem}.sound-toggle span{color:var(--birthday-gold);margin-right:.38rem}.sound-toggle:hover{color:#fff;border-color:#d9a955a6;transform:translateY(-1px)}.chapter-progress{display:flex;color:#f3eee66b;letter-spacing:.12em;text-transform:uppercase;opacity:0;pointer-events:none;gap:.75rem;margin:0;transition:opacity .5s,transform .5s;font-size:.68rem;left:50%;transform:translate(-50%)translateY(-8px)}.chapter-progress.is-visible{opacity:1;transform:translate(-50%)}.chapter-progress span{position:relative;padding:.55rem 0 .45rem}.chapter-progress span:after{position:absolute;background:var(--birthday-gold);content:"";opacity:0;height:1px;transition:opacity .3s,transform .3s;bottom:0;left:35%;right:35%;transform:scaleX(0)}.chapter-progress .is-current{color:#fff4e0f2}.chapter-progress .is-current:after{opacity:1;transform:scaleX(1)}.experience{overflow-x:hidden;overflow-y:auto;height:100%}.story{position:relative}.stage{position:sticky;z-index:1;box-sizing:border-box;display:grid;padding:calc(4.25rem + env(safe-area-inset-top))1.25rem calc(2rem + env(safe-area-inset-bottom));place-items: center;height:100dvh;top:0}.scroll-cue{position:absolute;bottom:max(1.4rem,env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(#f3eee6,#0000);width:1px;height:46px;left:50%;transform:translate(-50%)}.arrival,.letter-wrap,.distance,.album,.wish{will-change:opacity,transform}.sky-canvas,.sky-near,.sky-spot,.sky-shutter,.cake-canvas{position:fixed;pointer-events:none}.sky-canvas,.sky-near,.cake-canvas{display:block;width:100%;height:100%;inset:0}.sky-canvas{z-index:0}.sky-near{z-index:2;mix-blend-mode:screen}.cake-canvas{z-index:3;animation:1.1s both cake-in}@keyframes cake-in{0%{opacity:0}}.cake-anchor{display:block;cursor:pointer;background:0 0;border:0;border-radius:50%;width:min(80vw,340px);height:min(42dvh,320px);padding:0}.cake-anchor:disabled{cursor:default}.sky-spot{z-index:0;opacity:0;mix-blend-mode:screen;background:radial-gradient(circle,#f3eee633,#0000 68%);border-radius:50%;width:min(78vw,560px);height:min(78vw,560px);transform:translate(-50%,-50%)}.sky-shutter{z-index:5;opacity:0;background:#f7f3ec;inset:0}.back{position:fixed;z-index:4;top:max(1rem,env(safe-area-inset-top));left:max(1rem,env(safe-area-inset-left));color:#f3eee6d6;cursor:pointer;background:0 0;border:0;padding:.4rem .2rem;font-family:Fraunces,Georgia,serif;font-size:.98rem}.scene{position:relative;z-index:1;box-sizing:border-box;display:grid;padding:calc(4.25rem + env(safe-area-inset-top))1.25rem calc(2rem + env(safe-area-inset-bottom));animation:.8s both rise;place-items: center;min-height:100dvh}@keyframes rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.arrival,.letter-wrap,.distance,.album,.wish{display:grid;justify-items:center;gap:1.4rem}.is-intro .mail-intro{animation:1.6s cubic-bezier(.22,1,.36,1) 1.2s backwards mail-in}.is-intro .scroll-cue{animation:1.1s 1.8s backwards intro-fade}.is-intro .astro-cat{animation:1.2s 2.2s backwards intro-fade}@keyframes mail-in{0%{opacity:0;transform:translateY(18px)}}@keyframes intro-fade{0%{opacity:0}}.mail{--envelope-w:min(92vw,380px);--envelope-h:calc(var(--envelope-w)*.619);position:relative;width:var(--envelope-w);height:var(--envelope-h);transform:translateY(min(20vh,168px))perspective(1100px)rotateX(calc(var(--tilt-x,0)*1deg))rotateY(calc(var(--tilt-y,0)*1deg));transform-origin:50% 50%}.mail-slot{position:absolute;z-index:3;bottom:calc(var(--envelope-h)*.43);display:grid;overflow:hidden;pointer-events:none;width:84%;height:min(72dvh,640px);left:50%;transform:translate(-50%)}.mail-slot>*{grid-area:1/1;pointer-events:auto;place-self: end center}button.mail{display:block;color:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0}button.mail:disabled{cursor:default}button.mail:focus-visible{outline:2px solid var(--birthday-gold);outline-offset:12px;border-radius:8px}button.mail:active:not(:disabled) .envelope{filter:brightness(.98)}.letter-sheet{position:relative;overflow:hidden;color:#2c2622;background:linear-gradient(180deg,#ffffff8c,transparent 18%),repeating-linear-gradient(93deg,transparent 0 28px,#8fa58a06 29px 30px),var(--birthday-paper);clip-path:polygon(0.5% 0,99.4% 0.4%,100% 99%,0.4% 100%);transform-origin:center bottom;border:1px solid #7d60411f;width:min(100%,380px);padding:.85rem 1.05rem 2.1rem;font-size:.98rem;line-height:1.32;box-shadow:0 18px 40px #00000057}.letter-sheet p{margin:0}.letter-sheet .greeting{margin-bottom:0;font-family:Fraunces,Georgia,serif;font-size:1.48rem;font-style:italic;font-weight:500;line-height:1.15}.letter-fold{position:absolute;pointer-events:none;background:linear-gradient(90deg,#0000,#6f563c1f,#0000);height:1px;inset:52% 0 auto;box-shadow:0 1px #ffffff59}.letter-balloons{position:absolute;opacity:.22;pointer-events:none;width:42px;height:58px;top:.65rem;right:.75rem}.letter-balloons i{position:absolute;background:var(--birthday-rose);border-radius:50%;width:13px;height:17px}.letter-balloons i:after{position:absolute;content:"";transform-origin:top;border-left:1px solid #806949;border-radius:50%;width:18px;height:34px;top:15px;left:6px;transform:rotate(-8deg)}.letter-balloons i:nth-child(2){background:var(--birthday-blue);top:7px;left:14px;transform:scale(.88)}.letter-balloons i:nth-child(3){background:var(--birthday-gold);top:1px;left:27px;transform:scale(.78)}.letter-confetti{position:absolute;color:var(--birthday-sage);letter-spacing:.35rem;opacity:.22;pointer-events:none;font-size:.82rem}.letter-confetti-left{bottom:.65rem;left:.8rem;transform:rotate(-12deg)}.letter-confetti-right{color:var(--birthday-rose);bottom:1rem;right:.8rem;transform:rotate(10deg)}.letter-signoff{position:absolute;display:flex;color:#4a3a2e66;pointer-events:none;align-items: center;font-family:Fraunces,Georgia,serif;font-size:.82rem;font-style:italic;bottom:.5rem;right:1rem}.letter-signoff span{display:grid;border:1px solid;border-radius:50%;place-items: center;width:1.35rem;height:1.35rem}.letter-signoff i{color:var(--birthday-rose);margin-left:-.18rem;font-size:.68rem}.mail-slot .distance{width:min(100%,320px)}.mail-slot .album{position:absolute;width:100%;height:100%;inset:0}.stack-edge{position:absolute;bottom:calc(var(--envelope-h)*.2);background:#f3ecdf;border-radius:2px;height:16px;left:50%;box-shadow:0 8px 16px #00000038}.edge-rear{width:78%;transform:translate(-54%)rotate(-5deg)}.edge-mid{width:88%;transform:translate(-46%)rotate(3.5deg)}.mail-slot .polaroid{--print-max-w:min(77vw,250px);--print-max-h:min(56vh,340px);position:absolute;max-width:var(--print-max-w);width:-moz-fit-content;width:fit-content;padding:9px 9px 52px;bottom:0;left:50%}.mail-slot .distance-card,.collage-distance .distance-card{position:relative;color:#2c2622;background:linear-gradient(180deg,#ffffff73,transparent 26%),var(--birthday-paper);border:1px solid #7d604124;width:min(100%,300px);padding:1.15rem 1.1rem 1.2rem;box-shadow:0 16px 34px #00000052}.postmark{position:absolute;display:grid;color:#80694994;letter-spacing:.08em;text-transform:uppercase;justify-items:center;font-family:Fraunces,Georgia,serif;font-size:.5rem;top:.6rem;right:.65rem;transform:rotate(5deg)}.postmark-stamp{display:grid;color:var(--birthday-rose);border:1px dashed;place-items: center;width:1.55rem;height:1.75rem;margin-bottom:.16rem;font-size:.7rem}.mail-slot .city,.mail-slot .distance-line,.collage-distance .city,.collage-distance .distance-line{color:#3c342e}.mail-slot .distance-line,.collage-distance .distance-line{max-width:none;font-size:1.04rem}.collage{position:fixed;z-index:1;overflow:hidden;pointer-events:none;inset:0}.collage.is-interactive{z-index:2}.collage-item{position:absolute;display:block;color:inherit;text-align:inherit;transform-origin:center;will-change:transform,left,top;background:0 0;border:0;padding:0}.collage-item.is-tappable{pointer-events:auto;cursor:zoom-in}.collage-card{display:block;filter:drop-shadow(0 10px 18px #00000059);transition:transform .3s cubic-bezier(.22,1,.36,1),filter .3s}.collage-item.is-tappable:hover .collage-card{filter:drop-shadow(0 16px 26px #00000073)drop-shadow(0 0 12px #ffe2a640);transform:translateY(-6px)scale(1.04)}.collage-item.is-tappable:focus-visible .collage-card{filter:drop-shadow(0 16px 26px #00000073)drop-shadow(0 0 12px #ffe2a640);transform:translateY(-6px)scale(1.04)}.collage-item:focus-visible{outline:none}.collage-letter{width:340px}.collage-letter .letter-sheet{box-sizing:border-box;width:100%}.collage-distance{width:300px}.collage-distance .distance-card{width:100%}.collage-photo{width:-moz-fit-content;width:fit-content;max-width:250px}.collage-card.collage-photo .polaroid{--print-max-w:232px;--print-max-h:340px;max-width:var(--print-max-w);width:-moz-fit-content;width:fit-content;padding:9px 9px 52px}.collage-viewer{position:fixed;z-index:9;display:grid;overscroll-behavior:contain;animation:.35s both collage-viewer-in;align-content: center;place-items: center;gap:1rem;padding:1.5rem;inset:0}.collage-viewer-backdrop{position:absolute;cursor:zoom-out;backdrop-filter:blur(4px);background:#070b16b8;border:0;padding:0;inset:0}.collage-viewer-card{position:relative;overflow:auto;filter:drop-shadow(0 24px 50px #00000080);animation:.45s cubic-bezier(.22,1,.36,1) both collage-card-in;max-height:calc(100dvh - 7rem)}.collage-viewer-card.collage-letter{width:min(92vw,420px)}.collage-viewer-card.collage-distance{width:min(92vw,360px)}.collage-viewer-card.collage-photo{width:-moz-fit-content;width:fit-content;max-width:min(92vw,460px)}.collage-viewer-card.collage-photo .polaroid{--print-max-w:min(78vw,396px);--print-max-h:calc(100dvh - 14rem);max-width:var(--print-max-w);width:-moz-fit-content;width:fit-content}.collage-viewer-close{position:relative}@keyframes collage-viewer-in{0%{opacity:0}}@keyframes collage-card-in{0%{opacity:0;transform:translateY(16px)scale(.92)}}.hint{position:absolute;color:#f3eee6c7;text-align:center;width:max-content;max-width:min(24rem,92vw);margin:0;font-size:1.05rem;line-height:1.45;top:calc(100% + .85rem);left:50%;transform:translate(-50%)}.arrival,.envelope-layer{position:absolute;bottom:0;left:0;right:0}.envelope-back{z-index:2}.envelope-celebration{position:absolute;z-index:3;pointer-events:none;width:1px;height:1px;bottom:43%;left:50%}.flying-balloon{position:absolute;opacity:0;transform-origin:center bottom;animation:envelope-balloon-fly var(--balloon-duration)cubic-bezier(.2,.75,.28,1)var(--balloon-delay)both;width:34px;height:44px;margin:-22px 0 0 -17px;top:0;left:0}.flying-balloon:before{position:absolute;background:radial-gradient(circle at 34% 28%,#ffffffb8 0 7%,transparent 8%),var(--balloon-color);content:"";border-radius:52% 48% 48% 52%/46% 46% 54% 54%;inset:0;box-shadow:inset -5px -7px 10px #43292a29,0 5px 12px #0000002e}.flying-balloon:after{position:absolute;border-bottom:0;border-left:4px solid #0000;border-right:4px solid #0000;border-top:7px solid var(--balloon-color);content:"";bottom:-5px;left:50%;transform:translate(-50%)}.flying-balloon i{position:absolute;transform-origin:top;border-left:1px solid #eee1ce9e;border-radius:45%;width:28px;height:72px;top:calc(100% + 4px);left:50%;transform:rotate(-8deg)}@keyframes envelope-balloon-fly{0%{opacity:0;transform:translateY(22px)scale(.35)rotate(-5deg)}12%{opacity:1}45%{transform:translate(var(--balloon-x),var(--balloon-mid))scale(var(--balloon-scale))rotate(5deg)}82%{opacity:1}to{opacity:0;transform:translate(calc(var(--balloon-x) + var(--balloon-drift)),var(--balloon-rise))scale(var(--balloon-scale))rotate(-4deg)}}.envelope-confetti{position:absolute;background:var(--confetti-color);opacity:0;animation:envelope-confetti-pop 1.35s cubic-bezier(.16,.72,.3,1)var(--confetti-delay)both;border-radius:2px;width:7px;height:13px;margin:-6px 0 0 -3px;top:0;left:0}.envelope-confetti:nth-of-type(3n){border-radius:50%;width:8px;height:8px}@keyframes envelope-confetti-pop{0%{opacity:1;transform:translateY(12px)scale(.3)rotate(0)}58%{opacity:1;transform:translate(var(--confetti-x),var(--confetti-y))scale(1)rotate(var(--confetti-spin))}to{opacity:0;transform:translate(var(--confetti-x),calc(var(--confetti-y) + 58px))scale(.8)rotate(240deg)}}.envelope-front{z-index:4}.envelope{position:relative;height:var(--envelope-h);width:100%;margin:0 auto}.envelope-back .envelope{filter:drop-shadow(calc(var(--tilt-y,0)*-.9px)calc(22px + var(--tilt-x,0)*.9px)26px #00000073)}.envelope-front .envelope{filter:drop-shadow(0 -3px 5px #3a261647)}.envelope-art{display:block;overflow:visible;width:100%;height:100%}.envelope-sheen{position:absolute;background:radial-gradient(110% 90% at calc(50% + var(--tilt-y,0)*3.5%)calc(45% - var(--tilt-x,0)*4%),#fffcf46b,#fffcf400 58%);mix-blend-mode:soft-light;pointer-events:none;border-radius:6px;inset:0}.svg-flap{transform-box:fill-box;transform-origin:50% 0%;will-change:transform}.for-name,.seal-mark{color:#2c2622;fill:#2c2622;font-family:Fraunces,Georgia,serif;font-weight:500}.for-name{fill:#4a3a2e;font-size:23px}.for-name-script{font-style:italic}.seal-mark{fill:#f1c7ad;font-size:18px;font-style:italic}.seal-anchor{position:absolute;pointer-events:none;width:1px;height:1px;left:50%;transform:translate(-50%,-50%)}.paper{overflow:auto;color:#2c2622;background:linear-gradient(#ffffff6b,#0000 18%),#f3eee6db;border-radius:2px;width:min(92vw,36rem);max-height:min(72dvh,680px);padding:2rem 1.45rem 1.5rem;box-shadow:0 24px 60px #00000061}.paper p{margin:0 0 .95rem;font-size:1.2rem;line-height:1.5}.paper .greeting{margin-bottom:1.15rem;font-family:Fraunces,Georgia,serif;font-size:2rem;font-style:italic;font-weight:500}.paper p.is-new{animation:.7s line-in}@keyframes line-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.ink-btn,.text-btn,.album-nav button{cursor:pointer;background:0 0;border:0;border-bottom:1px solid;min-height:44px;padding:.35rem .15rem;transition:color .25s,border-color .25s,transform .25s;font-family:Fraunces,Georgia,serif;font-size:1.05rem}.ink-btn{color:#2c2622;margin-top:.4rem}.text-btn{color:#f3eee6}.text-btn:hover{color:#ffe2a6;border-color:var(--birthday-gold);transform:translateY(-1px)}.text-btn:disabled{cursor:not-allowed;opacity:.42;transform:none}.distance-card{display:grid;box-sizing:border-box;justify-items:center;gap:1rem}.distance-route{display:grid;grid-template-columns:minmax(0,1fr)5.5rem minmax(0,1fr);align-items: end;width:100%}.city{letter-spacing:.12em;text-align:center;text-transform:uppercase;opacity:.78;margin:0;font-family:Fraunces,Georgia,serif;font-size:.78rem}.distance-arc{position:relative;height:2.6rem}.distance-arc:before{position:absolute;content:"";border-top:1px dashed #3c342e80;border-radius:50%;height:1.75rem;bottom:.36rem;left:.65rem;right:.65rem}.distance-star,.distance-moon,.distance-heart{position:absolute;color:#806949;line-height:1}.distance-heart{z-index:1;color:var(--birthday-rose);offset-path:path("M 0 20 Q 35 -18 70 20");animation:3.8s ease-in-out infinite heart-route;filter:drop-shadow(0 0 3px #c9767a73);font-size:.68rem;bottom:.45rem;left:.45rem}@keyframes heart-route{0%,12%{opacity:0;offset-distance:0%}22%,82%{opacity:1}92%,to{opacity:0;offset-distance:100%}}.distance-star{font-size:.72rem;bottom:0}.distance-star:first-child{left:.24rem}.distance-star:last-child{right:.24rem}.distance-moon{font-family:Fraunces,Georgia,serif;font-size:1.2rem;top:0;left:50%;transform:translate(-50%)}.distance-line{text-align:center;max-width:16rem;margin:0;font-size:1.2rem;line-height:1.45}.polaroid{--print-max-w:min(78vw,320px);--print-max-h:min(62vh,420px);position:relative;max-width:var(--print-max-w);background:linear-gradient(115deg,#ffffff80,#0000 32%),#f7f3ec;border:1px solid #5b47331a;width:-moz-fit-content;width:fit-content;margin:0;padding:12px 12px 68px;box-shadow:0 18px 40px #00000059}.photo-tape{position:absolute;z-index:2;backdrop-filter:blur(1px);background:#d9a95580;width:66px;height:22px;top:-9px;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:inset 0 0 0 1px #ffffff2e}.photo-tape.tape-1{background:#8fa58a85;left:24%;transform:translate(-50%)rotate(-8deg)}.photo-tape.tape-2{background:#7f9ab37a;left:76%;transform:translate(-50%)rotate(7deg)}.photo-sticker{position:absolute;z-index:2;display:grid;color:#fff8eb;background:var(--birthday-rose);border:2px solid #fff8ebd9;border-radius:50%;place-items: center;width:30px;height:30px;font-size:.8rem;bottom:34px;right:-9px;transform:rotate(9deg);box-shadow:0 3px 8px #0003}.photo-sticker.sticker-1{background:var(--birthday-gold)}.photo-sticker.sticker-2{background:var(--birthday-blue)}.memory-number{position:absolute;color:#2c26227a;letter-spacing:.06em;text-align:center;font-family:Fraunces,Georgia,serif;font-size:.58rem;font-style:italic;bottom:11px;left:0;right:0}.print{display:block;background:#e4d5c3}.print img{display:block;max-width:var(--print-max-w,min(78vw,320px));max-height:var(--print-max-h,min(62vh,420px));width:auto;height:auto}.empty-frame{display:grid;color:#5c5148;text-align:center;justify-items:center;gap:.35rem;margin:0}.empty-frame span:first-child{font-family:Fraunces,Georgia,serif;font-size:1.2rem}.empty-frame span:last-child{font-size:.85rem}.polaroid figcaption{color:#2c2622;text-align:center;width:0;min-width:100%;margin-top:.85rem;font-size:.98rem;line-height:1.35}.album-count{text-align:center;margin:0;font-family:Fraunces,Georgia,serif;font-size:.95rem}.album-nav p{text-align:center;min-width:4.5rem;margin:0;font-family:Fraunces,Georgia,serif;font-size:.95rem}.album-nav button{color:#f3eee6;min-width:44px;min-height:44px}.album-nav button:disabled{cursor:default;opacity:.35}.candle{position:relative;background:0 0;border:0;width:88px;height:168px;padding:0}button.candle{cursor:pointer}.wax{position:absolute;background:linear-gradient(#f6f1e6,#e3d2b2);border-radius:3px 3px 7px 7px;width:42px;height:90px;bottom:0;left:50%;transform:translate(-50%)}.wick{position:absolute;background:#2c2622;width:2px;height:14px;bottom:86px;left:50%;transform:translate(-50%)}.flame{position:absolute;transform-origin:center bottom;animation:.85s ease-in-out infinite flicker;background:radial-gradient(circle at 50% 72%,#fff6dc,#f0b14a 42%,#e07a32 70%,#0000 74%);border-radius:50% 50% 46% 46%;width:16px;height:30px;bottom:98px;left:50%;transform:translate(-50%)}@keyframes flicker{0%,to{transform:translate(-50%)scale(1)}50%{transform:translate(-50%)scale(.9,1.06)}}.candle.is-out:after{content:"";position:absolute;animation:1.5s forwards smoke;background:linear-gradient(#f3eee600,#f3eee673,#0000);width:10px;height:36px;bottom:104px;left:50%;transform:translate(-50%)}@keyframes smoke{0%{opacity:.7;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-28px)}}.wish-copy{display:grid;text-align:center;justify-items:center;gap:.85rem;max-width:28rem}.wish-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem 1.25rem}.replay-btn{color:#f3eee6c7}.birthday-constellation{position:relative;color:#ffe2a6;filter:drop-shadow(0 0 8px #ffe2a680);width:min(72vw,280px);height:72px;margin-bottom:-.2rem}.birthday-constellation strong{position:absolute;letter-spacing:.04em;font-family:Fraunces,Georgia,serif;font-size:1.05rem;font-style:italic;font-weight:500;bottom:.2rem;left:0;right:0}.birthday-constellation span{position:absolute;animation:1.2s cubic-bezier(.22,1,.36,1) both birthday-star-in}.birthday-constellation span:first-child{top:20px;left:28%}.birthday-constellation span:nth-child(2){animation-delay:.12s;top:3px;left:39%}.birthday-constellation span:nth-child(3){animation-delay:.22s;top:17px;left:50%}.birthday-constellation span:nth-child(4){animation-delay:.32s;top:3px;left:61%}.birthday-constellation span:nth-child(5){animation-delay:.42s;top:20px;left:72%}@keyframes birthday-star-in{0%{opacity:0;transform:translateY(-16px)scale(0)rotate(-45deg)}70%{opacity:1}to{transform:none}}.wish-copy.is-visible{animation:.9s cubic-bezier(.22,1,.36,1) both wish-arrive}@keyframes wish-arrive{0%{opacity:0;transform:translateY(14px)}}.wish-line{margin:0;font-size:1.28rem;line-height:1.5}.signature{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.45rem;font-style:italic}.astro-cat{--cat-size:220px;--face:1;--tilt:0deg;position:fixed;z-index:4;width:var(--cat-size);height:var(--cat-size);margin:calc(var(--cat-size)/-2)0 0 calc(var(--cat-size)/-2);cursor:pointer;pointer-events:auto;touch-action:manipulation;will-change:transform;border-radius:50%;transition:width .6s,height .6s,margin .6s;top:0;left:0}.astro-cat:-webkit-any([data-mode=fly],[data-mode=wand]){pointer-events:none}.astro-cat:-moz-any([data-mode=fly],[data-mode=wand]){pointer-events:none}.astro-cat:is([data-mode=fly],[data-mode=wand]){pointer-events:none}.astro-cat:focus-visible{outline:2px solid #ffe27ae6;outline-offset:-18px}.astro-cat[data-mode=companion],.astro-cat[data-mode=prompt],.astro-cat[data-mode=wish]{--cat-size:196px}@media (max-width:719px){.astro-cat{--cat-size:156px}.astro-cat[data-mode=companion],.astro-cat[data-mode=prompt],.astro-cat[data-mode=wish]{--cat-size:116px}}.cat-bubble{position:absolute;z-index:1;color:#2c2622;text-align:center;pointer-events:none;transform-origin:center bottom;animation:.45s cubic-bezier(.3,1.6,.5,1) both moon-pop;background:#f7f1e6;border-radius:1rem;width:max-content;max-width:min(16rem,70vw);margin:0;padding:.6rem .95rem;font-size:1rem;font-style:italic;line-height:1.32;bottom:88%;left:50%;translate:-50%;box-shadow:0 10px 26px #00000059,0 0 18px #ffecc82e}.cat-bubble:after{position:absolute;content:"";border-top:9px solid #f7f1e6;border-left:8px solid #0000;border-right:8px solid #0000;top:100%;left:50%;translate:-50%}@media (max-width:719px){.cat-bubble{max-width:min(13rem,62vw);font-size:.9rem;left:0;translate:0}.cat-bubble:after{left:28%}}.astro-tilt,.astro-flip,.astro-art,.astro-fx{position:absolute;inset:0}.astro-tilt{transform:rotate(var(--tilt))}.astro-flip{transform:scaleX(var(--face));transition:transform .35s}.cat-badge{transform-box:view-box;transform-origin:60px 91px;transform:scaleX(var(--face))}.astro-art{display:block;overflow:visible;filter:drop-shadow(0 6px 14px #00000073)drop-shadow(0 0 10px #a0beff2e);width:100%;height:100%}.astro-art *{transform-box:view-box}.cat-part,.cat-blush,.cat-watch,.cat-party-hat,.cat-balloon{opacity:0;transition:opacity .35s}.astro-cat[data-emote=wistful] .cat-balloon{opacity:1}.astro-cat:-webkit-any([data-mode=wish],[data-mode=prompt]) .cat-party-hat{opacity:1}.astro-cat:-moz-any([data-mode=wish],[data-mode=prompt]) .cat-party-hat{opacity:1}.astro-cat:is([data-mode=wish],[data-mode=prompt]) .cat-party-hat{opacity:1}.astro-cat:-webkit-any([data-mode=wish],[data-mode=prompt]) .cat-party-hat{transform-origin:59px 30px;animation:1.4s ease-in-out infinite party-hat-bob}.astro-cat:-moz-any([data-mode=wish],[data-mode=prompt]) .cat-party-hat{transform-origin:59px 30px;animation:1.4s ease-in-out infinite party-hat-bob}.astro-cat:is([data-mode=wish],[data-mode=prompt]) .cat-party-hat{transform-origin:59px 30px;animation:1.4s ease-in-out infinite party-hat-bob}.astro-cat[data-emote=wistful] .cat-balloon{transform-origin:87px 72px;animation:2.8s ease-in-out infinite cat-balloon-sway}@keyframes party-hat-bob{50%{transform:rotate(4deg)translateY(-1px)}}@keyframes cat-balloon-sway{50%{transform:rotate(5deg)translateY(-2px)}}.astro-cat[data-emote=hug] .cat-arms-hug,.astro-cat:not(:-webkit-any([data-emote=hug],[data-emote=camera])) .cat-arms-default,.astro-cat:not(:-webkit-any([data-emote=blush],[data-emote=hug],[data-emote=wistful])) .cat-tail-curl{opacity:1}.astro-cat[data-emote=hug] .cat-arms-hug,.astro-cat:not(:-moz-any([data-emote=hug],[data-emote=camera])) .cat-arms-default,.astro-cat:not(:-moz-any([data-emote=blush],[data-emote=hug],[data-emote=wistful])) .cat-tail-curl{opacity:1}.astro-cat[data-emote=hug] .cat-arms-hug,.astro-cat:not(:is([data-emote=hug],[data-emote=camera])) .cat-arms-default,.astro-cat:not(:is([data-emote=blush],[data-emote=hug],[data-emote=wistful])) .cat-tail-curl{opacity:1}.astro-cat:-webkit-any([data-emote=idle],[data-emote=peek]) :-webkit-any(.eyes-normal,.mouth-w){opacity:1}.astro-cat:-moz-any([data-emote=idle],[data-emote=peek]) :-moz-any(.eyes-normal,.mouth-w){opacity:1}.astro-cat:is([data-emote=idle],[data-emote=peek]) :is(.eyes-normal,.mouth-w){opacity:1}.astro-cat[data-emote=surprised] :-webkit-any(.eyes-wide,.mouth-o){opacity:1}.astro-cat[data-emote=surprised] :-moz-any(.eyes-wide,.mouth-o){opacity:1}.astro-cat[data-emote=surprised] :is(.eyes-wide,.mouth-o){opacity:1}.astro-cat[data-emote=blush] :-webkit-any(.eyes-heart,.mouth-smile){opacity:1}.astro-cat[data-emote=blush] :-moz-any(.eyes-heart,.mouth-smile){opacity:1}.astro-cat[data-emote=blush] :is(.eyes-heart,.mouth-smile){opacity:1}.astro-cat:-webkit-any([data-emote=hug],[data-emote=cheer]) :-webkit-any(.eyes-happy,.mouth-smile){opacity:1}.astro-cat:-moz-any([data-emote=hug],[data-emote=cheer]) :-moz-any(.eyes-happy,.mouth-smile){opacity:1}.astro-cat:is([data-emote=hug],[data-emote=cheer]) :is(.eyes-happy,.mouth-smile){opacity:1}.astro-cat[data-emote=camera] :-webkit-any(.eyes-star,.mouth-w,.cat-arms-camera){opacity:1}.astro-cat[data-emote=camera] :-moz-any(.eyes-star,.mouth-w,.cat-arms-camera){opacity:1}.astro-cat[data-emote=camera] :is(.eyes-star,.mouth-w,.cat-arms-camera){opacity:1}.astro-cat[data-emote=wistful] :-webkit-any(.eyes-droopy,.mouth-sad,.cat-watch){opacity:1}.astro-cat[data-emote=wistful] :-moz-any(.eyes-droopy,.mouth-sad,.cat-watch){opacity:1}.astro-cat[data-emote=wistful] :is(.eyes-droopy,.mouth-sad,.cat-watch){opacity:1}.astro-cat:-webkit-any([data-emote=blush],[data-emote=hug],[data-emote=wistful]) .cat-tail-heart{opacity:1}.astro-cat:-moz-any([data-emote=blush],[data-emote=hug],[data-emote=wistful]) .cat-tail-heart{opacity:1}.astro-cat:is([data-emote=blush],[data-emote=hug],[data-emote=wistful]) .cat-tail-heart{opacity:1}.astro-cat:-webkit-any([data-emote=blush],[data-emote=hug]) .cat-blush{opacity:.8}.astro-cat:-moz-any([data-emote=blush],[data-emote=hug]) .cat-blush{opacity:.8}.astro-cat:is([data-emote=blush],[data-emote=hug]) .cat-blush{opacity:.8}.astro-cat:-webkit-any([data-emote=camera],[data-emote=cheer]) .cat-blush{opacity:.45}.astro-cat:-moz-any([data-emote=camera],[data-emote=cheer]) .cat-blush{opacity:.45}.astro-cat:is([data-emote=camera],[data-emote=cheer]) .cat-blush{opacity:.45}.cat-blink{transform-origin:60px 49px;animation:4.2s ease-in-out infinite cat-blink}@keyframes cat-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.cat-pupils{transition:transform .4s}.astro-cat[data-emote=peek] .cat-pupils{transform:translate(1.3px,-1.2px)}.cat-head{transform-origin:60px 52px;transition:transform .45s}.astro-cat[data-emote=peek] .cat-head{transform:rotate(7deg)}.astro-cat[data-emote=wistful] .cat-head{transform:rotate(-6deg)translateY(1px)}.cat-ear-left,.cat-ear-right{transition:transform .4s}.cat-ear-left{transform-origin:50px 40px}.cat-ear-right{transform-origin:70px 40px}.astro-cat[data-emote=surprised] :-webkit-any(.cat-ear-left,.cat-ear-right){transform:translateY(-1.5px)scale(1.12)}.astro-cat[data-emote=surprised] :-moz-any(.cat-ear-left,.cat-ear-right){transform:translateY(-1.5px)scale(1.12)}.astro-cat[data-emote=surprised] :is(.cat-ear-left,.cat-ear-right){transform:translateY(-1.5px)scale(1.12)}.astro-cat[data-emote=wistful] .cat-ear-left{transform:rotate(-30deg)}.astro-cat[data-emote=wistful] .cat-ear-right{transform:rotate(30deg)}.cat-heart-eye,.cat-star-eye{transform-box:fill-box;transform-origin:center}.cat-heart-eye{animation:.9s ease-in-out infinite cat-pulse}.cat-star-eye{animation:1.6s ease-in-out infinite cat-twinkle}@keyframes cat-pulse{50%{transform:scale(1.18)}}@keyframes cat-twinkle{50%{transform:rotate(18deg)scale(1.12)}}.cat-antenna{animation:1.8s ease-in-out infinite cat-glow}@keyframes cat-glow{50%{opacity:.45}}.cat-flame-boost{transform-origin:39px 92px;transition:transform .4s}.astro-cat[data-mode=fly] .cat-flame-boost{transform:scale(1.3,1.8)}.cat-flame{transform-origin:39px 92px;animation:.18s ease-in-out infinite alternate cat-flicker}@keyframes cat-flicker{to{transform:scale(.82,.7);opacity:.8}}.cat-tail{transform-origin:76px 96px;animation:2.6s ease-in-out infinite cat-tail}@keyframes cat-tail{50%{transform:rotate(-9deg)}}.cat-arm-left{transform-origin:44px 82px;transition:transform .5s}.cat-arm-right{transform-origin:76px 82px;transition:transform .5s}.astro-cat[data-emote=wistful] .cat-arm-left{transform:rotate(115deg)}.astro-cat[data-action=wave] .cat-arm-left{animation:1.4s ease-in-out cat-wave}@keyframes cat-wave{20%,60%{transform:rotate(125deg)}40%,80%{transform:rotate(95deg)}}.astro-cat[data-action=heart] .cat-arm-right{animation:1.2s ease-in-out cat-swirl}@keyframes cat-swirl{25%{transform:rotate(-24deg)}50%{transform:rotate(18deg)}75%{transform:rotate(-12deg)}}.astro-cat[data-mode=wand] .cat-arm-right{animation:.42s ease-in-out infinite alternate cat-wand}@keyframes cat-wand{0%{transform:rotate(-18deg)}to{transform:rotate(78deg)}}.astro-cat[data-action=loop] .astro-art{animation:1.3s cubic-bezier(.45,0,.3,1) cat-loop}@keyframes cat-loop{to{transform:rotate(360deg)}}.astro-cat:-webkit-any([data-action=confetti],[data-action=cheer]) .astro-art{animation:.7s 2 cat-bounce}.astro-cat:-moz-any([data-action=confetti],[data-action=cheer]) .astro-art{animation:.7s 2 cat-bounce}.astro-cat:is([data-action=confetti],[data-action=cheer]) .astro-art{animation:.7s 2 cat-bounce}.astro-cat[data-action=cheer] .cat-arm-left{animation:1.4s ease-in-out cat-wave}@keyframes cat-bounce{40%{transform:translateY(-12%)scale(1.04,.97)}70%{transform:translateY(2%)scale(.98,1.03)}}.astro-cat[data-emote=surprised] .astro-art{animation:.6s cat-hop}@keyframes cat-hop{35%{transform:translateY(-14%)scale(1.06)}}.astro-cat[data-emote=hug] .astro-art{animation:2.4s ease-in-out infinite cat-sway}@keyframes cat-sway{25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}.astro-cat[data-action=snap] .cat-camera{transform-origin:60px 88px;animation:.5s cat-snap}@keyframes cat-snap{30%{transform:scale(1.12)rotate(-6deg)}}.cat-camera-flash{opacity:.5}.astro-cat[data-action=snap] .cat-camera-flash{animation:.25s 2 reverse cat-glow}.astro-fx>*{position:absolute;pointer-events:none}.cat-doodle{left:calc(50% + var(--face)*44%);overflow:visible;animation:2.2s forwards cat-doodle-float;width:46%;height:42%;top:-2%;transform:translate(-50%,-50%)}.cat-doodle path{stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0;filter:drop-shadow(0 0 6px #ff7aa2b3);animation:1s forwards cat-doodle-draw}@keyframes cat-doodle-draw{80%{stroke-dashoffset:0;fill-opacity:0}to{stroke-dashoffset:0;fill-opacity:.85}}@keyframes cat-doodle-float{0%,55%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,-140%)scale(1.15)}}.cat-confetti{left:calc(50% + var(--face)*42%);width:0;height:0;top:6%}.astro-cat[data-mode=wand] :-webkit-any(.cat-doodle,.cat-confetti,.cat-sparkles){top:92%;left:90%}.astro-cat[data-mode=wand] :-moz-any(.cat-doodle,.cat-confetti,.cat-sparkles){top:92%;left:90%}.astro-cat[data-mode=wand] :is(.cat-doodle,.cat-confetti,.cat-sparkles){top:92%;left:90%}.astro-cat[data-mode=wish] .cat-confetti{top:0;left:50%}.cat-confetti span{position:absolute;background:var(--c);opacity:0;animation:1.4s cubic-bezier(.2,.7,.3,1) forwards cat-confetti;border-radius:1px;width:5px;height:9px;margin:-4px 0 0 -2px}.cat-confetti span.is-round{border-radius:50%;width:6px;height:6px}@keyframes cat-confetti{0%{opacity:1;transform:translate(0)scale(.4)}55%{opacity:1;transform:translate(var(--x),var(--y))rotate(var(--spin))}to{opacity:0;transform:translate(calc(var(--x)*1.15),calc(var(--y) + 36px))rotate(calc(var(--spin)*2))}}.cat-sparkles,.cat-float-hearts,.cat-sigh{opacity:0;transition:opacity .4s}.cat-sparkles{width:0;height:0;top:10%;left:50%}.astro-cat:-webkit-any([data-mode=wand],[data-emote=surprised]) .cat-sparkles{opacity:1}.astro-cat:-moz-any([data-mode=wand],[data-emote=surprised]) .cat-sparkles{opacity:1}.astro-cat:is([data-mode=wand],[data-emote=surprised]) .cat-sparkles{opacity:1}.cat-sparkles span{position:absolute;color:#ffe9a6;text-shadow:0 0 8px #ffe27ae6;animation:1.1s ease-in-out infinite cat-sparkle;font-size:14px;line-height:1;transform:translate(-50%,-50%)}.cat-sparkles span:first-child{top:-8px;left:-34px}.cat-sparkles span:nth-child(2){animation-delay:.3s;top:-18px;left:30px}.cat-sparkles span:nth-child(3){animation-delay:.55s;font-size:10px;top:16px;left:38px}.cat-sparkles span:nth-child(4){animation-delay:.8s;font-size:10px;top:20px;left:-26px}@keyframes cat-sparkle{0%,to{opacity:0;transform:translate(-50%,-50%)scale(.4)rotate(0)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.1)rotate(45deg)}}.cat-float-hearts{left:calc(50% + var(--face)*30%);width:0;height:0;top:4%}.astro-cat:-webkit-any([data-emote=blush],[data-emote=hug]) .cat-float-hearts{opacity:1}.astro-cat:-moz-any([data-emote=blush],[data-emote=hug]) .cat-float-hearts{opacity:1}.astro-cat:is([data-emote=blush],[data-emote=hug]) .cat-float-hearts{opacity:1}.cat-float-hearts span{position:absolute;color:#ff7aa2;text-shadow:0 0 8px #ff7aa2b3;animation:2.4s ease-in infinite cat-float-heart;font-size:13px;line-height:1}.cat-float-hearts span:nth-child(2){animation-delay:.8s;font-size:10px;left:-14px}.cat-float-hearts span:nth-child(3){animation-delay:1.6s;font-size:11px;left:12px}@keyframes cat-float-heart{0%{opacity:0;transform:translateY(10px)scale(.5)}25%{opacity:1}to{opacity:0;transform:translate(8px,-46px)scale(1.1)rotate(12deg)}}.cat-sigh{left:calc(50% + var(--face)*26%);width:0;height:0;top:50%}.astro-cat[data-emote=wistful] .cat-sigh{opacity:1}.cat-sigh span{position:absolute;animation:3.2s ease-out infinite cat-sigh;background:#e6ecff8c;border-radius:50%;width:8px;height:8px}.cat-sigh span:nth-child(2){animation-delay:.18s;width:11px;height:11px}.cat-sigh span:nth-child(3){animation-delay:.36s;width:6px;height:6px}@keyframes cat-sigh{0%,45%{opacity:0;transform:translate(0)scale(.4)}60%{opacity:.9}to{opacity:0;transform:translate(calc(var(--face)*26px),-18px)scale(1.3)}}.cat-flash{opacity:0;animation:.55s ease-out cat-flash;background:radial-gradient(circle,#fffcf0f2,#fffcf000 65%);border-radius:50%;width:70%;height:70%;top:74%;left:50%;transform:translate(-50%,-50%)}@keyframes cat-flash{15%{opacity:1;transform:translate(-50%,-50%)scale(1.3)}to{opacity:0;transform:translate(-50%,-50%)scale(1.8)}}.astro-cat[data-hovered] .astro-art{filter:drop-shadow(0 8px 18px #0000007a)drop-shadow(0 0 14px #ff9ebe7a);animation:.8s ease-in-out infinite cat-pet-bob}.astro-cat[data-hovered] .cat-head{animation:.8s ease-in-out infinite alternate cat-nuzzle}.astro-cat[data-hovered] .cat-ear-left{animation:.42s ease-in-out infinite alternate cat-ear-left-wiggle}.astro-cat[data-hovered] .cat-ear-right{animation:.42s ease-in-out .12s infinite alternate cat-ear-right-wiggle}.astro-cat[data-hovered] .cat-tail{animation:.38s ease-in-out infinite alternate cat-happy-tail}.astro-cat[data-hovered] .cat-blush{opacity:.82}.astro-cat[data-hovered] .cat-float-hearts{opacity:1}@keyframes cat-pet-bob{50%{transform:translateY(-4%)scale(1.035)}}@keyframes cat-nuzzle{0%{transform:rotate(-7deg)translateY(1px)}to{transform:rotate(7deg)translateY(-1px)}}@keyframes cat-ear-left-wiggle{to{transform:rotate(-13deg)translateY(-1px)}}@keyframes cat-ear-right-wiggle{to{transform:rotate(13deg)translateY(-1px)}}@keyframes cat-happy-tail{0%{transform:rotate(-13deg)}to{transform:rotate(13deg)}}.astro-cat[data-action=boop] .astro-art{animation:.72s cubic-bezier(.2,.8,.25,1) cat-boop}.astro-cat[data-action=boop] .cat-head{animation:.72s cat-boop-head}.astro-cat[data-action=boop] .cat-blush{opacity:.95}@keyframes cat-boop{25%{transform:scale(.88,1.12)translateY(3%)}52%{transform:scale(1.12,.9)translateY(-8%)}78%{transform:scale(.98,1.03)}}@keyframes cat-boop-head{25%{transform:translateY(4px)scale(.92,1.08)}55%{transform:translateY(-5px)scale(1.06,.95)}}@media (min-width:720px){.scene{padding-bottom:max(7rem,12vh)}.mail{--envelope-w:min(46vw,440px)}.hint{max-width:28rem;font-size:1.15rem}.paper{width:min(92vw,40rem);padding:2.6rem 2.6rem 2rem}.paper p{font-size:1.32rem}.paper .greeting{font-size:2.35rem}.mail-slot .distance-card{width:min(100%,320px);padding:1.35rem 1.3rem 1.4rem}.mail-slot .distance-line{max-width:18rem;font-size:1.18rem}.polaroid{--print-max-w:min(34vw,400px);--print-max-h:min(68vh,520px);max-width:var(--print-max-w);padding:14px 14px 78px}.polaroid figcaption{font-size:1.08rem}.wish-line{font-size:1.45rem}.signature{font-size:1.7rem}}@media (max-width:719px){.chapter-progress{top:auto;bottom:max(.45rem,env(safe-area-inset-bottom));backdrop-filter:blur(6px);background:#070b166b;border-radius:999px;gap:.45rem;padding:.25rem .55rem;font-size:.56rem}.sound-toggle{min-width:44px;padding-inline-start:.55rem;padding-inline-end:.55rem;font-size:0}.sound-toggle span{margin:0;font-size:1rem}}.sky-moon{position:fixed;z-index:5;visibility:hidden;pointer-events:none;will-change:transform;width:0;height:0;top:0;left:0}.moon-body{position:absolute;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transform:translateY(var(--moon-dy,0))rotate(var(--moon-rot,0))scale(var(--moon-sx,1),var(--moon-sy,1));border-radius:50%;inset:0}.moon-face{position:absolute;overflow:visible;width:100%;height:100%;transition:filter .3s;inset:0}.moon-face *{transform-box:view-box}.sky-moon[data-hovered] .moon-face{filter:drop-shadow(0 0 6px #fff4dcb3)}.moon-part,.moon-blush{opacity:0;transition:opacity .3s}.sky-moon[data-emote=smile] :-webkit-any(.eyes-dot,.mouth-smile){opacity:1}.sky-moon[data-emote=smile] :-moz-any(.eyes-dot,.mouth-smile){opacity:1}.sky-moon[data-emote=smile] :is(.eyes-dot,.mouth-smile){opacity:1}.sky-moon[data-emote=happy] :-webkit-any(.eyes-happy,.mouth-open){opacity:1}.sky-moon[data-emote=happy] :-moz-any(.eyes-happy,.mouth-open){opacity:1}.sky-moon[data-emote=happy] :is(.eyes-happy,.mouth-open){opacity:1}.sky-moon[data-emote=wink] :-webkit-any(.eyes-wink,.mouth-smile){opacity:1}.sky-moon[data-emote=wink] :-moz-any(.eyes-wink,.mouth-smile){opacity:1}.sky-moon[data-emote=wink] :is(.eyes-wink,.mouth-smile){opacity:1}.sky-moon[data-emote=love] :-webkit-any(.eyes-heart,.mouth-smile){opacity:1}.sky-moon[data-emote=love] :-moz-any(.eyes-heart,.mouth-smile){opacity:1}.sky-moon[data-emote=love] :is(.eyes-heart,.mouth-smile){opacity:1}.sky-moon[data-emote=surprised] :-webkit-any(.eyes-wide,.mouth-o){opacity:1}.sky-moon[data-emote=surprised] :-moz-any(.eyes-wide,.mouth-o){opacity:1}.sky-moon[data-emote=surprised] :is(.eyes-wide,.mouth-o){opacity:1}.sky-moon[data-emote=sleepy] :-webkit-any(.eyes-sleepy,.mouth-small,.moon-zzz){opacity:1}.sky-moon[data-emote=sleepy] :-moz-any(.eyes-sleepy,.mouth-small,.moon-zzz){opacity:1}.sky-moon[data-emote=sleepy] :is(.eyes-sleepy,.mouth-small,.moon-zzz){opacity:1}.sky-moon[data-emote=laugh] :-webkit-any(.eyes-laugh,.mouth-open){opacity:1}.sky-moon[data-emote=laugh] :-moz-any(.eyes-laugh,.mouth-open){opacity:1}.sky-moon[data-emote=laugh] :is(.eyes-laugh,.mouth-open){opacity:1}.sky-moon[data-emote=smile] .moon-blush{opacity:.25}.sky-moon:-webkit-any([data-emote=happy],[data-emote=wink],[data-emote=laugh]) .moon-blush{opacity:.45}.sky-moon:-moz-any([data-emote=happy],[data-emote=wink],[data-emote=laugh]) .moon-blush{opacity:.45}.sky-moon:is([data-emote=happy],[data-emote=wink],[data-emote=laugh]) .moon-blush{opacity:.45}.sky-moon[data-emote=love] .moon-blush{opacity:.8}.moon-blink{transform-origin:50px 48px;animation:5s ease-in-out infinite moon-blink}@keyframes moon-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}.sky-moon .eyes-heart path{animation:.6s ease-in-out infinite alternate moon-heart}.sky-moon .eyes-heart path:first-child{transform-origin:38px 48px}.sky-moon .eyes-heart path:last-child{transform-origin:62px 48px}@keyframes moon-heart{to{transform:scale(1.2)}}.eyes-laugh{transform-origin:50px 48px;animation:.22s ease-in-out infinite alternate moon-laugh}@keyframes moon-laugh{to{transform:translateY(-1.2px)}}.moon-zzz text{animation:2.4s ease-in-out infinite moon-zzz}.moon-zzz text:nth-child(2){animation-delay:.4s}.moon-zzz text:nth-child(3){animation-delay:.8s}@keyframes moon-zzz{0%,to{opacity:.2;transform:translateY(2px)}50%{opacity:1;transform:translateY(-2px)}}.moon-say{position:absolute;pointer-events:none;inset:0}.moon-bubble{position:absolute;color:#2c2622;transform-origin:left bottom;animation:.45s cubic-bezier(.3,1.6,.5,1) both moon-pop;background:#f7f1e6;border-radius:1rem 1rem 1rem .25rem;width:max-content;max-width:min(15rem,62vw);margin:0 0 0 .5rem;padding:.55rem .85rem;font-size:.95rem;font-style:italic;line-height:1.3;top:12%;left:100%;box-shadow:0 10px 26px #00000059,0 0 18px #ffecc82e}.sky-moon[data-side=left] .moon-bubble{transform-origin:right bottom;border-radius:1rem 1rem .25rem;margin:0 .5rem 0 0;left:auto;right:100%}.sky-moon[data-side=below] .moon-bubble{text-align:center;transform-origin:center top;border-radius:1rem;margin:.4rem 0 0;top:100%;left:50%;translate:-50%}@keyframes moon-pop{0%{opacity:0;transform:scale(.4)}}.moon-fx{position:absolute;pointer-events:none;width:0;height:0;top:50%;left:50%}.moon-fx span{position:absolute;color:#ffe9a6;text-shadow:0 0 6px #ffe27a,0 0 12px #ff7aa2cc;opacity:0;animation:1.1s cubic-bezier(.2,.7,.3,1) forwards moon-spark;font-size:16px;line-height:1}.moon-fx span:nth-child(3n+1){color:#ff8fb1}@keyframes moon-spark{0%{opacity:1;transform:translate(-50%,-50%)scale(.3)}60%{opacity:1;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y)))scale(1.1)}to{opacity:0;transform:translate(calc(-50% + var(--x)*1.2),calc(-50% + var(--y) + 18px))scale(.6)}}@media (prefers-reduced-motion:reduce){.sky-moon *{animation:none!important}.moon-fx,.envelope-celebration{display:none}.collage-card,.collage-viewer,.collage-viewer-card{animation:none;transition:none}.collage-item.is-tappable:hover .collage-card{transform:none}.collage-item.is-tappable:focus-visible .collage-card{transform:none}.scene,.cake-canvas,.flame,.paper p.is-new,.candle.is-out:after{animation:none}.flap,.seal{transition:none}.astro-cat,.astro-cat *{animation:none!important}.astro-fx{display:none}.distance-heart{opacity:1;offset-distance:50%;animation:none}.birthday-constellation span,.cat-party-hat,.cat-balloon{animation:none!important}.chapter-progress,.sound-toggle,.text-btn{transition:none}}html.has-wand-cursor,html.has-wand-cursor *{cursor:none!important}.wand-cursor{position:fixed;z-index:20;overflow:hidden;pointer-events:none;inset:0}.wand-cursor-wand{position:absolute;opacity:0;overflow:visible;filter:drop-shadow(0 0 6px #ffe27aa6);top:0;left:0}.wand-spark{position:absolute;color:#ffe9a6;text-shadow:0 0 6px #ffe27a,0 0 14px #ff7aa2d9;opacity:0;font-size:18px;line-height:1;top:0;left:0}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}@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{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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}}}
