:root{color-scheme:dark;--color-bg:#351b25;--color-surface:#40232e;--color-surface-deep:#2d1720;--color-text:#f8ede5;--color-muted:#cfb5bc;--color-primary:#edc3c8;--color-accent:#dba3b0;--color-border:#70505b;--color-paper:#efe4d7;--color-ink:#4b2833;--shadow-soft:0 18px 45px #1b0a1233;--radius-sm:3px;--radius-md:8px;--radius-lg:16px;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:5rem;--space-7:8rem;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:Georgia, "Times New Roman", serif;--layer-skip:10}*{box-sizing:border-box}html{scroll-behavior:smooth;max-width:100%;scroll-padding-top:2rem;overflow-x:hidden}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;max-width:100%;margin:0;font-size:16px;line-height:1.75;overflow-x:hidden}body,button,a{-webkit-tap-highlight-color:transparent}::selection{color:var(--color-bg);background:var(--color-primary)}[hidden]{display:none!important}h1,h2,h3,p,figure{overflow-wrap:break-word;margin:0}h1,h2,h3{text-wrap:balance}h1,h2{font-family:var(--font-display);letter-spacing:-.045em;font-weight:400}h2{font-size:clamp(2.25rem,4.3vw,3.7rem);line-height:1.16}h3{font-weight:500;line-height:1.4}p{text-wrap:pretty}a{color:inherit;text-underline-offset:5px}button,summary{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}button,summary,a{outline-offset:5px}:focus-visible{outline:2px solid var(--color-primary)}img{max-width:100%;height:auto;display:block}ul,ol{margin:0;padding:0}.wrap{width:min(1120px,100% - 64px);margin-inline:auto}.section{padding-block:clamp(5rem,9vw,8rem)}.section-heading{max-width:760px;margin-bottom:3.5rem}.section-heading p{max-width:53ch;color:var(--color-muted);margin-top:1.1rem}.muted{color:var(--color-muted)}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);font-size:.72rem;display:block}.handwritten{color:var(--color-primary);font-family:var(--font-display);white-space:pre-line;font-size:1.4rem;font-style:italic;line-height:1.65}.button{border:1px solid var(--color-primary);background:var(--color-primary);min-height:48px;color:var(--color-bg);border-radius:99px;justify-content:center;align-items:center;gap:.9rem;padding:.7rem 1.55rem;font-size:.87rem;font-weight:600;line-height:1.5;text-decoration:none;transition:transform .2s,opacity .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:active{transform:scale(.98)}.button-outline{color:var(--color-text);border-color:var(--color-border);background:0 0}.button-outline:hover{border-color:var(--color-primary)}.button-small{padding:.55rem 1rem;font-size:.8rem}.text-link{align-items:center;gap:1.5rem;min-height:44px;font-size:.88rem;text-decoration-thickness:1px;display:inline-flex}.skip-link{z-index:var(--layer-skip);background:var(--color-paper);color:var(--color-bg);padding:1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.noscript-note{color:var(--color-muted);padding-block:2rem}.opening{background:radial-gradient(ellipse at 85% 38%, #60313d55, transparent 62%), var(--color-bg)}.opening-top{letter-spacing:.1em;color:var(--color-muted);justify-content:space-between;padding-top:2rem;font-size:.72rem;display:flex}.intro-stage{grid-template-columns:1.2fr 1fr;align-items:center;gap:4rem;min-height:min(750px,100svh - 150px);padding-block:4rem;display:grid}.intro-preface{font-family:var(--font-display);letter-spacing:-.045em;white-space:pre-line;margin-bottom:2.25rem;font-size:clamp(3rem,4.2vw,4.25rem);line-height:1.13;transition:opacity .35s,transform .35s cubic-bezier(.22,1,.36,1)}.intro-stage.is-opening .intro-preface{opacity:0;transform:translateY(-12px)}.intro-copy:has(.gift[open]) .intro-preface{display:none}.gift>summary{width:fit-content;list-style:none;transition:opacity .35s,transform .35s cubic-bezier(.22,1,.36,1),background .2s}.gift>summary::-webkit-details-marker{display:none}.gift.is-opening>summary{opacity:0;pointer-events:none;transform:translateY(-8px)scale(.96)}.js .gift[open]>summary{display:none}html:not(.js) .gift[open]>summary{color:var(--color-primary);border-color:var(--color-border);background:0 0;margin-bottom:2rem}.birthday-greeting{position:relative}.birthday-greeting>.confetti{top:25%;bottom:auto;left:45%}.birthday-greeting h1{font-size:clamp(3.2rem,5vw,4.5rem);line-height:1.1}.birthday-greeting h1 em{color:var(--color-primary);padding-bottom:.1em;font-weight:400;display:block}.birthday-greeting>p{max-width:35ch;color:var(--color-muted);margin-top:1.5rem;font-size:1.05rem}.js .gift.is-opened .birthday-greeting h1{animation:.65s cubic-bezier(.22,1,.36,1) both greetingFadeUp}.js .gift.is-opened .birthday-greeting>p{animation:.65s cubic-bezier(.22,1,.36,1) .14s both greetingFadeUp}.js .gift.is-opened .birthday-greeting .birthday-scroll-btn{animation:.65s cubic-bezier(.22,1,.36,1) .28s both greetingFadeUp}@keyframes greetingFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.birthday-scroll-btn{border:1px solid var(--color-primary);color:var(--color-text);background:#edc3c814;border-radius:99px;align-items:center;gap:.75rem;margin-top:2rem;padding:.85rem 1.6rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:transform .25s cubic-bezier(.22,1,.36,1),background .25s,color .25s,box-shadow .25s;display:inline-flex;box-shadow:0 4px 18px #1b0a1266}.birthday-scroll-btn:hover{background:var(--color-primary);color:var(--color-bg);transform:translateY(-3px);box-shadow:0 8px 25px #edc3c840}.birthday-scroll-btn:active{transform:scale(.98)}.scroll-arrow{color:var(--color-primary);font-size:1rem;line-height:1;transition:transform .25s,color .25s;display:inline-block}.birthday-scroll-btn:hover .scroll-arrow{color:var(--color-bg);transform:translateY(3px)}.opening-note{color:var(--color-muted);margin-top:1.7rem;font-size:.73rem}.keepsake{isolation:isolate;justify-self:center;width:82%;max-width:345px;position:relative}.keepsake-sheet{background:var(--color-paper);color:var(--color-ink);min-height:425px;box-shadow:var(--shadow-soft);border-radius:var(--radius-sm);flex-direction:column;align-items:center;padding:1.8rem;transition:transform .8s cubic-bezier(.22,1,.36,1),box-shadow .8s;display:flex;position:relative;transform:rotate(5deg)}.keepsake-sheet:before{content:"";pointer-events:none;border:1px solid #ac84945e;position:absolute;inset:12px}.sheet-date{letter-spacing:.25em;align-self:flex-end;font-size:.65rem}.flower-mark{color:#956675;font-size:4rem;font-weight:200;line-height:1;transition:transform .7s cubic-bezier(.22,1,.36,1),color .5s;position:absolute;top:58px;left:35px}.keepsake-letter{font-family:var(--font-display);margin:1rem 0 -.4rem;font-size:11rem;font-style:italic;line-height:1.5}.sheet-caption{font-family:var(--font-display);margin-top:auto;font-size:1.15rem;font-style:italic}.keepsake-underlay{border-radius:var(--radius-sm);z-index:-1;background:#965866;transition:transform .8s cubic-bezier(.22,1,.36,1);position:absolute;inset:8px -12px -10px 10px;transform:rotate(-5deg)}.intro-stage.is-opened .keepsake-sheet{transform:rotate(2deg)translateY(-8px)scale(1.02);box-shadow:0 20px 48px #0006,0 0 32px #edc3c82e}.intro-stage.is-opened .keepsake-underlay{transform:rotate(-6.5deg)translateY(4px)}.intro-stage.is-opened .flower-mark{color:var(--color-primary);transform:rotate(24deg)scale(1.12)}.opening-nav{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1.5rem;min-height:76px;display:flex}.opening-nav>span{font-family:var(--font-display);color:var(--color-primary);font-size:1.2rem;font-style:italic}.opening-nav>div{gap:2.2rem;display:flex}.opening-nav a{min-height:44px;color:var(--color-muted);align-items:center;font-size:.78rem;text-decoration:none;display:inline-flex}.opening-nav a:hover{color:var(--color-text)}.observations-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.observation{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid #66404c55;padding:1.8rem}.observation:nth-child(2),.observation:nth-child(6){background:#482832}.observation:nth-child(3){background:#512d39}.note-number{color:var(--color-accent);letter-spacing:.1em;font-size:.68rem}.observation h3{margin-top:1.1rem;margin-bottom:.8rem;font-size:1.1rem}.observation p{color:var(--color-muted);font-size:.89rem}.likes-section{grid-template-columns:.9fr 1.1fr;gap:6rem;padding-top:2rem;display:grid}.likes-intro h2{max-width:10ch}.likes-intro .handwritten{margin-top:1.7rem;font-size:1.2rem}.quiet-flower{color:var(--color-border);margin-top:2rem;font-size:7rem;line-height:1.2;display:inline-block}.likes-list{counter-reset:affection;list-style:none}.likes-list li{counter-increment:affection;border-top:1px solid var(--color-border);padding:1.75rem 0 1.75rem 2.8rem;position:relative}.likes-list li:before{content:"0" counter(affection);color:var(--color-accent);font-size:.67rem;position:absolute;top:1.95rem;left:0}.likes-list h3{margin-bottom:.65rem;font-size:1.14rem}.likes-list p{color:var(--color-muted);font-size:.92rem}.memories-section{background:var(--color-surface-deep)}.bouquet-memory{grid-template-columns:.95fr 1.05fr;align-items:center;gap:clamp(3rem,7vw,7rem);margin-top:5rem;display:grid}.bouquet-visual{padding:0 .8rem}.bouquet-visual>p{text-align:center;margin-top:2rem;font-size:1.2rem}.polaroid{background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-sm);transform:rotate(var(--tilt));box-shadow:var(--shadow-soft);min-width:0;padding:13px 13px 0;transition:transform .25s}.polaroid img{border-radius:2px;width:100%;height:auto;display:block}.polaroid.bouquet-photo{max-width:440px;margin-inline:auto}.polaroid.bouquet-photo img{aspect-ratio:4/5;object-fit:cover;object-position:center 65%;width:100%}.polaroid figcaption{min-height:62px;font-family:var(--font-display);text-align:center;justify-content:center;align-items:center;padding:.75rem .3rem;font-size:1rem;font-style:italic;line-height:1.45;display:flex}.photo-placeholder{aspect-ratio:4/5;color:#70424f;text-align:center;background:#d8c1bf;border:1px solid #b7979855;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.placeholder-ornament{font-family:var(--font-display);font-size:5rem;font-style:italic;line-height:1.2}.placeholder-label{letter-spacing:.08em;text-transform:uppercase;color:#472c35;max-width:18ch;font-size:.64rem}.bouquet-placeholder{color:#655651;background:#d2c8bd}.bouquet-placeholder .placeholder-ornament{font-size:7rem;font-style:normal}.bouquet-copy h3{font-family:var(--font-display);letter-spacing:-.025em;white-space:pre-line;margin-top:1rem;margin-bottom:1.75rem;font-size:clamp(2rem,3.2vw,3rem);font-weight:400;line-height:1.2}.bouquet-copy p{color:var(--color-muted);margin-top:1rem;font-size:.96rem}.small-memories{grid-template-columns:1fr 1fr;gap:4rem;margin-top:5rem;display:grid}.small-memories article{border-top:1px solid var(--color-border);padding-top:1.8rem}.memory-detail{color:var(--color-accent);font-size:.72rem}.small-memories h3{font-family:var(--font-display);margin-block:.7rem 1rem;font-size:1.7rem}.small-memories p{color:var(--color-muted);font-size:.94rem}.day-panel,.quiz-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:900px;margin-inline:auto;padding:clamp(1.5rem,5vw,4rem);position:relative}.day-panel .section-heading{margin-bottom:2rem}.day-panel h2{font-size:clamp(2rem,4vw,3rem)}.day-fallback details{border-top:1px solid var(--color-border);padding-block:1rem}summary{cursor:pointer}.day-fallback summary{min-height:44px;color:var(--color-text)}.day-fallback ul{margin-top:.6rem;padding-left:1rem;list-style:none}.day-fallback li{color:var(--color-muted);padding-block:.3rem;font-size:.92rem}.day-progress-wrap{flex-direction:column;gap:.6rem;margin-bottom:2rem;display:flex}.day-step-label{letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent);font-size:.74rem;font-weight:500}.day-progress-bar{background:var(--color-border);border-radius:99px;width:100%;height:3px;overflow:hidden}.day-progress-fill{background:linear-gradient(90deg, var(--color-accent), var(--color-primary));width:16.6%;height:100%;transition:width .3s}.day-prompt{font-family:var(--font-display);color:var(--color-text);margin-bottom:1.75rem;scroll-margin:2rem;font-size:clamp(1.45rem,3vw,2rem);line-height:1.35}[tabindex="-1"]:focus{outline:none}.day-options{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.day-option{text-align:left;background:var(--color-bg);width:100%;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;min-height:64px;padding:1.15rem 1.4rem;font-size:.98rem;line-height:1.45;transition:transform .2s,border-color .2s,background .2s;display:flex}.day-option:hover{border-color:var(--color-primary);transform:translateY(-2px)}.day-option:active{transform:scale(.99)}.day-option.is-selected{border-color:var(--color-primary);color:#fff;box-shadow:inset 0 0 0 1px var(--color-primary), 0 4px 14px #1b0a1244;background:#2b141d}.day-opt-marker{color:var(--color-accent);flex-shrink:0;font-size:1.1rem;line-height:1}.day-option.is-selected .day-opt-marker{color:var(--color-primary)}.day-reaction{min-height:2.2rem;font-family:var(--font-display);color:var(--color-primary);margin-top:1.5rem;font-size:1.22rem;font-style:italic;line-height:1.5}.day-reaction:empty{min-height:0;margin-top:0}.day-nav{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;padding-top:1.75rem;display:flex}.day-result-heading{font-family:var(--font-display);text-align:center;margin-bottom:2rem;scroll-margin:2rem;font-size:clamp(1.85rem,3.5vw,2.5rem)}.day-flow{flex-direction:column;align-items:center;gap:.65rem;width:100%;max-width:460px;margin:0 auto;display:flex}.flow-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;flex-direction:column;gap:.25rem;width:100%;padding:.95rem 1.4rem;display:flex;box-shadow:0 4px 14px #1b0a1226}.flow-sublabel{text-transform:uppercase;letter-spacing:.14em;color:var(--color-accent);font-size:.68rem}.flow-text{font-family:var(--font-display);color:var(--color-text);font-size:1.18rem;line-height:1.4}.flow-arrow{color:var(--color-primary);opacity:.85;font-size:1.25rem;line-height:1}.day-closing{max-width:52ch;font-family:var(--font-display);text-align:center;color:var(--color-primary);margin:2.5rem auto 1.5rem;font-size:1.22rem;font-style:italic;line-height:1.65}.day-actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1.5rem;display:flex}.day-kept-status{text-align:center;font-family:var(--font-display);color:var(--color-primary);margin-top:1.2rem;font-size:1.15rem;font-style:italic}.sweet-section{text-align:center;max-width:760px;padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(3rem,5vw,4.5rem)}.sweet-mark{color:var(--color-primary);margin-bottom:1.5rem;font-size:3.2rem;line-height:1.4;transition:transform .8s cubic-bezier(.25,1,.5,1);display:inline-block}.sweet-section h2{font-size:clamp(2rem,4vw,3rem)}.sweet-section .muted{margin-top:.8rem}.message-space{flex-direction:column;justify-content:center;align-items:center;gap:.85rem;min-height:175px;margin:1rem auto;display:flex}.sweet-message{font-family:var(--font-display);max-width:42ch;font-size:clamp(1.3rem,2.6vw,1.75rem);line-height:1.6;transition:opacity .35s,transform .35s}.sweet-message.is-changing{opacity:0;transform:scale(.97)}.matcha-section{border-top:1px solid var(--color-border);text-align:center;padding-block:clamp(3.5rem,6vw,5.5rem)}.matcha-content{flex-direction:column;align-items:center;max-width:680px;margin-inline:auto;display:flex}.matcha-content .eyebrow{margin-bottom:1.25rem}.matcha-heading{font-family:var(--font-display);letter-spacing:-.035em;color:var(--color-text);text-wrap:balance;margin:0;font-size:clamp(2.1rem,3.8vw,3.2rem);font-weight:400;line-height:1.2}.matcha-sub{color:var(--color-muted);text-wrap:pretty;max-width:48ch;margin-top:1.25rem;font-size:clamp(1rem,1.8vw,1.12rem);line-height:1.65}.matcha-action{margin-top:2.25rem}.matcha-selfie-trigger{font-family:var(--font-body);border:1px solid var(--color-primary);min-height:48px;color:var(--color-text);cursor:pointer;background:#edc3c814;border-radius:99px;justify-content:center;align-items:center;gap:.65rem;padding:.85rem 1.8rem;font-size:.92rem;font-weight:500;transition:transform .25s cubic-bezier(.22,1,.36,1),background .25s,color .25s,box-shadow .25s;display:inline-flex;box-shadow:0 4px 18px #1b0a1266}.matcha-selfie-trigger:hover{background:var(--color-primary);color:var(--color-bg);transform:translateY(-2px);box-shadow:0 8px 25px #edc3c840}.matcha-selfie-trigger:active{transform:scale(.98)}.matcha-selfie-trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.matcha-modal{color:#fdf6f7;z-index:999;background:linear-gradient(165deg,#281420 0%,#160a12 100%);border:1px solid #e0a0af40;border-radius:20px;width:calc(100% - 32px);max-width:440px;max-height:88vh;margin:auto;padding:2rem 1.6rem;position:fixed;inset:0;overflow-y:auto;box-shadow:0 25px 60px -10px #000000d9}.matcha-modal::backdrop{backdrop-filter:blur(8px);background:#0a0408d1}.matcha-modal-inner{text-align:center;position:relative}.matcha-modal-close{border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-muted);cursor:pointer;background:#ffffff0d;border-radius:50%;place-items:center;font-size:1rem;transition:all .2s;display:grid;position:absolute;top:-8px;right:-6px}.matcha-modal-close:hover{color:#fff;background:#ffffff26;transform:scale(1.08)}.matcha-modal h3{font-size:1.45rem;font-family:var(--font-display);color:var(--color-primary)}.matcha-modal-sub{color:var(--color-muted);margin-top:.45rem;font-size:.84rem;line-height:1.55}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.selfie-preview-area{background:#00000040;border:1.5px dashed #e0a0af4d;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:200px;margin:1.25rem auto 1rem;padding:.75rem;display:flex;position:relative;overflow:hidden}.selfie-preview-area.has-photos{background:#00000059;border-style:solid;border-color:#e0a0af59}.selfie-placeholder{text-align:center;flex-direction:column;align-items:center;gap:.65rem;padding:.85rem;display:flex}.selfie-icon{font-size:2.2rem}.selfie-consent{color:#d0b8be;max-width:32ch;font-size:.8rem;line-height:1.5}.selfie-previews-container{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:.85rem;width:100%;max-height:300px;padding:.25rem;display:grid;overflow-y:auto}.selfie-previews-container.single-photo{grid-template-columns:1fr;max-width:240px;margin:0 auto}.selfie-thumb-card{background:#efe4d7;border-radius:4px;padding:6px 6px 16px;animation:.3s both polaroid-drop;position:relative;box-shadow:0 4px 12px #00000073}.selfie-thumb-card img{aspect-ratio:1;object-fit:cover;border-radius:2px;width:100%;display:block}.selfie-previews-container.single-photo .selfie-thumb-card img{aspect-ratio:4/5}.selfie-thumb-remove{color:#fff;cursor:pointer;z-index:5;background:#a84255;border:1px solid #fff6;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.75rem;transition:transform .15s,background .15s;display:grid;position:absolute;top:-6px;right:-6px}.selfie-thumb-remove:hover{background:#c93d58;transform:scale(1.15)}.matcha-modal-actions{flex-direction:column;gap:.75rem;width:100%;margin-top:1.25rem;display:flex}.matcha-submit-btn{cursor:pointer;justify-content:center;align-items:center;gap:.5rem;width:100%;transition:all .2s;display:flex;background:var(--color-primary)!important;color:#240d17!important;border:1px solid var(--color-primary)!important;border-radius:99px!important;min-height:50px!important;padding:.85rem 1.4rem!important;font-size:.95rem!important;font-weight:600!important;box-shadow:0 4px 16px #0006!important}.matcha-submit-btn:hover{transform:translateY(-2px);color:#240d17!important;background:#fff!important;border-color:#fff!important;box-shadow:0 6px 20px #00000080!important}.matcha-submit-btn:disabled{opacity:.65;cursor:wait;transform:none!important}.matcha-pick-btn{cursor:pointer;justify-content:center;align-items:center;gap:.5rem;width:100%;transition:all .2s;display:flex;border:1px solid var(--color-primary)!important;color:#fff9fa!important;background:#edc3c814!important;border-radius:99px!important;min-height:46px!important;padding:.75rem 1.4rem!important;font-size:.9rem!important;font-weight:550!important}.matcha-pick-btn:hover{color:#fff!important;background:#edc3c833!important;border-color:#fff!important}.selfie-delete-all-btn{color:#e88b9c;text-underline-offset:3px;cursor:pointer;opacity:.85;background:0 0;border:none;margin-top:.75rem;padding:.35rem;font-size:.82rem;text-decoration:underline;transition:all .2s;display:inline-block}.selfie-delete-all-btn:hover{opacity:1;color:#ff9cb0}.matcha-modal-status{color:var(--color-accent);min-height:1.2rem;font-size:.85rem;font-family:var(--font-display);margin-top:.85rem;font-style:italic}.secret-polaroid-slot{display:contents}.secret-polaroid{animation:.6s cubic-bezier(.22,1,.36,1) both polaroid-drop;position:relative}.secret-polaroid-badge{color:#fff;letter-spacing:.06em;text-transform:uppercase;z-index:5;pointer-events:none;background:linear-gradient(135deg,#e6a5b2,#b8546b);border-radius:99px;padding:3px 8px;font-size:.62rem;font-weight:600;position:absolute;top:10px;right:10px;box-shadow:0 2px 8px #0006}.secret-polaroid-remove{color:#fff;cursor:pointer;z-index:8;opacity:.75;background:#24101abf;border:1px solid #0003;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.75rem;transition:all .2s;display:grid;position:absolute;top:10px;left:10px}.secret-polaroid-remove:hover{opacity:1;background:#a84255;transform:scale(1.15);box-shadow:0 2px 8px #00000080}.button-delete{color:#f7a8b8;border-color:#e0788c59}.button-delete:hover{color:#fff;background:#e6627a26;border-color:#e6627a}@keyframes polaroid-drop{0%{opacity:0;transform:translateY(-20px)scale(.92)rotate(0)}to{opacity:1;transform:translateY(0) scale(1) rotate(var(--tilt))}}.song-list{border-top:1px solid var(--color-border)}.song{border-bottom:1px solid var(--color-border);grid-template-columns:116px 1fr auto;align-items:center;gap:2rem;padding-block:2rem;display:grid}.song-art{width:116px;height:116px;color:var(--color-paper);background:#655454;border:1px solid #bca6a755;place-items:center;display:grid;position:relative;overflow:hidden}.song-art:before{content:"";border:1px solid #dac0c255;border-radius:50%;width:90px;height:90px;position:absolute}.song-art span{font-family:var(--font-display);padding-bottom:.2em;font-size:3.6rem;font-style:italic;line-height:1}.song-art-1{background:#683c4b}.song-art-2{background:#4a2835}.song-info h3{font-family:var(--font-display);font-size:1.7rem}.song-artist{color:var(--color-primary);margin-top:.1rem;font-size:.83rem}.song-description{color:var(--color-muted);max-width:48ch;margin-top:.7rem;font-size:.89rem}.song-info small{color:var(--color-muted);margin-top:.55rem;font-size:.69rem;display:block}.song-actions{flex-direction:column;align-items:center;gap:.7rem;display:flex}.song.is-playing{border-radius:var(--radius-sm);border-color:var(--color-primary);background:#3c1e2b}.audio-player-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:720px;margin-top:2rem;padding:1.5rem 1.75rem;box-shadow:0 8px 25px #1b0a1240}.player-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.player-now-playing{align-items:center;gap:1rem;display:flex}.player-indicator{color:var(--color-primary);font-size:1.5rem;animation:6s ease-in-out infinite gentle-float;display:inline-block}.player-kicker{text-transform:uppercase;letter-spacing:.15em;color:var(--color-accent);font-size:.68rem;display:block}.player-song-title{font-family:var(--font-display);color:var(--color-text);margin-top:.15rem;font-size:1.22rem}.player-song-artist{color:var(--color-muted);font-size:.84rem}.player-heading button{flex-shrink:0}.audio-element{border-radius:99px;outline:none;width:100%;height:44px;margin-top:1.25rem}.player-notice{color:#f7a8b8;border-radius:var(--radius-sm);border-left:3px solid var(--color-accent);background:#4d243255;margin-top:.9rem;padding:.65rem 1rem;font-size:.84rem}.confetti{pointer-events:none;position:absolute;bottom:5rem;left:50%}.confetti i{background:var(--color-primary);width:5px;height:9px;animation:1.3s ease-out both confetti;animation-delay:var(--delay);position:absolute}.confetti i:nth-child(3n){background:var(--color-accent)}.confetti i:nth-child(2n){border-radius:50%}@keyframes confetti{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}.gallery-section{padding-top:2rem}.gallery-scrapbook{margin-top:1.5rem;position:relative}.scrapbook-frame{background:linear-gradient(135deg,#2d1822 0%,#1a0c14 45%,#25131e 100%);border:1px solid #e0a0af24;border-radius:20px;padding:14px;position:relative;box-shadow:0 35px 70px -15px #000000d9,0 12px 28px -5px #0009,inset 0 1px 2px #ffffff1f,inset 0 -2px 4px #0009}.scrapbook-corner{z-index:2;background:radial-gradient(circle at 35% 35%,#f4c4cd 0%,#a85869 60%,#541f2a 100%);border-radius:50%;width:9px;height:9px;position:absolute;box-shadow:0 1px 2px #000c,inset 0 1px 1px #ffffff80}.scrapbook-corner.corner-tl{top:7px;left:7px}.scrapbook-corner.corner-tr{top:7px;right:7px}.scrapbook-corner.corner-bl{bottom:7px;left:7px}.scrapbook-corner.corner-br{bottom:7px;right:7px}.scrapbook-canvas{background-color:#1a0d14;background-image:radial-gradient(90% 40% at 50% 0,#eba0af14 0%,#0000 80%),repeating-linear-gradient(90deg,#0000 0 calc(33.333% - 1px),#00000080 calc(33.333% - 1px),#ffffff08 33.333%),repeating-linear-gradient(0deg,#00000029 0 1px,#0000 1px 3px),radial-gradient(120% 70% at 15% 35%,#3c1e2a8c 0%,#0000 60%),radial-gradient(110% 80% at 85% 65%,#32192480 0%,#0000 60%),linear-gradient(175deg,#23121c 0%,#190b13 55%,#13070f 100%);border-radius:12px;padding:3.5rem 2.25rem;position:relative;box-shadow:inset 0 4px 22px #000000d9,inset 0 0 50px #060205a6}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:3rem 2.5rem;padding:1rem .65rem;display:grid}.gallery-grid .polaroid{transform:rotate(var(--tilt));position:relative;box-shadow:0 12px 28px -4px #0000008c,0 3px 8px #00000059}.gallery-grid .polaroid:nth-child(3n+2){margin-top:1.8rem;margin-bottom:-1.8rem}.gallery-grid .polaroid:nth-child(2n) .photo-placeholder{background:#c7b5b1}.gallery-grid .polaroid:nth-child(3n) .photo-placeholder{background:#d8c7bd}.gallery-action{justify-content:center;margin-top:clamp(1.75rem,4vw,2.5rem);display:flex}.button-prominent{text-align:center;gap:.75rem;max-width:100%;min-height:56px;padding:.85rem 1.5rem;font-size:.95rem;transition:transform .2s,background .2s,box-shadow .2s;box-shadow:0 4px 12px #1b0a1233}.button-prominent:hover{background:var(--color-text);box-shadow:0 7px 18px #1b0a124d}.button-prominent:active{box-shadow:0 2px 5px #1b0a1233}.gallery-add-button{text-align:left;padding-left:1.25rem}.gallery-add-icon{flex:0 0 26px;width:26px;height:26px;display:block}.gallery-note{text-align:center;margin-top:4rem;font-size:1.15rem}.polaroid.is-pinned{position:relative;overflow:visible}.polaroid-pin{top:-9px;left:calc(50% + var(--pin-x,0px));z-index:10;pointer-events:none;background:radial-gradient(circle at 35% 30%,#fff2f5 0%,#f0a8b7 30%,#b8546b 70%,#682131 100%);border-radius:50%;width:17px;height:17px;transition:transform .3s;position:absolute;transform:translate(-50%);box-shadow:0 4px 8px #000000a6,0 1px 2px #00000073,inset 0 1px 1.5px #ffffffd9,inset 0 -1.5px 2px #00000080}.polaroid-pin:before{content:"";filter:blur(.5px);background:#ffffffd9;border-radius:50%;width:5px;height:5px;position:absolute;top:3px;left:4px}.polaroid-pin:after{content:"";filter:blur(2px);z-index:-1;background:#00000059;border-radius:50%;width:13px;height:13px;position:absolute;top:8px;left:2px}.js .gallery-grid .polaroid{opacity:0;transform:translateY(16px) rotate(var(--tilt))}.js .gallery-grid .polaroid.is-revealed{opacity:1;transform:translateY(0) rotate(var(--tilt))}.future-section{grid-template-columns:1fr 1fr;gap:6rem;display:grid}.future-section h2,.future-section h3{font-size:clamp(2.1rem,3.5vw,2.8rem);font-family:var(--font-display);letter-spacing:-.045em;font-weight:400;line-height:1.16}.future-section p{color:var(--color-muted);margin-top:1.25rem;font-size:.92rem}.curiosity ul{margin-top:2rem;list-style:none}.curiosity li{border-top:1px solid var(--color-border);font-family:var(--font-display);padding:1rem 0;font-size:1.15rem}.hopes{background:var(--color-surface);border-radius:var(--radius-sm);padding:2.3rem}.tiny-aster{color:var(--color-primary);margin-bottom:1.5rem;font-size:2rem;line-height:1;display:block}.hopes ul{margin-top:1.75rem;list-style:none}.hopes li{gap:.9rem;padding-block:.5rem;font-size:.86rem;display:flex}.hopes li span{color:var(--color-accent)}.letter-section{background:var(--color-surface-deep);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding-bottom:7rem}.letter-wrap{width:min(700px,100% - 64px);margin-inline:auto}.letter-heading{text-align:center;margin-bottom:3rem}.letter-heading h2{margin-top:1.3rem;font-size:clamp(2.8rem,5vw,4rem)}.letter-flower{color:var(--color-accent);margin-top:1.6rem;font-size:2.5rem;display:inline-block}.envelope-stage{width:100%;margin:0 auto;position:relative}.envelope-wrapper{perspective:1200px;width:100%;max-width:420px;margin:1.5rem auto 2.5rem;transition:opacity .5s,max-height .8s cubic-bezier(.22,1,.36,1),transform .6s,margin .5s}.envelope-card{cursor:pointer;background:linear-gradient(150deg,#301322 0%,#1a0712 100%);border-radius:14px;width:100%;height:250px;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s;position:relative;box-shadow:0 16px 40px #0009,0 0 0 1.5px #e0a0af4d}.envelope-card:hover{transform:translateY(-6px);box-shadow:0 24px 52px #000000b3,0 0 28px #e0a0af59,0 0 0 2px #e0a0afa6}.envelope-card:hover .envelope-flap{border-bottom-color:#e0a0afb3}.envelope-card:hover .wax-seal{transform:translate(-50%,-50%)scale(1.15)}.envelope-card:hover .seal-body{box-shadow:0 12px 30px #000000bf,inset 0 2px 5px #ffffff73,inset 0 -4px 8px #0009,0 0 0 3px #ffd6e0cc,0 0 25px #e0a0afa6}.envelope-back{background:#1d0914;border-radius:12px;position:absolute;inset:0;overflow:hidden}.letter-peek{background:#efe4d8;border-radius:6px 6px 0 0;flex-direction:column;gap:12px;height:170px;padding:24px 20px;transition:transform .6s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:14px;left:20px;right:20px;box-shadow:inset 0 2px 8px #00000026}.envelope-stage.is-opening .letter-peek{transform:translateY(-90px)}.peek-line{background:#8c646e33;border-radius:3px;width:90%;height:5px}.peek-line.short{width:60%}.envelope-pocket{z-index:3;pointer-events:none;border-radius:12px;position:absolute;inset:0;overflow:hidden}.pocket-left{clip-path:polygon(0 0,0 100%,50% 50%);background:#220c18;position:absolute;inset:0}.pocket-right{clip-path:polygon(100% 0,100% 100%,50% 50%);background:#1f0a15;position:absolute;inset:0}.pocket-bottom{clip-path:polygon(0 100%,100% 100%,50% 48%);background:#2a101e;position:absolute;inset:0;box-shadow:0 -4px 16px #00000073}.envelope-address{text-align:center;z-index:4;width:100%;position:absolute;bottom:22px;left:0}.address-to{font-family:var(--font-display);color:var(--color-primary);letter-spacing:.03em;text-shadow:0 2px 8px #0009;font-size:1.3rem;font-style:italic;display:block}.address-from{color:var(--color-muted);text-transform:uppercase;letter-spacing:.15em;margin-top:3px;font-size:.7rem;display:block}.envelope-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;width:100%;height:130px;transform-style:preserve-3d;z-index:5;background:linear-gradient(#3a1526 0%,#290f1d 100%);border-bottom:1px solid #e0a0af59;transition:transform .65s cubic-bezier(.34,1.15,.64,1),z-index .1s step-end;position:absolute;top:0;left:0;box-shadow:0 6px 16px #0006}.envelope-stage.is-opening .envelope-flap,.envelope-stage.is-open .envelope-flap{z-index:1;transform:rotateX(180deg)}.wax-seal{z-index:10;cursor:pointer;background:0 0;border:none;place-items:center;width:72px;height:72px;padding:0;transition:transform .35s cubic-bezier(.34,1.5,.64,1),opacity .3s;display:grid;position:absolute;top:130px;left:50%;transform:translate(-50%,-50%)}.wax-seal:hover{transform:translate(-50%,-50%)scale(1.18)}.wax-seal:focus-visible{outline-offset:5px;border-radius:50%;outline:3px solid #fff}.seal-body{background:radial-gradient(circle at 35% 35%,#bf2649 0%,#7d1428 65%,#420813 100%);border-radius:50%;place-items:center;width:66px;height:66px;transition:box-shadow .3s;display:grid;position:relative;box-shadow:0 6px 18px #0009,inset 0 2px 4px #ffffff4d,inset 0 -3px 6px #00000080,0 0 0 2px #e0a0af66}.wax-seal:hover .seal-body{box-shadow:0 8px 24px #000000b3, inset 0 2px 4px #fff6, inset 0 -3px 6px #00000080, 0 0 0 2px var(--color-primary), 0 0 16px #e0a0af59}.seal-rim{border:1px dashed #ffdce4a6;border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.seal-initial{font-family:var(--font-display);color:#fff2f5;text-shadow:0 1px 3px #000000e6;font-size:1.5rem;font-weight:700;line-height:1}.seal-glow{opacity:0;pointer-events:none;border:1px solid #e0a0af66;border-radius:50%;animation:3s ease-in-out infinite seal-pulse;position:absolute;inset:-4px}@keyframes seal-pulse{0%{opacity:.6;transform:scale(.95)}50%{opacity:0;transform:scale(1.18)}to{opacity:0;transform:scale(1.18)}}.envelope-stage.is-opening .wax-seal{opacity:0;pointer-events:none;transform:translate(-50%,-50%)scale(1.2)}.envelope-action{justify-content:center;width:100%;margin-top:1.75rem;display:flex}.envelope-action-btn{border:1px solid var(--color-border);min-height:46px;color:var(--color-text);letter-spacing:.03em;cursor:pointer;background:#edc3c80f;border-radius:99px;align-items:center;gap:.65rem;padding:.75rem 1.6rem;font-size:.88rem;font-weight:500;transition:all .25s cubic-bezier(.22,1,.36,1);display:inline-flex;box-shadow:0 4px 14px #0000004d}.envelope-action-btn:hover{background:var(--color-primary);border-color:var(--color-primary);color:#240d17;transform:translateY(-2px);box-shadow:0 6px 20px #e0a0af59}.envelope-btn-arrow{font-size:.9rem;transition:transform .2s;display:inline-block}.envelope-action-btn:hover .envelope-btn-arrow{transform:translateY(2px)}.js .envelope-stage.is-open .envelope-wrapper{opacity:0;pointer-events:none;max-height:0;margin:0;overflow:hidden;transform:translateY(-20px)scale(.92)}.letter-sheet{width:100%}.js .letter-sheet{opacity:0;pointer-events:none;max-height:0;transition:max-height .9s cubic-bezier(.22,1,.36,1),opacity .65s,transform .75s cubic-bezier(.22,1,.36,1);overflow:hidden;transform:translateY(28px)scale(.97)}.js .envelope-stage.is-open .letter-sheet{opacity:1;pointer-events:auto;max-height:4000px;overflow:visible;transform:translateY(0)scale(1)}.letter-paper{background:linear-gradient(#26101ad9 0%,#1a0a12f5 100%);border:1px solid #e0a0af3d;border-radius:14px;padding:clamp(2rem,5vw,3.8rem);position:relative;box-shadow:0 16px 44px #0000008c,inset 0 1px #ffffff0f}.letter-watermark{color:#e0a0af66;letter-spacing:.08em;font-size:.74rem;font-family:var(--font-display);font-style:italic;position:absolute;top:1.5rem;right:2rem}.letter-body{color:#e3cdd0;font-size:1rem;line-height:1.95}.letter-body p+p{margin-top:1.5rem}.letter-body .salutation{font-family:var(--font-display);color:var(--color-text);margin-bottom:1.75rem;font-size:1.7rem;font-style:italic}.letter-body .letter-closing{color:var(--color-primary);font-family:var(--font-display);white-space:pre-line;margin-top:2.5rem;font-size:1.7rem;line-height:1.55}.signature{color:var(--color-text);margin-top:3rem}.signature p{font-size:.8rem}.signature span{font-family:var(--font-display);font-size:2.7rem;font-style:italic;line-height:1.5;display:block}.letter-fold-action{border-top:1px dashed #e0a0af33;justify-content:center;margin-top:3.5rem;padding-top:2rem;display:flex}.fold-letter-btn{color:var(--color-muted);cursor:pointer;background:0 0;border:1px solid #e0a0af4d;border-radius:99px;align-items:center;gap:.5rem;padding:.65rem 1.4rem;font-size:.84rem;transition:all .2s;display:inline-flex}.fold-letter-btn:hover{border-color:var(--color-primary);color:#fff9fa;background:#edc3c81a;transform:translateY(-2px)}html:not(.js) .envelope-wrapper{display:none!important}html:not(.js) .letter-sheet{opacity:1!important;max-height:none!important;transform:none!important}.footer{border-top:1px solid var(--color-border);padding-block:4rem 2rem}.footer-love{font-family:var(--font-display);color:var(--color-primary);text-align:center;font-size:1.7rem}.visitor-counter{color:var(--color-muted);text-align:center;justify-content:center;align-items:baseline;gap:.35rem;margin-top:1rem;font-size:.78rem;display:flex}.visitor-counter>span{color:var(--color-primary);font-size:1rem}.visitor-counter strong{color:var(--color-text);font-variant-numeric:tabular-nums}html:not(.js) [data-matcha-trigger]{display:none}.matcha-modal-close,.selfie-thumb-remove,.secret-polaroid-remove{min-width:44px;min-height:44px}button:disabled{opacity:.6;cursor:wait}.footer>div{border-top:1px solid var(--color-border);color:var(--color-muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:3rem;padding-top:1.5rem;font-size:.7rem;display:flex}.footer a{align-items:center;min-height:44px;display:inline-flex}.js .reveal-on-scroll{opacity:0;will-change:opacity, transform;transition:opacity 1.1s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1);transform:translateY(12px)}.js .reveal-on-scroll.is-revealed{opacity:1;transform:translateY(0)}@media (hover:hover) and (prefers-reduced-motion:no-preference){.observation{transition:transform .4s,box-shadow .4s,border-color .4s}.observation:hover{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:0 10px 24px #1b0a1244}.likes-list li{transition:padding-left .4s,border-color .4s}.likes-list li:hover{border-color:var(--color-primary);padding-left:3.1rem}.small-memories article{transition:transform .35s}.small-memories article:hover{transform:translateY(-2px)}.gallery-grid .polaroid{transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s}.gallery-grid .polaroid:hover{z-index:12;transform:rotate(0)translateY(-8px)scale(1.025);box-shadow:0 24px 48px -6px #000000bf,0 8px 16px #00000073}.gallery-grid .polaroid:hover .polaroid-pin{transform:translate(-50%)scale(1.08)}.signature span{transition:transform .45s,color .45s;display:inline-block}.signature span:hover{color:var(--color-primary);transform:scale(1.05)rotate(-1.5deg)}}@media (prefers-reduced-motion:no-preference){.birthday-greeting{animation:1s cubic-bezier(.22,1,.36,1) unwrap}@keyframes unwrap{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.keepsake-sheet{animation:10s ease-in-out infinite gentle-float}@keyframes gentle-float{0%,to{transform:rotate(5deg)translateY(0)}50%{transform:rotate(3.8deg)translateY(-5px)}}.flower-mark,.letter-flower,.tiny-aster,.sweet-mark{transform-origin:50%;animation:6.5s ease-in-out infinite flower-breathe;display:inline-block}@keyframes flower-breathe{0%,to{opacity:.78;transform:scale(1)}50%{opacity:1;filter:drop-shadow(0 0 5px #edc3c859);transform:scale(1.06)}}.gift:not([open])>summary.button{animation:4.5s ease-in-out infinite pulse-invite}@keyframes pulse-invite{0%,to{box-shadow:0 0 #edc3c873}50%{box-shadow:0 0 0 9px #edc3c800}}.day-option.is-selected .day-opt-marker{animation:.48s cubic-bezier(.22,1,.36,1.2) heartPop}@keyframes heartPop{0%{transform:scale(.5)}50%{transform:scale(1.3)}to{transform:scale(1)}}.day-step-content{animation:.55s cubic-bezier(.22,1,.36,1) stepFade}@keyframes stepFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.flow-card{animation:.65s cubic-bezier(.22,1,.36,1) backwards flowCascade;animation-delay:calc(var(--flow-idx,0) * .14s)}.flow-arrow{animation:.65s cubic-bezier(.22,1,.36,1) backwards flowCascade;animation-delay:calc((var(--flow-idx,0) + .5) * .14s)}@keyframes flowCascade{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}}@media (width<=1023px){.intro-stage{gap:2.5rem}.keepsake{width:88%}.keepsake-sheet{min-height:360px}.keepsake-letter{font-size:9rem}.observations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.likes-section,.future-section{gap:3rem}.scrapbook-canvas{padding:2.75rem 1.6rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.8rem}.gallery-grid .polaroid:nth-child(3n+2){margin:0}.gallery-grid .polaroid:nth-child(2n){margin-top:1rem;margin-bottom:-1rem}.song{gap:1.5rem}}@media (width<=767px){.wrap{width:calc(100% - 40px)}.opening-top{letter-spacing:.04em;padding-top:1.25rem;font-size:.6rem}.intro-stage{grid-template-columns:1fr;gap:2rem;min-height:calc(100svh - 135px);padding-block:3rem}.intro-copy{z-index:1;position:relative}.intro-preface{max-width:12ch;margin-bottom:1.75rem;font-size:clamp(2.8rem,9.8vw,4.5rem)}.birthday-greeting h1{font-size:clamp(3rem,10vw,4.3rem)}.birthday-greeting>p{font-size:1rem}.keepsake{opacity:.65;pointer-events:none;width:100px;position:absolute;top:5rem;right:2rem}.keepsake-sheet{min-height:125px;padding:.65rem}.keepsake-sheet:before{inset:5px}.keepsake-letter{margin:0;font-size:3.6rem}.sheet-date{font-size:.3rem}.sheet-caption{font-size:.36rem}.flower-mark{font-size:1.2rem;top:23px;left:12px}.keepsake-underlay{inset:3px -4px -3px 3px}.intro-copy{padding-top:3.7rem}.opening-nav{gap:.6rem;min-height:64px}.opening-nav>span{font-size:1rem}.opening-nav>div{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:1.1rem;max-width:100%;padding-block:.4rem;display:flex;overflow-x:auto}.opening-nav>div::-webkit-scrollbar{display:none}.opening-nav a{white-space:nowrap;flex-shrink:0;font-size:.68rem}.section-heading{margin-bottom:2.5rem}.section-heading p{font-size:.94rem}.observations-grid{grid-template-columns:1fr;gap:.8rem}.observation{padding:1.5rem}.observation h3{margin-top:.5rem}.likes-section{grid-template-columns:1fr;gap:2.5rem}.likes-intro h2{max-width:15ch}.quiet-flower{display:none}.likes-list li{padding-left:2.2rem}.bouquet-memory{grid-template-columns:1fr;gap:3rem;margin-top:3rem}.bouquet-visual{width:min(100%,420px);margin-inline:auto}.bouquet-copy h3{font-size:2.1rem}.small-memories{grid-template-columns:1fr;gap:2.5rem;margin-top:3rem}.polaroid{transform:none}.song{grid-template-columns:70px 1fr;align-items:start;gap:1rem}.song-art{width:70px;height:80px}.song-art:before{width:58px;height:58px}.song-art span{font-size:2.7rem}.song-info h3{font-size:1.5rem}.song-actions{flex-flow:wrap;grid-column:2;gap:.7rem 1rem}.song-actions .button{min-height:44px;padding:.5rem 1.1rem}.audio-player-panel,.player-panel{padding:1.25rem 1rem}.player-heading{flex-direction:column;align-items:start;gap:.75rem}.day-options{grid-template-columns:1fr;gap:.75rem}.day-option{min-height:56px;padding:.95rem 1.15rem;font-size:.94rem}.day-prompt{font-size:1.35rem}.day-flow{max-width:100%}.day-actions{flex-direction:column;width:100%}.day-actions .button{width:100%}.scrapbook-frame{border-radius:16px;padding:8px}.scrapbook-canvas{border-radius:10px;padding:2.2rem .85rem}.gallery-grid{grid-template-columns:1fr;gap:2rem;max-width:430px;margin-inline:auto;padding:0 .4rem}.gallery-grid .polaroid:nth-child(n){margin:0}.gallery-grid .polaroid{transform:rotate(calc(var(--tilt) * .7))}.js .gallery-grid .polaroid{transform:translateY(14px) rotate(calc(var(--tilt) * .7))}.js .gallery-grid .polaroid.is-revealed{transform:translateY(0) rotate(calc(var(--tilt) * .7))}.gallery-note{margin-top:2.5rem}.future-section{grid-template-columns:1fr;gap:3rem}.hopes{padding:1.75rem}.letter-wrap{width:calc(100% - 44px)}.letter-heading .eyebrow{letter-spacing:.12em;font-size:.62rem}.letter-body{font-size:.96rem}.envelope-card{height:220px}.envelope-flap{height:115px}.wax-seal{width:64px;height:64px;top:115px}.seal-body{width:64px;height:64px}.seal-rim{width:46px;height:46px}.seal-initial{font-size:1.3rem}.envelope-action-btn{justify-content:center;width:100%;max-width:300px}.letter-paper{padding:1.85rem 1.25rem}.letter-watermark{display:none}.footer>div{flex-direction:column;gap:.6rem;margin-top:2rem}}@media (width<=389px){.opening-nav>span{display:none}.opening-nav>div{gap:.85rem;width:100%}.opening-nav a{font-size:.65rem}.keepsake{width:84px;top:4.1rem;right:1.8rem}.keepsake-sheet{min-height:105px}.keepsake-letter{font-size:3rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.button:hover,.button:active{transform:none}.confetti{display:none}.envelope-wrapper,.letter-sheet,.envelope-flap,.wax-seal,.letter-peek{transition:none!important;animation:none!important}.js .reveal-on-scroll{opacity:1!important;transition:none!important;transform:none!important}}
