@font-face{font-family:DM Serif;src:url(assets/dm-serif-italic.ttf) format('truetype');font-style:italic;font-display:swap}
@font-face{font-family:DM Sans;src:url(assets/dm-sans-semibold.ttf) format('truetype');font-weight:600;font-display:swap}
[class*=preset-] .celebration-section{padding:50px 30px 82px;gap:28px}
[class*=preset-] .type-hero{gap:24px}
[class*=preset-] .section-title{font-size:clamp(44px,7vw,76px);line-height:1.02;letter-spacing:-2px;margin-bottom:18px}
[class*=preset-] .type-letter .section-title{font-size:clamp(30px,4vw,48px);line-height:1.12;letter-spacing:-1px;margin-bottom:30px}
[class*=preset-] .type-letter .section-body{font-size:17px;line-height:2}
[class*=preset-] .type-gallery .section-title,[class*=preset-] .type-video .section-title{font-size:36px;line-height:1.15}
[class*=preset-] .section-kicker{font-size:8px;letter-spacing:1.8px;margin-bottom:25px}
[class*=preset-] .type-hero .section-body{font-size:17px;line-height:1.6}
[class*=preset-] .type-quote .section-body{font-size:20px;margin-top:30px}
[class*=preset-] .type-quote .section-media{display:none}
[class*=preset-] .media-gallery{gap:18px}
[class*=preset-] .media-gallery img{height:280px;border-radius:0}
.catalog-scene .celebration{overflow:hidden!important;pointer-events:none}
.catalog-scene .celebration-section{overflow:hidden!important}
.catalog-scene #story-nav{display:none}
.catalog-scene .type-hero{padding-top:35px;padding-bottom:65px;gap:20px}

