:root{--paper:#fdf7fb;--ink:#241020;--muted:#7d6a77;--accent:#c2185b;--line:#f0dfea;--serif:Georgia,serif;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #a24a35;outline-offset:5px}button:disabled{opacity:.55;cursor:wait}button{color:inherit}img{max-width:100%;display:block}button,dialog{border:0}h1,h2,p{margin:0}h1,h2,.wordmark{font-family:Manrope,sans-serif}button{background:none}.site-header{max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:27px 5%;border-bottom:1px solid var(--line)}.wordmark{font-size:22px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.wordmark span{color:var(--accent)}nav{display:flex;gap:32px;font-size:13px}nav a:hover{color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;color:white;background:var(--accent);padding:14px 23px;border-radius:30px;font-size:13px;font-weight:600;transition:background .2s,transform .2s}.button:hover{background:#aa3f2e;transform:translateY(-2px)}.button span{font-size:20px}.hero{text-align:center;overflow:hidden;padding:68px 0 22px}.eyebrow{text-transform:uppercase;letter-spacing:2.4px;font-size:10px;font-weight:700;color:var(--accent);line-height:1.7}h1{font-size:clamp(38px,5vw,69px);font-weight:500;line-height:1.12;letter-spacing:-3px;margin:21px auto}h1 span{color:#8a7482}.intro{font-size:15px;line-height:1.8;color:var(--muted)}.coverflow{position:relative;height:350px;perspective:1200px;margin-top:35px;touch-action:pan-y}.cover-card{position:absolute;left:calc(50% - 230px);top:22px;width:460px;height:285px;padding:0;overflow:hidden;border-radius:14px;box-shadow:0 22px 32px #2b122618;transition:transform .55s,filter .55s,opacity .55s;background:#ddd}.cover-card img{height:100%;width:100%;object-fit:cover}.media-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:58px;height:58px;border-radius:50%;border:1px solid #ffffffcf;background:#1115;color:#fff;font-size:23px;backdrop-filter:blur(3px)}.cover-card .cover-label{position:absolute;bottom:0;left:0;width:100%;background:linear-gradient(transparent,#0009);padding:28px 18px 15px;color:white;text-align:left;font-size:13px}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:23px;min-height:42px;font-size:12px}.icon-button{border:1px solid #e7d6e1;border-radius:50%;height:42px;width:42px;display:inline-grid;place-items:center;flex-shrink:0;background:transparent}.icon-button:hover{background:#f4e6ef}.sample-notice{text-align:center;font-size:10px;color:#8d7a86;margin:19px 0 0}.section-wrap{max-width:1320px;margin:auto;padding:70px 5% 30px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:27px}h2{font-size:clamp(25px,3vw,40px);font-weight:500;line-height:1.2;letter-spacing:-1.4px;margin-top:10px}.filters{display:flex;gap:5px}.filters button{padding:9px 18px;font-size:12px;border:1px solid var(--line);border-radius:24px}.filters button.active{background:var(--ink);border-color:var(--ink);color:white}.mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:205px;gap:12px}.memory-tile{position:relative;padding:0;overflow:hidden;border-radius:14px;background:#f0dfea;isolation:isolate;text-align:left}.memory-tile:nth-child(9n+1){grid-column:span 2;grid-row:span 2}.memory-tile:nth-child(9n+4){grid-column:span 2}.memory-tile:nth-child(9n+7){grid-row:span 2}.memory-tile img,.memory-tile video{width:100%;height:100%;object-fit:cover;transition:transform .5s}.memory-tile:hover img{transform:scale(1.045)}.memory-tile .tile-info{position:absolute;inset:auto 0 0;padding:45px 18px 17px;background:linear-gradient(transparent,#0009);color:white;font-size:12px;opacity:0;transition:opacity .2s}.memory-tile:hover .tile-info,.memory-tile:focus-visible .tile-info{opacity:1}.album-badge{position:absolute;right:12px;top:12px;background:#1c1018cc;color:white;padding:7px 10px;border-radius:7px;font-size:11px}.editorial{padding:100px 24px 90px;text-align:center}.tiny-mark{color:var(--accent);font-size:35px;display:block;margin-bottom:22px}.editorial h2{font-size:clamp(26px,3.5vw,46px);line-height:1.4;font-weight:400}.editorial em{font-family:var(--serif);font-weight:400;color:var(--accent)}.editorial>p:last-of-type{color:var(--muted);font-size:14px;line-height:1.9;margin-top:22px}.signature{display:block;font-family:var(--serif);font-style:italic;margin-top:25px;font-size:17px}.people{padding-top:30px;background:#f9eff5;max-width:none;padding-bottom:75px}.people .section-heading{max-width:1190px;margin:0 auto 38px}.section-description{font-size:13px;line-height:1.7;color:var(--muted)}.honeycomb{--hex:190px;display:flex;flex-direction:column;align-items:center;max-width:1150px;margin:auto;padding:10px 0 30px}.hex-row{display:flex;gap:10px;margin-top:calc(var(--hex)*-.19)}.hex-row:first-child{margin-top:0}.hex{width:var(--hex);height:calc(var(--hex)*1.14);clip-path:polygon(50% 0,97% 25%,97% 75%,50% 100%,3% 75%,3% 25%);padding:0;position:relative;background:#f3dcea;transition:filter .2s,transform .2s}.hex:hover{filter:brightness(1.08);transform:scale(1.04);z-index:2}.hex img,.hex video{width:100%;height:100%;object-fit:cover;object-position:center 35%}.hex .album-badge{right:32px;top:45%;font-size:10px}.hex:focus-visible{filter:brightness(.7)}.birthday-band{background:#2e1026;color:#fdf4f9;padding:70px 9%;display:grid;grid-template-columns:1.25fr 1fr;gap:15px 40px;align-items:center}.birthday-band .eyebrow{color:#f6b9d7;grid-column:1/-1}.birthday-band h2{font-size:clamp(32px,4vw,52px);line-height:1.28}.birthday-band h2 span{color:#f2a8d0}.birthday-band>p:last-child{font-size:14px;line-height:1.9;color:#ecd2e2}.wishes-section{padding-bottom:75px}.text-button{color:var(--accent);font-size:13px;padding:10px 0}.wish-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.wish{padding:25px 0;border-top:1px solid #edd3e3}.wish blockquote{margin:0 0 25px;font-family:var(--serif);font-size:23px;line-height:1.5}.wish small{color:var(--muted);font-size:11px}.closing{text-align:center;padding:65px 20px 90px;background:#fbf0f6}.closing h2{margin:18px 0;font-size:clamp(28px,3.5vw,46px)}.closing>p:not(.eyebrow){font-size:14px;color:var(--muted);margin-bottom:25px}footer{padding:30px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}footer p,footer>a:last-child{font-size:11px;color:var(--muted)}.empty{padding:45px;text-align:center;color:var(--muted)}dialog{padding:0}dialog::backdrop{background:#1e0c1ab8;backdrop-filter:blur(8px)}.viewer{width:min(1100px,94vw);max-height:94dvh;background:#1e0c1a;color:#fff;border-radius:20px;padding:25px 35px 30px;overflow:auto}.viewer-top{display:flex;justify-content:space-between;align-items:start;gap:15px}.viewer-top .eyebrow{color:#eda9cd;letter-spacing:1px}.viewer-top h2{font-size:23px;letter-spacing:-.5px}.dark{color:#fff;border-color:#633657}.dark:hover{background:#4d1f40}.fan{position:relative;height:440px;margin-top:20px;overflow:hidden;touch-action:pan-y}.fan-card{position:absolute;left:calc(50% - 165px);top:10px;width:330px;height:395px;object-fit:cover;transform-origin:50% 110%;border-radius:14px;overflow:hidden;background:#140710;transition:transform .45s,opacity .45s}.fan-card img,.fan-card video{width:100%;height:100%;object-fit:contain}.fan-card.side{cursor:pointer}.fan.single .fan-card{width:100%;height:100%;left:0;top:0}.viewer-controls{display:flex;justify-content:center;gap:22px;align-items:center;font-size:13px}#viewer-message{text-align:center;max-width:700px;margin:20px auto;line-height:1.7;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.thumbnails{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.thumb{padding:0;width:65px;height:50px;border-radius:6px;overflow:hidden;border:2px solid transparent;position:relative}.thumb.active{border-color:#e0479a}.thumb img,.thumb video{width:100%;height:100%;object-fit:cover}.thumb span{position:absolute;bottom:1px;right:3px;color:white;text-shadow:0 1px 3px #000}.share-dialog{width:min(560px,94vw);padding:35px;border-radius:20px;max-height:92dvh;background:var(--paper);color:var(--ink)}.close-form{float:right}.share-dialog h2{font-size:32px;clear:both;padding-top:15px}.form-intro{color:var(--muted);font-size:13px;margin:13px 0 25px}label{display:block;font-size:13px;margin-top:17px}input:not([type=checkbox]),textarea{width:100%;border:1px solid #e4d2de;padding:12px 13px;border-radius:8px;background:#fff;margin-top:8px;box-sizing:border-box;font-size:16px;color:var(--ink)}textarea{resize:vertical}.upload-zone{border:1px dashed #cba6be;padding:20px;border-radius:10px;background:#fbf2f7}.upload-zone span{display:block;font-size:11px;color:var(--muted);margin-top:6px}.upload-zone input{font-size:12px;padding:5px}.consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6}.consent input{margin-top:3px}.review-note{font-size:11px;color:var(--muted);line-height:1.7;margin:18px 0}.file-previews{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.file-previews img,.file-previews video{width:70px;height:65px;object-fit:cover;border-radius:7px}#form-status{margin-top:15px;font-size:13px;line-height:1.6}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:14px 24px;border-radius:10px;z-index:20;font-size:13px;max-width:90%}.skip{position:fixed;top:-80px;left:20px;background:#fff;padding:12px;z-index:100}.skip:focus{top:10px}[hidden]{display:none!important}
@media(min-width:1500px){.coverflow{max-width:1500px;margin-left:auto;margin-right:auto}}@media(max-width:1000px){.honeycomb{--hex:155px}.site-header nav{gap:17px}.mosaic{grid-auto-rows:175px}.cover-card{width:390px;height:245px;left:calc(50% - 195px)}.coverflow{height:300px}}@media(max-width:740px){.site-header{padding:20px 5%;flex-wrap:wrap;gap:15px}.site-header nav{order:3;width:100%;justify-content:center;padding-top:5px;font-size:12px}.wordmark{font-size:19px}.button{padding:12px 17px;gap:12px;font-size:12px}.hero{padding-top:40px}h1{letter-spacing:-1.8px}.intro{font-size:13px;padding:0 20px}.cover-card{width:300px;height:210px;left:calc(50% - 150px)}.coverflow{height:260px;margin-top:25px}.hero .eyebrow{font-size:9px}.section-wrap{padding-top:40px}.section-heading{align-items:start;flex-direction:column;gap:17px}.section-heading h2{font-size:27px}.mosaic{grid-auto-rows:135px;gap:8px}.memory-tile{border-radius:9px}.album-badge{font-size:9px;right:6px;top:7px;padding:6px}.memory-tile .tile-info{display:none}.editorial{padding:65px 20px}.editorial h2{font-size:29px}.editorial>p:last-of-type{font-size:13px}.honeycomb{--hex:115px}.hex-row{gap:5px}.birthday-band{padding:48px 6%;grid-template-columns:1fr}.birthday-band h2{font-size:35px}.wish-list{grid-template-columns:1fr;gap:10px}.wish blockquote{font-size:22px}.closing{padding:55px 20px}.viewer{padding:20px 15px}.fan{height:365px}.fan-card{width:250px;height:330px;left:calc(50% - 125px)}.viewer-top h2{font-size:20px}.viewer-top .eyebrow{font-size:9px}.share-dialog{padding:25px}footer{flex-wrap:wrap}.media-play{width:45px;height:45px;font-size:18px}}@media(max-width:410px){.honeycomb{--hex:93px}.hex .album-badge{right:16px}.mosaic{grid-auto-rows:110px}.cover-card{width:255px;height:185px;left:calc(50% - 127.5px)}.coverflow{height:235px}.carousel-controls{gap:12px}#hero-caption{font-size:10px}.fan-card{width:210px;left:calc(50% - 105px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media(max-width:740px){.honeycomb{--hex:min(115px,calc((100vw - 14vw - 20px)/4))}}
.cover-card video{height:100%;width:100%;object-fit:cover;display:block}
.coverflow,.fan{cursor:grab;user-select:none}.coverflow.spinning,.fan.spinning{cursor:grabbing}.cover-card,.fan-card{transition:none;will-change:transform,opacity}.cover-card img,.fan-card img{pointer-events:none}.fan-select{position:absolute;inset:0;width:100%;height:100%}
