@import "https://fonts.googleapis.com/css2?family=DM+Mono&family=DM+Serif+Display:ital@0;1&family=Petit+Formal+Script&display=swap";:root{color:#461a25;background:#f6ede2;font-family:DM Mono,monospace}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}.entry{color:#fff9ef;background:radial-gradient(circle at 80% 10%,#a14c60,#0000 45%),#3e1523;place-items:center;min-height:100dvh;padding:1.25rem;display:grid}.entry-card{text-align:center;background:#fff1;border:1px solid #fff8;border-radius:1.4rem;width:min(100%,31rem);padding:2.25rem 1.5rem;box-shadow:0 25px 80px #13050a55}.eyebrow{letter-spacing:.18em;font-size:.66rem;line-height:1.7}.tiny-heart{color:#e8a6a1;margin:.8rem;font-size:1.6rem}.entry h1,.hero h1,h2{font-family:DM Serif Display,serif;font-weight:400}.entry h1{margin:0;font-size:clamp(2.4rem,11vw,4.4rem);line-height:.95}.entry-copy{margin:1.4rem auto 2rem;font-family:DM Serif Display;font-size:1.15rem;line-height:1.45}.entry form{text-align:left}.entry label{margin-bottom:.65rem;font-size:.72rem;display:block}.entry input,.entry button{border-radius:.45rem;width:100%;min-height:3.25rem;padding:0 1rem}.entry input{color:#fff;background:0 0;border:1px solid #fff8}.entry button{color:#521d2b;background:#ffe9dd;border:0;margin-top:.8rem}.form-message{text-align:center;color:#ffd5ca;min-height:2.6rem;font-size:.72rem;line-height:1.5}.is-wrong{animation:.42s shake}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.site-shell{background:radial-gradient(circle at 80% 5%,#f1cbbd88,#0000 25rem),#f6ede2;overflow:hidden}.site-shell nav{letter-spacing:.12em;justify-content:space-between;align-items:center;height:4.2rem;padding:0 1.25rem;font-size:.62rem;display:flex}.hero{flex-direction:column;justify-content:center;min-height:78dvh;padding:3rem 1.5rem 5rem;display:flex}.hero h1{letter-spacing:-.05em;margin:1rem 0 1.6rem;font-size:clamp(3.5rem,17vw,8rem);line-height:.84}.hero em{color:#a13d50}.hero p,.chapter p,.memory p,.letter p{max-width:32rem;font-family:DM Serif Display;font-size:1.15rem;line-height:1.55}.section{max-width:74rem;margin:auto;padding:4.8rem 1.5rem}.intro{text-align:center}.section h2{letter-spacing:-.04em;margin:1rem 0;font-size:clamp(2.1rem,8vw,4.2rem);line-height:.98}.chapter{align-items:center;gap:1.5rem;margin-bottom:4.5rem;display:grid}.photo-placeholder{text-align:center;color:#fff9ef;background:linear-gradient(135deg,#c07874,#6a2a3a);place-content:center;min-height:19rem;font:3rem DM Serif Display;display:grid}.photo-placeholder span{letter-spacing:.16em;margin-top:.7rem;font:.58rem DM Mono}.chapter img,.snapshot img,.memory img{object-fit:cover;width:100%;height:100%;min-height:19rem;display:block}.gallery-section{background:#e9d8c9;max-width:none}.gallery{gap:1.25rem;margin-top:2.3rem;display:grid}.snapshot{text-align:left;background:#fffaf3;border:0;padding:.65rem .65rem 1rem;transform:rotate(-1.5deg);box-shadow:0 12px 28px #4a1a2630}.snapshot:nth-child(2){transform:rotate(1.4deg)}.snapshot span{color:#762e3f;padding:.7rem .2rem 0;font:1.05rem Petit Formal Script;display:block}.memory article{align-items:center;gap:2rem;display:grid}.letter{text-align:center;max-width:48rem;padding-top:7rem;padding-bottom:7rem}.letter .signature{color:#9d4150;font-family:Petit Formal Script;font-size:1.5rem}footer{text-align:center;color:#fff9ef;background:#471924;padding:4rem 1.5rem;font:1.4rem DM Serif Display}footer p{max-width:26rem;margin:1.5rem auto;font-size:1rem;line-height:1.5}.lightbox{z-index:10;background:#19080ddd;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.lightbox>button{color:#fff;background:0 0;border:1px solid #fff;border-radius:50%;width:3rem;height:3rem;font-size:2rem;position:absolute;top:1rem;right:1rem}.lightbox img,.lightbox .photo-placeholder{object-fit:contain;width:min(100%,50rem);max-height:78dvh}@media (width>=700px){.entry-card{padding:3rem}.site-shell nav,.hero{padding-left:7vw;padding-right:7vw}.section{padding-top:7rem;padding-bottom:7rem}.chapter{grid-template-columns:1.05fr .95fr;gap:5rem}.chapter:nth-child(2n)>:first-child{order:2}.gallery{grid-template-columns:1fr 1.1fr 1fr;align-items:start}.snapshot:nth-child(2){margin-top:3rem}.memory article{grid-template-columns:1fr 1fr;gap:5rem}}.music-toggle{z-index:8;color:#fff9ef;letter-spacing:.1em;background:#471924;border:1px solid #fff8;border-radius:999px;align-items:center;gap:.55rem;max-width:calc(100vw - 2rem);padding:.7rem 1.05rem;font-size:.62rem;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 12px 28px #4a1a2640}.music-toggle span{letter-spacing:0;font-size:1rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.confetti{z-index:12;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{color:#a13d50;will-change:transform,opacity;font-size:1.4rem;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.35,.15,.5,1);animation-fill-mode:forwards;position:absolute;top:-8%}.confetti-piece:nth-child(3n){color:#e18aa0}.confetti-piece:nth-child(4n){color:#762e3f}@keyframes confetti-fall{0%{transform:translate(0,-10vh) rotate(0) scale(var(--scale,1));opacity:0}10%{opacity:1}to{transform:translate(var(--drift,0),110vh) rotate(var(--rotate,0)) scale(var(--scale,1));opacity:0}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)}.reveal.is-visible{opacity:1;transform:none}.letter-body{text-align:left;max-width:38rem;margin:2.6rem auto 2.4rem}.letter-body p{margin:0 0 1.4rem;font-size:1.12rem;line-height:1.68}.letter .letter-greeting{color:#9d4150;margin-bottom:1.6rem;font-family:Petit Formal Script;font-size:1.9rem;line-height:1.2}.letter-body em{color:#7c2f40;font-style:italic}.letter-body strong{color:#a13d50;margin:.4rem 0;font-family:DM Serif Display;font-size:1.35rem;font-weight:400;display:inline-block}.signature span{clip-path:inset(0 100% 0 0);display:inline-block}.reveal.is-visible .signature span{animation:1.9s .3s forwards write}@keyframes write{to{clip-path:inset(0 -.15em 0 0)}}.open-when{text-align:center}.open-when-grid{gap:1.1rem;margin-top:2.3rem;display:grid}.open-when-card{text-align:center;cursor:pointer;color:#461a25;background:#fffaf3;border:1px solid #e2d2c2;border-radius:1rem;width:100%;padding:1.6rem 1.4rem;transition:transform .25s,box-shadow .25s;display:block;position:relative;overflow:hidden;box-shadow:0 12px 28px #4a1a2622}.open-when-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px #4a1a2633}.open-when-seal{color:#a13d50;margin-bottom:.6rem;font-size:1.5rem;display:block}.open-when-prompt{color:#762e3f;font-family:Petit Formal Script;font-size:1.5rem;line-height:1.2;display:block}.open-when-note{opacity:0;max-height:0;font-family:DM Serif Display;font-size:1.05rem;line-height:1.5;transition:max-height .4s,opacity .4s,margin .4s;display:block;overflow:hidden}.open-when-card.is-open .open-when-note{opacity:1;max-height:18rem;margin-top:1rem}@media (width>=700px){.open-when-grid{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.signature span{clip-path:none!important;animation:none!important}}
