.sticker-symbols{position:absolute;overflow:hidden;pointer-events:none}
.hero{position:relative;padding-top:95px}.hero-photo{max-width:430px}.hero-photo img{height:auto;aspect-ratio:16/9;object-fit:contain;display:block}.hero-photo .stamp{bottom:-25px;right:-12px}
.spidey-hanging{position:absolute;right:35px;top:0;width:72px;z-index:1;transform-origin:50% 0;animation:spidey-swing 4s ease-in-out 1;pointer-events:none}.spidey-hanging:before{content:'';display:block;width:1px;height:26px;margin:auto;background:#b9b3a4}.spidey-hanging svg{width:100%;height:auto;display:block}
.gallery{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:40px 28px}.photo{width:100%;min-width:0;padding:13px 13px 21px;align-self:start}.photo.photo-wide{grid-column:1/-1;max-width:900px;justify-self:center;transform:rotate(-.6deg)}.photo img{height:auto;object-fit:contain;width:100%;background:#f2eee0}.photo-portrait{max-width:440px;justify-self:center}.photo-landscape{align-self:center;transform:rotate(-2deg)}.photo .photo-caption{padding:0;font-size:20px;line-height:1.45}.photo-wide .photo-caption{text-align:center}.photo-wide small{text-align:center}.photo-eyes{max-width:690px!important;margin:8px 0}.photo.photo-eyes img{aspect-ratio:690/250}.photo.photo-finale{max-width:850px}.photo img{border-radius:1px}.photo:hover{transform:translateY(-4px) rotate(0)}
.sticker-shelf{margin:0 45px 65px;padding:30px 25px 14px;text-align:center;border-top:1px dashed #c9cdb5;border-bottom:1px dashed #c9cdb5;background:#f4efdf80}.sticker-intro{font-family:Georgia,serif;font-size:17px;font-style:italic;color:#827b6d}.sticker-line{display:flex;justify-content:center;align-items:end;gap:25px;margin:25px auto 10px;flex-wrap:wrap}.sticker-button{font-family:Georgia,serif;background:transparent;border:0;cursor:pointer;width:115px;padding:5px;color:#6d725e;transform:rotate(-5deg);transition:transform .2s}.sticker-button:nth-child(2n){transform:rotate(6deg)}.sticker-button svg{width:90px;height:90px;display:block;margin:0 auto 8px;filter:drop-shadow(0 3px 0 #fffdf5) drop-shadow(2px 3px 1px #71614a20);overflow:visible}.sticker-button span{font-size:12px}.sticker-button:hover{transform:translateY(-5px) rotate(0)}.sticker-hint{font-size:10px;letter-spacing:.7px;color:#827b6d}.sticker-message{min-height:44px;max-width:500px;margin:15px auto 0;font-family:Georgia,serif;font-style:italic;font-size:15px;line-height:1.6;color:#657355}.sticker-play svg{animation:sticker-hop .8s ease-in-out}.sticker-rubik.sticker-play svg{animation:cube-spin 1s ease-in-out}.sticker-spidey.sticker-play svg{animation:spidey-flip 1s ease-in-out}.letter-friends{display:flex;justify-content:center;align-items:end;gap:24px;max-width:480px;margin:30px auto 0}.letter-friends>svg{width:85px;height:90px;flex-shrink:0;filter:drop-shadow(2px 3px 1px #71614a18)}.letter-friends .envelope{flex-shrink:0;margin:10px 0 5px}.letter-friends>svg:first-child{transform:rotate(-8deg)}.letter-friends>svg:last-child{transform:rotate(8deg)}
@keyframes spidey-swing{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}@keyframes sticker-hop{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-17px) rotate(-10deg)}60%{transform:translateY(-8px) rotate(10deg)}}@keyframes cube-spin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.15)}100%{transform:rotate(360deg) scale(1)}}@keyframes spidey-flip{0%,100%{transform:rotate(0)}50%{transform:rotate(180deg) translateY(10px)}}
@media(max-width:760px){.hero{padding-top:70px}.spidey-hanging{right:18px;width:53px}.spidey-hanging:before{height:8px}.gallery{gap:32px 16px}.photo{padding:9px 9px 17px}.photo .photo-caption{font-size:15px}.photo small{font-size:7px;line-height:1.7}.photo.photo-landscape{grid-column:1/-1;max-width:600px;justify-self:center}.photo.photo-landscape .photo-caption,.photo.photo-landscape small{text-align:center}.sticker-shelf{margin:0 20px 45px;padding:25px 10px 10px}.sticker-line{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 5px;max-width:370px}.sticker-button{width:100%;padding:3px}.sticker-button svg{width:75px;height:75px}.sticker-intro{font-size:15px;line-height:1.6}.letter-friends{gap:10px}.letter-friends>svg{width:60px;height:70px}.letter-friends .envelope{width:150px;height:100px}.letter-friends .envelope:before{border-left-width:75px;border-right-width:75px;border-top-width:60px}.letter-friends .envelope span{left:60px;top:40px}}
@media(max-width:380px){.letter-friends{gap:5px}.letter-friends>svg{width:48px}.photo .photo-caption{font-size:14px}.photo small{letter-spacing:.7px}}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .spidey-hanging,body:not(.motion-enabled) .sticker-play svg{animation:none!important}body:not(.motion-enabled) .sticker-button{transition:none}}

