.intro{z-index:100;background-color:var(--cream);background-image:radial-gradient(circle at 15% 20%,#f7d6dccc,#0000 45%),radial-gradient(circle at 85% 25%,#e9dcf399,#0000 40%),radial-gradient(circle at 75% 85%,#ffe3d5b3,#0000 45%),radial-gradient(circle at 25% 90%,#dcecf780,#0000 40%);place-items:center;padding:1.5rem;transition:opacity .65s,transform .65s cubic-bezier(.55,0,1,.45),visibility 0s linear .65s;animation:.6s intro-in;display:grid;position:fixed;inset:0}.intro--opening{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.08)}.intro__card{text-align:center;background:#fffdfb;border-radius:6px;max-width:26rem;padding:3.25rem 2.75rem 2.75rem;animation:5s ease-in-out infinite card-float;position:relative;transform:rotate(-1.5deg);box-shadow:0 2px 4px #8a5a631a,0 26px 60px #8a5a6338}.intro__seal{color:#fff9f5;background:linear-gradient(135deg,#e8a9b8,#d98ba3);border-radius:50%;place-items:center;width:56px;height:56px;font-size:1.5rem;display:grid;position:absolute;top:-26px;left:50%;transform:translate(-50%);box-shadow:0 6px 16px #8a5a6359}.intro__eyebrow{color:var(--ink-soft);margin:0 0 .5rem;font-family:Caveat,cursive;font-size:1.35rem}.intro__title{color:var(--ink);margin:0;font-size:clamp(1.7rem,5vw,2.3rem);font-weight:600;line-height:1.2}.intro__note{color:var(--ink-soft);margin:.75rem 0 1.75rem;font-size:.98rem;font-style:italic}.intro__button{cursor:pointer;color:var(--ink);background:linear-gradient(135deg,#f7d6dc,#e8a9b8);border:none;border-radius:999px;padding:.85rem 2.4rem;font-family:Caveat,cursive;font-size:1.6rem;line-height:1;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;animation:2.4s ease-in-out infinite button-pulse;box-shadow:0 6px 18px #e8a9b899}.intro__button:hover{transform:scale(1.07);box-shadow:0 10px 26px #e8a9b8bf}.intro__button:active{transform:scale(.97)}@keyframes intro-in{0%{opacity:0}to{opacity:1}}@keyframes card-float{0%,to{transform:rotate(-1.5deg)translateY(0)}50%{transform:rotate(-1.5deg)translateY(-10px)}}@keyframes button-pulse{0%,to{box-shadow:0 6px 18px #e8a9b899}50%{box-shadow:0 6px 26px #e8a9b8f2}}.polaroid{animation:.7s cubic-bezier(.34,1.56,.64,1) backwards polaroid-in;animation-delay:calc(.35s + var(--delay,0s))}@keyframes polaroid-in{0%{opacity:0;transform:translateY(46px) rotate(var(--tilt)) scale(.85)}to{opacity:1;transform:translateY(0) rotate(var(--tilt)) scale(1)}}.polaroid{cursor:pointer;transform:rotate(var(--tilt));background:#fffdfb;border:none;border-radius:3px;flex-direction:column;gap:.55rem;padding:.85rem .85rem 1.1rem;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s;display:flex;position:relative;box-shadow:0 1px 2px #8a5a631f,0 10px 24px #8a5a632e}.polaroid:hover,.polaroid:focus-visible{z-index:2;outline:none;transform:rotate(0)translateY(-8px)scale(1.03);box-shadow:0 2px 4px #8a5a6324,0 20px 40px #8a5a633d}.polaroid__tape{background:#f7d6dcbf;border-left:1px dashed #fffc;border-right:1px dashed #fffc;width:78px;height:26px;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:0 1px 3px #8a5a631f}.polaroid__photo{aspect-ratio:1;background:#f7d6dc;display:block;overflow:hidden}.polaroid__photo img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.polaroid:hover .polaroid__photo img{transform:scale(1.06)}.polaroid__caption{color:#8a5a63;text-align:center;font-family:Caveat,cursive;font-size:1.45rem;line-height:1.1}.polaroid__date{color:#c99aa5;text-align:center;margin-top:-.35rem;font-family:Caveat,cursive;font-size:1.05rem}.lightbox{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#8a5a6373;place-items:center;padding:1.5rem;animation:.25s fade-in;display:grid;position:fixed;inset:0}.lightbox__frame{background:#fffdfb;border-radius:4px;max-width:min(90vw,560px);margin:0;padding:1rem 1rem 1.25rem;animation:.3s cubic-bezier(.34,1.56,.64,1) pop-in;position:relative;transform:rotate(-1deg);box-shadow:0 30px 60px #5a323a66}.lightbox__frame img{object-fit:contain;background:#f7d6dc;width:100%;max-height:70vh;display:block}.lightbox__frame figcaption{flex-direction:column;align-items:center;gap:.15rem;padding-top:.75rem;display:flex}.lightbox__caption{color:#8a5a63;font-family:Caveat,cursive;font-size:1.7rem}.lightbox__date{color:#c99aa5;font-family:Caveat,cursive;font-size:1.1rem}.lightbox__close{color:#8a5a63;cursor:pointer;background:#f7d6dc;border:none;border-radius:50%;width:36px;height:36px;font-size:1.4rem;line-height:1;transition:transform .2s,background .2s;position:absolute;top:-14px;right:-14px;box-shadow:0 4px 12px #8a5a634d}.lightbox__close:hover{background:#e8a9b8;transform:scale(1.1)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:rotate(-1deg)scale(.9)}to{opacity:1;transform:rotate(-1deg)scale(1)}}.hearts{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.hearts__heart{color:#e8a9b8;opacity:0;animation-name:rise;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;bottom:-30px}@keyframes rise{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:.5}90%{opacity:.35}to{opacity:0;transform:translateY(-110vh)rotate(25deg)}}:root{--blush:#f7d6dc;--cream:#fff9f5;--rose:#e8a9b8;--ink:#8a5a63;--ink-soft:#c99aa5}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--cream);color:var(--ink);background-image:radial-gradient(circle at 15% 20%,#f7d6dcb3,#0000 45%),radial-gradient(circle at 85% 15%,#e9dcf38c,#0000 40%),radial-gradient(circle at 75% 85%,#ffe3d599,#0000 45%),radial-gradient(circle at 25% 90%,#dcecf773,#0000 40%);min-height:100vh;font-family:Playfair Display,Georgia,serif}.page{z-index:1;border-left:2px dashed #e8a9b899;border-right:2px dashed #e8a9b899;flex-direction:column;max-width:1100px;min-height:100vh;margin:0 auto;padding:3.5rem 1.5rem 3rem;display:flex;position:relative}.page__content{flex-direction:column;flex:1;animation:.9s backwards page-reveal;display:flex}@keyframes page-reveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.page__header{text-align:center;margin-bottom:2.75rem}.page__eyebrow{color:var(--ink-soft);letter-spacing:.04em;margin:0 0 .4rem;font-family:Caveat,cursive;font-size:1.4rem}.page__title{color:var(--ink);margin:0;font-size:clamp(2.1rem,5vw,3.4rem);font-weight:600;line-height:1.15}.page__subtitle{max-width:34rem;color:var(--ink-soft);margin:.85rem auto 0;font-size:1.02rem;font-style:italic}.wall{grid-template-columns:repeat(3,1fr);justify-items:center;gap:2.75rem 2rem;padding:1rem .5rem 2rem;display:grid}.page__footer{text-align:center;color:var(--ink-soft);margin-top:auto;padding-top:2rem;font-family:Caveat,cursive;font-size:1.35rem}@media (width<=760px){.wall{grid-template-columns:repeat(2,1fr);gap:2.25rem 1.25rem}.page{border:none;padding-top:2.5rem}}@media (prefers-reduced-motion:reduce){.hearts,.polaroid,.lightbox,.lightbox__frame,.intro,.intro__card,.intro__button,.page__content{transition:none!important;animation:none!important}}
