/*! 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,::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,::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}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.block{display:block}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}}:root{--paper:#f7eddc;--paper-deep:#ead8bf;--paper-light:#fffaf0;--ink:#451818;--ink-soft:#76564e;--wine:#7c1f31;--wine-dark:#4e101e;--rose:#ce766f;--gold:#a87938;--line:#5b322833;--shadow:#5b302238}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Songti SC,Noto Serif CJK SC,STSong,Georgia,serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}img{max-width:100%;display:block}.romantic-site{background-image:url(/decor/romantic-paper-bg.png);background-position:top;background-repeat:repeat-y;background-size:851px;min-height:100svh;overflow:hidden}.letter-hero{background-image:url(/decor/romantic-paper-bg.png);background-position:50%;background-size:cover;min-height:100svh;position:relative;overflow:hidden}.hero-inner{width:min(100%,1180px);min-height:100svh;padding:max(24px, env(safe-area-inset-top)) clamp(24px, 5vw, 70px) max(34px, env(safe-area-inset-bottom));margin:0 auto;position:relative}.hero-header{z-index:5;color:#8e5f4c;grid-template-columns:1fr auto 1fr;align-items:start;gap:18px;min-height:68px;display:grid;position:relative}.hero-header>div{flex-direction:column;gap:5px;display:flex}.hero-header span{letter-spacing:.14em;font-size:18px}.hero-header small{letter-spacing:.2em;font:10px ui-sans-serif,system-ui,sans-serif}.hero-header time{color:var(--rose);letter-spacing:.08em;font:36px Georgia,serif}.music-button{color:#8a644f;letter-spacing:.12em;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;justify-self:end;padding:10px 0;font-size:12px}.music-button[aria-pressed=true]{color:var(--wine)}.portrait-collage{z-index:2;width:min(43vw,440px);position:absolute;top:105px;right:clamp(82px,8vw,138px)}.portrait-paper{box-shadow:0 22px 52px var(--shadow);background:#efe2cc;border:1px solid #714c3724;padding:12px 12px 38px;position:relative;transform:rotate(2deg)}.portrait-paper img{aspect-ratio:.82;object-fit:cover;object-position:50% 24%;filter:saturate(.88)contrast(1.02);width:100%}.portrait-paper>span{color:#8c5c49;letter-spacing:.2em;font-size:13px;position:absolute;bottom:12px;left:22px}.chapter-rail{color:#8a6858;letter-spacing:.08em;flex-direction:column;gap:34px;font:10px ui-sans-serif,system-ui,sans-serif;display:flex;position:absolute;top:10%;right:-70px}.chapter-rail span{border-left:1px solid #7c1f3173;padding-left:10px}.hero-letter-copy{z-index:4;background:#fffaf0e6;border:1px solid #764a3221;width:min(48%,580px);padding:clamp(24px,4vw,58px);position:absolute;top:28%;left:clamp(26px,6vw,88px);box-shadow:0 24px 60px #5e302324}.hero-letter-copy>p:first-child,.section-kicker{color:var(--rose);letter-spacing:.2em;text-transform:uppercase;margin:0;font:700 10px ui-sans-serif,system-ui,sans-serif}.hero-letter-copy h1{letter-spacing:-.06em;margin:14px 0 4px;font-size:clamp(48px,6.2vw,88px);font-weight:400;line-height:1}.hero-letter-copy h2{letter-spacing:.12em;margin:12px 0 20px;font-size:clamp(19px,2vw,32px);font-weight:400}.hero-intro{max-width:390px;color:var(--ink-soft);margin:0;font-size:15px;line-height:1.9}.floating-petal{z-index:6;cursor:pointer;background:0 0;border:0;padding:0;transition:opacity .45s,translate .45s,scale .45s;position:absolute}.floating-petal img{pointer-events:none;filter:drop-shadow(0 8px 8px #703c311f);width:100%}.floating-petal:hover{scale:1.12}.floating-petal.is-collected{opacity:0;pointer-events:none;translate:0 -34px;scale:.5}.hero-filmstrip{z-index:8;background:#ead9bf;gap:8px;width:116px;padding:8px;display:grid;position:absolute;bottom:-42px;left:clamp(16px,3vw,52px);transform:rotate(-7deg);box-shadow:0 20px 36px #572b1f29}.hero-filmstrip button{cursor:pointer;background:0 0;border:0;padding:0}.hero-filmstrip img{object-fit:cover;object-position:50% 28%;width:100%;height:78px}.hero-filmstrip span{color:#845d4d;letter-spacing:.1em;padding:5px 2px 2px;font:8px ui-sans-serif,system-ui,sans-serif;display:block}.ribbon-pull{z-index:10;will-change:transform;width:300px;height:450px;transition:transform .25s ease-out,opacity .7s;position:absolute;bottom:-200px;left:50%;overflow:hidden}.ribbon-pull>img{object-fit:contain;pointer-events:none;filter:drop-shadow(0 13px 18px #5d1b273d);width:100%;height:650px;position:absolute;top:-145px;left:0}.ribbon-pull>button{color:#fff2e6;cursor:grab;touch-action:none;text-shadow:0 1px 4px #360a1380;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:150px;padding:12px 6px;display:flex;position:absolute;top:104px;left:112px;right:112px}.ribbon-pull>button:active{cursor:grabbing}.ribbon-pull span{letter-spacing:.2em;writing-mode:vertical-rl;font-size:14px}.ribbon-pull small{letter-spacing:.1em;writing-mode:vertical-rl;font:9px ui-sans-serif,system-ui,sans-serif}.is-open .ribbon-pull{opacity:0;pointer-events:none}.petal-counter{z-index:7;color:#8b6552;letter-spacing:.1em;white-space:nowrap;margin:0;font-size:10px;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.letter-pages{animation:.85s both pageOpen}.paper-section{width:min(1120px,100% - 48px);margin:0 auto;padding:clamp(88px,10vw,148px) clamp(4px,4vw,52px);position:relative}.paper-section+.paper-section{border-top:1px solid var(--line)}.paper-section h2{letter-spacing:-.04em;margin:16px 0 0;font-size:clamp(38px,4.8vw,66px);font-weight:400;line-height:1.24}.section-heading{max-width:760px}.section-heading>p:last-child{color:var(--ink-soft);margin:22px 0 0;line-height:1.9}.opening-quote{text-align:center;max-width:920px}.opening-quote>p:not(.section-kicker){max-width:610px;color:var(--ink-soft);margin:34px auto 0;line-height:2}.signature{color:var(--gold);letter-spacing:.08em;margin-top:48px;font:italic 17px Georgia,serif}.chapter-tabs{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:52px 0 0;display:grid}.chapter-tabs button{border:0;border-right:1px solid var(--line);cursor:pointer;background:#fffaf061;flex-direction:column;align-items:flex-start;gap:6px;padding:28px 22px;display:flex}.chapter-tabs button:last-child{border-right:0}.chapter-tabs strong{color:var(--gold);font:400 32px Georgia,serif}.chapter-tabs span{color:var(--ink-soft);font-size:13px}.chapter-tabs button.is-active{box-shadow:inset 0 -3px var(--wine);background:#7c1f3114}.chapter-note{background:#fffaf0c7;border:1px solid #633b2821;width:min(620px,90%);margin:52px auto 0;padding:42px;transform:rotate(-1deg);box-shadow:0 22px 50px #5d31241a}.chapter-note time{color:var(--rose);letter-spacing:.18em;font:15px ui-sans-serif,system-ui,sans-serif}.chapter-note h3{margin:18px 0 14px;font-size:30px;font-weight:400}.chapter-note p{color:var(--ink-soft);margin:0;line-height:2}.memory-section,.today-section{grid-template-columns:.88fr 1.12fr;align-items:center;gap:clamp(48px,8vw,108px);display:grid}.memory-photo,.today-portrait{box-shadow:0 28px 60px var(--shadow);background:#ead9bf;padding:12px 12px 48px;position:relative;transform:rotate(-2deg)}.memory-photo img,.today-portrait img{aspect-ratio:.76;object-fit:cover;object-position:50% 27%;width:100%}.memory-photo small,.today-portrait span{color:#825b48;letter-spacing:.1em;position:absolute;bottom:15px;left:24px}.memory-copy h2,.today-section h2{font-size:clamp(42px,5vw,64px)}.memory-copy>p:not(.section-kicker),.today-section>div>p:not(.section-kicker){color:var(--ink-soft);line-height:2}.memory-copy>button{border:1px solid var(--wine);background:var(--wine);color:#fff4e6;letter-spacing:.08em;cursor:pointer;margin-top:16px;padding:13px 22px}.memory-copy blockquote{border-left:3px solid var(--rose);background:#fffaf0cc;margin:26px 0 0;padding:30px;font-size:21px;line-height:1.7;animation:.55s both noteReveal}.memory-copy blockquote span,.memory-copy blockquote small{color:var(--ink-soft);font-size:12px;line-height:1.8;display:block}.memory-copy blockquote span{margin-bottom:10px}.memory-copy blockquote small{margin-top:14px}.gallery-main{height:min(76vh,760px);min-height:520px;box-shadow:0 28px 64px var(--shadow);touch-action:pan-y;-webkit-user-select:none;user-select:none;background:#ead9bf;margin:52px 0 0;padding:14px 14px 66px;position:relative}.gallery-main>img{object-fit:cover;object-position:50% 27%;pointer-events:none;width:100%;height:100%}.gallery-main figcaption{grid-template-columns:auto 1fr auto;align-items:center;gap:16px;display:grid;position:absolute;bottom:19px;left:32px;right:32px}.gallery-main figcaption span,.gallery-main figcaption small{color:var(--gold);letter-spacing:.14em;font:11px ui-sans-serif,system-ui,sans-serif}.gallery-main figcaption strong{font-weight:400}.gallery-controls{grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-top:22px;display:grid}.gallery-controls>button{border:0;border-bottom:1px solid var(--wine);cursor:pointer;background:0 0;padding:10px 0;font-size:12px}.gallery-controls>div{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.gallery-controls>div::-webkit-scrollbar{display:none}.gallery-controls>div button{cursor:pointer;background:#ead9bf;border:1px solid #0000;flex:0 0 72px;height:82px;padding:4px}.gallery-controls>div button.is-active{border-color:var(--wine)}.gallery-controls img{object-fit:cover;width:100%;height:100%}.today-portrait{transform:rotate(2deg)}.today-section ul{counter-reset:wish-list;border-top:1px solid var(--line);margin:30px 0;padding:0;list-style:none}.today-section li{counter-increment:wish-list;border-bottom:1px solid var(--line);color:var(--ink-soft);padding:18px 0 18px 54px;line-height:1.75}.today-section li:before{content:"0" counter(wish-list);float:left;color:var(--rose);letter-spacing:.08em;margin-left:-54px;font:12px ui-sans-serif,system-ui,sans-serif}.today-section blockquote{color:var(--wine);margin:30px 0 0;font-size:21px;line-height:1.8}.video-section .section-heading{text-align:center;margin:0 auto 48px}.video-frame{box-shadow:0 30px 70px var(--shadow);background:#ead9bf;padding:14px}.video-frame video{aspect-ratio:16/9;object-fit:cover;background:#251018;width:100%}.video-frame>div{color:var(--ink-soft);justify-content:space-between;gap:28px;padding:20px 8px 8px;display:flex}.video-frame span{color:var(--gold);letter-spacing:.16em;font:10px ui-sans-serif,system-ui,sans-serif}.video-frame p{margin:0}.wish-section{text-align:center;max-width:900px;padding-bottom:74px}.wish-petal{filter:drop-shadow(0 10px 10px #7642311f);width:78px;margin:0 auto 24px;transform:rotate(-16deg)}.wish-section>p:not(.section-kicker){color:var(--ink-soft)}.wish-form{background:#fffaf0b8;border:1px solid #71452c3d;grid-template-columns:1fr auto;width:min(660px,100%);margin:36px auto 0;padding:7px;display:grid}.wish-form label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.wish-form input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;padding:0 18px}.wish-form input::placeholder{color:#a98b7d}.wish-form button{background:var(--wine);color:#fff4e9;cursor:pointer;border:0;padding:14px 24px}.wish-result{background:#fffaf0c7;border:1px solid #774d3229;width:min(560px,100%);margin:34px auto 0;padding:28px;animation:.6s both noteReveal}.wish-result strong{color:var(--rose);font-weight:400}.wish-result p{margin:12px 0 0;font-size:20px}.wish-section footer{border-top:1px solid var(--line);justify-content:space-between;margin-top:76px;padding-top:28px;display:flex}.wish-section footer strong{font-size:24px;font-weight:400}.wish-section footer span{color:var(--gold);letter-spacing:.15em;font:11px ui-sans-serif,system-ui,sans-serif}@keyframes pageOpen{0%{opacity:0;transform:translateY(48px)}to{opacity:1;transform:none}}@keyframes noteReveal{0%{opacity:0;transform:translateY(14px)rotate(1deg)}to{opacity:1;transform:none}}@media (width<=700px){.romantic-site{background-size:430px}.hero-inner{width:min(100%,430px);padding:max(18px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom))}.hero-header{grid-template-columns:1fr auto;min-height:58px}.hero-header time{order:3;grid-column:1/-1;font-size:31px;position:absolute;top:46px;left:0}.hero-header span{font-size:15px}.hero-header small{font-size:8px}.music-button{font-size:10px}.portrait-collage{width:72%;top:82px;right:45px}.portrait-paper{padding:8px 8px 30px;transform:rotate(2deg)}.portrait-paper img{aspect-ratio:.92}.portrait-paper>span{font-size:10px;bottom:9px;left:17px}.chapter-rail{gap:27px;font-size:8px;top:17%;right:-39px}.chapter-rail span{padding-left:6px}.hero-letter-copy{background:#fffaf0eb;width:calc(100% - 42px);padding:21px 24px 24px;top:50%;left:21px}.hero-letter-copy>p:first-child{font-size:8px}.hero-letter-copy h1{margin-top:9px;font-size:clamp(44px,12vw,54px)}.hero-letter-copy h2{letter-spacing:.08em;margin:7px 0 12px;font-size:17px}.hero-intro{font-size:12px;line-height:1.75}.ribbon-pull{width:294px;height:450px;bottom:-210px}.ribbon-pull>img{height:636px;top:-140px}.ribbon-pull>button{min-height:146px;top:101px;left:108px;right:108px}.ribbon-pull span{font-size:12px}.petal-counter{font-size:8px;bottom:12px}.floating-petal{z-index:3}.hero-filmstrip{width:102px;bottom:-56px;left:-20px;transform:rotate(-8deg)}.hero-filmstrip img{height:64px}.paper-section{width:min(100% - 30px,430px);padding:82px 10px}.paper-section h2{font-size:39px;line-height:1.3}.opening-quote h2{font-size:34px}.opening-quote>p:not(.section-kicker){font-size:14px}.chapter-tabs{margin-top:38px;overflow-x:auto}.chapter-tabs button{min-width:124px;padding:20px 14px}.chapter-tabs strong{font-size:25px}.chapter-note{width:94%;margin-top:38px;padding:28px}.chapter-note h3{font-size:25px}.chapter-note p{font-size:14px}.memory-section,.today-section{grid-template-columns:1fr;gap:54px}.memory-photo,.today-portrait{width:86%;margin:0 auto}.memory-copy h2,.today-section h2{font-size:40px}.memory-copy blockquote{padding:24px;font-size:18px}.gallery-main{height:570px;min-height:0;margin-top:38px;padding:9px 9px 62px}.gallery-main figcaption{grid-template-columns:auto 1fr auto;gap:9px;font-size:13px;bottom:18px;left:20px;right:20px}.gallery-controls{grid-template-columns:1fr 1fr}.gallery-controls>div{grid-area:1/1/auto/-1}.gallery-controls>button:last-child{text-align:right}.gallery-controls>div button{flex-basis:62px;height:72px}.today-portrait{order:-1}.video-frame{padding:8px}.video-frame>div{flex-direction:column;gap:9px;padding:16px 8px 7px;font-size:13px}.wish-form{grid-template-columns:1fr;padding:7px}.wish-form input{text-align:center;min-height:48px}.wish-section footer{flex-direction:column;align-items:center;gap:12px}}@media (width>=701px) and (height<=760px){.hero-letter-copy{top:24%}.portrait-collage{width:min(38vw,360px);top:82px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@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}
