:root{--paper:#f9eeee;--ink:#632f3c;--red:#9e344c;--muted:#865963;--line:#dfc5ca;--white:#fffaf8;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:6px}.preview-banner{text-align:center;background:#efd8de;font-size:.8rem;padding:10px 20px;color:#693846}.preview-banner span{padding:0 9px}.masthead{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:29px 55px}.brand{font-family:'Caveat',cursive;font-size:2rem;text-decoration:none;display:flex;gap:10px;align-items:center}.brand span{font-family:serif;font-size:2.1rem}.collection-link{text-decoration:none;font-size:.88rem}.collection-link span{margin-left:15px;font-size:1.2rem}.intro{text-align:center;padding:55px 20px 64px}.eyebrow{font-size:.75rem;letter-spacing:.18em;font-weight:600;margin:0 0 24px;line-height:1.6}h1{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;font-size:clamp(4.6rem,8.6vw,8rem);line-height:.96;letter-spacing:-.035em;margin:0}.period{color:var(--red)}.dedication{display:flex;align-items:center;justify-content:center;gap:20px;margin:14px 0 23px;font-family:'Caveat',cursive;color:var(--red);font-size:2.9rem;transform:rotate(-3deg)}.rule{height:1px;width:52px;background:var(--line)}.intro-copy{font-size:1rem;line-height:1.8;color:var(--muted);margin:0}.love-line{font-family:'Caveat',cursive;font-size:1.65rem;margin:14px 0 0;color:var(--red)}.memories{max-width:1210px;margin:0 auto;padding:26px 35px 20px;border-top:1px solid var(--line);scroll-margin-top:24px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.section-top h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;font-size:2rem;margin:0}.section-top p{font-size:.8rem;white-space:nowrap;color:var(--muted);margin:0}.section-top p span:last-child{padding-left:10px;font-size:1.3rem}.gallery-hint{font-size:.875rem;color:var(--muted);margin:10px 0 34px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:39px 32px}.card{position:relative;display:block;width:100%;background:var(--white);border:1px solid #e8d8d9;padding:13px 13px 0;box-shadow:0 5px 12px #743c4a0a;cursor:pointer;color:var(--ink);text-align:left;transform:rotate(var(--rotate));transition:transform .25s,box-shadow .25s}.card:nth-child(3n+1){--rotate:-1.4deg}.card:nth-child(3n+2){--rotate:1deg}.card:nth-child(3n){--rotate:-.5deg}.card:hover{transform:translateY(-6px) rotate(0);box-shadow:0 12px 24px #743c4a15}.photo{aspect-ratio:1.14;overflow:hidden;position:relative;background:#ecdadd}.photo img,.detail-photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-empty{height:100%;min-height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(145deg,#f0dce0,#e2c4cd);color:#9a6572}.card:nth-child(4n+2) .photo-empty{background:linear-gradient(155deg,#e2dfe9,#cec8dc);color:#766787}.card:nth-child(4n+3) .photo-empty{background:linear-gradient(135deg,#efe0d1,#ddc7b4);color:#8d715c}.card:nth-child(4n) .photo-empty{background:linear-gradient(145deg,#dfe5df,#c9d7cf);color:#667d6b}.empty-number{font-family:'Libre Caslon Display',Georgia,serif;font-size:5.5rem;font-weight:400;opacity:.65;line-height:1}.empty-label{font-family:'Caveat',cursive;font-size:1.5rem;margin-top:14px}.card-bottom{display:flex;justify-content:space-between;align-items:center;padding:16px 7px 19px;gap:12px}.card-name{display:block;font-family:'Caveat',cursive;font-size:1.9rem;line-height:1.1}.card-status{font-size:.75rem;color:var(--muted);display:block;margin-top:7px}.play{height:39px;width:39px;border:1px solid #ddbec5;border-radius:50%;display:grid;place-items:center;flex:none;color:var(--red);background:#fff7f8}.play svg{width:15px;height:15px;margin-left:2px}.closing{text-align:center;padding:80px 20px 66px}.closing-script{font-family:'Caveat',cursive;font-size:3.2rem;color:var(--red);margin:0;transform:rotate(-3deg)}.closing>p:nth-child(2){font-size:.9rem;color:var(--muted);margin:14px 0 22px}.qr-trigger{display:inline-flex;gap:10px;align-items:center;background:none;border:0;border-bottom:1px solid var(--line);padding:8px 0;color:var(--ink);cursor:pointer;font-size:.875rem}footer{border-top:1px solid var(--line);max-width:1210px;margin:auto;padding:24px 35px 30px;display:flex;justify-content:space-between;gap:20px;font-size:.8rem;color:var(--muted)}dialog{padding:0;border:1px solid #e4cbd1;border-radius:3px;background:var(--white);color:var(--ink);width:min(820px,calc(100% - 32px));max-height:90dvh;overflow:auto;box-shadow:0 25px 100px #39141e33}dialog[open]{display:grid;grid-template-columns:1fr 1fr}dialog::backdrop{background:#38202999;backdrop-filter:blur(7px)}.close{position:absolute;top:12px;right:12px;z-index:2;width:40px;height:40px;background:var(--white);border:1px solid var(--line);border-radius:50%;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--ink)}.detail-photo{min-height:430px;background:#ead5dc;aspect-ratio:.9}.detail-content{padding:68px 30px 28px;display:flex;flex-direction:column}.detail-content .eyebrow{margin-bottom:10px}.detail-content h2{font-family:'Caveat',cursive;font-size:3rem;font-weight:500;margin:0}.detail-caption{font-size:1rem;line-height:1.6;color:var(--muted)}.audio-area{margin:auto 0;padding:24px 0}audio{width:100%;accent-color:var(--red)}audio[hidden]{display:none}.audio-empty{font-family:'Libre Caslon Display',Georgia,serif;font-size:1.7rem;line-height:1.2}.audio-empty span{display:inline-block;margin-top:12px;font: .85rem/1.6 'DM Sans',sans-serif;color:var(--muted)}.audio-error{font-size:.875rem;color:var(--red)}.detail-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:20px;border-top:1px solid var(--line);font-size:.8rem}.detail-nav button{padding:8px 0;border:0;background:transparent;color:var(--ink);cursor:pointer;font-size:.875rem}.detail-nav button:disabled{opacity:.35;cursor:default}.qr-dialog[open]{display:block;text-align:center;max-width:420px;padding:46px 30px 32px}.qr-dialog h2{font:400 3.3rem/.95 'Libre Caslon Display',Georgia,serif;margin:0 0 25px}.qr-dialog img{max-width:100%;height:auto;border:10px solid white}.qr-dialog p:not(.eyebrow){font-size:.875rem;line-height:1.6}.qr-dialog .qr-access{font-size:.8rem;color:var(--muted)}.download{display:inline-flex;align-items:center;gap:30px;background:var(--red);color:white;padding:14px 20px;text-decoration:none;font-size:.9rem;margin-top:8px}
@media(min-width:1450px){.intro{padding-top:75px;padding-bottom:80px}}@media(max-width:760px){.masthead{padding:22px 24px}.intro{padding:38px 18px 46px}h1{font-size:5.2rem}.dedication{font-size:2.4rem}.intro-copy{font-size:.95rem}.memories{padding:24px 23px 10px;margin:0 12px}.section-top{align-items:flex-start}.section-top h2{font-size:1.7rem;max-width:200px}.section-top p{font-size:.75rem;padding-top:5px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.card{padding:8px 8px 0}.card-bottom{padding:13px 3px 16px}.card-name{font-size:1.6rem}.play{width:32px;height:32px}.empty-number{font-size:4rem}.empty-label{font-size:1.2rem}.gallery-hint{line-height:1.5}.detail-content{padding:45px 25px 24px}.detail-photo{min-height:320px}.closing{padding:56px 20px}footer{padding:22px 24px}.collection-link{font-size:.8rem}}
@media(max-width:480px){.preview-banner{font-size:.75rem;padding:9px 14px}.preview-banner span{padding:0 4px}.collection-link{max-width:135px}.intro{padding-top:34px}h1{font-size:4.55rem}.eyebrow{font-size:.75rem;letter-spacing:.12em}.intro-copy br{display:none}.intro-copy{max-width:305px;margin:auto}.grid{grid-template-columns:1fr;gap:28px;max-width:340px;margin:auto}.card{padding:12px 12px 0}.card-bottom{padding:17px 5px 20px}.card-name{font-size:2rem}.card-status{font-size:.8rem}.play{width:40px;height:40px}.empty-number{font-size:5.5rem}.empty-label{font-size:1.5rem}.section-top h2{font-size:1.75rem}.memories{padding-left:14px;padding-right:14px}.gallery-hint{margin-bottom:27px}.detail-photo{min-height:0;aspect-ratio:1.2}.detail-content{padding:24px}.detail-content h2{font-size:2.7rem}.detail-content .eyebrow{font-size:.75rem}.audio-area{padding:8px 0}dialog[open]{grid-template-columns:1fr}.audio-empty{margin:10px 0 20px}footer{flex-direction:column;align-items:center;gap:12px;text-align:center}.qr-dialog[open]{padding:50px 24px 28px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.card{transition:none}}
/* The birthday collection: a tactile opening screen. */
.preview-banner{font-size:.75rem;padding:8px 16px;letter-spacing:.025em}.masthead{max-width:1440px;padding:27px 5vw}.brand{font-family:'DM Sans',sans-serif;font-weight:500;font-size:.95rem;letter-spacing:-.025em;gap:12px}.brand .brand-star{font-size:1.5rem;color:var(--red)}.collection-link{font-size:.875rem}.hero{position:relative;max-width:1440px;margin:auto;padding:50px 7vw 0;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;column-gap:20px;min-height:min(790px,calc(100svh - 130px))}.hero-copy{padding:0 0 55px;position:relative;z-index:2}.hero .eyebrow{margin-bottom:30px;font-size:.75rem;letter-spacing:.14em}.hero h1{font-size:clamp(5rem,9.5vw,9.5rem);line-height:.9;letter-spacing:-.05em}.hero h1 span{color:var(--red)}.hero .intro-copy{margin-top:30px;line-height:1.65;font-size:1rem;color:var(--muted)}.hero-name{font:2.4rem 'Caveat',cursive;color:var(--red);margin:14px 0 -16px;transform:rotate(-3deg)}.primary-action{display:inline-flex;align-items:center;gap:42px;background:var(--red);color:var(--white);padding:18px 23px;margin-top:30px;text-decoration:none;border-radius:2px;font-size:.9rem;transition:background .2s,transform .2s}.primary-action:hover{background:#7d2037;transform:translateY(-2px)}.primary-action span{font-size:1.15rem}.hero-playground{position:relative;width:100%;max-width:530px;justify-self:center;padding:0 15px 45px}.stack-label{display:flex;align-items:center;justify-content:space-between;margin:0 10px 18px}.edition{font-size:.75rem;letter-spacing:.08em}.hand-note{font:2rem 'Caveat',cursive;transform:rotate(9deg);color:var(--red);padding-right:25px}.photo-stack{height:380px;position:relative;width:100%;isolation:isolate}.stack-card{position:absolute;top:8px;left:50%;width:285px;margin-left:-142px;padding:12px 12px 0;box-shadow:0 10px 30px #743c4a18;will-change:transform}.stack-card .photo{aspect-ratio:1}.stack-card .card-bottom{padding:17px 9px 20px}.stack-card .card-name{font-size:1.85rem}.stack-card-number{font-size:.8rem;letter-spacing:.06em;color:var(--muted)}.stack-card.depth-0{z-index:3;transform:rotate(-3deg);touch-action:pan-y;cursor:grab}.stack-card.depth-1{z-index:2;transform:translate(64px,15px) rotate(13deg)}.stack-card.depth-2{z-index:1;transform:translate(-60px,21px) rotate(-15deg)}.stack-card.depth-1:hover{transform:translate(82px,6px) rotate(17deg)}.stack-card.depth-2:hover{transform:translate(-78px,14px) rotate(-18deg)}.stack-card.depth-0:hover{transform:translateY(-7px) rotate(-1deg)}.stack-card.dragging{transition:none;cursor:grabbing}.stack-card .photo-empty{background:#e7cbd3}.stack-card.depth-1 .photo-empty{background:#ded8e7}.stack-card.depth-2 .photo-empty{background:#dbc6b5}.stack-card .empty-number{font-size:7.5rem}.stack-card .empty-label{font-size:1.45rem}.stack-controls{display:flex;align-items:center;justify-content:space-between;max-width:310px;margin:7px auto 0;border-bottom:1px solid var(--line);padding-bottom:13px}.shuffle-button{display:inline-flex;align-items:center;gap:10px;padding:9px 0;border:0;background:transparent;color:var(--ink);font-size:.875rem;cursor:pointer}.shuffle-button:hover{color:var(--red)}#stack-position{font-size:.75rem;letter-spacing:.05em;font-variant-numeric:tabular-nums}.stack-hint{text-align:center;color:var(--muted);font-size:.75rem;margin:14px 0 0}.hero-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding:23px 0 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;align-self:end;font-size:.75rem;letter-spacing:.1em;color:var(--muted)}.hero-bottom a{text-decoration:none}.hero-bottom a span{display:inline-block;font-size:1.05rem;margin-left:20px}.memories{border-top:0;padding-top:64px;padding-bottom:40px}.section-top h2{font-size:3rem}.gallery-hint{font-size:.95rem;margin:12px 0 42px}.card-status{font-size:.8rem}.closing{max-width:1140px;margin:auto;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:36px 0 45px;text-align:left}.closing-script{font-size:2.4rem}.qr-trigger{font-size:.9rem}.photo-empty .empty-label{opacity:.9}footer{border:0;font-size:.8rem}footer a{text-decoration:none}.audio-empty{font-size:1.8rem}.detail-content h2{font-size:2.75rem}html:has(dialog[open]){overflow:hidden}
@media(min-width:1500px){.hero{column-gap:70px;padding-left:90px;padding-right:90px}.hero-playground{max-width:500px}.photo-stack{height:420px}.stack-card{width:315px;margin-left:-157px}}
@media(max-width:1000px) and (min-width:701px){.hero{padding:40px 5vw 0;column-gap:0}.hero h1{font-size:6.3rem}.hero-playground{padding-left:0;padding-right:0}.stack-card{width:230px;margin-left:-115px;padding:9px 9px 0}.photo-stack{height:320px}.stack-card .card-name{font-size:1.65rem}.stack-card .empty-number{font-size:6rem}.stack-card.depth-1{transform:translate(38px,18px) rotate(13deg)}.stack-card.depth-2{transform:translate(-37px,21px) rotate(-15deg)}.edition{font-size:.75rem;max-width:120px;line-height:1.5}.stack-label{margin-left:30px;margin-right:15px}.stack-controls{max-width:250px}}
@media(max-width:760px){.closing{margin:0 35px;padding:30px 0 40px}.section-top h2{max-width:none;font-size:2.5rem}.hero .intro-copy br{display:block}}
@media(max-width:700px){.masthead{padding:23px 24px}.brand{font-size:.85rem;gap:7px}.brand .brand-star{font-size:1.35rem}.collection-link{font-size:.8rem}.collection-link span{margin-left:7px}.hero{display:flex;flex-direction:column;padding:30px 25px 0;min-height:0}.hero-copy{text-align:center;padding:0 0 36px;width:100%}.hero .eyebrow{margin-bottom:23px;font-size:.75rem}.hero h1{font-size:clamp(4.4rem,14.5vw,7rem);line-height:.89}.hero h1 br{display:none}.hero h1 span{display:block}.hero .intro-copy{font-size:.95rem;margin-top:23px;max-width:none}.primary-action{margin-top:24px;padding:15px 20px;gap:34px}.hero-playground{max-width:425px;padding:0 5px 28px}.stack-label{margin:0 8px 9px}.hand-note{font-size:1.8rem}.photo-stack{height:343px}.stack-card{width:255px;margin-left:-127px;padding:11px 11px 0}.stack-card.depth-1{transform:translate(40px,16px) rotate(12deg)}.stack-card.depth-2{transform:translate(-40px,19px) rotate(-13deg)}.stack-card.depth-1:hover{transform:translate(44px,12px) rotate(14deg)}.stack-card.depth-2:hover{transform:translate(-44px,16px) rotate(-15deg)}.stack-card .empty-number{font-size:6.2rem}.stack-card .card-bottom{padding:14px 6px 17px}.stack-card .card-name{font-size:1.75rem}.stack-controls{margin-top:0;max-width:275px}.stack-hint{font-size:.75rem}.hero-bottom{width:100%;padding:19px 0 21px;font-size:.75rem;letter-spacing:.035em}.hero-bottom>span{max-width:130px;line-height:1.6}.hero-bottom a span{margin-left:8px}.memories{padding-top:40px}.gallery-hint{margin-bottom:32px;font-size:.9rem}.closing{gap:20px}.closing-script{font-size:2.1rem}.qr-trigger{font-size:.8rem;white-space:nowrap}.detail-nav button{min-height:44px}}
@media(max-width:380px){.masthead{padding:18px}.brand{font-size:.78rem}.collection-link{font-size:.75rem}.hero{padding-left:21px;padding-right:21px}.stack-card{width:225px;margin-left:-112px}.photo-stack{height:310px}.stack-card.depth-1{transform:translate(30px,16px) rotate(12deg)}.stack-card.depth-2{transform:translate(-30px,19px) rotate(-13deg)}.stack-card .empty-number{font-size:5.5rem}.closing{flex-direction:column;align-items:flex-start}.hero-bottom{font-size:.75rem}.edition{font-size:.75rem;letter-spacing:0}.section-top h2{font-size:2.2rem}.hero .eyebrow{letter-spacing:.075em}}
@media(prefers-reduced-motion:reduce){.primary-action,.stack-card{transition:none}.stack-card{will-change:auto}}
.photo-stack{height:420px}.stack-card.depth-0 .photo .photo-empty{background:linear-gradient(145deg,#f0dce0,#e2c4cd);color:#9a6572}.stack-card.depth-1 .photo .photo-empty{background:linear-gradient(155deg,#e2dfe9,#cec8dc);color:#766787}.stack-card.depth-2 .photo .photo-empty{background:linear-gradient(135deg,#efe0d1,#ddc7b4);color:#8d715c}
@media(min-width:1500px){.photo-stack{height:445px}}
@media(max-width:1000px) and (min-width:701px){.photo-stack{height:365px}}
@media(max-width:700px){.photo-stack{height:390px}}
@media(max-width:380px){.photo-stack{height:350px}}
body{overflow-x:clip}
/* Personal dedication, without introductory interface copy. */
.personal-dedication,.personal-signature{font-family:'Caveat',cursive;font-size:1.6rem;color:var(--red)}.personal-dedication span{padding-left:7px}.signature-block{display:flex;flex-direction:column;align-items:flex-end;line-height:1}.personal-signature{font-size:1.4rem;transform:rotate(-3deg)}.made-by{margin-top:6px;border:0;padding:0;background:transparent;font:400 .48rem/1 'DM Sans',sans-serif;letter-spacing:.08em;color:var(--muted);opacity:.42;transform:rotate(-3deg);cursor:pointer}.made-by:hover,.made-by:focus-visible{opacity:.9}.heart-rain{position:fixed;z-index:100;top:-2rem;left:var(--heart-left);pointer-events:none;color:var(--red);font-family:'Caveat',cursive;font-size:var(--heart-size);animation:heart-fall var(--heart-duration) ease-in forwards;animation-delay:var(--heart-delay)}@keyframes heart-fall{0%{transform:translate3d(0,-1rem,0) rotate(0deg);opacity:0}10%{opacity:.9}100%{transform:translate3d(var(--heart-drift),105vh,0) rotate(210deg);opacity:0}}.hero{min-height:min(720px,calc(100svh - 100px));padding-top:40px;padding-bottom:45px}.hero-copy{padding-bottom:45px}.hero h1{font-size:clamp(6rem,12vw,12rem)}.hero-playground{padding-top:30px}.shuffle-button{width:44px;height:44px;justify-content:center;border:1px solid var(--line);border-radius:50%;padding:0}.stack-controls{border:0;padding:0}.qr-trigger{height:44px;width:44px;justify-content:center;border:1px solid var(--line);border-radius:50%;padding:0}.memories{border-top:1px solid var(--line)}.section-top h2{font-size:2.7rem}.gallery-hint{font-size:1rem;line-height:1.6;max-width:600px}.closing-script{font-size:2.3rem}
@media(max-width:1000px) and (min-width:701px){.hero h1{font-size:8rem}}
@media(max-width:700px){.masthead{padding:22px 25px}.personal-dedication{font-size:1.45rem}.personal-signature{font-size:1.3rem}.hero{min-height:0;padding-top:22px;padding-bottom:32px}.hero-copy{padding-bottom:8px}.hero h1{font-size:clamp(5rem,22vw,8rem)}.hero-playground{padding-top:25px;padding-bottom:0}.section-top{flex-wrap:wrap;gap:9px}.section-top h2{font-size:2.5rem}.section-top p{padding-top:0}.gallery-hint{margin-top:15px}.closing{flex-direction:row;align-items:center}.closing-script{font-size:2.1rem}}
/* Gentle depth and motion for Emma's Polaroids. */
.hero h1{font-size:clamp(5.5rem,10vw,10rem);line-height:.92}.hero h1 .emma-name{display:block;font-family:'Caveat',cursive;font-size:.67em;letter-spacing:-.035em;line-height:1.15;margin-top:.13em;transform:rotate(-5deg);transform-origin:left center;color:var(--red)}.hero-copy{padding-bottom:25px}.photo-stack{perspective:1100px;isolation:auto}.stack-scene{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--tilt-x,-5deg)) rotateY(var(--tilt-y,-7deg));transition:transform .6s cubic-bezier(.2,.7,.2,1);animation:polaroid-float 7s ease-in-out infinite}.stack-card{border-bottom:3px solid #e2d3d4;border-right:2px solid #eadbdd;box-shadow:1px 3px 0 #deccd0,4px 8px 12px #69303e0c,13px 24px 35px #69303e22;backface-visibility:hidden}.stack-card.depth-0{translate:0 0 48px}.stack-card.depth-1{translate:0 0 15px}.stack-card.depth-2{translate:0 0 -20px}.stack-card .photo{box-shadow:inset 0 0 0 1px #6d354314}.stack-card .photo::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,#ffffff28,transparent 40%,#73344808)}.stack-scene:has(.dragging){animation-play-state:paused;transition:none}.stack-scene.motion-paused,html:has(dialog[open]) .stack-scene{animation-play-state:paused}.grid .card{transform:perspective(950px) rotate(var(--rotate)) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));transition:transform .35s ease,box-shadow .35s ease;border-bottom:3px solid #e7d9db}.grid .card:hover{transform:perspective(950px) translateY(-8px) rotate(0deg) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));box-shadow:3px 5px 0 #dfcdd12b,9px 20px 30px #743c4a1c}@keyframes polaroid-float{0%,100%{translate:0 3px}50%{translate:0 -12px}}
@media(max-width:1000px) and (min-width:701px){.hero h1{font-size:7rem}}
@media(max-width:700px){.hero h1{font-size:clamp(4.8rem,20vw,7rem)}.hero h1 .emma-name{transform-origin:center;margin-top:.04em;font-size:.7em}.hero-copy{padding-bottom:5px}.stack-card.depth-0{translate:0 0 24px}.stack-card.depth-1{translate:0 0 5px}.stack-card.depth-2{translate:0 0 -14px}.stack-scene{transform:rotateX(var(--tilt-x,-4deg)) rotateY(var(--tilt-y,-4deg));animation-duration:8s}}
@media(prefers-reduced-motion:reduce){.stack-scene{animation:none;transition:none;translate:none;transform:rotateX(-4deg) rotateY(-4deg)}.grid .card{transition:none;transform:rotate(var(--rotate))}.grid .card:hover{transform:rotate(var(--rotate))}.stack-card{transition:none}}
/* Emma's blue photo album. */
:root{--paper:#EFF3FF;--ink:#123e6c;--red:#08519C;--muted:#47698a;--line:#C6DBEF;--white:#fff;--blue-soft:#9ECAE1;--blue-mid:#6BAED6;--blue:#3182BD;background:var(--paper);color:var(--ink)}.photo-empty,.card:nth-child(4n+1) .photo-empty{background:linear-gradient(145deg,#EFF3FF,#C6DBEF);color:#47698a}.card:nth-child(4n+2) .photo-empty{background:linear-gradient(145deg,#C6DBEF,#9ECAE1);color:#285d87}.card:nth-child(4n+3) .photo-empty{background:linear-gradient(145deg,#9ECAE1,#6BAED6);color:#134e7e}.card:nth-child(4n) .photo-empty{background:linear-gradient(145deg,#6BAED6,#3182BD);color:#07365c}.card{border-color:#d4e1ee;box-shadow:0 6px 16px #08519c0d}.grid .card{border-bottom-color:#cbdced}.grid .card:hover{box-shadow:3px 5px 0 #c6dbef50,9px 20px 30px #08519c18}.play{border-color:var(--line);background:var(--paper)}.detail-photo{background:var(--line)}.photo-album{height:435px;position:relative;perspective:1150px;width:100%;transform-style:preserve-3d}.album-page{position:absolute;top:24px;left:50%;width:285px;margin-left:-142px;opacity:0;pointer-events:none;transform:translate3d(0,0,-220px) rotateY(75deg) scale(.7);transition:transform 1.25s cubic-bezier(.2,.65,.2,1),opacity .85s,box-shadow 1.25s;border-right:2px solid #cbdced;border-bottom:3px solid #cbdced;box-shadow:2px 4px 0 #c6dbef,12px 24px 34px #08519c22;backface-visibility:hidden}.album-page .photo{aspect-ratio:1}.album-page .card-bottom{padding:17px 8px 20px}.album-page .card-name{font-size:1.85rem}.album-page .empty-number{font-size:7rem}.album-page[data-position="0"]{opacity:1;z-index:3;pointer-events:auto;transform:translate3d(0,0,60px) rotateY(-5deg) rotate(-3deg);cursor:pointer}.album-page[data-position="-1"]{opacity:.72;z-index:1;pointer-events:auto;transform:translate3d(-82px,19px,-95px) rotateY(26deg) rotate(-13deg) scale(.89)}.album-page[data-position="1"]{opacity:.72;z-index:1;pointer-events:auto;transform:translate3d(82px,19px,-95px) rotateY(-26deg) rotate(13deg) scale(.89)}.album-page[data-position="0"]:hover{transform:translate3d(0,-5px,70px) rotateY(0deg) rotate(-1deg)}.album-controls{max-width:310px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.album-buttons{display:flex;gap:5px}.album-buttons button{border:0;background:transparent;color:var(--red);height:44px;width:36px;cursor:pointer;border-radius:50%;font-size:1.1rem}.album-buttons button:hover{background:#C6DBEF80}.album-buttons button:disabled{opacity:.4;cursor:default}.detail-caption{white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto}.card-name{overflow-wrap:anywhere}.load-error{font-size:.9rem;line-height:1.5;color:var(--muted)}.load-error button{font:inherit;color:var(--red);border:0;background:transparent;text-decoration:underline;cursor:pointer}.load-error[hidden]{display:none}.primary-action:hover{background:#174b7f}dialog{border-color:var(--line);box-shadow:0 25px 100px #123e6c33}dialog::backdrop{background:#102d5199}.qr-dialog .download{background:var(--red)}
@media(max-width:1000px) and (min-width:701px){.album-page{width:230px;margin-left:-115px}.photo-album{height:385px}.album-page[data-position="-1"]{transform:translate3d(-50px,18px,-95px) rotateY(26deg) rotate(-13deg) scale(.89)}.album-page[data-position="1"]{transform:translate3d(50px,18px,-95px) rotateY(-26deg) rotate(13deg) scale(.89)}.album-controls{max-width:250px}.album-page .card-name{font-size:1.65rem}}
@media(max-width:700px){.photo-album{height:395px}.album-page{width:245px;margin-left:-122px}.album-page[data-position="0"]{transform:translate3d(0,0,20px) rotateY(-4deg) rotate(-3deg)}.album-page[data-position="-1"]{transform:translate3d(-58px,15px,-90px) rotateY(24deg) rotate(-12deg) scale(.87)}.album-page[data-position="1"]{transform:translate3d(58px,15px,-90px) rotateY(-24deg) rotate(12deg) scale(.87)}.album-page .card-name{font-size:1.65rem}.album-page .empty-number{font-size:6rem}.album-controls{max-width:275px}.hero-playground{padding-top:25px}.album-page[data-position="0"]:hover{transform:translate3d(0,0,20px) rotateY(-4deg) rotate(-3deg)}}
@media(max-width:380px){.album-page{width:215px;margin-left:-107px}.photo-album{height:350px}.album-page .empty-number{font-size:5rem}.album-page .card-name{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){.album-page{transition:none}.album-page[data-position="0"]:hover{transform:translate3d(0,0,20px) rotateY(-4deg) rotate(-3deg)}}
@media(prefers-reduced-motion:reduce){.heart-rain{animation:none;opacity:.75}}
.album-dialog{width:min(760px,calc(100% - 28px));padding:18px;background:var(--white)}.album-dialog[open]{display:block}.album-dialog img{display:block;width:100%;max-height:75vh;object-fit:contain;background:var(--paper)}.album-dialog p{font:1.7rem 'Caveat',cursive;text-align:center;margin:14px 0 2px;color:var(--red)}
@media(max-width:700px){#memory-dialog[open]{display:flex;flex-direction:column;width:min(620px,calc(100% - 20px));max-height:calc(100dvh - 20px);overflow:hidden}#memory-dialog .detail-photo{flex:0 0 auto;width:100%;min-height:0;height:min(34dvh,290px);aspect-ratio:auto;overflow:hidden}#memory-dialog .detail-photo img{height:100%;object-fit:cover}#memory-dialog .detail-content{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:22px 20px calc(20px + env(safe-area-inset-bottom))}#memory-dialog .detail-caption{max-height:none;overflow:visible}#memory-dialog .audio-area{margin:18px 0;flex:none}#memory-dialog #video-note{max-height:42dvh;margin:0}#memory-dialog .detail-nav{position:sticky;bottom:-20px;background:var(--white);padding-bottom:calc(14px + env(safe-area-inset-bottom));z-index:1}}
@media(min-width:701px){#memory-dialog[open]{width:min(1120px,calc(100% - 48px));height:min(820px,calc(100dvh - 48px));max-height:none;grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr);overflow:hidden}#memory-dialog .detail-photo{min-height:0;height:100%;aspect-ratio:auto;overflow:hidden}#memory-dialog .detail-photo img{height:100%;object-fit:cover}#memory-dialog .detail-content{min-width:0;min-height:0;overflow-y:auto;padding:52px 38px 30px}#memory-dialog .detail-caption{max-height:none;overflow:visible}#memory-dialog .audio-area{margin:26px 0;padding:0}#memory-dialog #video-note{max-height:min(52dvh,520px);margin:0}#memory-dialog .detail-nav{position:sticky;bottom:-30px;background:var(--white);padding-bottom:18px;z-index:1}}
