@font-face{font-family:DM Sans;src:url(assets/dm-sans-regular.ttf) format('truetype');font-weight:400;font-display:swap}@font-face{font-family:DM Serif;src:url(assets/dm-serif-regular.ttf) format('truetype');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:DM Sans,Arial,sans-serif;background:#faf7f0}button{font:inherit;cursor:pointer}button:focus-visible,section:focus-visible{outline:3px solid #f55c3f;outline-offset:-4px}.celebration{height:100%;position:relative;overflow:auto;overscroll-behavior:contain;scroll-padding:0;background:var(--theme-bg)}.flow-vertical{scroll-snap-type:y proximity}.flow-horizontal{display:flex;scroll-snap-type:x mandatory;overflow-y:hidden;touch-action:pan-x pan-y}.celebration-section{background:var(--section-bg);color:var(--section-ink);min-height:100%;padding:clamp(25px,6vw,80px);position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;gap:30px;overflow-wrap:anywhere;scroll-snap-align:start;scroll-margin:0}.flow-horizontal .celebration-section{flex:0 0 100%;height:100%;min-width:0;overflow-y:auto;scroll-snap-stop:always;padding-bottom:88px}.flow-vertical .size-compact{min-height:65%}.flow-vertical .celebration-section:last-child{padding-bottom:100px}.section-copy{position:relative;z-index:2;min-width:0;width:100%;max-width:920px;margin-inline:auto}.section-kicker{font-size:10px;letter-spacing:2px;display:block;margin-bottom:22px}.section-title{font-family:DM Serif,Georgia,serif;font-weight:400;font-size:clamp(27px,calc(var(--title-size) * .73 + 1vw),var(--title-size));line-height:1.12;letter-spacing:-1.3px;margin:0 0 22px;white-space:pre-wrap}.section-body{font-size:clamp(14px,2vw,19px);line-height:1.9;white-space:pre-wrap;margin:0;max-width:720px;overflow-wrap:anywhere}.section-signature{display:block;font-family:DM Serif,Georgia,serif;font-size:24px;margin-top:28px;font-style:italic}.section-media{position:relative;min-width:0;display:grid;gap:14px;z-index:1}.section-media img,.section-media video{width:100%;height:min(48vh,450px);min-height:0;display:block;border-radius:8px;background:rgba(0,0,0,.07)}.media-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.media-gallery img,.media-gallery video{height:clamp(160px,30vh,320px)}.media-gallery>:only-child{grid-column:1/-1}.media-placeholder{padding:70px 20px;text-align:center;font-size:15px;border:1px dashed currentColor;border-radius:9px;opacity:.65;grid-column:1/-1}.layout-split,.layout-reverse{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}.layout-reverse .section-media{order:2}.layout-split .section-media img,.layout-reverse .section-media img,.layout-split .section-media video,.layout-reverse .section-media video{height:min(65vh,620px)}.without-media{display:flex}.layout-background>.section-media{position:absolute;inset:0;z-index:-2;display:block}.layout-background>.section-media img,.layout-background>.section-media video{height:100%;border-radius:0}.layout-background>.section-media>:not(:first-child){display:none}.layout-background>.section-media:after{content:'';position:absolute;inset:0;background:rgba(0,0,0,var(--overlay));pointer-events:none}.layout-background:has(video)>.section-media video{padding-bottom:56px}.layout-background:has(video)>.section-copy{pointer-events:none}.layout-background:has(.section-media)>.section-copy{color:var(--section-ink);text-shadow:0 1px 16px #0003}.section-decoration{position:absolute;right:5%;top:7%;display:flex;gap:7px;color:var(--accent);transform:rotate(12deg);pointer-events:none;opacity:.65;z-index:3}.type-letter .section-copy{max-width:700px}.type-quote .section-title{font-style:italic}.type-quote .section-media{max-width:300px;margin:auto}.celebration-section[data-align=center]{text-align:center}.celebration-section[data-align=center] .section-body{margin-inline:auto}.celebration-section[data-align=right]{text-align:right}.celebration-section[data-align=right] .section-body{margin-left:auto}.celebration-section[data-font=sans] .section-title{font-family:DM Sans,Arial,sans-serif;letter-spacing:-1.8px;font-weight:500}.celebration-section[data-position=start]{justify-content:flex-start;align-content:start}.celebration-section[data-position=end]{justify-content:flex-end;align-content:end}#story-nav{position:fixed;bottom:17px;left:50%;transform:translateX(-50%);z-index:10;display:flex;align-items:center;gap:18px;padding:6px 9px;border:1px solid #ffffff40;border-radius:40px;background:#faf7f0ed;color:#282622;box-shadow:0 3px 20px #0002;backdrop-filter:blur(12px)}#story-nav[hidden]{display:none}#story-nav button{display:grid;place-items:center;padding:0;width:36px;height:36px;border:0;background:transparent;border-radius:50%}#story-nav button:hover{background:#e6ddcf}#story-nav button:disabled{opacity:.25}#story-progress{font-size:12px;font-variant-numeric:tabular-nums;min-width:5ch;text-align:center}.motion-fade.is-visible .section-copy{animation:fade .7s both}.motion-rise.is-visible .section-copy{animation:rise .7s both}@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@media(max-width:600px){.layout-split,.layout-reverse{display:flex;flex-direction:column}.layout-reverse .section-media{order:0}.section-media{width:100%}.layout-split .section-media img,.layout-reverse .section-media img,.layout-split .section-media video,.layout-reverse .section-media video{height:32vh}.celebration-section{gap:22px;padding:32px 24px 65px}.section-title{font-size:clamp(26px,calc(var(--title-size) * .65),65px);letter-spacing:-1px}.section-decoration{top:3%;gap:4px}.section-body{font-size:14px}.section-kicker{font-size:8px;margin-bottom:15px}}@media(prefers-reduced-motion:reduce){.celebration{scroll-behavior:auto}.motion-fade .section-copy,.motion-rise.is-visible .section-copy{animation:none}}
