@font-face{font-family:Gelasio;src:url('assets/gelasio.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:NunitoSans;src:url('assets/nunito-sans.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--bg:oklch(1 0 0);--ink:oklch(.25 .015 113);--muted:oklch(.46 .025 113);--olive:oklch(.40 .065 113);--surface:oklch(.96 .008 113);--line:oklch(.88 .01 113);--modal:oklch(.16 .005 113);--z-modal:10;color-scheme:light;font-family:NunitoSans,Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:6px}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--olive);outline-offset:7px}h1,h2,p,figure{margin:0}h1,h2{text-wrap:balance}p{text-wrap:pretty}img{display:block;max-width:100%;height:auto}.masthead,main,footer{width:min(1160px,calc(100% - 112px));margin-inline:auto}.masthead{padding-block:33px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:15px}.masthead a{text-decoration:none}.introduction{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(35px,6vw,88px);align-items:center;padding-top:65px;padding-bottom:65px}.dedication{font-size:17px;color:var(--olive);margin-bottom:15px}h1{font:400 clamp(4rem,7.2vw,6rem)/1.18 Gelasio,Georgia,serif;letter-spacing:-.02em;margin-left:-4px}.dates{font-size:15px;color:var(--muted);line-height:1.8;margin-top:23px;white-space:nowrap}.mobile-break{display:none}.love{font-family:Gelasio,Georgia,serif;font-size:clamp(22px,2.4vw,30px);line-height:1.55;margin-top:40px}.album-link{display:inline-flex;gap:24px;margin-top:48px;font-size:16px;color:var(--olive);text-decoration:none}.album-link span{transition:transform .4s ease}.album-link:hover span{transform:translateY(4px)}.portrait{padding-top:10px}.portrait img{width:100%;aspect-ratio:4/4.4;object-fit:cover;object-position:47% center}.photo-link{display:block;overflow:hidden;border-radius:3px;cursor:zoom-in}.photo-link img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}.photo-link:hover img{transform:scale(1.025)}figcaption{font-size:15px;line-height:1.6;color:var(--muted);padding-top:14px}.portrait figcaption{text-align:right}.remembrance{padding:100px 0 125px;text-align:center}.remembrance p{font:400 clamp(24px,3vw,34px)/1.65 Gelasio,Georgia,serif}.little-leaf{display:block;font-family:Georgia,serif;font-size:30px;color:var(--olive);margin-top:34px}.album-heading{margin-bottom:52px}h2{font:400 clamp(28px,4vw,40px)/1.4 Gelasio,Georgia,serif;letter-spacing:-.02em}.album-heading p{margin-top:12px;color:var(--muted);font-size:18px}.photographs{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(35px,7vw,110px);row-gap:72px;align-items:start}.memory img{width:100%;object-fit:cover}.window{width:100%}.stretch{width:82%;margin-top:135px;justify-self:end}.yawn{width:83%;margin-top:-50px}.perch{width:100%;margin-top:70px}.blanket{width:85%;margin-top:-70px}.farewell{text-align:center;padding:120px 0 135px}.farewell .little-leaf{margin-top:0;margin-bottom:34px}.farewell p{font:400 clamp(29px,4vw,44px)/1.55 Gelasio,Georgia,serif;letter-spacing:-.02em}.farewell a{display:inline-block;margin-top:38px;font-size:15px;color:var(--muted);text-decoration:none}footer{border-top:1px solid var(--line);padding:27px 0 35px;display:flex;justify-content:space-between;font-size:14px;color:var(--muted)}.skip{position:fixed;top:-100px;left:20px;padding:14px;background:var(--bg);z-index:var(--z-modal)}.skip:focus{top:12px}
dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:20px 35px;border:0;margin:0;background:var(--modal);color:var(--bg);z-index:var(--z-modal)}dialog[open]{display:flex;flex-direction:column;align-items:center;justify-content:space-between}dialog::backdrop{background:var(--modal)}body:has(dialog[open]){overflow:hidden}.viewer-bar,.viewer-bottom{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:52px;font-size:16px}dialog button{border:0;background:transparent;color:inherit;padding:12px 4px}dialog button:focus-visible{outline-color:var(--bg)}#large-photo{max-width:100%;max-height:calc(100dvh - 175px);width:auto;object-fit:contain}#photo-caption{text-align:center;color:oklch(.88 .005 113)}
@keyframes arrive{from{transform:translateY(10px);opacity:.55}to{transform:translateY(0);opacity:1}}.greeting{animation:arrive 1.1s cubic-bezier(.2,.7,.2,1) both}.portrait{animation:arrive 1.6s cubic-bezier(.2,.7,.2,1) both}
@media(min-width:1500px){.introduction{padding-top:85px}.portrait img{aspect-ratio:1/1.05}}
@media(max-width:760px){.masthead,main,footer{width:calc(100% - 44px)}.masthead{padding-block:24px;font-size:14px}.introduction{grid-template-columns:1fr;gap:37px;padding-top:35px;padding-bottom:15px}.greeting{text-align:center}.dedication{font-size:16px}h1{font-size:clamp(4rem,17vw,5.5rem);margin:0}.dates{margin-top:16px;font-size:14px}.love{margin-top:25px;font-size:24px}.album-link{margin-top:25px}.portrait{width:min(100%,480px);justify-self:center;padding:0}.portrait img{aspect-ratio:4/4.1}.portrait figcaption{text-align:center}.remembrance{padding:90px 0}.remembrance p{font-size:24px}.album-heading{margin-bottom:32px}.album-heading p{font-size:16px}.photographs{column-gap:22px;row-gap:38px}.stretch{width:100%;margin-top:80px}.yawn{width:100%;margin-top:-25px}.perch{margin-top:35px}.blanket{width:100%;margin-top:-30px}figcaption{font-size:13px;padding-top:10px}.farewell{padding:85px 0 90px}footer{font-size:12px;gap:12px}dialog{padding:12px 17px}.viewer-bar,.viewer-bottom{font-size:14px;gap:10px}.viewer-bottom{flex-wrap:wrap}#photo-caption{order:3;width:100%;padding-top:8px}#large-photo{max-height:calc(100dvh - 190px)}}
.video-memory{margin:110px auto 0;width:min(960px,100%)}.video-memory video{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:3px;background:var(--ink)}.video-memory figcaption{max-width:65ch;line-height:1.7}@media(max-width:760px){.video-memory{margin-top:75px}.video-memory .album-heading{margin-bottom:25px}}
@font-face{font-family:Caveat;src:url('assets/caveat.ttf') format('truetype');font-weight:400;font-display:swap}
.keepsakes{text-align:center;margin-top:120px;padding:72px 25px 54px;background:var(--surface);border-radius:4px}.stack-intro{font-size:1rem;color:var(--muted);margin-top:14px}.polaroid-stack{width:min(340px,80%);margin:62px auto 35px;isolation:isolate;touch-action:pan-y;outline-offset:18px}.polaroid{background:var(--bg);padding:15px 15px 20px;box-shadow:0 3px 7px oklch(.25 .015 113 / .15);margin-bottom:30px;border-radius:1px}.polaroid img{width:100%;aspect-ratio:1;object-fit:cover;user-select:none}.polaroid figcaption{font-family:Caveat,cursive;font-size:1.9rem;line-height:1.4;color:var(--ink);padding-top:16px;transform:rotate(-2deg)}.polaroid-stack.is-ready{position:relative;aspect-ratio:340/425;cursor:grab}.polaroid-stack.is-ready:active{cursor:grabbing}.is-ready .polaroid{position:absolute;inset:0;margin:0;transform:translate(calc(var(--depth) * 1px),calc(var(--depth) * -2px)) rotate(var(--tilt));transform-origin:50% 65%;transition:transform .45s cubic-bezier(.22,.68,.2,1);pointer-events:none}.is-ready .polaroid:not([inert]){transform:translateX(var(--drag,0px)) rotate(var(--tilt))}.stack-controls{display:flex;align-items:center;justify-content:center;gap:24px}.stack-controls[hidden]{display:none}.stack-controls button{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--olive);font-size:1.4rem;transition:background .2s ease}.stack-controls button:hover{background:var(--line)}#stack-count{font-size:.875rem;color:var(--muted);min-width:48px}.stack-help{font-size:.875rem;color:var(--muted);margin-top:16px}.polaroid-stack:focus-visible{outline:2px solid var(--olive)}
@media(max-width:760px){.keepsakes{margin-top:80px;padding:52px 14px 35px}.keepsakes h2{font-size:1.65rem}.polaroid-stack{width:76%;margin-top:48px;margin-bottom:26px}.polaroid{padding:11px 11px 14px}.polaroid figcaption{font-size:1.65rem;padding-top:12px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.photo-link:hover img,.album-link:hover span{transform:none}}