/* Apricot and burnt-orange accents alongside the existing sage greens. */
:root{--paper:#fff6e9;--apricot:#edb182;--orange-ink:#a35c35;--peach-paper:#fbe5cf}
body{background-color:var(--paper);background-image:radial-gradient(#b7a08322 .7px,transparent .7px),radial-gradient(ellipse at 95% 6%,#f2be9138,transparent 48%),radial-gradient(ellipse at 0% 65%,#e6bc9026,transparent 45%);background-size:7px 7px,100% 1100px,100% 1800px;background-repeat:repeat,no-repeat,no-repeat}
header{border-bottom-color:#ead2b8}.brand span{color:var(--orange-ink)}
.hero h1 em{color:var(--orange-ink)}.hero .eyebrow,.memories .eyebrow{color:#97613e}.handwritten{color:#91684c}
.tape,.photo:before{background:#e9ad78b3}.photo:nth-child(2n):before{background:#b9c5a6b3}.photo:nth-child(3n):after{color:#c17a4b}
.hero-photo,.photo{background:#fffaf0;box-shadow:1px 7px 20px #ad744518}.hero-photo{border:1px solid #efddc8}.stamp{background:#f8dcbc;border-color:#d69b6d;color:#925733}
.ribbon{background:linear-gradient(100deg,#f7dfc4,#f9e8d4 55%,#edf0e2);border-color:#e4bd97}.ribbon b{color:#bf7545}
.photo small{color:#936447}.photo.photo-eyes{background:#f9e9d8}.photo.photo-finale{background:#fff2df}
.sticker-shelf{background:linear-gradient(120deg,#fae2c94d,#f5f0df80 60%,#e6ebdb66);border-top-color:#d8b18b;border-bottom-color:#d8b18b}.sticker-hint{color:#97613e}
.letter-section{background:linear-gradient(135deg,#f7dfc8,#f4e8d6 65%,#ebeeda);border-color:#e4c4a4}.envelope{background:#dfa471;box-shadow:0 8px 18px #a56d3f18}.envelope:before{border-top-color:#f6d3af}.letter{background:#fff9ed;border-color:#ead2b5}.salutation{color:var(--orange-ink)}
.closing>span,.corner-heart{color:#c17a4b}.time-keepsake{background:#eff1e4;border-color:#cad4b8;box-shadow:3px 6px 0 #f1cfa9}.time-keepsake:before{background:#e9b17fb3}.time-values i{color:#bf7848}
.text-button{border-bottom-color:#cb9265}footer{border-color:#e6c9aa}.heart:nth-of-type(even){color:#d89d70}

/* Small characters distributed through the album, with optional gentle motion. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.motion-toolbar{max-width:1200px;margin:0 auto;padding:10px 48px 0;text-align:right}.motion-toggle{font:10px Arial,sans-serif;letter-spacing:.3px;color:#5c6b50;border:1px solid #cbd1bd;background:#fbf6e9;padding:8px 12px;border-radius:20px;min-height:32px;cursor:pointer}.motion-toggle:hover{background:#edf0e2}.motion-toggle:disabled{cursor:default;color:#746c5b;border-color:#ddd1bd}
.sticker-button.spidey-hanging{width:72px;pointer-events:auto;padding:0;margin:0;transform-origin:50% 0;animation:spidey-swing 5s ease-in-out infinite}.sticker-button.spidey-hanging:before{height:20px}.spidey-hanging svg{width:100%;height:auto;margin:0}.hero .sticker-note{max-width:330px}
.sticker-note{font:italic 13px/1.6 Georgia,serif;color:#7b765e;margin:12px auto 0;max-width:430px}.sticker-note:empty{display:none}
.album-side{text-align:center;max-width:220px}.album-side .sticker-button{width:78px;transform:rotate(8deg);padding:0}.album-side svg{width:70px;height:70px;margin:0 auto}.album-side .sticker-note{font-size:12px;margin-top:5px}
.photo small{font-size:8px;letter-spacing:2px;opacity:.8}.photo .photo-caption{font-size:19px}.letter-friends .sticker-button{width:80px;padding:0;flex-shrink:0}.letter-friends .sticker-button svg{width:80px;height:86px;margin:0}.letter-friends .sticker-button:first-child{transform:rotate(-8deg)}.letter-friends .sticker-button:last-child{transform:rotate(8deg)}
.keepsake-scene{display:grid;grid-template-columns:80px minmax(0,550px) 80px;align-items:center;justify-content:center;gap:20px;margin:auto}.keepsake-scene .time-keepsake{width:100%;max-width:none;margin:35px 0 22px}.keepsake-scene .sticker-button{width:80px;padding:0}.keepsake-scene .sticker-button svg{width:80px;height:100px;margin:0}.keepsake-scene .sticker-bear{transform:rotate(-8deg)}.keepsake-scene .sticker-bunny{transform:rotate(9deg)}
.sticker-bear svg{animation:plush-breathe 5s ease-in-out infinite;transform-origin:50% 85%}.sticker-pompom svg{animation:pudding-wiggle 6s ease-in-out infinite;transform-origin:50% 85%}.sticker-play svg{animation:sticker-hop .8s ease-in-out}.sticker-rubik.sticker-play svg{animation:cube-spin 1s ease-in-out}.sticker-spidey.sticker-play svg{animation:spidey-flip 1s ease-in-out}
@keyframes plush-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.025)}}@keyframes pudding-wiggle{0%,40%,60%,100%{transform:rotate(0)}46%{transform:rotate(-6deg)}54%{transform:rotate(6deg)}}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition:none!important}
@media(max-width:760px){.motion-toolbar{padding:9px 20px 0}.motion-toggle{font-size:9px}.sticker-button.spidey-hanging{width:50px;right:16px}.sticker-button.spidey-hanging:before{height:8px}.hero .sticker-note{margin-left:auto;margin-right:auto}.memories .section-heading{display:flex;align-items:center;gap:10px}.memories .section-heading h2{font-size:30px}.album-side{max-width:90px;flex-shrink:0}.album-side .sticker-button{width:58px}.album-side svg{width:54px;height:54px}.album-side .sticker-note{font-size:10px}.photo .photo-caption{font-size:16px}.photo-portrait[data-photo="6"]{grid-column:1/-1;width:86%;max-width:360px}.letter-friends{gap:10px}.letter-friends .sticker-button{width:54px}.letter-friends .sticker-button svg{width:54px;height:65px}.keepsake-scene{max-width:550px;grid-template-columns:1fr 1fr;gap:0 18px}.keepsake-scene .time-keepsake{grid-row:1;grid-column:1/-1;margin-bottom:12px}.keepsake-scene .sticker-bear{grid-row:2;grid-column:1;justify-self:end}.keepsake-scene .sticker-bunny{grid-row:2;grid-column:2;justify-self:start}.keepsake-scene .sticker-button{width:66px}.keepsake-scene .sticker-button svg{width:66px;height:80px}.closing .sticker-note{margin-bottom:16px}}
@media(max-width:380px){.memories .section-heading h2{font-size:27px}.photo .photo-caption{font-size:14px}.letter-friends{gap:6px}.letter-friends .sticker-button{width:48px}.letter-friends .sticker-button svg{width:48px}}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .sticker-button.spidey-hanging,body:not(.motion-enabled) .sticker-bear svg,body:not(.motion-enabled) .sticker-pompom svg,body:not(.motion-enabled) .sticker-play svg{animation:none!important}}

.picnic-invitation{position:relative;max-width:550px;margin:35px auto 28px;padding:28px 30px;background:#fce9d3;border:1px solid #e3bb94;box-shadow:0 5px 18px #a9784210;border-radius:4px}.picnic-invitation:before{content:'';position:absolute;top:-11px;left:calc(50% - 37px);width:74px;height:23px;background:#b5c19fa6;transform:rotate(-5deg)}.picnic-drawing{display:block;width:87px;height:70px;margin:0 auto 18px}.closing .picnic-invitation .eyebrow{color:#925b35;font-size:9px;letter-spacing:1.7px}.picnic-invitation h3{font:normal 29px/1.25 Georgia,serif;letter-spacing:-.7px;margin:15px 0}.picnic-invitation h3 em{color:#697c55}.closing .picnic-invitation>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#78634f;max-width:350px;margin:0 auto}.picnic-reveal{margin-top:22px;border-top:1px dashed #d8b590;padding-top:17px}.picnic-reveal summary{cursor:pointer;list-style:none;color:#5c704b;font-size:12px;line-height:1.6;padding:8px;min-height:40px}.picnic-reveal summary::-webkit-details-marker{display:none}.picnic-reveal summary span{display:inline-block;margin-left:10px;font-size:17px}.picnic-reveal[open] summary span{transform:rotate(90deg)}.picnic-plan{padding:6px 8px 0}.closing .picnic-plan p{font-size:14px;line-height:1.8;color:#6c5946}.closing .picnic-plan .picnic-date{font-size:10px;font-weight:bold;letter-spacing:1.1px;text-transform:uppercase;color:#96613c}.picnic-plan strong{font-weight:normal;color:#506443}.closing .picnic-plan .picnic-signature{font-family:Georgia,serif;font-style:italic;color:#8e603d;margin-top:20px}@media(max-width:760px){.picnic-invitation{padding:25px 20px}.picnic-invitation h3{font-size:27px}.closing .picnic-invitation .eyebrow{font-size:8px;letter-spacing:1.1px}}

/* Spider-Man is a hanging decoration, independent of the tappable stickers. */
.spidey-scene{position:absolute;top:0;right:28px;width:84px;height:170px;pointer-events:none;z-index:2}
.spidey-pendulum{width:100%;transform-origin:50% 0;animation:spidey-pendulum 3.6s ease-in-out infinite}
.spidey-web{display:block;width:2px;height:65px;margin:0 auto;background:linear-gradient(#c3b9a8,#a6ab9a);border-radius:2px;animation:spidey-web-drop 6s ease-in-out infinite}
.spidey-figure{display:block;width:76px;height:76px;margin:-4px auto 0;transform:rotate(180deg)}
.spidey-figure svg{display:block;width:100%;height:100%;filter:drop-shadow(2px -2px 1px #71614a25);overflow:visible}
@keyframes spidey-pendulum{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}
@keyframes spidey-web-drop{0%,100%{height:65px}50%{height:92px}}
@media(max-width:760px){.hero{padding-top:125px}.spidey-scene{right:24px;width:58px;height:125px}.spidey-figure{width:54px;height:54px}.spidey-web{height:37px;animation-name:spidey-web-drop-small}}
@keyframes spidey-web-drop-small{0%,100%{height:37px}50%{height:58px}}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .spidey-pendulum,body:not(.motion-enabled) .spidey-web{animation:none!important}}
