@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--paper:#161716;--ink:#efefe7;--wine:#d5ea89;--line:#ffffff26}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 'DM Sans',sans-serif}a{color:inherit}a:focus-visible,summary:focus-visible{outline:2px solid var(--wine);outline-offset:6px}header{margin:0 5%;padding:25px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}header a{text-decoration:none;font-size:13px}.brand{font-size:18px;font-weight:700;letter-spacing:-.03em}.brand span{font-size:12px;font-weight:400;color:#a8aaa1;margin-left:20px}.hero{padding:80px 5% 50px;max-width:1500px;margin:auto}.eyebrow,.section-label{font-size:12px;letter-spacing:.08em;color:#adafa5}h1,h2{font-weight:500;line-height:1.05;letter-spacing:-.06em}h1{font-size:clamp(60px,8.6vw,125px);margin:55px 0 45px}h1 em{font-style:normal;color:var(--wine)}.hero-bottom{display:flex;justify-content:space-between;align-items:end}.hero-bottom p{font-size:20px;line-height:1.5;color:#b7b9af;margin:0}.button{display:inline-block;padding:14px 20px;background:var(--wine);color:#20241b;text-decoration:none;font-size:14px;border-radius:2px}.button:hover{background:#e6f6b5}.section{max-width:1500px;margin:auto;padding:75px 5%;border-top:1px solid var(--line)}h2{font-size:clamp(38px,4.5vw,65px);margin:0 0 25px}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:25px;margin-bottom:22px}.section-heading>span{font-size:11px;color:#9c9f95;letter-spacing:.07em}.photo-grid{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:18px}.polaroid{margin:0}.photo-placeholder{aspect-ratio:4/5;background:#242722;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;border:1px solid #ffffff12;color:#9b9f8d}.second{background:#292721}.third{background:#24282a;aspect-ratio:auto;height:calc(100% - 43px)}.placeholder-number{font-size:70px;font-weight:400;letter-spacing:-.07em;color:#6d7460}.photo-placeholder small{font-size:11px;letter-spacing:.1em}figcaption{font-size:13px;color:#b2b5aa;margin-top:16px}.draft-note{font-size:12px;color:#8f9386;margin:22px 0 0}.section-label{margin-bottom:35px}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}.prose{font-size:18px;line-height:1.85;color:#bfc2b6}.prose p{margin:0 0 25px}.notes{display:grid;grid-template-columns:1fr 1fr;gap:0 55px}.notes details{border-bottom:1px solid var(--line);align-self:start}.notes summary{display:flex;gap:20px;align-items:center;list-style:none;cursor:pointer;font-size:23px;padding:25px 0;line-height:1.4;letter-spacing:-.03em}.notes summary::-webkit-details-marker{display:none}.notes summary span{font-size:11px;color:#8f9485;letter-spacing:0}.notes summary b{margin-left:auto;color:var(--wine);font-weight:400}.notes details[open] summary b{transform:rotate(45deg)}.notes details p{color:#bfc2b6;margin:0 0 28px 33px}.letter-section{background:#e9eadf;color:#20251e;max-width:none}.letter-section>.section-label{max-width:760px;margin:0 auto 40px;color:#606756}.letter{max-width:760px;margin:auto}.letter h2{font-size:62px}.letter .prose{color:#363e30;font-size:19px}.letter-end{margin-top:40px;padding-top:20px;border-top:1px solid #20251e30;font-size:14px;color:#5d6555}footer{padding:30px 5%;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#a9ada0}footer a{text-decoration:none}@media(min-width:1500px){header{max-width:1350px;margin:auto}}@media(max-width:700px){header{padding:20px 0}.hero{padding-top:55px}h1{font-size:clamp(48px,10vw,70px);margin:40px 0}.hero-bottom{align-items:start;flex-direction:column;gap:25px}.hero-bottom p{font-size:17px}.section{padding:50px 6%}.section-heading{display:block}.section-heading>span{display:block;margin-bottom:25px}h2{font-size:42px}.photo-grid{grid-template-columns:1fr 1fr;gap:18px 12px}.polaroid:last-child{grid-column:1/-1}.third{aspect-ratio:16/9;height:auto}.photo-placeholder:not(.third){aspect-ratio:4/5}.placeholder-number{font-size:45px}figcaption{font-size:12px}.story-grid{grid-template-columns:1fr;gap:12px}.notes{grid-template-columns:1fr}.notes summary{font-size:22px}.prose,.letter .prose{font-size:17px}.letter h2{font-size:49px}footer{flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.album-intro{color:#bfc2b6;margin:0 0 30px;font-size:18px}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.memory-tile{border:0;padding:0;background:#242722;cursor:zoom-in;overflow:hidden;display:block;width:100%;aspect-ratio:3/4}.memory-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.memory-tile:hover img{transform:scale(1.025)}.memory-tile:focus-visible,button:focus-visible{outline:3px solid var(--wine);outline-offset:4px}.full-album{margin-top:35px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.full-album>summary{padding:24px 0;cursor:pointer;display:flex;justify-content:space-between;gap:20px;list-style:none;font-size:19px}.full-album>summary span{font-size:14px;color:var(--wine)}.album-group{padding:20px 0 35px}.album-group h3{font-size:16px;font-weight:400;color:#bfc2b6}.album-group .memory-grid{grid-template-columns:repeat(4,1fr)}.clip-heading{margin-top:65px}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px 16px}.video-grid figure{margin:0}.video-grid video{width:100%;aspect-ratio:3/4;background:#090909;object-fit:contain;display:block}dialog{width:min(1100px,96vw);max-width:none;height:94dvh;max-height:94dvh;padding:18px;border:1px solid #ffffff30;background:#161716;color:#efefe7}dialog::backdrop{background:#000e}dialog[open]{display:flex;flex-direction:column;gap:12px}body:has(dialog[open]){overflow:hidden}.viewer-bar,.viewer-nav{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-shrink:0;font-size:14px}.viewer-bar button,.viewer-nav button{background:transparent;color:inherit;border:1px solid #ffffff40;padding:10px 14px;font:inherit;cursor:pointer}#viewer-image{width:100%;min-height:0;flex:1;object-fit:contain}.viewer-nav span{font-size:12px;color:#bfc2b6}@media(max-width:700px){.memory-grid{grid-template-columns:repeat(2,1fr);gap:10px}.album-group .memory-grid{grid-template-columns:repeat(2,1fr)}.video-grid{grid-template-columns:repeat(2,1fr)}.full-album>summary{font-size:16px}.album-intro{font-size:16px}.viewer-nav{gap:6px}.viewer-nav button{padding:10px;font-size:12px}}

