@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/dm-serif-display.woff2') format('woff2')}@font-face{font-family:'Libre Caslon Text';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/libre-caslon-text.woff2') format('woff2')}@font-face{font-family:'Libre Caslon Text';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/libre-caslon-text-bold.woff2') format('woff2')}@font-face{font-family:'Yellowtail';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/yellowtail.woff2') format('woff2')}:root{--sage:#A3AD8E;--ivory:#F3E8D8;--annotation-olive:#7f8d64;--annotation-faded:#4b2028;--red-dark:color-mix(in srgb,var(--sage) 42%,black);--mustard:var(--sage);--cream:var(--ivory);--ink:color-mix(in srgb,var(--sage) 28%,black);--olive:var(--sage)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:'Libre Caslon Text',Georgia,serif}button,a{font:inherit}.skip-link{position:fixed;z-index:1000;top:.75rem;left:.75rem;padding:.8rem 1rem;color:var(--ivory);background:var(--red-dark);transform:translateY(-160%)}.skip-link:focus{transform:none}
.hero{position:relative;min-height:100svh;overflow:hidden;isolation:isolate;background:#80532d url('assets/rustic-tabletop.webp') center/cover}.hero::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#1b0b0328,transparent 18% 82%,#1b0b0333),radial-gradient(ellipse at center,transparent 45%,#1c0b0344 120%);mix-blend-mode:multiply;pointer-events:none}
.invitation-card{position:absolute;z-index:40;top:clamp(2rem,4vw,4.5rem);left:50%;width:min(92vw,780px);padding:clamp(1rem,2vw,1.8rem) clamp(1.5rem,5vw,5rem);text-align:center;color:var(--red-dark);background:var(--mustard);border:3px solid var(--red-dark);box-shadow:0 0 0 5px var(--cream),0 0 0 8px var(--red-dark),7px 10px 15px #32170655;transform:translateX(-50%)}.invitation-card::before,.invitation-card::after{content:"";position:absolute;top:9px;bottom:9px;width:8px;border-block:2px solid var(--red-dark)}.invitation-card::before{left:10px;border-left:2px solid var(--red-dark)}.invitation-card::after{right:10px;border-right:2px solid var(--red-dark)}.edition{margin:0 0 .55rem;font-size:clamp(.58rem,.75vw,.78rem);font-weight:700;text-transform:uppercase;letter-spacing:.25em;opacity:0;animation:card-in .5s .15s both}.invitation-card h1{margin:0;font:clamp(1.8rem,3.6vw,4.25rem)/.94 'DM Serif Display',serif;letter-spacing:-.025em;text-transform:uppercase;opacity:0;animation:card-in .7s .35s both}.invitation-card h1 em{display:block;margin-top:.18em;color:var(--cream);font-size:.58em;font-weight:400;letter-spacing:.03em;text-transform:none}.ornament{display:flex;align-items:center;justify-content:center;gap:1rem;margin:.65rem auto 0;color:var(--red-dark);opacity:0;animation:card-in .5s .85s both}.ornament::before,.ornament::after{content:"";width:18%;height:1px;background:currentColor}.ornament span{font-size:.55rem}.ornament b{font:italic 1rem 'DM Serif Display'}
.photo-pile{position:absolute;z-index:10;inset:0;contain:layout style paint}.photograph{position:absolute;top:var(--y);left:var(--x);width:auto;height:auto;max-width:min(42vw,660px);max-height:min(65vh,680px);margin:0;padding:clamp(7px,.8vw,13px);padding-bottom:clamp(19px,2.4vw,38px);background:var(--ivory);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sage) 50%,transparent);opacity:0;transform:translate(-50%,-50%) rotate(var(--rotation));filter:drop-shadow(0 11px 7px #24130866);transform-origin:50% 54%;user-select:none}.photograph.is-ready{opacity:1}.print-surface{position:relative;line-height:0}.photograph picture{display:block}.photograph img{display:block;width:auto;height:auto;max-width:min(40vw,634px);max-height:min(59vh,620px);object-fit:contain;filter:saturate(.92) contrast(.97)}.photograph::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,#fff5,transparent 18% 82%,color-mix(in srgb,var(--sage) 12%,transparent));mix-blend-mode:soft-light}
.continue{position:absolute;z-index:55;left:50%;bottom:clamp(1.8rem,3vw,3.3rem);display:grid;justify-items:center;color:var(--ivory);text-decoration:none;text-shadow:0 2px 3px #281007;opacity:0;transform:translateX(-50%);transition:opacity .8s}.invitation-ready .continue{opacity:1}.continue span{font-size:.6rem;text-transform:uppercase;letter-spacing:.18em}.continue b{font-size:1.8rem;animation:bob 1.8s infinite}
.details{position:relative;min-height:100vh;padding:0 max(5vw,calc((100vw - 1400px)/2)) 7rem;background:var(--cream);background-image:linear-gradient(color-mix(in srgb,var(--sage) 12%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--sage) 12%,transparent) 1px,transparent 1px);background-size:28px 28px;border-top:10px solid var(--sage)}.ribbon{position:sticky;z-index:60;top:0;display:flex;justify-content:center;gap:clamp(.7rem,4vw,4rem);margin-inline:calc(-1 * max(5vw,calc((100vw - 1400px)/2)));padding:1rem;background:var(--red-dark);border-bottom:5px solid var(--sage)}.ribbon a{color:var(--cream);font-size:.7rem;text-decoration:none;text-transform:uppercase;letter-spacing:.13em}.ribbon a:hover{color:var(--sage)}.detail-grid{display:block;padding-top:clamp(4rem,8vw,8rem)}.detail-card{position:relative;padding:clamp(2rem,5vw,5rem) clamp(1rem,4vw,4rem);background:transparent;border:0;box-shadow:none}.detail-card h2{margin:0 0 clamp(2rem,4vw,4rem);color:var(--red-dark);font:clamp(3rem,7vw,7rem)/.85 'DM Serif Display';text-transform:uppercase}.faq-card details{border-top:1px solid var(--red-dark)}.faq-card details:last-child{border-bottom:1px solid var(--red-dark)}.faq-card summary{padding:1.2rem 0;cursor:pointer;font-weight:700}.faq-card details p{max-width:50rem;line-height:1.6}.rsvp-card{text-align:center;border-top:1px solid color-mix(in srgb,var(--sage) 55%,var(--red-dark))}.rsvp-card p{max-width:42rem;margin-inline:auto;line-height:1.7}.rsvp-card button{margin-top:1rem;padding:1rem 1.5rem;color:var(--ivory);background:var(--red-dark);border:2px solid var(--red-dark);text-transform:uppercase;letter-spacing:.12em}footer{display:flex;justify-content:center;align-items:center;gap:clamp(.45rem,1.5vw,1rem);padding:4rem 1rem;color:var(--sage);background:var(--red-dark)}.footer-mark{display:block;height:clamp(2.1rem,5vw,4.5rem);background:currentColor;mask-position:center;mask-repeat:no-repeat;mask-size:contain}.footer-seb{aspect-ratio:636/659;mask-image:url('assets/seb.png')}.footer-plus{height:clamp(.9rem,2vw,1.6rem);aspect-ratio:192/208;mask-image:url('assets/+.png')}.footer-sol{aspect-ratio:937/539;mask-image:url('assets/sol.png')}
@keyframes card-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes bob{50%{transform:translateY(5px)}}
@media(max-width:760px){.invitation-card{top:2rem;width:84vw;padding:.8rem 1.3rem}.invitation-card h1{font-size:clamp(1.35rem,6.3vw,2.2rem)}.edition{font-size:.46rem}.ornament{margin-top:.35rem}.photograph{max-width:82vw;max-height:57vh;padding:7px 7px 22px}.photograph img{max-width:calc(82vw - 14px);max-height:calc(57vh - 29px)}.slideshow-status{left:1.25rem;bottom:1.35rem;padding:.55rem .65rem}.status-text{display:none}.controls{right:1.25rem;bottom:1.35rem}.controls button{min-width:42px;min-height:45px;padding:.3rem}.controls button small{display:none}.continue{bottom:5.3rem}.continue span{display:none}.details{padding-inline:1rem}.ribbon{margin-inline:-1rem;gap:1.1rem;overflow:auto;justify-content:center}.ribbon a{flex:none}.detail-grid{grid-template-columns:1fr}.wide-card{grid-column:auto}.detail-card{padding:2rem}.wide-card li{grid-template-columns:5rem 1fr}}
@media(max-width:760px){.opening-photo{max-width:44vw;max-height:48vh;padding:5px 5px 16px}.opening-photo img{max-width:calc(44vw - 10px);max-height:calc(48vh - 21px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Refined invitation sequence */
.invitation-card{opacity:0}.edition,.invitation-card h1{opacity:1;animation:none}.invitation-card h1{font-size:clamp(1.55rem,3.1vw,3.65rem);line-height:.95}.invitation-card h1 span{letter-spacing:.08em}.photograph{filter:drop-shadow(0 18px 14px #1c0b0399);box-shadow:inset 0 0 0 1px #786f5b44,0 2px 1px #fff8}.photograph img{position:relative;z-index:1}
.photo-annotations{position:absolute;z-index:5;inset:0;color:var(--annotation-faded);line-height:1;opacity:0;pointer-events:none;transition:opacity 1.3s ease,color 1.15s ease}.photograph.is-front .photo-annotations{color:var(--annotation-colour,var(--annotation-olive));opacity:1;transition-duration:.42s}.photo-annotations.is-hidden{visibility:hidden}.name-note{position:static}.annotation-arrows{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.annotation-arrows path{fill:none;stroke:currentColor;stroke-width:3.05;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:160;stroke-dashoffset:0;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1px #20130f) drop-shadow(0 0 1px #fff)}.annotation-arrows .arrow-echo{stroke-width:1.05;opacity:.55;stroke-dasharray:160}.annotation-arrows .arrow-tip{stroke-width:3.05}.written-name{position:absolute;left:var(--name-x);top:var(--name-y);display:flex;align-items:center;justify-content:center;height:var(--art-height,23%);gap:4%;filter:drop-shadow(0 2px 0 #2b1714) drop-shadow(0 0 1px #fff);transform:translate(-50%,-50%) rotate(-7deg) scale(var(--name-scale,1));transform-origin:center;white-space:nowrap}.name-note-1 .written-name{transform:translate(-50%,-50%) rotate(5deg) scale(var(--name-scale,1))}.written-name-seb{--art-height:29%;aspect-ratio:636/659}.written-name-sol{--art-height:22%;aspect-ratio:937/539}.written-name.with-prefix{aspect-ratio:auto}.written-name .ink-plus{flex:0 0 auto;height:48%;aspect-ratio:192/208}.written-name .ink-seb{height:100%;aspect-ratio:636/659}.written-name .ink-sol{height:100%;aspect-ratio:937/539}.written-name-text{height:auto;font:clamp(2.3rem,5.2vw,5.5rem)/.75 'Yellowtail',cursive;font-weight:400;text-shadow:0 2px 0 #2b1714,0 0 2px #fff}.ink-art{display:block;background:currentColor;mask-position:center;mask-repeat:no-repeat;mask-size:contain}.ink-seb{mask-image:url('assets/seb.png')}.ink-sol{mask-image:url('assets/sol.png')}.ink-plus{mask-image:url('assets/+.png')}.photo-plus{position:absolute;left:var(--plus-x);top:var(--plus-y);width:10%;aspect-ratio:192/208;filter:drop-shadow(0 2px 0 #2b1714) drop-shadow(0 0 1px #fff);transform:translate(-50%,-50%) rotate(-4deg) scale(var(--plus-scale,1))}
.nav-arrow,.utility-controls button{color:#fff;background:#0d090777;border:1px solid #fff3;backdrop-filter:blur(3px);box-shadow:0 4px 14px #17090533;cursor:pointer;transition:background .18s,opacity .18s,transform .18s}.nav-arrow{position:absolute;z-index:55;top:55%;display:grid;place-items:center;width:clamp(38px,4vw,56px);aspect-ratio:1;border-radius:50%;transform:translateY(-50%)}.nav-arrow span{font:clamp(2rem,4vw,4rem)/.6 Georgia,serif}.nav-arrow-previous{left:clamp(1.5rem,3vw,4rem)}.nav-arrow-next{right:clamp(1.5rem,3vw,4rem)}.nav-arrow:hover,.nav-arrow:focus-visible,.utility-controls button:hover,.utility-controls button:focus-visible{background:#0d0907bb;outline:1px solid #fff9;outline-offset:3px}.nav-arrow:disabled,.utility-controls button:disabled{opacity:.2;cursor:not-allowed}.utility-controls{position:absolute;z-index:55;right:clamp(1.5rem,3vw,4rem);bottom:clamp(1.5rem,3vw,3rem);display:flex;gap:.5rem}.utility-controls button{display:grid;place-items:center;width:36px;aspect-ratio:1;padding:0;border-radius:50%;font-size:.92rem}.continue{bottom:clamp(1.2rem,2.2vw,2.4rem)}
@media(max-width:760px){.invitation-card h1{font-size:clamp(.98rem,4vw,1.4rem);line-height:1}.written-name-text{font-size:clamp(1.45rem,7.8vw,2.4rem)}.nav-arrow{top:57%;width:38px}.nav-arrow-previous{left:.9rem}.nav-arrow-next{right:.9rem}.utility-controls{right:1.1rem;bottom:1.15rem}.utility-controls button{width:32px}.continue{bottom:1rem}}

/* One-screen invitation and details */
:root{--ribbon-height:3.25rem;--hero-card-margin:clamp(1.5rem,3.5vw,3.25rem)}.hero{height:calc(100svh - var(--ribbon-height) - 10px);min-height:calc(100svh - var(--ribbon-height) - 10px)}.ribbon{min-height:var(--ribbon-height)}.photograph img{max-height:min(54vh,570px,var(--photo-image-max-height,570px))}.opening-photo{max-height:min(54vh,570px)}.opening-photo img{max-height:min(48vh,510px,var(--photo-image-max-height,510px))}
.event-card{position:absolute;z-index:40;left:50%;bottom:clamp(1.25rem,2vw,2rem);width:min(92vw,780px);padding:.7rem 1.5rem;color:var(--red-dark);text-align:center;text-transform:uppercase;background:var(--mustard);border:2px solid var(--red-dark);box-shadow:0 0 0 4px var(--cream),0 0 0 6px var(--red-dark),5px 7px 12px #32170655;font:clamp(1.05rem,1.7vw,1.7rem)/1.1 'DM Serif Display',serif;letter-spacing:.045em;opacity:0;transform:translate(-50%,12px);transition:opacity .82s,transform .82s}.event-card::before,.event-card::after{content:none}.event-card time{color:inherit;font-style:normal}.invitation-ready .event-card{opacity:1;transform:translate(-50%,0)}.continue{bottom:.05rem}.continue span{display:none}.continue b{font-size:1.15rem;animation-duration:2.2s}
@media(max-width:760px){:root{--ribbon-height:3.05rem;--hero-card-margin:1.25rem}.invitation-card{top:var(--hero-card-margin);width:min(calc(100% - 20px),580px)}.invitation-card h1{font-size:clamp(1.15rem,4.5vw,1.55rem)}.photograph{max-height:52vh}.photograph img{max-height:min(calc(52vh - 29px),var(--photo-image-max-height,570px))}.opening-photo{max-height:43vh}.opening-photo img{max-height:min(calc(43vh - 21px),var(--photo-image-max-height,510px))}.event-card{bottom:var(--hero-card-margin);width:min(calc(100% - 20px),580px);padding:.58rem .6rem;font-size:clamp(1rem,3.8vw,1.18rem);letter-spacing:.025em}.event-card::before,.event-card::after{margin:0 .28em}.utility-controls{bottom:5.35rem}.continue{bottom:0}.ribbon{width:auto;padding:.75rem 1rem;justify-content:center;text-align:center}}
.invitation-card{z-index:8;top:var(--hero-card-margin)}.event-card{bottom:var(--hero-card-margin)}
.ribbon a.is-current{color:var(--red-dark);background:var(--sage);box-shadow:0 0 0 6px var(--sage)}#faqs,#rsvp{scroll-margin-top:calc(var(--ribbon-height) + 1rem)}.faq-card{grid-column:1/-1}.rsvp-card{margin-top:clamp(2rem,5vw,5rem)}.rsvp-card button{white-space:nowrap}
.nav-arrow{top:var(--safe-stack-y,55%);width:30px}.nav-arrow svg,.utility-controls svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nav-arrow-previous{left:.55rem}.nav-arrow-next{right:.55rem}.utility-controls{right:.55rem;bottom:.65rem;gap:.3rem}.utility-controls button{width:27px}.utility-controls .icon-play{display:none;fill:currentColor;stroke:none}.utility-controls button[data-state="paused"] .icon-pause{display:none}.utility-controls button[data-state="paused"] .icon-play{display:block}
[hidden]{display:none!important}
@media(max-width:760px){.nav-arrow{width:26px}.nav-arrow-previous{left:.35rem}.nav-arrow-next{right:.35rem}.utility-controls{right:.4rem;bottom:calc(var(--hero-card-margin) + 3.25rem)}.utility-controls button{width:25px}.nav-arrow svg,.utility-controls svg{width:12px;height:12px}}
.detail-card,footer{content-visibility:auto;contain-intrinsic-size:auto 600px}.low-power .hero::before{mix-blend-mode:normal}.low-power .photograph::after{display:none}.low-power .nav-arrow,.low-power .utility-controls button{backdrop-filter:none}.low-power .photograph{filter:drop-shadow(0 12px 8px #1c0b0399)}