/* A letter on warm paper. */
.preset-letter .type-hero{background:radial-gradient(ellipse at 80% 10%,#fffaf3,transparent 65%),#f6efe5;color:#3d292c}
.preset-letter .type-hero .section-copy{order:0}
.preset-letter .type-hero .section-kicker{color:#754e53}
.preset-letter .type-hero .section-title{font-style:italic;font-size:clamp(47px,8vw,91px);line-height:1.01;color:#81464f}
.preset-letter .type-hero .section-media{order:1;width:min(100%,430px);margin:0 auto;padding:10px 10px 24px;background:#fffaf3;box-shadow:0 12px 28px #694b3a20;transform:rotate(-3deg)}
.preset-letter .type-hero .section-media img{height:min(36svh,350px);border-radius:0;object-position:50% 44%}
.preset-letter .type-letter{background:#fff9f0;color:#3d292c;border-top:1px solid #decac0}
.preset-letter .type-letter .section-copy{max-width:600px;padding:24px 0;border-block:1px solid #c9a7a3}
.preset-letter .type-letter .section-title{font-style:italic;color:#81464f}
.preset-letter .type-letter .section-body{font-family:DM Serif,Georgia,serif;font-size:clamp(19px,3vw,25px);line-height:1.7;color:#604343}
.preset-letter .type-gallery{background:#ebddd2;color:#3d292c}
.preset-letter .media-gallery img{border:6px solid #fffaf3}
.preset-letter .type-quote{background:#5c3541;color:#fff3e7}

/* A quiet scrapbook with printed photographs and a paper tab. */
.preset-scrapbook .type-hero{background:#e8eadf;color:#263b32}
.preset-scrapbook .type-hero .section-copy{order:1;padding-left:16px;border-left:1px solid #849889;text-align:left}
.preset-scrapbook .type-hero .section-title{font-family:DM Sans,Arial,sans-serif;font-weight:600;font-size:clamp(43px,7vw,78px);letter-spacing:-.065em;line-height:1}
.preset-scrapbook .type-hero .section-body{margin-inline:0;font-family:DM Serif,Georgia,serif;font-style:italic;color:#4a6255}
.preset-scrapbook .type-hero .section-media{order:0;width:min(100%,460px);background:#fffcf4;padding:10px 10px 27px;margin:0 auto;transform:rotate(3deg);box-shadow:0 12px 28px #263b3228}
.preset-scrapbook .type-hero .section-media img{height:min(35svh,350px);border-radius:0;object-position:50% 55%}
.preset-scrapbook .type-hero .section-media:before{content:'';position:absolute;top:-11px;left:39%;width:22%;height:23px;background:#dac5a7b3;transform:rotate(-5deg)}
.preset-scrapbook .type-letter{background:#f4eae0;color:#3b3530}
.preset-scrapbook .type-letter .section-copy{max-width:600px;text-align:left;padding:0 0 0 20px;border-left:1px solid #a28574}
.preset-scrapbook .type-gallery{background:#d4ded0;color:#263b32}
.preset-scrapbook .media-gallery img{padding:7px 7px 17px;background:#fffcf4;box-shadow:0 7px 15px #263b3215}
.preset-scrapbook .type-quote{background:#314638;color:#fcf3e7}

/* A film: full bleed image, cinematic contrast and film perforations. */
.preset-cinema{--film-strip-top:12px;--film-strip-height:10px;--film-caption-top:calc(var(--film-strip-top) + var(--film-strip-height) + 16px)}
.preset-cinema .type-hero{background:#191c1c;justify-content:flex-start;padding:calc(var(--film-caption-top) + 24px) 30px 95px}
.preset-cinema .type-hero .section-copy{flex:none;margin-block-start:auto}
.preset-cinema .type-hero .section-media:after{background:linear-gradient(180deg,#13151566 15%,#1315152b 35%,#131515d9 100%)}
.preset-cinema .type-hero .section-title{font-style:italic;font-size:65px;line-height:1.03;text-shadow:0 3px 15px #0003}
.preset-cinema .type-hero .section-body{color:#ead6bc}
.preset-cinema .type-hero>.section-kicker{position:absolute;z-index:2;inset:var(--film-caption-top) 30px auto;margin:0;color:#ffe8c7;font-size:8px;text-shadow:0 1px 8px #0009}
.preset-cinema .type-hero:before,.preset-cinema .type-gallery:before{content:'';position:absolute;z-index:3;left:0;right:0;top:var(--film-strip-top);height:var(--film-strip-height);background:repeating-linear-gradient(90deg,transparent 0,transparent 12px,#fff0d8bb 12px,#fff0d8bb 24px,transparent 24px,transparent 36px);pointer-events:none}
.catalog-scene .preset-cinema .type-hero{padding-block-end:clamp(20px,6vh,54px)}
.catalog-scene .preset-cinema .type-hero .section-title{font-size:clamp(30px,min(13vw,14vh),64px)}
.preset-cinema .type-letter{background:#202727;color:#f0dfc7}
.preset-cinema .type-letter .section-title{font-style:italic;color:#cdb28e}
.preset-cinema .type-letter .section-body{color:#e4dccb}
.preset-cinema .type-gallery{background:#191c1c}
.preset-cinema .media-gallery img{border:6px solid #f3e4cc;filter:saturate(.75)}
.preset-cinema .type-quote{background:#e2cfad;color:#2b302b}

/* A portrait against a night-blue field. */
.preset-midnight .celebration-section{background:#151d33;color:#f8edda}
.preset-midnight .type-hero{background:radial-gradient(ellipse at 50% 64%,#303d5e,transparent 70%),#151d33}
.preset-midnight .type-hero .section-media{order:1;width:min(76%,335px);margin:0 auto;border:1px solid #d8ba8190;padding:8px;border-radius:50% 50% 0 0 / 38% 38% 0 0}
.preset-midnight .type-hero .section-media img{height:min(37svh,480px);border-radius:50% 50% 0 0 / 38% 38% 0 0}
.preset-midnight .type-hero .section-copy{order:0}
.preset-midnight .type-hero .section-kicker{color:#e5c997}
.preset-midnight .type-hero .section-title{font-style:italic;font-size:clamp(48px,8vw,90px)}
.preset-midnight .type-hero .section-body{font-family:DM Serif,Georgia,serif;font-size:clamp(20px,3vw,27px);color:#d9bd83}
.preset-midnight .type-letter{background:#222c45}
.preset-midnight .type-letter .section-copy{padding-top:28px;border-top:1px solid #d8ba8170}
.preset-midnight .type-letter .section-title{color:#d9bd83;font-style:italic}
.preset-midnight .media-gallery img{border:1px solid #bfa77680;padding:5px;background:#192440}
.preset-midnight .type-quote{background:#20263c;color:#f5deae}

/* A candlelit birthday in cherry and cream. */
.preset-party .type-hero{background:radial-gradient(ellipse at bottom right,#8c4555,transparent 70%),#582439;color:#fff2e4}
.preset-party .type-hero .section-copy{order:0}
.preset-party .type-hero .section-title{font-family:DM Serif,Georgia,serif;font-weight:400;font-size:clamp(49px,9vw,108px);letter-spacing:-.06em;line-height:.93}
.preset-party .type-hero .section-kicker{color:#f3c99f}
.preset-party .type-hero .section-body{color:#f3c99f;font-family:DM Serif,Georgia,serif;font-style:italic;font-size:clamp(19px,3vw,27px)}
.preset-party .type-hero .section-media{order:1;width:min(100%,490px);margin:0 auto;border:1px solid #f3c99f86;padding:8px}
.preset-party .type-hero .section-media img{height:min(36svh,360px);object-position:50% 45%;border-radius:0}
.preset-party .type-letter{background:#f6e8df;color:#482a34}
.preset-party .type-letter .section-title{font-family:DM Serif,Georgia,serif;font-weight:400}
.preset-party .type-gallery{background:#ead5d1;color:#482a34}
.preset-party .media-gallery img{border:4px solid #fff8f0;border-radius:0}
.preset-party .type-quote{background:#582439;color:#fff2e4}

/* A personal magazine cover: monochrome photography and large editorial type. */
.preset-editorial .type-hero{padding:42px 25px 90px;background:#f7f3eb;color:#252522;gap:22px}
.preset-editorial .type-hero .section-copy{order:0}
.preset-editorial .type-hero .section-title{font-size:clamp(56px,10vw,110px);line-height:.91;letter-spacing:-.05em;margin:22px 0 8px;font-style:italic}
.preset-editorial .type-hero .section-kicker{border-block:1px solid #58554a;padding:10px 0;font-size:8px;letter-spacing:2px;margin:0}
.preset-editorial .type-hero .section-media{order:1;width:100%;margin:0 auto}
.preset-editorial .type-hero .section-media img{height:min(38svh,390px);filter:grayscale(1);border-radius:0;object-position:center 40%}
.preset-editorial .type-hero:after{content:'';position:absolute;left:25px;right:25px;bottom:60px;border-top:1px solid #58554a}
.preset-editorial .type-letter{background:#efebe1;color:#252522;border-top:1px solid #58554a;text-align:left}
.preset-editorial .type-letter .section-title{font-style:italic;max-width:600px}
.preset-editorial .type-letter .section-body{font-size:16px;line-height:2.1}
.preset-editorial .type-gallery{background:#f7f3eb;color:#252522;border-top:1px solid #58554a}
.preset-editorial .media-gallery img{filter:grayscale(1)}
.preset-editorial .type-quote{background:#292b29;color:#f4f1e9}

@media(min-width:650px){
[class*=preset-] .type-hero{padding:60px 8% 85px}
:is(.preset-letter,.preset-scrapbook,.preset-midnight,.preset-party,.preset-editorial) .type-hero:not(.without-media){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,84px);align-content:center;align-items:center}
.preset-cinema .type-hero .section-copy{margin-left:0;max-width:750px}.preset-cinema .type-hero .section-title{font-size:100px}
.preset-cinema .type-hero>.section-kicker{inset-inline:8%}
:is(.preset-letter,.preset-scrapbook,.preset-midnight,.preset-party,.preset-editorial) .type-hero .section-media img{height:min(54svh,510px)}
}
@media(prefers-reduced-motion:reduce){[class*=preset-] *{animation:none!important}}

/* Ready designs adapt the gallery to the photos without changing the originals. */
[class*=preset-] .auto-photo-layout{width:min(100%,760px);min-width:0;order:1;gap:clamp(10px,3vw,22px)}
[class*=preset-] .auto-photo-layout img{height:auto;aspect-ratio:4/5;max-height:340px;min-width:0;object-position:50% 45%}
.preset-letter .auto-photo-layout img:first-child,.preset-editorial .auto-photo-layout img:first-child{grid-column:1/-1;aspect-ratio:3/2}
.preset-editorial .auto-photo-layout img{aspect-ratio:5/4}
.preset-letter .auto-photo-layout img:last-child:nth-child(even),.preset-editorial .auto-photo-layout img:last-child:nth-child(even){grid-column:1/-1;max-width:440px;justify-self:center;aspect-ratio:3/2}
.preset-scrapbook .auto-photo-layout,.preset-midnight .auto-photo-layout{max-width:620px}
.preset-scrapbook .auto-photo-layout img:last-child:nth-child(odd),.preset-midnight .auto-photo-layout img:last-child:nth-child(odd){grid-column:1/-1;width:min(68%,300px);justify-self:center}
.preset-cinema .auto-photo-layout img{aspect-ratio:3/2;max-height:250px}
.preset-party .auto-photo-layout img{aspect-ratio:4/3;max-height:190px}
.preset-party .auto-photo-layout img:first-child:nth-last-child(3){grid-column:1/-1;aspect-ratio:2/1}
.preset-party .auto-photo-layout[data-photo-count="3"] img:not(:first-child){max-height:24svh}
@media(max-width:440px){.preset-scrapbook .auto-photo-layout img{padding:5px 5px 16px}.preset-letter .auto-photo-layout img{border-width:5px;border-bottom-width:16px}}
