/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y: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;--spacing:.25rem;--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}::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;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]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance: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{.start{inset-inline-start:var(--spacing)}.block{display:block}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}}:root{--ivory:#f7f0e4;--cream:#fbf5e9;--paper:#fffaf0;--blush:#e9c9c2;--dusty-pink:#c98e93;--rose:#a85d67;--burgundy:#743f46;--brown:#523f35;--muted-brown:#7b6457;--butter:#f2dfa3}*{box-sizing:border-box}html{background:var(--ivory);scroll-behavior:smooth}body{background:radial-gradient(circle at 18% 15%, #d49f931c 0 1px, transparent 1.8px), radial-gradient(circle at 84% 72%, #97664d14 0 1px, transparent 1.8px), linear-gradient(90deg, #ffffff29, transparent 34%, #976b4d08), var(--ivory);color:var(--brown);font-family:var(--font-inter), sans-serif;text-rendering:optimizelegibility;background-size:41px 41px,53px 53px,auto,auto;margin:0;overflow-x:hidden}button{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{max-width:100%}.handwritten{font-family:var(--font-caveat), cursive}.reveal{opacity:0;transition:opacity .56s ease var(--reveal-delay), transform .62s cubic-bezier(.2, .72, .25, 1) var(--reveal-delay);transform:translateY(24px)scale(.985)}.reveal.is-visible{opacity:1;transform:translateY(0)scale(1)}.mail-intro{min-height:100svh;padding:max(28px, env(safe-area-inset-top)) 20px max(32px, env(safe-area-inset-bottom));text-align:center;align-content:center;place-items:center;display:grid;position:relative}.eyebrow{color:var(--burgundy);letter-spacing:.23em;margin:0;font-size:clamp(.72rem,3vw,.84rem);font-weight:600}.intro-name{color:var(--rose);margin:4px 0 24px;font-size:1.72rem}.intro-copy{max-width:320px;margin:25px 0 3px;font-size:.95rem;line-height:1.55}.intro-doodle{color:#a85d6745;font-family:var(--font-caveat), cursive;font-size:1.2rem;position:absolute}.intro-doodle-one{top:14%;left:12%;transform:rotate(-12deg)}.intro-doodle-two{bottom:18%;right:13%;transform:rotate(8deg)}.envelope-button{cursor:pointer;background:0 0;border:0;width:min(84vw,360px);padding:0}:is(.envelope-button:focus-visible,.story-link:focus-visible){outline:2px solid var(--burgundy);outline-offset:6px;border-radius:5px}.leo-stamp:focus-visible{outline:2px solid var(--burgundy);outline-offset:6px;border-radius:50%}.envelope{aspect-ratio:1.55;filter:drop-shadow(0 17px 18px #533a2d2e);perspective:900px;transition:transform .25s;display:block;position:relative}.envelope-button:active .envelope{transform:scale(.985)}.envelope-pocket{z-index:3;background:linear-gradient(145deg,#0000 49.5%,#dec6b1 50%,#f0dcca 51%) 0/50.5% 100% no-repeat,linear-gradient(215deg,#0000 49.5%,#dec6b1 50%,#f0dcca 51%) 100%/50.5% 100% no-repeat,repeating-radial-gradient(circle at 20% 30%,#654c3808 0 1px,#0000 1px 4px),#ead3bd;border:1px solid #d8bfa9;border-radius:3px 3px 8px 8px;position:absolute;inset:0}.envelope-flap{z-index:5;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;background:linear-gradient(#f5e6d7,#dec1a8);height:58%;transition:transform .78s cubic-bezier(.4,0,.2,1),z-index 0s .39s;position:absolute;inset:0 0 auto}.letter-edge{z-index:2;background:radial-gradient(circle at 30% 20%, #7659410a 0 .6px, transparent .8px) 0 0 / 8px 8px, var(--paper);height:78%;color:var(--burgundy);font-family:var(--font-cormorant), serif;border:1px solid #e8d9c8;padding-top:25px;font-size:1.45rem;transition:transform .72s cubic-bezier(.25,.8,.25,1) .28s;position:absolute;inset:13% 7% auto}.wax-seal{z-index:6;aspect-ratio:1;color:#f4dacf;background:#95505b;border-radius:47% 53% 49% 51%;place-items:center;width:48px;transition:transform .22s,opacity .25s .18s;display:grid;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 4px #ffffff1a,0 4px 7px #53282d3d}.envelope.is-open .wax-seal{opacity:0;transform:translate(-50%,-45%)scale(.88)}.envelope.is-open .envelope-flap{z-index:1;transform:rotateX(178deg)}.envelope.is-open .letter-edge{transform:translateY(-54%)}.story-link{min-width:44px;min-height:44px;color:var(--burgundy);font-family:var(--font-caveat), cursive;text-underline-offset:6px;cursor:pointer;background:0 0;border:0;padding:8px 5px;font-size:1.48rem;-webkit-text-decoration:underline #743f4652;text-decoration:underline #743f4652;text-decoration-thickness:1px}.story-link:hover{color:#8e4c56}.story-start,.leo-start,.leo-letter-start{scroll-margin-top:14px}.paper{isolation:isolate;background:linear-gradient(92deg, #75503707, transparent 4%, transparent 96%, #75503706), var(--paper);width:min(700px,100% - 24px);margin-inline:auto;position:relative;box-shadow:0 23px 60px #51392b21,0 2px 7px #51392b0f}.paper:before{z-index:-1;content:"";opacity:.45;pointer-events:none;background:radial-gradient(circle at 20% 20%,#5d46330d 0 .6px,#0000 .9px) 0 0/7px 7px,radial-gradient(circle at 80% 60%,#ffffff73 0 .7px,#0000 1px) 0 0/11px 11px;position:absolute;inset:0}.main-letter{margin-top:20px;padding:46px 23px 76px}.paper-flower,.paper-heart{color:#a85d673d;font-family:var(--font-caveat), cursive;position:absolute}.paper-flower{top:28px;right:23px;transform:rotate(8deg)}.paper-heart{top:16%;left:13px;transform:rotate(-12deg)}.letter-salutation,.leo-salutation{color:var(--burgundy);font:600 clamp(2.55rem, 12vw, 3.8rem)/.95 var(--font-cormorant), serif;margin:0 0 28px}.letter-paragraph{margin:0 0 1.15em;font-size:clamp(1rem,2.3vw,1.08rem);line-height:1.72}.memory-photo{transform:rotate(var(--rotation));background:#fffdf8;margin-inline:auto;padding:9px 9px 31px;position:relative;box-shadow:0 11px 25px #482f2429}.memory-photo img{object-fit:cover;background:#eee2d3;width:100%;height:auto;display:block}.memory-photo figcaption{color:var(--burgundy);margin:8px 3px -3px;font-size:clamp(1.2rem,5.5vw,1.48rem);line-height:1.02}.masking-tape{z-index:2;opacity:0;width:72px;height:26px;transition:opacity .26s ease calc(var(--reveal-delay) + .15s);background:#ebd3aac9;position:absolute;top:-13px;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:0 2px 3px #533e2c14}.photo-reveal.is-visible .masking-tape{opacity:1}.photo-portrait{width:min(86%,440px)}.photo-landscape{width:min(100%,570px)}.photo-small{width:min(70%,340px)}.photo-attached{width:min(90%,500px)}.photo-reveal{margin:54px 0 62px}.photo-spread{margin:48px 0 64px;position:relative}.photo-spread .photo-reveal{margin:0}.years-spread .photo-reveal:first-child{width:100%}.years-spread .photo-reveal:last-child{width:62%;margin:-23px 0 0 auto}.today-spread{grid-template-columns:minmax(0,1.24fr) minmax(0,.76fr);align-items:center;gap:8px;display:grid}.today-spread .photo-small,.today-spread .photo-landscape{width:100%}.remember-line{color:var(--burgundy);font:600 clamp(2.55rem, 12vw, 4.5rem)/.95 var(--font-cormorant), serif;text-align:center;margin:58px 0 54px}.main-greeting{color:var(--burgundy);font:600 clamp(2rem, 9.2vw, 3.35rem)/1.04 var(--font-cormorant), serif;text-align:center;border-top:1px solid #743f4629;margin:0;padding-top:24px}.false-ending{color:#a85d675c;min-height:67svh;font-family:var(--font-caveat), cursive;place-items:center;font-size:1.2rem;display:grid}.paw-trail{width:min(620px,100% - 34px);margin:0 auto;padding:10px 0 92px}.paw-step{color:#743f4699;width:45px;margin-block:20px}.paw-step svg{fill:currentColor;width:100%;display:block}.paw-step-one{margin-left:13%;transform:rotate(-21deg)}.paw-step-two{margin-left:67%;transform:rotate(18deg)}.paw-step-three{margin-left:32%;transform:rotate(-12deg)}.paw-step.is-visible{transform:translateY(0)scale(1)rotate(-10deg)}.paw-step-two.is-visible{transform:translateY(0)scale(1)rotate(18deg)}.paw-step-three.is-visible{transform:translateY(0)scale(1)rotate(-12deg)}.paw-copy{max-width:480px;font:500 clamp(1.8rem, 8vw, 2.65rem)/1.1 var(--font-cormorant), serif;text-align:center;margin:42px auto}.who-wrap{text-align:center;margin-top:46px}.who-link{font-size:1.78rem}.leo-reveal{width:min(700px,100% - 24px);margin:0 auto;padding:28px 0 105px}.leo-hero-photo{margin-inline:auto}.leo-hero-photo .memory-photo{width:min(88%,470px)}.leo-title{color:var(--burgundy);font:600 clamp(2.8rem, 13vw, 4.6rem)/.96 var(--font-cormorant), serif;text-align:center;margin:24px 0 5px}.leo-subtitle,.leo-prompt{text-align:center;margin:0 auto;font-size:clamp(1rem,3.6vw,1.15rem);line-height:1.65}.leo-photo-session{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:8px;margin:86px 0 62px;display:grid}.leo-photo-session .photo-reveal{margin:0}.leo-photo-session .memory-photo{width:100%}.leo-photo-session .photo-reveal:last-child{margin-top:46px}.leo-photo-session figcaption{min-height:2.1em;font-size:clamp(1rem,4.5vw,1.36rem)}.leo-prompt{font-family:var(--font-cormorant), serif;margin-top:66px;font-size:clamp(1.7rem,7vw,2.35rem)}.leo-action-wrap{text-align:center;margin-top:12px}.leo-letter-link{font-size:1.52rem}.leo-letter{margin-top:16px;padding:51px 23px 64px;overflow:hidden}.leo-letter-paw{z-index:-1;color:#a85d6714;width:54px;position:absolute;transform:rotate(-18deg)}.leo-letter-paw svg{fill:currentColor;width:100%}.leo-letter-paw-one{top:22px;right:18px}.leo-letter-paw-two{top:43%;left:8px;transform:rotate(20deg)}.leo-salutation{font-size:clamp(2.45rem,11vw,3.5rem)}.leo-signature{color:var(--burgundy);font:600 clamp(2.5rem, 10vw, 3.6rem)/1 var(--font-caveat), cursive;text-align:right;margin:35px 0 48px}.attached-photo{margin:32px 0 60px}.attached-photo .memory-photo{width:min(92%,500px)}.stamp-area{min-height:210px;margin-top:28px;position:relative}.stamp-hint{color:var(--rose);font-size:1.35rem;position:absolute;top:8px;left:calc(50% - 110px);transform:rotate(-7deg)}.stamp-arrow{color:var(--rose);font-size:2rem;position:absolute;top:30px;left:calc(50% - 69px);transform:rotate(7deg)}.leo-stamp{z-index:2;aspect-ratio:1;border:3px double var(--burgundy);width:132px;color:var(--burgundy);letter-spacing:.08em;text-align:center;cursor:pointer;background:#fffaf0e6;border-radius:49% 46% 51% 45%;place-items:center;padding:19px;font-size:.73rem;font-weight:700;line-height:1.2;display:grid;position:absolute;top:38px;left:50%;transform:translate(-50%)rotate(-7deg)}.leo-stamp.is-stamped{animation:.43s cubic-bezier(.2,.8,.2,1) stamp-press}.paw-imprint{fill:#743f46ad;opacity:0;width:60px;transition:opacity .18s .25s,transform .26s .23s;position:absolute;top:70px;left:calc(50% + 72px);transform:rotate(16deg)scale(.76)}.paw-imprint.is-visible{opacity:1;transform:rotate(16deg)scale(1)}@keyframes stamp-press{0%{transform:translate(-50%)translateY(0)rotate(-7deg)scale(1)}45%{transform:translate(-50%)translateY(16px)rotate(1deg)scale(.94)}70%{transform:translate(-50%)translateY(14px)rotate(1deg)scale(.95)}to{transform:translate(-50%)translateY(0)rotate(-7deg)scale(1)}}.finale{width:min(650px,100% - 36px);padding:130px 0 max(190px, calc(150px + env(safe-area-inset-bottom)));text-align:center;margin:0 auto}.finale h2{color:var(--burgundy);font:600 clamp(2.4rem, 10vw, 3.7rem)/1.03 var(--font-cormorant), serif;margin:0 0 60px}.finale .letter-paragraph{max-width:570px;margin:0 auto 1.15em}.keepsakes{margin:74px 0 13px}.keepsakes p{color:var(--rose);margin:5px 0;font-size:clamp(1.75rem,7vw,2.35rem);line-height:1}.finale-leo{color:var(--burgundy);margin:22px 0 88px;font-size:clamp(1.7rem,7vw,2.2rem)}.final-greeting{color:var(--burgundy);font:600 clamp(2.55rem, 11.5vw, 4.55rem)/.98 var(--font-cormorant), serif;margin:0 0 58px}.final-callback{max-width:580px;margin:0 auto;font-size:clamp(1rem,3vw,1.12rem);line-height:1.7}@media (min-width:700px){.main-letter,.leo-letter{padding:72px 70px 96px}.paper-flower{top:43px;right:45px}.paper-heart{left:29px}.years-spread .photo-reveal:last-child{width:54%;margin-top:-35px}.today-spread{gap:16px}.leo-photo-session{gap:18px}}@media (max-width:370px){.main-letter,.leo-letter{width:calc(100% - 16px);padding-inline:18px}.today-spread,.leo-photo-session{gap:4px}.memory-photo{padding:7px 7px 27px}.leo-stamp{width:122px}.paw-imprint{left:calc(50% + 63px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}@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}