:root{--paper:#191321;--ink:#f3ecfc;--wine:#c5a1f0;--line:#d9b8ff29}body{background:var(--paper)}.hero h1 em{color:#c9a4ff}.hero-bottom p,.album-intro,.prose,.notes details p{color:#c3b7cf}.eyebrow,.section-label,.section-heading>span{color:#aa96be}.button{background:#c5a1f0;color:#251333}.button:hover{background:#dbc0fa}.memory-tile{background:#2b2038}.letter-section{background:#e9ddf5;color:#301d43}.letter .prose{color:#493459}.letter-section>.section-label,.letter-end{color:#735b85}.letter-end{border-color:#735b8540}dialog{background:#191321;color:#f3ecfc}.full-album>summary span,.notes summary b{color:#c5a1f0}.random-memory{border:0;margin:0 0 26px;cursor:pointer;font-family:inherit}.locked{overflow:hidden}#birthday-content[hidden]{display:none}#lock-screen{position:fixed;inset:0;z-index:50;overflow:auto;display:grid;place-items:center;padding:30px 24px;background:radial-gradient(ellipse at 50% 30%,#42295b 0%,#191321 65%)}#lock-screen[hidden]{display:none}.lock-card{width:min(420px,100%);text-align:center}.lock-card h1{font-size:clamp(55px,12vw,85px);margin:32px 0 20px}.lock-card>p{color:#c3b7cf}.lock-card form{display:flex;flex-direction:column;gap:14px;margin-top:30px}.lock-card label{font-size:13px;color:#c3b7cf}.lock-card input{width:100%;background:#ffffff09;color:#f3ecfc;border:1px solid #c5a1f070;border-radius:3px;padding:15px 20px;font:30px 'DM Sans',sans-serif;text-align:center;letter-spacing:.4em}.lock-card input:focus{outline:2px solid #c5a1f0;outline-offset:3px}.lock-card .button{cursor:pointer;font:15px 'DM Sans',sans-serif;border:0}.text-button{background:none;border:0;border-bottom:1px solid #aa96be;color:#c5a1f0;padding:4px 0;font:14px 'DM Sans',sans-serif;cursor:pointer}#unlock-status{min-height:24px;font-size:14px;margin:16px 0}#hint-text{font-size:14px;min-height:28px}.lock-card .eyebrow{color:#c5a1f0}

/* Light lavender theme */
:root{--paper:#f3ebfc;--ink:#39234d;--wine:#7545a3;--line:#79549930}body{background:var(--paper);color:var(--ink)}.hero h1 em{color:#7545a3}.hero-bottom p,.album-intro,.prose,.notes details p{color:#655173}.eyebrow,.section-label,.section-heading>span,.brand span{color:#786187}.button{background:#8052aa;color:#fff}.button:hover{background:#693c94}.memory-tile{background:#e0cdec}.full-album>summary span,.notes summary b{color:#7545a3}.notes summary span,figcaption,.album-group h3,footer,.draft-note{color:#735e81}.letter-section{background:#e8d8f4;color:#39234d}.letter .prose{color:#54405f}.letter-end,.letter-section>.section-label{color:#735e81}.video-grid video{background:#dfceec}dialog{background:#f3ebfc;color:#39234d;border-color:#79549960}dialog::backdrop{background:#382348b8}.viewer-bar button,.viewer-nav button{border-color:#79549960}.viewer-nav span{color:#735e81}#lock-screen{background:radial-gradient(ellipse at 50% 30%,#dfc5f4 0%,#f3ebfc 70%)}.lock-card>p,.lock-card label{color:#705781}.lock-card .eyebrow,.text-button{color:#7545a3}.lock-card input{background:#ffffff90;color:#39234d;border-color:#ad88c7}.lock-card input::placeholder{color:#a085b3}.lock-card input:focus{outline-color:#8052aa}.text-button{border-color:#ad88c7}

.when-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.when-note{background:#e6d6f3;border:1px solid #b896d150;color:#39234d;padding:30px;text-align:left;font:500 23px/1.4 'DM Sans',sans-serif;cursor:pointer;border-radius:6px}.when-note span{display:block;font-size:14px;font-weight:400;margin-top:28px;color:#7545a3}.when-note:hover{background:#dcc4ed}.letter-invitation{max-width:760px;margin:auto;text-align:center;padding:20px 0}.letter-invitation .section-label{display:block;margin-bottom:30px}.letter-invitation p{color:#705781;font-size:18px;margin-bottom:25px}.letter[hidden],.letter-invitation[hidden],#quiz-next[hidden]{display:none}.letter{scroll-margin-top:35px}.letter:focus{outline:none}#close-letter{margin-top:30px}#note-dialog{width:min(620px,92vw);height:auto;max-height:85dvh;padding:35px}#note-dialog[open]{display:block}#close-note{display:block;margin:0 0 35px auto}#note-dialog h2{font-size:40px;line-height:1.15}#note-body{font-size:18px;line-height:1.9;color:#655173;white-space:pre-line}#quiz{max-width:800px}#quiz-question{font-size:23px;font-weight:500}#quiz-answers{display:flex;flex-wrap:wrap;gap:12px}#quiz-answers button{font:16px/1.5 'DM Sans',sans-serif;background:#fff8;border:1px solid #ad88c7;color:#493459;padding:14px 20px;cursor:pointer;border-radius:4px}#quiz-answers button:hover{background:#e3cef3}#quiz-answers button[aria-pressed=true]{background:#8052aa;color:white}#quiz-feedback{min-height:54px;color:#7545a3;font-size:17px;max-width:620px}@media(max-width:700px){.when-grid{grid-template-columns:1fr}.when-note{padding:24px;font-size:21px}.when-note span{margin-top:16px}#note-dialog{padding:25px}#note-dialog h2{font-size:34px}#note-body{font-size:16px}#quiz-answers{flex-direction:column}}

#lock-screen{isolation:isolate}.lock-card{position:relative;z-index:2}.lock-sticker{position:absolute;width:clamp(170px,23vw,320px);aspect-ratio:1;background-image:url('media/our-story-art.png');background-size:300% 200%;filter:drop-shadow(0 12px 10px #76519325);pointer-events:none;border-radius:26%;animation:sticker-bob 5s ease-in-out infinite}.sticker-one{left:5%;top:13%;background-position:0 0;transform:rotate(-12deg)}.sticker-two{right:5%;bottom:9%;background-position:100% 100%;animation-delay:-2.5s;transform:rotate(10deg)}@keyframes sticker-bob{50%{translate:0 -14px;rotate:4deg}}#story-film{display:block;width:100%;max-width:900px;aspect-ratio:4/3;margin:25px auto 0;background:#e7d8f1;border-radius:12px}.film-footer{max-width:900px;margin:16px auto 0;display:flex;justify-content:space-between;gap:20px;color:#735e81;font-size:14px}.film-footer a{color:#7545a3}.our-film .section-heading h2{margin-bottom:10px}@media(max-width:850px){.lock-sticker{width:160px;opacity:.8}.sticker-one{left:-30px;top:2%}.sticker-two{right:-25px;bottom:0}#lock-screen{padding:100px 24px}.film-footer{flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){.lock-sticker{animation:none}}

/* Couple stickers and a quieter opening page. */
#lock-screen{background:#f3ebfc;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px) minmax(0,1fr);gap:24px;align-items:center;padding:48px 4vw;min-height:100dvh}
.lock-card{grid-column:2;grid-row:1;width:100%;padding:36px 24px;border:1px solid #79549925;border-radius:28px;background:#ffffff55;box-shadow:0 20px 70px #7545a310}
.lock-sticker{position:relative;inset:auto;width:100%;max-width:380px;aspect-ratio:1;background-image:url('media/couple-stickers.png');background-size:200% 100%;border-radius:0;filter:none;animation:none;transform:none;opacity:1;mix-blend-mode:multiply;justify-self:center}
.sticker-one{grid-column:1;grid-row:1;background-position:left center}.sticker-two{grid-column:3;grid-row:1;background-position:right center}
.lock-card input{border-radius:14px}.lock-card .button{border-radius:14px;border:0}.lock-card h1{font-size:clamp(40px,5vw,68px)}
@media(max-width:760px){#lock-screen{grid-template-columns:1fr 1fr;gap:0;padding:24px;align-content:center}.lock-card{grid-column:1/-1;grid-row:2;max-width:420px;justify-self:center;padding:25px 20px}.lock-sticker{width:min(100%,180px);grid-row:1;margin-bottom:12px}.sticker-one{grid-column:1;justify-self:end}.sticker-two{grid-column:2;justify-self:start}}

/* A scattered scrapbook, with things to discover. */
#lock-screen{display:flex;justify-content:center;align-items:center;overflow:auto;padding:140px 20px;min-height:100%;background:#f3ebfc}
.lock-card{flex-shrink:0;width:min(380px,76vw);padding:24px;z-index:2;background:#faf6ff;border:1px solid #cdb4e2;box-shadow:0 14px 45px #67418118}
.lock-card h1{font-size:52px;margin:15px 0}.lock-card form{margin-top:18px}.lock-card>p{margin:10px 0}
.scatter-sticker,.page-sticker{border:0;background-color:transparent;background-image:url('media/couple-stickers.png');background-size:200% 100%;aspect-ratio:1;cursor:pointer;mix-blend-mode:multiply;transition:transform .2s;touch-action:manipulation}
.scatter-sticker{position:absolute;width:clamp(115px,19vw,245px);z-index:1;transform:rotate(var(--tilt));background-position:0 50%}
.scatter-sticker:nth-of-type(even),.hug-sticker{background-position:100% 50%}.scatter-sticker:hover,.page-sticker:hover{transform:rotate(0) scale(1.06)}
.scatter-0{left:3%;top:2%;--tilt:-12deg}.scatter-1{right:4%;top:0;--tilt:9deg}.scatter-2{left:0;top:40%;--tilt:8deg}.scatter-3{right:0;top:42%;--tilt:-10deg}.scatter-4{left:9%;bottom:0;--tilt:-9deg}.scatter-5{right:9%;bottom:0;--tilt:12deg}
#sticker-message{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);max-width:90vw;width:max-content;padding:14px 22px;background:#573371;color:white;border-radius:20px;box-shadow:0 8px 25px #39234d30;opacity:0;pointer-events:none;z-index:100;transition:.2s}#sticker-message.visible{opacity:1;transform:translate(-50%,0)}
.hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:40px;max-width:1180px;padding:45px 5% 65px}.hero h1{font-size:clamp(44px,5.7vw,78px);margin:24px 0}.hero-bottom{display:block}.hero-bottom .button{margin-top:24px}.button{border:0;border-radius:30px;padding:14px 24px;cursor:pointer}.photo-play{text-align:center}.photo-play p{font-size:14px;color:#786187}.photo-stack{position:relative;width:min(280px,75vw);height:345px;margin:20px auto 32px}.stack-photo{position:absolute;inset:0;padding:10px 10px 35px;border:0;background:white;box-shadow:0 8px 25px #39234d26;transform:translateX(var(--offset)) rotate(var(--turn));cursor:zoom-in;width:100%;transition:transform .25s}.stack-photo:hover{transform:rotate(0) translateY(-5px)}.stack-photo img{width:100%;height:300px;object-fit:cover;display:block}
.section{max-width:1120px;padding:40px 5%;border-top:0;position:relative}.section h2{font-size:clamp(30px,3.3vw,44px);letter-spacing:-.04em}.section-heading>span{font-size:12px}.memory-tile{border:7px solid white;border-bottom-width:24px;box-shadow:0 4px 15px #39234d12;border-radius:3px}.memory-grid{gap:24px}.memory-tile:nth-child(3n+1){transform:rotate(-2deg)}.memory-tile:nth-child(3n+2){transform:rotate(2deg)}.full-album{margin-top:28px}.page-sticker{width:145px;display:block;margin:0 0 -15px auto;transform:rotate(8deg)}.when-note{border-radius:12px;background:#eadbf6;box-shadow:0 5px 0 #d3b9e4;transition:transform .2s}.when-note:hover{transform:translateY(-4px) rotate(-1deg)}.when-note:nth-child(even){background:#f4e1ed}.letter-section{border-radius:30px;margin-top:30px;margin-bottom:30px}.letter-invitation .page-sticker{margin:auto}.notes summary{font-size:20px}.section-label{margin-bottom:18px}
@media(max-width:760px){#lock-screen{padding:145px 16px;min-height:850px;align-items:center}.scatter-sticker{width:120px}.scatter-0{left:2%;top:5px}.scatter-1{right:2%;top:16px}.scatter-2{left:-45px;top:39%}.scatter-3{right:-45px;top:42%}.scatter-4{left:4%;bottom:4px}.scatter-5{right:4%;bottom:4px}.lock-card{width:min(380px,80vw)}.hero{grid-template-columns:1fr;gap:25px;padding-top:30px}.hero h1{font-size:48px}.photo-stack{height:310px;width:240px}.stack-photo img{height:265px}.memory-grid{gap:16px}.section{padding:32px 6%}.section-heading>span{margin-bottom:12px}.when-grid{grid-template-columns:1fr 1fr;gap:12px}.when-note{font-size:18px;padding:20px 15px}.letter-section{border-radius:20px;margin:20px 4%}.page-sticker{width:110px}}
@media(prefers-reduced-motion:reduce){.scatter-sticker,.page-sticker,.stack-photo,.when-note,#sticker-message{transition:none}}

@media(max-width:760px){#lock-screen{min-height:100%;padding:125px 16px}.lock-card{padding:18px}.lock-card h1{font-size:42px}.scatter-2{left:0;width:70px}.scatter-3{right:0;width:70px}.scatter-4,.scatter-5{bottom:0}.scatter-sticker{width:100px}}

.scene-art{background-image:url('media/our-story-art.png');background-size:300% 200%;background-repeat:no-repeat;border-radius:22%;mix-blend-mode:normal}
.scene-hinge{background-position:0 0!important}.scene-texting{background-position:50% 0!important}.scene-sneak{background-position:100% 0!important}.scene-goodbye{background-position:0 100%!important}.scene-facetime{background-position:50% 100%!important}.scene-hug{background-position:100% 100%!important}.scene-food{background-image:url('media/food-sticker.png');background-size:contain;background-position:center!important}
.story-trail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:start}.story-scrap{transform:rotate(-3deg);padding:8px}.story-scrap:nth-child(even){transform:rotate(3deg);margin-top:25px}.story-scrap summary{cursor:pointer;list-style:none;text-align:center;font-weight:600;line-height:1.4}.story-scrap summary::-webkit-details-marker{display:none}.story-scrap .scene-art{display:block;width:100%;aspect-ratio:1;margin-bottom:12px;transition:transform .2s}.story-scrap summary:hover .scene-art{transform:translateY(-5px)}.story-scrap small{display:block;font-size:13px;color:#795499;font-weight:400;margin-top:6px}.story-scrap[open] small{display:none}.story-scrap p{padding:15px;background:#fff9;border-radius:12px;font-size:15px;line-height:1.65;box-shadow:0 5px 12px #79549912}.story-scrap:last-child{grid-column:2/4;width:55%;justify-self:center}.story-scraps{padding-top:20px}
@media(max-width:700px){.story-trail{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.story-scrap:last-child{grid-column:1/-1;width:55%}.story-scrap p{font-size:14px}.story-scrap{padding:0}}
@media(prefers-reduced-motion:reduce){.story-scrap .scene-art{transition:none}}
/* Paper keepsakes; opening stickers stay in document flow on small screens. */
body{background-color:#eee3f8;background-image:radial-gradient(#89649f12 .7px,transparent .7px);background-size:7px 7px}
#lock-screen{background-color:#eee3f8;background-image:linear-gradient(#9a7db00c 1px,transparent 1px);background-size:100% 28px}
.lock-card{border-radius:4px 9px 6px 3px;background:#fffbff;box-shadow:5px 7px 0 #d7c4e5,0 16px 38px #67418119;position:relative}
.lock-card:before,.letter-invitation:before,.notes details:before{content:'';position:absolute;width:90px;height:25px;top:-12px;left:calc(50% - 45px);background:#b69ad28c;transform:rotate(-5deg);pointer-events:none}
.lock-card .eyebrow{display:block;margin-top:12px}.lock-card h1{letter-spacing:-.04em}.lock-card .button{border-radius:5px}
header{border:0}.hero-copy{padding:18px 0}.hero h1 em{font-family:Georgia,serif;font-style:italic;font-weight:400}.photo-play>p,.story-scrap summary>span:not(.scene-art),figcaption{font-family:'Segoe Print','Bradley Hand','Comic Sans MS',cursive;font-size:19px}
.section-heading>span,.section-label{letter-spacing:.04em}.section-heading h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.035em}.story-scrap p{border-radius:2px;background:#fffafc;box-shadow:3px 4px 0 #decee9}.memory-tile{position:relative}.memory-tile:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,#e0c9ec 0 12px,transparent 13px) top left/24px 24px no-repeat,linear-gradient(315deg,#e0c9ec 0 12px,transparent 13px) bottom right/24px 24px no-repeat}
.notes{gap:28px}.notes details{position:relative;border:0;background:#fffafd;padding:10px 20px;box-shadow:3px 5px 0 #decee9;transform:rotate(-1deg)}.notes details:nth-child(even){background:#fbeaf2;transform:rotate(1deg)}.notes summary{font-size:20px;padding:23px 0 15px}.notes details p{margin-left:0}.when-grid{gap:23px}.when-note{border-radius:2px;transform:rotate(-1deg);border:1px solid #d6bce5;box-shadow:4px 5px 0 #d8c0e5}.when-note:nth-child(even){transform:rotate(1deg)}.when-note span{font-family:inherit}.letter-section{background:transparent;border-radius:0}.letter-invitation{position:relative;background:#fff9fd;border:1px solid #d9c3e8;padding:30px 24px;box-shadow:7px 8px 0 #d5bce6;transform:rotate(-.6deg)}.letter{background:#fffafd;padding:32px;border-left:3px solid #e4cbe8;box-shadow:4px 6px 16px #39234d12}.letter h2{font-family:Georgia,serif}.letter .prose{line-height:1.95}#note-dialog{border-radius:4px;background:#fffafd}
@media(max-width:760px){
#lock-screen{position:fixed;inset:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto;align-content:start;align-items:center;justify-items:center;gap:22px 10px;min-height:0;padding:24px 20px max(30px,env(safe-area-inset-bottom));overflow:auto}
#lock-screen .scatter-sticker{position:relative;inset:auto;grid-column:auto;grid-row:auto;width:min(100%,105px);max-width:100%;margin:0;transform:rotate(-5deg);flex-shrink:0}
#lock-screen .scatter-sticker:nth-of-type(even){transform:rotate(5deg)}
#lock-screen .scatter-0{grid-column:1;grid-row:1}#lock-screen .scatter-1{grid-column:2;grid-row:1}#lock-screen .scatter-2{grid-column:3;grid-row:1}
#lock-screen .scatter-3{grid-column:1;grid-row:3}#lock-screen .scatter-4{grid-column:2;grid-row:3}#lock-screen .scatter-5{grid-column:3;grid-row:3}
#lock-screen .lock-card{grid-column:1/-1;grid-row:2;width:100%;max-width:380px;padding:20px;min-width:0}.lock-card h1{font-size:40px;margin:12px 0}.lock-card form{gap:10px;margin-top:12px}.lock-card input{padding:10px;font-size:26px}.lock-card #unlock-status:empty,.lock-card #hint-text:empty{display:none}.lock-card #hint-button{margin:12px 0 0}.hero h1{font-size:44px}.notes{gap:26px}.when-grid{gap:18px}.when-note{font-size:18px}.letter{padding:24px 18px}.letter-invitation{padding:25px 18px}.section{padding-bottom:40px}#sticker-message{width:calc(100% - 32px);font-size:15px;text-align:center}}
/* Cream paper, plum ink, and blush keepsakes. */
:root{--paper:#faf5ec;--ink:#493a37;--wine:#79518a;--line:#806c5730}body{background-color:var(--paper);color:var(--ink);background-image:radial-gradient(#806c5714 .7px,transparent .7px)}
[data-page][hidden]{display:none!important}header{max-width:1100px;margin:auto;padding:22px 5%;gap:18px;flex-wrap:wrap}header nav{display:flex;flex-wrap:wrap;gap:8px 18px}header nav a{font-size:15px;padding:5px 0;color:#715f59;border-bottom:2px solid transparent}header nav a[aria-current=page]{color:#79518a;border-color:#79518a}.brand span{color:#806c57}
#lock-screen{background-color:#faf5ec;background-image:linear-gradient(#a28c710e 1px,transparent 1px)}.lock-card{background:#fffdf7;border-color:#d9c8b8;box-shadow:5px 7px 0 #e4d6c7,0 16px 38px #69513a15}.lock-card:before{background:#c5afd58c}.lock-card>p,.lock-card label{color:#75635e}.lock-card input{background:#fcf8f2;color:#493a37;border-color:#c5b5cd}.hero-bottom p,.album-intro,.prose,.notes details p{color:#705f58}.hero h1 em{color:#79518a}.eyebrow,.section-label,.section-heading>span{color:#89756c}.hero{padding-bottom:30px}.button{background:#79518a}.button:hover{background:#664174}.text-button{color:#79518a}
.chapter-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.chapter-links a{display:flex;flex-direction:column;gap:12px;padding:30px 25px;color:#493a37;background:#f4e1de;text-decoration:none;box-shadow:4px 5px 0 #e1c7c1;transform:rotate(-1deg);transition:transform .2s}.chapter-links a:nth-child(even){background:#eee5f2;box-shadow:4px 5px 0 #d6c7dd;transform:rotate(1deg)}.chapter-links a:hover{transform:rotate(0) translateY(-4px)}.chapter-links span{font-size:13px}.chapter-links strong{font:italic 30px Georgia,serif}.chapter-links small{font-size:15px}.scrapbook-menu h2{margin-bottom:30px}
.story-scrap p{background:#fffdf7;box-shadow:3px 4px 0 #e5d6c5}.story-scrap small{color:#806c57}.notes details{background:#fffdf7;box-shadow:3px 5px 0 #e5d6c5}.notes details:nth-child(even){background:#f6e5df}.notes details:before{background:#c9b5d588}.when-note{background:#f2e2da;color:#493a37;border-color:#dcc7bb;box-shadow:4px 5px 0 #e0cabe}.when-note:nth-child(even){background:#eee5f2;box-shadow:4px 5px 0 #d7c9df}.when-note:hover{background:#f8eee8}.letter-invitation,.letter{background:#fffdf7;color:#493a37;box-shadow:5px 6px 0 #e4d6c7;border-color:#d9c8b8}.letter .prose{color:#60514b}.letter-invitation p,.letter-end{color:#75635e}.letter-invitation .section-label{font-size:14px;letter-spacing:0}.letter-invitation:before{background:#c9b5d588}#note-dialog{background:#fffdf7;color:#493a37}#note-body{color:#60514b}footer{color:#89756c;max-width:1100px;margin:auto}#quiz-answers button{background:#fffdf7;color:#60514b}.video-grid video{background:#e8dfd2}.full-album>summary span{color:#79518a}
@media(max-width:600px){header{padding:18px 6%}header nav{gap:8px 15px;width:100%}header nav a{font-size:14px}.chapter-links{grid-template-columns:1fr;gap:24px}.chapter-links a{padding:24px}.when-grid{grid-template-columns:1fr}.hero h1{font-size:42px}.scrapbook-menu{padding-top:10px}}
.home-label{display:inline-block;background:#ecdce9;border:1px dashed #b799be;padding:5px 14px;margin-bottom:14px;transform:rotate(-3deg);font:italic 18px Georgia,serif;color:#775280}.hero .eyebrow{font-size:11px}.home-caption{display:block;font:italic 20px Georgia,serif;color:#86685d;transform:rotate(3deg);margin:0 0 12px}.home-keepsakes{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:24px;align-items:center;padding-top:10px;padding-bottom:15px}.home-scene{display:block;width:min(100%,190px);aspect-ratio:1;border:0;background-color:transparent;cursor:pointer;margin:auto;transition:transform .2s}.home-scene:hover{transform:rotate(4deg)}.home-sticker-note{text-align:center;transform:rotate(-4deg)}.home-sticker-note:last-child{transform:rotate(4deg)}.home-sticker-note>span{font:italic 17px Georgia,serif;color:#80675d;display:block;margin-top:12px}.tiny-note{background:#f7e4dc;padding:25px;box-shadow:4px 5px 0 #dfc6b9;transform:rotate(1deg);position:relative}.tiny-note:before{content:'';position:absolute;width:80px;height:23px;top:-12px;left:calc(50% - 40px);background:#c5b1d490;transform:rotate(-5deg)}.tiny-note>span{font-size:12px;letter-spacing:.07em;color:#86685d}.tiny-note p{font-size:17px;line-height:1.65}.tiny-note #home-surprise-text{font-size:15px;min-height:75px;margin-bottom:0;color:#79518a}.home-filmstrip{text-align:center;padding-top:25px}#home-photo-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:25px}#home-photo-strip .memory-tile{aspect-ratio:4/5}.hero{padding-bottom:20px}.reasons .notes details{height:auto}.reasons .notes summary{font-size:19px}.home-filmstrip .text-button{display:inline-block;text-decoration:none}
@media(max-width:700px){.home-keepsakes{grid-template-columns:1fr 1fr;gap:22px 16px}.tiny-note{grid-column:1/-1;grid-row:2}.home-sticker-note{grid-row:1}.home-scene{width:135px}.home-sticker-note>span{font-size:16px}.home-keepsakes{padding-top:15px}#home-photo-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.home-caption{font-size:18px}.hero{gap:30px}.tiny-note #home-surprise-text{min-height:50px}.home-label{font-size:17px}.hero .eyebrow{font-size:11px}.hero h1{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.home-scene{transition:none}}
/* Illustrated manga chapter */
.manga-story{max-width:1150px;padding-top:35px}.manga-heading{text-align:center;margin-bottom:30px}.manga-heading>span{font-size:12px;letter-spacing:.18em}.manga-heading h2{font-family:Georgia,serif;font-style:italic;margin:12px 0}.manga-heading p{font-size:14px}.manga-book{background:#fffdf6;border:2px solid #493a37;box-shadow:7px 7px 0 #d9c8b8;padding:24px;scroll-margin-top:15px}.manga-page[hidden]{display:none}.manga-page-title{border-bottom:3px solid #493a37;margin-bottom:18px;padding-bottom:12px}.manga-page-title>span{font-size:11px;letter-spacing:.14em}.manga-page-title h3{font-family:Georgia,serif;font-size:28px;line-height:1.2;margin:8px 0}.manga-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.manga-panel{margin:0;border:2px solid #493a37;background:#fffdf6;display:flex;flex-direction:column;overflow:hidden}.panel-label{padding:7px 12px;background:#493a37;color:#fffdf6;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.manga-frame{position:relative;padding:18px 18px 0;background:radial-gradient(#baa8c344 1px,transparent 1px) 0 0/7px 7px;background-color:#f3e8ee}.manga-frame .scene-art{width:100%;aspect-ratio:1;border-radius:0}.speech-bubble{position:relative;background:#fffdf6;border:2px solid #493a37;border-radius:50%;padding:18px 22px;text-align:center;font-size:17px;font-weight:700;line-height:1.3;margin:-10px 0 15px;transform:rotate(-3deg)}.manga-panel:nth-child(2) .speech-bubble{transform:rotate(2deg)}.manga-panel figcaption{font:16px/1.6 'DM Sans',sans-serif;color:#493a37;padding:16px;margin:0;border-top:2px solid #493a37;flex:1}.manga-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}.manga-controls span{font-size:12px}.manga-controls button:disabled{opacity:.4;cursor:default}.manga-endnote{font-family:Georgia,serif;font-style:italic;text-align:center}.manga-endnote a{display:block;font:14px/2 'DM Sans',sans-serif;color:#79518a}@media(max-width:600px){.manga-book{padding:12px;box-shadow:4px 4px 0 #d9c8b8}.manga-panels{grid-template-columns:1fr}.manga-frame{padding:12px 25px 0}.manga-page-title h3{font-size:24px}.manga-controls{gap:8px}.manga-controls .button{padding:12px;font-size:12px}.manga-controls .text-button{font-size:12px}.manga-story{padding-left:5%;padding-right:5%}}

/* Balanced birthday opening: a full-width title above the photo keepsakes. */
.hero{grid-template-columns:1fr;text-align:center;max-width:1180px;gap:12px;padding-top:32px}.hero-copy{width:100%;max-width:1000px;margin:auto;padding:0}.hero h1{font-size:clamp(44px,6.5vw,84px);margin:22px auto;line-height:1.08}.hero-bottom{display:flex;flex-direction:column;align-items:center;gap:0}.hero-bottom .button{margin-top:18px}.photo-play{width:100%;padding:20px 0 0}.photo-stack{width:min(280px,65vw);margin:26px auto 32px}.home-caption{margin-top:5px}.hero .photo-play{background:radial-gradient(ellipse at center,#eadbe880,transparent 68%)}
@media(min-width:761px){.hero .photo-stack{width:290px;height:350px}.hero .stack-photo:nth-child(1){transform:translateX(-180px) rotate(-12deg)}.hero .stack-photo:nth-child(2){transform:translateX(180px) rotate(11deg)}.hero .stack-photo:nth-child(3){transform:rotate(-2deg)}.hero .stack-photo:hover{transform:translateX(var(--offset)) rotate(0deg) translateY(-8px);z-index:5}}
@media(max-width:760px){.hero{padding:24px 6% 20px;gap:12px}.hero-copy{text-align:center}.hero h1{font-size:clamp(40px,9vw,64px)}.hero .hero-bottom{align-items:center}.hero .photo-play{padding-top:12px}}

.birthday-cake{text-align:center;padding-top:35px;padding-bottom:35px}.birthday-cake h2{font-family:Georgia,serif;font-size:clamp(30px,5vw,48px);margin:15px 0}.birthday-cake small{color:#806c57;font-size:12px}.cake-actions{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap}.cake-actions [hidden]{display:none}#cake-art{width:280px;max-width:90%;margin:50px auto 25px;position:relative}.number-candles{display:flex;justify-content:center;gap:14px;height:94px;position:relative;z-index:2}.number-candles>span{font:bold 90px/1 Georgia,serif;color:#a477b0;text-shadow:2px 2px 0 #664174,-2px -1px 0 #e4cdea;position:relative}.candle-flame{position:absolute;width:15px;height:27px;background:linear-gradient(#ffd788,#ffa33e);border-radius:70% 20% 65% 35%;top:-27px;left:calc(50% - 7px);box-shadow:0 0 20px #ffc65f;animation:flame-dance .65s ease-in-out infinite alternate;transform-origin:bottom}.cake-icing{height:38px;border-radius:50%;background:#fff4e5;border:2px solid #dec6b5;position:relative;z-index:1}.cake-layer{height:110px;background:repeating-linear-gradient(90deg,#e5bdb8 0 22px,#edccc4 22px 44px);border-radius:0 0 35% 35%;margin-top:-18px;padding-top:34px;border:2px solid #cca9a3}.cake-layer span{font:italic 22px Georgia,serif;color:#694c5f}.cake-plate{height:18px;background:#d9c6df;border-radius:50%;margin:-4px -14px 0}#cake-art.extinguished .candle-flame{display:none}#cake-art.extinguished{animation:cake-celebrate .5s ease-out}#cake-status{max-width:520px;margin:18px auto 8px;padding:0 12px;min-height:28px}@keyframes flame-dance{to{transform:rotate(8deg) scale(.88,1.07)}}@keyframes cake-celebrate{50%{transform:scale(1.035)}}@media(prefers-reduced-motion:reduce){.candle-flame,#cake-art.extinguished{animation:none}}

.experience-gift{max-width:800px;text-align:center}.experience-gift h2{font-family:Georgia,serif;font-size:clamp(34px,5vw,56px);margin-top:25px}.experience-gift>p{text-align:left;font-size:18px}.experience-gift form{background:#f6e5df;padding:28px;border:1px dashed #b799be;margin:30px 0 20px;transform:rotate(-.5deg)}.experience-gift label{display:block;font-size:20px;margin-bottom:14px}.experience-gift textarea{display:block;width:100%;resize:vertical;border:1px solid #c5b5cd;background:#fffdf7;color:#493a37;font:17px/1.6 inherit;padding:14px;margin-bottom:20px;border-radius:8px}.experience-gift small{display:block;margin-top:18px;color:#806c57}.experience-gift [hidden]{display:none}.scrapbook-menu>.button{margin:0 0 25px}

.hero .birthday-cake{padding:15px 0 25px}.gift-options{border:0;padding:0;text-align:left}.gift-options legend{font:24px Georgia,serif;margin-bottom:18px}.gift-options label{display:flex;gap:12px;align-items:center;background:#fffdf7;padding:14px;font-size:17px;border:1px solid #d6c5d7;border-radius:8px;cursor:pointer}.gift-options input{accent-color:#79518a;flex-shrink:0;width:18px;height:18px}.gift-details{font-size:14px}.experience-gift textarea{font-family:inherit;font-size:17px}

.cake-party{position:relative;max-width:900px;margin:20px auto 30px;padding-top:75px}.birthday-bunting{position:absolute;top:0;left:8%;right:8%;display:flex;justify-content:center;align-items:start;gap:8px;border-top:2px solid #baa18c;padding-top:3px;transform:rotate(-2deg)}.birthday-bunting span,.birthday-bunting b{background:#e7c7c0;color:#79518a;width:38px;height:52px;clip-path:polygon(0 0,100% 0,100% 100%,50% 79%,0 100%);font:bold 20px/37px Georgia,serif;display:block}.birthday-bunting span:nth-child(even){background:#d8c4df;transform:rotate(5deg)}.birthday-bunting b{background:#eed5a0;font-size:23px;width:48px}.party-figure{position:absolute;width:clamp(130px,22vw,215px);aspect-ratio:1;top:145px;background-color:transparent;filter:drop-shadow(0 7px 5px #79518a18);animation:party-bob 3.5s ease-in-out infinite}.party-left{left:0;transform:rotate(-9deg)}.party-right{right:0;transform:rotate(8deg);animation-delay:-1.6s}.party-caption{position:absolute;top:100%;left:-8%;width:116%;font:italic 17px Georgia,serif;color:#79518a}.party-confetti{position:absolute;top:74px;left:0;width:100%;font-size:30px;letter-spacing:12px;color:#c79b63;pointer-events:none}.cake-party #cake-art{margin-top:45px}.cake-party .scene-art{border-radius:25%}@keyframes party-bob{50%{translate:0 -7px}}@media(max-width:620px){.cake-party{padding-top:165px;margin-bottom:20px}.party-figure{width:110px;top:67px}.party-left{left:5%}.party-right{right:5%}.party-caption{font-size:13px}.birthday-bunting{left:0;right:0;gap:5px}.birthday-bunting span{width:29px;height:42px;font-size:17px;line-height:30px}.birthday-bunting b{height:42px;line-height:30px}.party-confetti{top:128px;font-size:20px;letter-spacing:3px}.cake-party #cake-art{margin-top:47px}}@media(prefers-reduced-motion:reduce){.party-figure{animation:none}}

.scene-birthday{background-image:url('media/birthday-cake-sticker.png');background-size:contain;background-position:center!important;background-repeat:no-repeat}

.birthday-transition{position:relative;margin:22px auto 0;padding:36px 20px 10px;max-width:650px}.birthday-transition:before{content:'';position:absolute;top:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,#c9b4c9,transparent)}.birthday-transition>span{font-size:25px;color:#b48cab;margin-bottom:14px}.hero .birthday-transition>p{font-family:Georgia,serif;font-size:clamp(19px,2.4vw,24px);line-height:1.65}.hero .birthday-transition .transition-aside{font-family:inherit;font-size:14px;color:#89756c;margin:15px 0 22px}.birthday-transition a{text-decoration:none}.hero .photo-play{padding-top:35px}.home-keepsakes{padding-top:35px}.home-filmstrip{padding-bottom:35px}
/* A subtle highlight for the original mobile text navigation. */
@media(max-width:760px){
#birthday-content>header{background:#eee3ef;border-bottom:1px solid #cdb7d3;padding-top:18px;padding-bottom:18px}
#birthday-content>header nav a{color:#634370;font-weight:500;background:none;border-radius:0;box-shadow:none}
#birthday-content>header nav a[aria-current="page"]{color:#634370;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
}

.gift-physical{text-align:left;padding:22px 25px;margin:28px 0;background:#f3e8ee;border-left:3px solid #b799be}.gift-physical h3{font:26px Georgia,serif;margin:8px 0}.gift-physical p{margin:10px 0 0;line-height:1.7}.experience-gift .experience-title{font:28px/1.35 Georgia,serif;text-align:left;margin:35px 0 22px}

#quiz-back{margin-right:20px}#quiz-answer-review{padding-left:1.5rem}#quiz-answer-review li{padding:12px 0;border-bottom:1px solid #d9c9df}#quiz-answer-review button{text-align:left;line-height:1.6}#quiz-submit-form{margin-top:30px}#quiz-submit-form label{display:block}#quiz-submit-form input[name=name]{display:block;width:min(100%,400px);box-sizing:border-box;padding:12px;margin:10px 0 24px;border:1px solid #ac8abc;border-radius:8px;font:inherit}#quiz button:disabled{opacity:.55;cursor:default}
