@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.518e079e.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.ea323500.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.853d50a3.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.55554cd0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Dancing Script;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/32fe63294b6cd18c-s.7f335ffb.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/73091b67359a1d13-s.48aa4bab.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Dancing Script;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/406d3fc8d5ec9f59-s.p.3f4cab70.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Dancing Script Fallback;src:local(Arial);ascent-override:112.99%;descent-override:34.39%;line-gap-override:0.0%;size-adjust:81.43%}.dancing_script_a423903e-module__43aXHq__className{font-family:Dancing Script,Dancing Script Fallback;font-style:normal}.dancing_script_a423903e-module__43aXHq__variable{--font-dancing-script:"Dancing Script","Dancing Script Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.56c1f21e.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3b336396.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.e3369375.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.a40b9a8b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.fe42ddf4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.29207c2f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
@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-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:ui-sans-serif,system-ui,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,::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,ui-sans-serif,system-ui,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{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{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.isolate{isolation:isolate}.block{display:block}.grid{display:grid}.hidden{display:none}.resize{resize:both}.rounded{border-radius:.25rem}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.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,)}.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{--ink:#4b405d;--muted-ink:#746a84;--plum:#8e6aa9;--plum-deep:#6d4f88;--blush:#f5bfd1;--peach:#ffd5bd;--lavender:#d8c8f3;--blue:#c9e3f2;--mint:#cce8dc;--cream:#fffaf3;--paper:#fffc;--paper-solid:#fffefe;--line:#68508524;--shadow:0 24px 70px #644b8321}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{min-height:100%;margin:0}body{color:var(--ink);font-family:var(--font-geist-sans),"Avenir Next","Segoe UI",sans-serif;background:#faf7ff}button,input,audio{font:inherit}button:focus-visible{outline-offset:3px;outline:3px solid #8062aa5c}.access-gate{isolation:isolate;background:radial-gradient(circle at 14% 18%,#f8cddcb8 0,#0000 30%),radial-gradient(circle at 86% 15%,#d2cdf4c2 0,#0000 30%),radial-gradient(circle at 50% 92%,#cae9dcbd 0,#0000 31%),linear-gradient(145deg,#fffaf5 0%,#faf6ff 52%,#f3fbff 100%);place-items:center;min-height:100vh;padding:clamp(1.25rem,5vw,3rem);display:grid;position:relative;overflow:hidden}.access-card{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);text-align:center;background:#ffffffd1;border:1px solid #fffffff0;border-radius:clamp(27px,5vw,38px);width:min(500px,100%);padding:clamp(2rem,7vw,3.35rem);position:relative;overflow:hidden;box-shadow:0 28px 80px #5d447a2b,inset 0 0 0 1px #68508514}.access-card:before,.access-card:after{color:#7d5b9c1c;font-family:var(--font-dancing-script),cursive;line-height:1;position:absolute}.access-card:before{content:"✿";font-size:8rem;bottom:-1.8rem;left:-1.1rem;transform:rotate(-15deg)}.access-card:after{content:"♡";font-size:3.4rem;top:1rem;right:1.2rem;transform:rotate(9deg)}.access-lock{color:#76578e;background:linear-gradient(145deg,#f4bfd2,#d7c7f2);border-radius:50%;place-items:center;width:76px;height:76px;margin:1rem auto 1.35rem;display:grid;position:relative;box-shadow:0 12px 27px #6f4f8e33,inset 0 0 0 5px #ffffff61}.access-lock:before{content:"";border:6px solid #b28bc8;border-bottom:0;border-radius:24px 24px 0 0;width:39px;height:34px;position:absolute;top:-22px}.access-lock span{z-index:1;font-size:2.2rem;position:relative}.access-card .eyebrow{z-index:1;margin-inline:auto;position:relative}.access-card h1{z-index:1;color:#675079;font-family:var(--font-dancing-script),"Brush Script MT",cursive;margin:.9rem 0 0;font-size:clamp(2.65rem,9vw,4.1rem);line-height:1.02;position:relative}.access-message,.access-prompt,.access-footer,.access-error{z-index:1;position:relative}.access-message{color:#776b80;max-width:350px;margin:.85rem auto 0;line-height:1.65}.access-prompt{color:#7c648d;margin:1.2rem 0 0;font-size:.85rem;font-weight:800}.access-form{z-index:1;gap:.65rem;margin-top:.65rem;display:grid;position:relative}.access-form label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.access-form input{color:#574664;text-align:center;letter-spacing:.08em;background:#ffffffeb;border:1px solid #70529130;border-radius:999px;outline:none;width:100%;padding:.9rem 1.15rem;font-size:1rem;transition:border-color .15s,box-shadow .15s;box-shadow:inset 0 2px 7px #60467c0f,0 8px 20px #60467c0f}.access-form input::placeholder{color:#a99cb1;letter-spacing:0}.access-form input:focus{border-color:#78579a7a;box-shadow:0 0 0 4px #d8c8f361,0 9px 22px #60467c14}.access-form input[aria-invalid=true]{border-color:#b85b7e80;box-shadow:0 0 0 4px #f5bfd14d}.access-form button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#b98fd3,#8e69ac);border:0;border-radius:999px;padding:.9rem 1.15rem;font-weight:850;transition:transform .16s,box-shadow .16s;box-shadow:0 12px 25px #6f4f8e47}.access-form button:hover{transform:translateY(-2px);box-shadow:0 16px 29px #6f4f8e54}.access-error{color:#a44e73;min-height:1.3rem;margin:.7rem 0 0;font-size:.79rem;font-weight:750}.access-footer{color:#9a8ba3;font-family:var(--font-dancing-script),cursive;margin:.7rem 0 0;font-size:1.15rem;font-weight:700}.access-card-error{animation:.28s ease-in-out access-shake}.access-doodle-one{font-size:2.7rem;top:12%;left:10%}.access-doodle-two{font-size:2rem;animation-delay:-2.5s;top:18%;right:11%}.access-doodle-three{font-size:3.1rem;animation-delay:-4s;bottom:12%;right:8%}@keyframes access-shake{0%,to{transform:translate(0)}30%{transform:translate(-7px)}65%{transform:translate(7px)}}.page-shell{isolation:isolate;background:linear-gradient(#ffffff57,#ffffff57),radial-gradient(circle at 18% 10%,#f8d6e3 0,#0000 31%),radial-gradient(circle at 82% 18%,#d9d1f5 0,#0000 30%),radial-gradient(circle at 52% 86%,#d3ece2 0,#0000 31%),linear-gradient(145deg,#fffaf5 0%,#f9f5ff 50%,#f3fbff 100%);min-height:100vh;position:relative;overflow:hidden}.pastel-sky{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.pastel-sky:before{content:"";opacity:.28;background-image:radial-gradient(#694f8830 .7px,#0000 .7px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 76%);mask-image:linear-gradient(#000,#0000 76%)}.pastel-orb{filter:blur(6px);opacity:.7;border-radius:999px;animation:12s ease-in-out infinite alternate orb-drift;position:absolute}.orb-one{background:#fbc7da80;width:300px;height:300px;top:25%;left:-110px}.orb-two{background:#c5ddf48c;width:360px;height:360px;animation-delay:-4s;top:48%;right:-160px}.orb-three{background:#cce8dc9e;width:260px;height:260px;animation-delay:-7s;bottom:-120px;left:36%}.floating-doodle{color:#70529152;font-family:var(--font-dancing-script),cursive;animation:7s ease-in-out infinite doodle-float;position:absolute}.doodle-one{font-size:2.1rem;top:8%;left:7%}.doodle-two{font-size:1.55rem;animation-delay:-2s;top:19%;right:8%}.doodle-three{font-size:2.6rem;animation-delay:-4s;top:62%;left:5%}.doodle-four{font-size:2rem;animation-delay:-5.5s;top:76%;right:7%}.mute-toggle{z-index:60;color:var(--plum-deep);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;background:#ffffffd6;border:1px solid #68508524;border-radius:999px;padding:.55rem .9rem;font-size:.78rem;font-weight:750;position:fixed;top:1rem;right:1rem;box-shadow:0 9px 26px #5e457e21}.page-main{grid-template-columns:minmax(0,1fr);gap:1.4rem;width:min(920px,91vw);margin:0 auto;padding:clamp(4.8rem,10vw,7rem) 0 4.5rem;display:grid}.page-main>*,.reveal-section>*{min-width:0}.hero-section,.question-section,.reveal-section{scroll-margin-top:1.5rem}.hero-card,.question-card,.letter-card,.gallery-card,.reasons-card,.timeline-card{background:var(--paper);box-shadow:var(--shadow),inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid #ffffffe0;border-radius:clamp(24px,4vw,34px);position:relative}.hero-card,.question-card,.letter-card,.gallery-card{padding:clamp(1.35rem,4.5vw,3.15rem)}.hero-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:315px;display:flex;overflow:hidden}.hero-card:before,.hero-card:after{content:"✿";font-family:var(--font-dancing-script),cursive;color:#8460a521;line-height:1;position:absolute}.hero-card:before{font-size:10rem;bottom:-2.2rem;left:-1rem;transform:rotate(-18deg)}.hero-card:after{font-size:4.5rem;top:1rem;right:1.5rem;transform:rotate(17deg)}.hero-card h1,.question-card h2,.letter-card h3,.gallery-card h3,.timeline-card h3{margin:0;line-height:1.08}.hero-card h1{font-family:var(--font-dancing-script),"Brush Script MT",cursive;letter-spacing:-.03em;color:#76568f;margin-top:.75rem;font-size:clamp(3.2rem,10vw,6.1rem);font-weight:700;position:relative}.hero-card>p:not(.eyebrow){max-width:610px;color:var(--muted-ink);margin:.75rem auto 0;font-size:clamp(.98rem,2vw,1.12rem);line-height:1.72}.eyebrow{width:fit-content;color:var(--plum-deep);letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(135deg,#f5bfd161,#d8c8f36b);border:1px solid #7254941f;border-radius:999px;margin:0;padding:.42rem .78rem;font-size:.7rem;font-weight:800}.hero-badges{flex-wrap:wrap;justify-content:center;gap:.55rem;margin-top:1.35rem;display:flex;position:relative}.hero-badges span{color:#7d6d8a;background:#ffffffb8;border-radius:999px;padding:.48rem .8rem;font-size:.76rem;font-weight:700;box-shadow:0 7px 18px #634d7e14}.question-card{text-align:center;overflow:hidden}.question-card:before{content:"";background:#cce8dc7a;border-radius:50%;width:150px;height:150px;position:absolute;top:-55px;right:-54px}.question-card .eyebrow{margin-inline:auto}.question-card h2{max-width:720px;font-family:var(--font-dancing-script),"Brush Script MT",cursive;color:#574469;margin:1rem auto 0;font-size:clamp(2.55rem,7vw,4.6rem)}.question-tease{color:#9b7190;margin:.85rem 0 0;font-size:.95rem;font-style:italic;font-weight:650}.prompt-line{color:#7f5a95;min-height:2rem;margin:.65rem 0 0;font-size:clamp(1.05rem,2.4vw,1.25rem);font-weight:750;line-height:1.45}.button-arena{background:radial-gradient(circle at 12% 25%,#ffd5bda6,#0000 23%),radial-gradient(circle at 84% 72%,#c9e3f2a8,#0000 26%),linear-gradient(135deg,#fcf1f7e0,#f2eeffeb);border:1px dashed #7052913d;border-radius:25px;justify-content:center;align-items:center;width:min(100%,700px);min-height:215px;margin:1.25rem auto 0;display:flex;position:relative;overflow:hidden}.yes-button,.no-button,.gift-button,.share-button,.reason-actions button,.picker-option,.close-lightbox,.photo-tile{cursor:pointer;border:0}.yes-button,.no-button{border-radius:999px;padding:.9rem 1.5rem;font-weight:800}.yes-button{color:#fff;background:linear-gradient(135deg,#b68cd2,#8c68aa);transition:transform .18s,box-shadow .18s;box-shadow:0 11px 25px #6f4f8e4d}.yes-button:hover{transform:translateY(-3px)scale(1.02);box-shadow:0 15px 30px #6f4f8e57}.no-button{color:#766087;background:#fffffff2;border:1px solid #70529126;transition:transform .16s,opacity .16s;position:absolute;box-shadow:0 9px 22px #58416f21}.yes-grow{transform:scale(1.1)}.no-shrink{opacity:.72;transform:scale(.7)}.reveal-section{gap:1.35rem;display:grid}.letter-card{gap:.95rem;display:grid;position:relative}.in-progress-badge{color:#76588b;letter-spacing:.12em;pointer-events:none;background:#ffffffd1;border:1px solid #6d4f8833;border-radius:999px;width:fit-content;padding:.35rem .65rem;font-size:.68rem;font-weight:800;line-height:1}.letter-progress{z-index:5;position:absolute;top:1rem;right:1rem}.letter-in-progress-panel{background:radial-gradient(circle at 15% 25%,#ffffffb8,#0000 23%),linear-gradient(145deg,#fbecf3,#eee8fb 60%,#e7f4ef);border-radius:25px;place-items:center;min-height:250px;display:grid;box-shadow:inset 0 0 0 1px #7154921f}.letter-card>p:not(.eyebrow):not(.signoff){color:#685d73;margin:0;line-height:1.75}.letter-card h3,.gallery-card h3,.timeline-card h3,.section-title{font-family:var(--font-dancing-script),"Brush Script MT",cursive;color:#675078;font-size:clamp(2rem,5vw,3rem)}.section-title{margin:.8rem 0 0;line-height:1.1}.envelope-card{cursor:pointer;background:radial-gradient(circle at 15% 25%,#ffffffb8,#0000 23%),linear-gradient(145deg,#fbecf3,#eee8fb 60%,#e7f4ef);border:0;border-radius:25px;place-items:center;width:100%;min-height:250px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #7154921f}.envelope-top{clip-path:polygon(0 0,100% 0,50% 100%);opacity:.92;z-index:2;background:linear-gradient(150deg,#e9d8f5,#f5cbd9);height:58%;position:absolute;inset:0 0 auto}.envelope-paper{z-index:1;background:#fff;border-radius:14px;width:min(66%,420px);height:55%;position:absolute;top:23%;box-shadow:0 10px 25px #5a42761f}.envelope-heart{z-index:3;color:#936cac;font-size:3rem;line-height:1;position:relative}.envelope-text{z-index:3;color:#765b88;margin-top:4.1rem;font-weight:800;position:relative}.signoff{color:#7b5d91;font-family:var(--font-dancing-script),cursive;margin:.25rem 0 0;font-size:1.65rem;font-weight:700}.gift-shelf{border-top:1px dashed #7052912e;margin-top:.55rem;padding-top:1.25rem}.gift-shelf-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.gift-shelf-heading h3{margin:0;font-size:clamp(1.55rem,4vw,2.2rem)}.gift-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:1rem;display:grid}.gift-choice{color:#665372;text-align:left;cursor:pointer;background:linear-gradient(135deg,#fff6faf5,#f8f2fff0);border:1px solid #7052911f;border-radius:19px;grid-template-columns:66px 1fr;align-items:center;gap:.75rem;min-height:92px;padding:.65rem;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid;box-shadow:0 9px 22px #59437117}.gift-choice:hover{border-color:#7052913d;transform:translateY(-3px);box-shadow:0 14px 28px #59437124}.gift-choice.chocolate{background:linear-gradient(135deg,#fff8f3f5,#f0e1d9f0)}.gift-choice.voice{background:linear-gradient(135deg,#f3f7fff5,#ebe7fcf0)}.gift-choice-thumb,.gift-choice-icon{background:#ffffffdb;border-radius:15px;width:66px;height:66px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #70529117}.gift-choice-thumb img{object-fit:cover}.gift-choice-icon{color:#7d6ba8;font-family:var(--font-dancing-script),cursive;place-items:center;font-size:2.3rem;display:grid}.gift-choice strong,.gift-choice small{display:block}.gift-choice strong{font-size:.9rem}.gift-choice small{color:#887b90;margin-top:.22rem;font-size:.74rem}.reasons-card,.timeline-card{padding:clamp(1.2rem,3.5vw,2.1rem)}.reason-slide{cursor:grab;background:linear-gradient(145deg,#fff7fae6,#f4f1ffe6);border:1px solid #7052911a;border-radius:21px;margin-top:1rem;padding:1.25rem}.reason-slide h3{color:#635174;margin:0;font-size:1.15rem}.reason-slide p{color:var(--muted-ink);margin:.5rem 0 0;line-height:1.6}.reason-actions{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.reason-actions button,.share-button{color:#715a84;background:#ffffffd1;border:1px solid #70529124;border-radius:999px;padding:.52rem .85rem;font-size:.82rem;font-weight:800}.timeline-list{gap:.75rem;margin-top:1rem;display:grid}.timeline-item{background:#ffffffad;border:1px solid #7052911a;border-radius:19px;grid-template-columns:92px 1fr;align-items:center;gap:.85rem;padding:.72rem;display:grid}.timeline-image{background:#f8f3fc;border:5px solid #fff;border-radius:16px;width:92px;height:92px;position:relative;overflow:hidden;box-shadow:0 8px 18px #5b44771a}.timeline-image img{object-fit:cover}.timeline-date,.timeline-title,.timeline-note{margin:0}.timeline-date{color:#967baa;letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;font-weight:800}.timeline-title{color:#5d4b6b;margin-top:.2rem;font-weight:800}.timeline-note{color:var(--muted-ink);margin-top:.22rem;font-size:.88rem;line-height:1.45}.gallery-card h3{margin-top:.8rem}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:.9rem;margin-top:1.2rem;display:grid}.photo-tile{text-align:left;background:#f6f0fa;border:7px solid #fff;border-radius:20px;min-height:245px;transition:transform .17s,box-shadow .17s;position:relative;overflow:hidden;box-shadow:0 12px 24px #58416f1f}.photo-tile:first-child{transform:rotate(-1.2deg)}.photo-tile:nth-child(2){transform:translateY(8px)rotate(1deg)}.photo-tile:nth-child(3){transform:rotate(-.5deg)}.photo-tile:hover{transform:translateY(-4px)rotate(0);box-shadow:0 17px 30px #58416f2b}.photo-tile img{object-fit:cover}.photo-caption{color:#fff;background:linear-gradient(#0000,#3a2d44c7);padding:1.8rem .75rem .7rem;position:absolute;inset:auto 0 0}.photo-caption p,.photo-caption span{margin:0}.photo-caption p{font-size:.86rem;font-weight:750}.photo-caption span{opacity:.82;margin-top:.16rem;font-size:.7rem;display:block}.footer-section{text-align:center;justify-items:center;gap:.75rem;padding:1.3rem 0 0;display:grid}.footer-section p{color:#776584;font-family:var(--font-dancing-script),cursive;margin:0;font-size:1.25rem;font-weight:700}.share-button{padding:.62rem 1rem;box-shadow:0 7px 18px #59437114}.share-error{color:#a45578!important;font-family:inherit!important;font-size:.8rem!important}.lightbox,.gift-modal{z-index:70;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#352a40b8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.close-lightbox{z-index:3;color:#624e71;background:#fffffff0;border-radius:999px;padding:.55rem .9rem;font-size:.82rem;font-weight:800;position:absolute;top:1rem;right:1rem}.lightbox-content,.gift-card,.picker-card{background:#fffeff;border:1px solid #ffffffe6;border-radius:25px;width:min(860px,95vw);max-height:88vh;overflow:auto;box-shadow:0 26px 70px #2c1f3940}.lightbox-image{width:100%;height:auto;display:block}.lightbox-meta{padding:1rem 1.1rem}.lightbox-meta p,.lightbox-meta span{margin:0}.lightbox-meta p{font-weight:800}.lightbox-meta span{color:var(--muted-ink);margin-top:.25rem;font-size:.82rem;display:block}.gift-card,.picker-card{width:min(470px,95vw);padding:1.2rem}.gift-card h3,.picker-card h3{color:#604d70;font-family:var(--font-dancing-script),cursive;margin:0;font-size:2rem}.gift-card>p,.picker-card>p{color:var(--muted-ink);margin:.45rem 0 0;line-height:1.55}.gift-image-wrap{aspect-ratio:4/5;background:#faf5ff;border-radius:18px;width:100%;margin-top:.9rem;position:relative;overflow:hidden}.gift-image-wrap img{object-fit:cover}.picker-options{gap:.65rem;margin-top:.9rem;display:grid}.picker-option{color:#5f4d6d;text-align:left;background:linear-gradient(135deg,snow,#f8f5ff);border:1px solid #6f529121;border-radius:17px;grid-template-columns:72px 1fr auto;align-items:center;gap:.75rem;width:100%;min-height:85px;padding:.62rem;display:grid}.picker-option-thumb{background:#f5edf9;border-radius:12px;width:72px;height:64px;position:relative;overflow:hidden}.picker-option-thumb img{object-fit:cover}.picker-option-label{font-weight:800}.picker-option-cta{color:#6c5680;background:#d8c8f38c;border-radius:999px;padding:.35rem .58rem;font-size:.72rem;font-weight:800}.voice-note-player{width:100%;margin-top:1rem}.celebration-overlay{z-index:65;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;cursor:pointer;background:#fcf8ffdb;place-content:center;padding:1rem;display:grid;position:fixed;inset:0}.celebration-overlay:focus-visible{outline-offset:-8px;outline:4px solid #74528f6b}.celebration-overlay h2{z-index:2;color:#73548a;font-family:var(--font-dancing-script),cursive;margin:0;font-size:clamp(3.2rem,10vw,6rem);position:relative}.celebration-overlay p{z-index:2;color:#73667c;margin:.45rem 0 0;font-weight:700;position:relative}.heart-cloud{position:absolute;inset:0;overflow:hidden}.heart-cloud span{color:#a37eb8;font-size:clamp(1.2rem,4vw,2.3rem);animation:2.4s ease-in infinite float-doodle;position:absolute;bottom:-3rem}@keyframes orb-drift{0%{transform:translate(-15px,-10px)scale(.96)}to{transform:translate(24px,18px)scale(1.05)}}@keyframes doodle-float{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-13px)rotate(5deg)}}@keyframes float-doodle{0%{opacity:0;transform:translateY(0)rotate(-8deg)scale(.8)}18%{opacity:.9}to{opacity:0;transform:translateY(-70vh)rotate(14deg)scale(1.25)}}@media (max-width:720px){.page-main{width:min(94vw,620px);padding-top:4.6rem}.hero-card{min-height:290px}.gallery-grid{grid-template-columns:1fr}.photo-tile,.photo-tile:nth-child(n){min-height:285px;transform:none}}@media (max-width:520px){.hero-card,.question-card,.letter-card,.gallery-card{padding:1.25rem}.question-card h2{font-size:clamp(2.3rem,12vw,3.3rem)}.button-arena{min-height:235px}.gift-shelf-heading{flex-direction:column;align-items:flex-start}.gift-actions{grid-template-columns:1fr}.yes-button,.no-button{padding:.82rem 1.05rem}.timeline-item{grid-template-columns:76px 1fr}.timeline-image{width:76px;height:76px}.picker-option{grid-template-columns:60px 1fr}.picker-option-thumb{width:60px;height:56px}.picker-option-cta{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.reveal-section{grid-template-columns:repeat(2,minmax(0,1fr))}.letter-card,.promises-card,.timeline-card,.gallery-card{grid-column:1/-1}.interactive-card{box-shadow:var(--shadow),inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffd1;border:1px solid #ffffffe6;border-radius:clamp(24px,4vw,34px);padding:clamp(1.35rem,4vw,2.5rem);position:relative;overflow:hidden}.interactive-card h3{color:#675078;font-family:var(--font-dancing-script),"Brush Script MT",cursive;margin:.85rem 0 0;font-size:clamp(2rem,5vw,3rem);line-height:1.08}.interactive-instruction{color:var(--muted-ink);margin:.55rem 0 0;font-size:.9rem;line-height:1.55}.celebration-overlay{gap:.2rem}.celebration-overlay>p{width:min(510px,90vw);margin-inline:auto;line-height:1.6}.celebration-skip{z-index:2;color:#806d8b;letter-spacing:.05em;background:#ffffffad;border:1px solid #6b4f8524;border-radius:999px;width:fit-content;margin:.8rem auto 0;padding:.45rem .75rem;font-size:.72rem;font-weight:800;position:relative}.ring-box-scene{perspective:700px;width:190px;height:170px;margin:0 auto .8rem;position:relative}.ring-box-base,.ring-box-lid{background:linear-gradient(145deg,#9c79ba,#76558f);border:2px solid #5036653d;width:140px;position:absolute;left:25px;box-shadow:0 16px 30px #48305b40}.ring-box-base{border-radius:18px 18px 28px 28px;height:82px;bottom:6px}.ring-box-base:after{content:"";background:#f4dbe8;border-radius:12px 12px 20px 20px;position:absolute;inset:12px 13px 18px;box-shadow:inset 0 7px 14px #603f7126}.ring-box-lid{transform-origin:bottom;border-radius:24px 24px 10px 10px;height:60px;animation:.9s cubic-bezier(.2,.8,.2,1) .3s both ring-lid-open;bottom:73px}.ring-box-ring{z-index:3;opacity:0;border:7px solid #f6d889;border-radius:50%;width:43px;height:55px;animation:.7s cubic-bezier(.2,.85,.25,1.2) 1.05s forwards ring-rise;position:absolute;bottom:34px;left:74px}.ring-gem{clip-path:polygon(50% 0,100% 35%,82% 100%,18% 100%,0 35%);filter:drop-shadow(0 0 8px #fffffff2);background:linear-gradient(145deg,#fff,#c8e7f5 45%,#cbaee8);border:2px solid #fff;width:16px;height:16px;animation:.8s ease-in-out 1.5s infinite alternate gem-sparkle;position:absolute;top:-25px;left:7px}.scratch-section{background:radial-gradient(circle at 88% 14%,#ffd7bc8c,#0000 22%),#ffffffd6}.scratch-card{background:radial-gradient(circle at 18% 30%,#ffffffc7,#0000 25%),linear-gradient(145deg,#fff1f5,#f1ebff 54%,#e8f6f0);border:1px solid #6a4d882b;border-radius:24px;place-items:center;min-height:265px;margin-top:1rem;padding:2.5rem 1.4rem 3.2rem;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 5px #ffffff80,0 16px 32px #563e6f1a}.scratch-card canvas{z-index:2;cursor:crosshair;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.scratch-hidden-message{color:#604b70;text-align:center;max-width:340px}.scratch-hidden-message>span{color:#a16fa0;font-size:2.8rem;line-height:1;display:block}.scratch-hidden-message p{font-family:var(--font-dancing-script),cursive;margin:.55rem 0 0;font-size:clamp(1.55rem,4vw,2.15rem);font-weight:700;line-height:1.25}.scratch-card.is-revealed .scratch-hidden-message{animation:.48s cubic-bezier(.2,.8,.25,1.15) secret-pop}.scratch-reveal-button{z-index:3;color:#715782;cursor:pointer;background:#ffffffdb;border:1px solid #684d8429;border-radius:999px;padding:.42rem .68rem;font-size:.68rem;font-weight:800;position:absolute;bottom:.65rem;right:.7rem}.heartbeat-card{text-align:center;background:radial-gradient(circle at 50% 65%,#f9c1d56b,#0000 38%),#ffffffd6}.heartbeat-card .eyebrow{margin-inline:auto}.heart-hold-button{color:#fff;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(145deg,#e99fba,#b77db1);border:8px solid #ffffff9e;border-radius:50%;place-content:center;gap:.35rem;width:170px;height:170px;margin:1.3rem auto 0;font-weight:850;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 36px #8c52763d,inset 0 0 0 1px #5a39671f}.heart-hold-button:after{content:"";background:#ffffffe6;width:0;height:9px;position:absolute;bottom:0;left:0}.heart-hold-button.is-holding:after{animation:1.8s linear forwards heart-hold-progress}.heart-hold-button.is-complete{background:linear-gradient(145deg,#a977b4,#765992)}.heart-hold-icon{filter:drop-shadow(0 5px 8px #62335433);font-size:3.4rem;line-height:1;animation:1s ease-in-out infinite heartbeat}.heart-hold-button.is-holding .heart-hold-icon{animation-duration:.43s}.heartbeat-message{color:#665470;max-width:420px;min-height:4.8rem;font-family:var(--font-dancing-script),cursive;margin:1.15rem auto 0;font-size:1.35rem;font-weight:700;line-height:1.4}.message-builder-card{background:radial-gradient(circle at 12% 15%,#cae5db94,#0000 24%),radial-gradient(circle at 90% 84%,#d8c8f37a,#0000 28%),#ffffffdb}.word-cloud{background:#ffffff7a;border:1px dashed #7052913d;border-radius:24px;flex-wrap:wrap;place-content:center;align-items:center;gap:.8rem;min-height:195px;margin-top:1rem;padding:1.4rem;display:flex}.word-cloud button{color:#6a527b;cursor:pointer;animation:word-float 2.8s calc(var(--word-index)*-.48s)ease-in-out infinite;background:linear-gradient(145deg,#fff8fb,#f2edff);border:1px solid #694b8924;border-radius:999px;padding:.52rem .75rem;font-size:.78rem;font-weight:850;box-shadow:0 8px 18px #553e6c1a}.word-cloud button:nth-child(2n){background:linear-gradient(145deg,#fff8e9,#ffedf2)}.word-cloud button:nth-child(3n){background:linear-gradient(145deg,#edf9f4,#edf3ff)}.word-cloud button:hover{transform:translateY(-4px)scale(1.06)}.word-cloud button.is-collected{color:#9274a0;opacity:.55;background:#eeddf2;animation:none}.assembled-message{color:#786783;text-align:center;background:#ffffff9e;border-radius:18px;margin-top:.9rem;padding:.8rem}.assembled-message p{flex-wrap:wrap;justify-content:center;gap:.45rem;margin:0;display:flex}.assembled-message span{border-bottom:1px solid #6c50882e;min-width:42px;padding:.25rem;font-size:.8rem;font-weight:800}.assembled-message.is-complete{color:#684d78;font-family:var(--font-dancing-script),cursive;background:linear-gradient(135deg,#f5bfd159,#d8c8f366);font-size:1.7rem;font-weight:700;animation:.45s ease-out secret-pop}.promises-card{background:radial-gradient(circle at 10% 18%,#ffd9c07a,#0000 22%),radial-gradient(circle at 90% 82%,#cce8dc7a,#0000 25%),#ffffffd6}.promise-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:1.25rem;display:grid}.promise-envelope{color:#654f73;text-align:center;cursor:pointer;perspective:600px;background:linear-gradient(145deg,#fae1ea,#eee6fb 66%,#e8f4ef);border:1px solid #6c4f892e;border-radius:22px;min-height:210px;padding:5.7rem 1.1rem 1.1rem;position:relative;overflow:hidden;box-shadow:0 12px 27px #58416f1a}.promise-envelope:before,.promise-envelope:after{content:"";pointer-events:none;height:62%;position:absolute;inset:auto 0 0}.promise-envelope:before{clip-path:polygon(0 100%,0 0,50% 65%,100% 0,100% 100%);background:#ffffff40}.promise-envelope:after{clip-path:polygon(0 100%,50% 35%,100% 100%);background:#fff3}.promise-flap{z-index:2;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;background:linear-gradient(150deg,#e6d3f3,#f3cbd9);height:52%;transition:transform .5s cubic-bezier(.2,.8,.25,1);position:absolute;inset:0 0 auto}.promise-envelope strong{z-index:3;font-size:.91rem;display:block;position:relative}.promise-progress{z-index:4;background:#ffffffe0;font-size:.58rem;position:absolute;top:.8rem;right:.8rem}.promise-message{z-index:3;color:#6e6177;opacity:0;max-height:0;margin-top:0;font-size:.82rem;line-height:1.55;transition:max-height .5s,margin .5s,opacity .35s .14s,transform .5s;display:block;position:relative;overflow:hidden;transform:translateY(25px)}.promise-envelope.is-open .promise-flap{transform:rotateX(178deg)}.promise-envelope.is-open .promise-message{opacity:1;max-height:160px;margin-top:.75rem;transform:translateY(0)}.promise-envelope.is-open{background:#fffdf9}.no-trail{z-index:1;color:#9b7190;font-family:var(--font-dancing-script),cursive;text-shadow:0 2px 8px #fffffff2;white-space:nowrap;pointer-events:none;font-size:clamp(1.4rem,3.2vw,1.8rem);font-weight:900;position:absolute;translate:-50% -50%}.hidden-note-layer{z-index:8;pointer-events:none;position:absolute;inset:0}.hidden-note{color:#6b4b8659;width:38px;height:38px;font-family:var(--font-dancing-script),cursive;cursor:pointer;pointer-events:auto;background:#ffffff47;border:1px solid #6d4f8a24;border-radius:50%;font-size:1.35rem;transition:opacity .18s,transform .18s,background .18s;animation:7s ease-in-out infinite doodle-float;position:absolute;box-shadow:0 8px 18px #553d6e0f}.hidden-note:hover,.hidden-note:focus-visible,.hidden-note.is-found{color:#8b669d;opacity:1;background:#ffffffdb;transform:scale(1.12)rotate(5deg)}.hidden-note.is-found:after{content:"✓";color:#4f735f;width:16px;height:16px;font-family:var(--font-geist-sans),sans-serif;background:#b9dccd;border-radius:50%;place-items:center;font-size:.62rem;font-weight:900;display:grid;position:absolute;top:-5px;right:-4px}.hidden-note-1{top:21rem;left:max(1rem,50% - 510px)}.hidden-note-2{animation-delay:-1.4s;top:55rem;right:max(1rem,50% - 515px)}.hidden-note-3{animation-delay:-2.7s;top:112rem;left:max(.8rem,50% - 530px)}.hidden-note-4{animation-delay:-4s;top:183rem;right:max(.8rem,50% - 525px)}.hidden-note-5{animation-delay:-5.2s;top:254rem;left:max(1rem,50% - 505px)}.hidden-note-toast{z-index:85;color:#624d71;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);text-align:center;background:#ffffffed;border:1px solid #ffffffe0;border-radius:20px;width:min(470px,91vw);padding:.85rem 1rem;position:fixed;bottom:1.1rem;left:50%;translate:-50%;box-shadow:0 18px 44px #3c294a33}.hidden-note-toast p{font-family:var(--font-dancing-script),cursive;margin:0;font-size:1.2rem;font-weight:700}.hidden-note-toast span{color:#8b7c92;letter-spacing:.08em;text-transform:uppercase;margin-top:.25rem;font-size:.68rem;font-weight:800;display:block}.cassette-player{background:linear-gradient(145deg,#e9dcf5,#f6dce6 60%,#dceef0);border:1px solid #5c427633;border-radius:22px;margin-top:1rem;padding:1rem;box-shadow:inset 0 0 0 5px #ffffff47,0 14px 28px #48325c1f}.cassette-label{color:#695476;text-align:center;background:#ffffffb8;border-radius:14px;padding:.7rem}.cassette-label span,.cassette-label strong{display:block}.cassette-label span{font-family:var(--font-dancing-script),cursive;font-size:1.25rem;font-weight:700}.cassette-label strong{letter-spacing:.09em;text-transform:uppercase;margin-top:.15rem;font-size:.65rem}.cassette-window{background:#55455f;border:5px solid #ffffffad;border-radius:16px;width:min(250px,86%);height:92px;margin:.8rem auto 0;position:relative;box-shadow:inset 0 8px 18px #1f162340}.cassette-reel{background:#826e8d;border:7px dotted #e8d9eb;border-radius:50%;width:47px;height:47px;position:absolute;top:18px;box-shadow:inset 0 0 0 5px #55455f}.reel-left{left:26px}.reel-right{right:26px}.cassette-tape{border-top:3px solid #c5a56e;border-bottom:3px solid #c5a56e;height:9px;position:absolute;top:39px;left:65px;right:65px}.cassette-player.is-playing .cassette-reel{animation:1.1s linear infinite cassette-spin}.cassette-lines{justify-content:center;align-items:center;gap:5px;height:35px;margin:.7rem auto 0;display:flex}.cassette-lines span{background:#9175a1;border-radius:999px;width:4px;height:8px}.cassette-player.is-playing .cassette-lines span{animation:cassette-wave .65s calc(var(--line-index)*-55ms)ease-in-out infinite alternate}.timeline-card>.interactive-instruction{margin-top:.65rem}.timeline-book{perspective:1200px;margin-top:1rem}.timeline-page{transform-origin:0;background:linear-gradient(90deg,#fffffffa 0 49.8%,#684e7e14 50%,#fffffffa 50.2%),#fffefa;border:1px solid #6a4d8824;border-radius:22px;grid-template-columns:minmax(240px,.9fr) minmax(0,1.2fr);min-height:430px;display:grid;overflow:hidden;box-shadow:0 18px 38px #4f39651f}.timeline-page-image{min-height:430px;position:relative;overflow:hidden}.timeline-page-image img{object-fit:cover}.timeline-page-copy{max-height:430px;padding:clamp(1.3rem,4vw,2.5rem);overflow:auto}.timeline-page-copy .timeline-title{color:#604b70;font-family:var(--font-dancing-script),cursive;margin-top:.4rem;font-size:clamp(1.8rem,4vw,2.6rem)}.timeline-page-copy .timeline-note{margin-top:.8rem;font-size:.92rem;line-height:1.65}.timeline-controls{grid-template-columns:1fr auto 1fr;align-items:center;gap:.7rem;margin-top:.85rem;display:grid}.timeline-controls button{color:#705982;cursor:pointer;background:#ffffffd1;border:1px solid #684d8426;border-radius:999px;padding:.62rem .85rem;font-size:.78rem;font-weight:800}.timeline-controls button:last-child{justify-self:end}.timeline-controls button:disabled{opacity:.42;cursor:not-allowed}.timeline-controls span{color:#8a7a92;font-size:.72rem;font-weight:850}.photo-tile{perspective:1000px;overflow:visible}.photo-card-inner{border-radius:inherit;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.2,.8,.25,1);position:absolute;inset:0}.photo-tile.is-flipped .photo-card-inner{transform:rotateY(180deg)}.photo-card-face{border-radius:inherit;backface-visibility:hidden;position:absolute;inset:0;overflow:hidden}.photo-card-front{background:#f6f0fa}.photo-card-back{color:#644f73;text-align:center;background:radial-gradient(circle at 12% 16%,#ffd9bf8c,#0000 24%),linear-gradient(145deg,#fff1f6,#eee8fb 62%,#e6f4ef);flex-direction:column;justify-content:center;align-items:center;padding:1.2rem;display:flex;transform:rotateY(180deg)}.photo-card-back>span{font-family:var(--font-dancing-script),cursive;font-size:2.7rem;line-height:1}.photo-card-back p{font-family:var(--font-dancing-script),cursive;margin:.55rem 0 0;font-size:1.3rem;font-weight:700;line-height:1.3}.photo-card-back small{color:#86768e;margin-top:.35rem}.photo-card-back strong{background:#ffffffb8;border-radius:999px;margin-top:1.1rem;padding:.45rem .7rem;font-size:.68rem}.photo-caption small{opacity:.75;margin-top:.35rem;font-size:.62rem;font-weight:750;display:block}@keyframes ring-lid-open{0%{transform:rotateX(0)translateY(0)}to{transform:rotateX(-118deg)translateY(-20px)}}@keyframes ring-rise{0%{opacity:0;transform:translateY(24px)scale(.6)}to{opacity:1;transform:translateY(-20px)scale(1)}}@keyframes gem-sparkle{0%{filter:drop-shadow(0 0 4px #ffffffb3);transform:scale(.94)}to{filter:drop-shadow(0 0 14px #fff);transform:scale(1.08)}}@keyframes secret-pop{0%{opacity:0;transform:scale(.86)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes heartbeat{0%,to{transform:scale(1)}15%{transform:scale(1.16)}28%{transform:scale(1)}42%{transform:scale(1.11)}58%{transform:scale(1)}}@keyframes heart-hold-progress{0%{width:0}to{width:100%}}@keyframes word-float{0%,to{translate:0;rotate:-1deg}50%{translate:0 -8px;rotate:2deg}}@keyframes cassette-spin{to{transform:rotate(360deg)}}@keyframes cassette-wave{0%{height:6px}to{height:30px}}@media (max-width:780px){.reveal-section{grid-template-columns:1fr}.letter-card,.promises-card,.timeline-card,.gallery-card{grid-column:auto}.promise-grid,.timeline-page{grid-template-columns:1fr}.timeline-page-image{min-height:310px}.timeline-page-copy{max-height:none}.hidden-note-1{top:22rem;left:.35rem}.hidden-note-2{top:60rem;right:.35rem}.hidden-note-3{top:123rem;left:.25rem}.hidden-note-4{top:194rem;right:.25rem}.hidden-note-5{top:266rem;left:.35rem}}@media (max-width:560px){.interactive-card{padding:1.2rem}.scratch-card{min-height:235px}.heart-hold-button{width:150px;height:150px}.promise-envelope{min-height:190px}.timeline-page-image{min-height:260px}.timeline-controls{grid-template-columns:1fr 1fr}.timeline-controls span{grid-area:1/1/auto/-1;justify-self:center}.timeline-controls button:last-child,.timeline-controls button{justify-self:stretch}.hidden-note{width:34px;height:34px}}@media (prefers-reduced-motion:reduce){.ring-box-lid,.ring-box-ring,.ring-gem,.heart-hold-icon,.word-cloud button,.cassette-reel,.cassette-lines span,.hidden-note{animation-duration:.01ms!important;animation-iteration-count:1!important}}@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}
