/* Storytelling systems: layouts, not color variants. */
.guest-personal-note{padding:18px;text-align:center;background:var(--bg-secondary);font-size:13px}.atelier-hero .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.experience-section{padding:100px max(24px,calc((100% - 1100px)/2));color:var(--text-primary,#344536);background:var(--bg-primary,#fbf8ef)}.experience-heading{margin:0 auto 55px;text-align:center;max-width:700px}.experience-heading>span,.film-eyebrow{font:10px Montserrat,sans-serif;letter-spacing:2.5px;line-height:1.8}.experience-heading h2{font:clamp(30px,4vw,48px)/1.2 'Playfair Display',Georgia,serif;margin:16px 0}.experience-heading p{font-size:13px;opacity:.7;line-height:1.8}.story-chapters{display:grid;gap:70px}.story-chapter{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:center;position:relative;min-width:0}.chapter-media{height:420px;position:relative;min-width:0}.chapter-media img{width:100%;height:100%;object-fit:cover;display:block}.chapter-typography{height:100%;display:flex;align-items:center;justify-content:center;gap:20px;background:var(--bg-secondary,#ece7d8);color:var(--accent-gold,#ad9770)}.chapter-typography>span{font:italic 100px Georgia}.chapter-typography>i{font:60px Georgia}.chapter-photo-index{position:absolute;bottom:18px;left:20px;background:#fffcf0e8;color:#4b5341;padding:7px 12px;font:9px Montserrat,sans-serif;letter-spacing:2px}.chapter-narrative{padding:45px}.chapter-date{font:10px Montserrat,sans-serif;letter-spacing:2px;text-transform:uppercase;opacity:.65}.chapter-narrative h3{font:32px/1.25 'Playfair Display',Georgia,serif;margin:16px 0}.chapter-narrative p{font-size:14px;line-height:1.95;white-space:pre-line;overflow-wrap:anywhere}.chapter-endmark{font:25px Georgia;display:block;margin-top:22px;color:var(--accent-gold,#a78d5a)}
[data-story=scrapbook] .story-chapter{background:#fff9ed;padding:22px;box-shadow:0 15px 40px #40261a12;transform:rotate(-1deg)}[data-story=scrapbook] .story-chapter:nth-child(even){transform:rotate(1deg)}[data-story=scrapbook] .chapter-media{padding:14px 14px 45px;background:white;transform:rotate(-4deg);box-shadow:0 8px 20px #40261a20}[data-story=scrapbook] .chapter-media:before{content:'';position:absolute;top:-12px;left:35%;width:30%;height:27px;transform:rotate(3deg);background:#c7bc9baa;z-index:1}[data-story=scrapbook] .chapter-photo-index{background:none;bottom:8px;font-style:italic;left:12px}
[data-story=chronicle] .chapter-media{border-radius:220px 220px 0 0;border:1px solid var(--accent-gold);padding:15px}[data-story=chronicle] .chapter-media img,[data-story=chronicle] .chapter-typography{border-radius:200px 200px 0 0}[data-story=chronicle] .story-chapter:nth-child(even) .chapter-media{order:2}[data-story=chronicle] .chapter-narrative{border-block:1px solid var(--border-gold);text-align:center}
[data-story=constellation] .story-experience{background:#142238;color:#eae3ce}[data-story=constellation] .story-chapters{position:relative;gap:90px}[data-story=constellation] .story-chapters:before{content:'';position:absolute;inset:0 50%;border-left:1px dashed #e4ce9866}[data-story=constellation] .chapter-media{border-radius:50%;overflow:hidden;width:85%;aspect-ratio:1;height:auto;border:1px solid #b6aa80;padding:12px}[data-story=constellation] .chapter-media img{border-radius:50%}[data-story=constellation] .story-chapter:nth-child(even) .chapter-media{order:2;justify-self:end}[data-story=constellation] .chapter-narrative:before{content:'✦';color:#d5bd87;font-size:28px}
[data-story=letters] .story-chapters{grid-template-columns:repeat(2,1fr);gap:35px}[data-story=letters] .story-chapter{display:flex;flex-direction:column;align-items:stretch;border:1px solid var(--border-gold);padding:25px;background:var(--bg-card);box-shadow:8px 8px 0 var(--bg-secondary)}[data-story=letters] .chapter-media{height:280px}[data-story=letters] .chapter-narrative{padding:30px 5px 0}[data-story=letters] .chapter-narrative h3{font-style:italic}[data-story=letters] .chapter-narrative:after{content:'with love, always';display:block;font:italic 20px Georgia;margin:24px 0 10px}
[data-story=journal] .story-chapters{grid-template-columns:repeat(3,1fr);gap:25px}[data-story=journal] .story-chapter{display:block;padding:16px;border:1px solid #b0a6b3;background:#f5f0e6;color:#635769}[data-story=journal] .chapter-media{height:260px}[data-story=journal] .chapter-narrative{padding:25px 8px}[data-story=journal] .chapter-narrative h3{font-size:25px}[data-story=journal] .chapter-photo-index{font-family:monospace;letter-spacing:0}
[data-story=editorial] .story-chapter{grid-template-columns:1.3fr 1fr;border-bottom:1px solid var(--border-gold);padding-bottom:40px}[data-story=editorial] .chapter-narrative h3{font-size:clamp(35px,4vw,58px);letter-spacing:-1px}[data-story=editorial] .chapter-media{height:520px}[data-story=editorial] .story-chapter:nth-child(even){grid-template-columns:1fr 1.3fr}[data-story=editorial] .story-chapter:nth-child(even) .chapter-media{order:2}
[data-story=book] .story-chapter{background:#f9f4e5;box-shadow:0 20px 50px #34452b20;gap:0;color:#41533c;align-items:stretch}[data-story=book] .chapter-media{margin:35px;height:360px}[data-story=book] .chapter-narrative{background:linear-gradient(90deg,#d5cfb6,#f9f4e5 8%);display:flex;flex-direction:column;justify-content:center;padding:45px}[data-story=book] .chapter-photo-index{bottom:-25px;background:transparent;font-style:italic}
[data-story=filmstrip] .story-experience{background:#141817;color:#ebe5d6}[data-story=filmstrip] .story-chapters{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:25px 0 35px;gap:24px}[data-story=filmstrip] .story-chapter{display:block;min-width:min(420px,85vw);flex:1;scroll-snap-align:center;border-block:12px dashed #e2dbc5;background:#202522}[data-story=filmstrip] .chapter-media{height:300px}[data-story=filmstrip] .chapter-narrative{padding:30px}[data-story=filmstrip] .chapter-photo-index{background:#111b;color:#fff}
[data-story=postcards] .story-chapters{grid-template-columns:1fr 1fr;gap:45px}[data-story=postcards] .story-chapter{display:block;background:#fff6e5;color:#6a4d39;padding:15px;box-shadow:0 15px 30px #78573720;transform:rotate(-2deg)}[data-story=postcards] .story-chapter:nth-child(even){transform:rotate(2deg)}[data-story=postcards] .chapter-media{height:270px}[data-story=postcards] .chapter-narrative{padding:28px 16px;background:repeating-linear-gradient(transparent 0 28px,#a9937018 28px 29px)}[data-story=postcards] .chapter-date{border:1px dashed #b6a181;padding:8px}
[data-story=gallery] .story-chapters{gap:100px}[data-story=gallery] .story-chapter{grid-template-columns:1.2fr 1fr;gap:65px}[data-story=gallery] .chapter-media{height:520px;padding:30px;border:8px solid #a89c87;background:#fcf9f0;box-shadow:8px 12px 25px #3f332822}[data-story=gallery] .chapter-narrative{padding:0 0 0 25px;border-left:1px solid #b3aaa5}[data-story=gallery] .chapter-narrative h3{font-size:27px}
/* Film — no audio autoplay, no layout shift while metadata loads. */
.wedding-film-section{background:#18231d;color:#f4eedc}.film-introduction{max-width:680px;text-align:center;margin:0 auto 40px}.film-introduction h2{font:clamp(30px,4vw,50px)/1.15 'Playfair Display',Georgia,serif;margin:20px 0}.film-introduction p{font-size:14px;line-height:1.9;color:#b7c5b6;white-space:pre-line}.guest-film-frame{background:#080d0a;border:1px solid #485748;padding:14px;box-shadow:0 30px 65px #0004}.film-frame-bar{display:flex;justify-content:space-between;color:#a5b39d;font:9px Montserrat,sans-serif;letter-spacing:2px;padding:5px 5px 16px}.guest-wedding-film{display:block;width:100%;max-height:75svh;aspect-ratio:16/9;object-fit:contain;background:#080d0a}.film-playback-error{padding:20px;font-size:13px}.film-playback-error a{color:#e0cca0}
/* Celebrations are composed as tickets, letters, timetables, programmes or festival posters. */
.celebration-programme{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.programme-event{position:relative;display:flex;gap:25px;padding:35px;background:var(--bg-card,#fff);border:1px solid var(--border-gold,#d9d5c6);min-width:0}.programme-number{font:italic 48px Georgia;color:var(--accent-gold,#b59459);min-width:60px}.programme-number span{display:block;font:8px Montserrat,sans-serif;letter-spacing:1.5px;max-width:70px;margin-top:15px}.programme-details{min-width:0}.programme-date{font-size:10px;letter-spacing:1px}.programme-date b{padding:0 6px}.programme-details h3{font:27px/1.2 'Playfair Display',Georgia,serif;margin:15px 0}.programme-details p{font-size:12px;line-height:1.8;opacity:.8;white-space:pre-line}.programme-venue,.programme-dress{display:block;font-size:12px;line-height:1.8}.programme-dress{opacity:.7;font-style:italic;margin-top:8px}.programme-actions{display:flex;flex-wrap:wrap;gap:20px;margin-top:25px}.programme-actions a,.programme-actions button{font:11px Montserrat,sans-serif;text-decoration:underline;text-underline-offset:4px;color:inherit;border:0;padding:0;background:transparent;cursor:pointer}
[data-events=notes] .programme-event{display:block;transform:rotate(-1deg);box-shadow:3px 7px 12px #45332212}[data-events=notes] .programme-event:nth-child(even){transform:rotate(1deg)}[data-events=notes] .programme-number{font-size:35px;margin-bottom:15px}[data-events=notes] .programme-number span{display:none}
[data-events=banquet] .programme-event{display:block;text-align:center;border:3px double var(--accent-gold);border-radius:180px 180px 0 0;padding-top:60px}[data-events=banquet] .programme-number span{margin:10px auto}[data-events=banquet] .programme-actions{justify-content:center}
[data-events=orbit] .programme-event{display:block;text-align:center;border-radius:50% 50% 10px 10px;background:#15283c;color:#ecdfbb;border:1px solid #ad9871;padding:55px 28px}[data-events=orbit] .programme-number span{display:none}[data-events=orbit] .programme-actions{justify-content:center}
[data-events=letters] .programme-event{display:block;background:repeating-linear-gradient(transparent 0 31px,#aa967514 31px 32px),var(--bg-card);border-top:5px double var(--accent-gold)}[data-events=letters] .programme-number{float:right;margin-left:20px}[data-events=letters] .programme-number span{display:none}
[data-events=festival] .programme-event{display:block;text-align:center;background:#f7d898;color:#7b4327;outline:2px solid #b67545;outline-offset:-10px;padding:45px 30px}[data-events=festival] .programme-event:nth-child(even){background:#bd663a;color:#fff0d3}[data-events=festival] .programme-number{color:inherit}[data-events=festival] .programme-number span{display:none}[data-events=festival] .programme-actions{justify-content:center}
[data-events=agenda] .celebration-programme{display:block;border-top:2px solid var(--text-primary)}[data-events=agenda] .programme-event{border:0;border-bottom:1px solid var(--border-gold);padding:35px 10px;background:none;gap:55px}[data-events=agenda] .programme-details{flex:1;display:grid;grid-template-columns:1.4fr 1fr;gap:12px 35px}[data-events=agenda] .programme-details h3{grid-column:1;grid-row:1;margin:0;font-size:35px}[data-events=agenda] .programme-date{grid-column:2;align-self:center}[data-events=agenda] .programme-actions{margin-top:0}
[data-events=tickets] .programme-event{border:1px solid var(--border-gold);border-radius:8px;padding:0;overflow:hidden}[data-events=tickets] .programme-number{padding:30px 20px;border-right:2px dashed var(--border-gold)}[data-events=tickets] .programme-details{padding:30px 25px 30px 0}
[data-events=boarding] .programme-event{display:block;background:#f6fbf6;color:#20565c;border:0;border-radius:12px;box-shadow:0 8px 30px #34555210}[data-events=boarding] .programme-number{display:flex;justify-content:space-between;border-bottom:2px dashed #91b5b1;padding-bottom:20px;margin-bottom:20px;color:#3e7e80}[data-events=boarding] .programme-number span{max-width:none}
[data-events=programme] .programme-event{display:block;text-align:center;background:transparent;border:0;border-block:1px solid var(--border-gold)}[data-events=programme] .programme-number{font:18px Georgia}[data-events=programme] .programme-number span{display:none}[data-events=programme] .programme-actions{justify-content:center}
/* Photo essays */
.experience-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.experience-photo{display:block!important;position:relative;padding:0;border:0;background:transparent;cursor:zoom-in;border-radius:0!important;aspect-ratio:3/4;overflow:hidden;width:100%;height:auto!important}.experience-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.experience-photo:hover img{transform:scale(1.035)}.photo-label{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:14px;background:#fffbefec;color:#48523e;font:8px Montserrat,sans-serif;letter-spacing:2px}.photo-label i{font-family:Georgia;font-size:14px}
[data-gallery=polaroids] .experience-photo{padding:14px 14px 48px;background:white;box-shadow:0 10px 25px #42281918;transform:rotate(-3deg)}[data-gallery=polaroids] .experience-photo:nth-child(even){transform:rotate(3deg)}[data-gallery=polaroids] .photo-label{bottom:8px;background:white;padding:8px 16px}
[data-gallery=arches] .experience-photo{border-radius:200px 200px 0 0!important;border:1px solid var(--accent-gold);padding:10px}[data-gallery=arches] .experience-photo img{border-radius:190px 190px 0 0}
[data-gallery=constellation] .experience-photo{border-radius:50%!important;aspect-ratio:1;border:1px solid #c8b98f;padding:10px}[data-gallery=constellation] .experience-photo img{border-radius:50%}[data-gallery=constellation] .experience-photo:nth-child(even){margin-top:70px}[data-gallery=constellation] .photo-label{display:none}
[data-gallery=mosaic] .experience-gallery{grid-template-columns:repeat(4,1fr);grid-auto-flow:dense}[data-gallery=mosaic] .experience-photo:first-child{grid-column:span 2;grid-row:span 2}[data-gallery=mosaic] .experience-photo:nth-child(4n){grid-column:span 2;aspect-ratio:4/3}
[data-gallery=specimens] .experience-photo{border:1px solid #b6b09d;background:#f7f4e9;padding:20px 20px 50px}[data-gallery=specimens] .photo-label{background:transparent;font-family:monospace;letter-spacing:0}
[data-gallery=editorial] .experience-gallery{grid-template-columns:1.3fr 1fr;align-items:center;gap:40px}[data-gallery=editorial] .experience-photo:nth-child(3n){grid-column:1/-1;aspect-ratio:16/9}[data-gallery=editorial] .photo-label{background:#ffffffd9}
[data-gallery=filmstrip] .experience-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;background:#151a17;padding:24px 0;border-block:12px dashed #d4c9b0}[data-gallery=filmstrip] .experience-photo{flex:0 0 min(500px,82vw);aspect-ratio:16/10;scroll-snap-align:center}[data-gallery=filmstrip] .photo-label{color:#e2dcca;background:#111c}
[data-gallery=gallery] .experience-gallery{grid-template-columns:1fr 1fr;gap:70px;padding:30px}[data-gallery=gallery] .experience-photo{border:9px solid #a99d84;padding:28px;background:#faf7ed;box-shadow:8px 10px 20px #40382b20}[data-gallery=gallery] .experience-photo:nth-child(even){margin-top:80px}[data-gallery=gallery] .photo-label{display:none}
/* Carry the design through venue, family and RSVP sections. */
[data-story=editorial] .couple-grid{gap:60px}[data-story=editorial] .couple-card{text-align:left;box-shadow:none;border-radius:0;border:0}[data-story=editorial] .couple-photo{border-radius:0!important}[data-story=postcards] .venue-card{border:12px solid var(--bg-card);box-shadow:0 15px 40px #20352220;transform:rotate(-1deg)}[data-story=gallery] .venue-card{border-radius:0;box-shadow:none;padding:30px;border:1px solid var(--border-gold)}[data-story=book] .venue-card{border-radius:0;box-shadow:10px 10px 0 var(--bg-secondary)}[data-story=filmstrip] .countdown-box{background:#18231d;color:#eee7d7}[data-story=constellation] .couple-card{border-radius:200px 200px 12px 12px}[data-story=letters] .section-header{font-style:italic}[data-story=editorial] .section-title{letter-spacing:-1px}[data-story=filmstrip] .section-sub{letter-spacing:4px}.wedding-page .rsvp-section{padding:90px 25px}.wedding-page .venue-card{overflow:hidden}
.will-reveal{opacity:0;translate:0 20px;transition:opacity .8s ease,translate .8s ease}.will-reveal.is-revealed{opacity:1;translate:0 0}
/* Media workbench */
.media-workbench{background:#f1f3ea;border:1px solid #dce2d3;border-radius:15px;padding:32px;margin:25px 0 45px;color:#344b3a}.media-workbench-heading{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:25px}.media-workbench h3{font:32px 'Playfair Display',Georgia,serif;margin:10px 0}.media-workbench p{font-size:12px;line-height:1.8}.media-toggle{font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:8px;margin-top:12px}.film-editor-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:30px}.upload-drop{display:flex;align-items:center;flex-direction:column;gap:12px;min-height:200px;justify-content:center;background:#fffdf5;border:1px dashed #9cad8e;border-radius:10px;padding:25px;text-align:center;font-size:12px}.upload-drop .upload-symbol{font-size:30px;color:#849374}.upload-drop strong{font-weight:600}.upload-drop>span:not(.upload-symbol){font-size:10px;color:#6e7d65}.upload-drop input{max-width:100%;font-size:11px;margin-top:5px}.media-help{font-size:11px!important;color:#6d7b65}.film-upload-preview{width:100%;max-height:270px;background:#17251c;border-radius:6px;margin-top:15px}.film-details>label{font-size:12px;display:block;font-weight:600;margin:0 0 7px}.film-details .form-control{margin-bottom:20px;font-size:13px;border-color:#d3dccc}.film-details small{font-size:10px;color:#6d7b65}.film-details img{max-width:190px;max-height:120px;object-fit:cover;display:block;margin-top:15px;border-radius:5px}.film-details img[hidden],video[hidden],img[hidden]{display:none}.media-remove{font-size:11px!important;display:flex!important;gap:8px;align-items:center;margin:14px 0}.media-save-note{font-size:11px;border-top:1px solid #d3dccb;padding-top:15px;margin-top:25px;color:#6c7b62}.story-photo-editor{display:grid;grid-template-columns:180px 1fr;gap:25px;padding-top:24px;margin-top:20px;border-top:1px solid #dedfd3}.chapter-photo-well{height:195px;border-radius:6px;background:#e9ebe0;position:relative;display:grid;place-items:center;overflow:hidden}.chapter-photo-well img{width:100%;height:100%;object-fit:cover}.chapter-photo-placeholder{text-align:center;padding:20px;font:italic 19px Georgia;color:#899579}.chapter-photo-controls label{font-size:12px;display:block}.chapter-photo-controls input[type=file]{margin:10px 0}.chapter-photo-controls small{display:block;font-size:10px;color:#7b8273;line-height:1.7}.chapter-order{display:flex;gap:10px;margin-top:15px}.chapter-order button{font-size:10px;padding:8px 14px}.chapter-order button:disabled{opacity:.4;cursor:default}.media-status{font-size:11px;display:block;margin-top:10px;color:#586c4e}
@media(max-width:800px){.experience-section{padding:65px 25px}.experience-heading{margin-bottom:35px}.story-chapters{gap:40px}.story-chapter,.story-chapter:nth-child(even){grid-template-columns:1fr!important}.chapter-media{height:350px!important;order:0!important;width:100%!important}.chapter-narrative{padding:28px!important}.story-chapters:before{display:none}.story-chapters{grid-template-columns:1fr!important}[data-story=filmstrip] .story-chapter{min-width:80vw}[data-story=gallery] .story-chapter{gap:30px}.celebration-programme{grid-template-columns:1fr}.programme-event{padding:28px}.experience-gallery{grid-template-columns:1fr 1fr;gap:18px}[data-gallery=mosaic] .experience-gallery{grid-template-columns:1fr 1fr}[data-gallery=gallery] .experience-gallery{gap:25px;padding:0}[data-gallery=gallery] .experience-photo{padding:12px;border-width:5px}[data-gallery=constellation] .experience-photo:nth-child(even){margin-top:30px}.media-workbench{padding:20px}.media-workbench-heading{flex-direction:column;gap:0}.film-editor-grid{grid-template-columns:1fr}.story-photo-editor{grid-template-columns:130px 1fr;gap:15px}.chapter-photo-well{height:160px}.film-frame-bar{letter-spacing:1px;font-size:7px}.programme-details h3{font-size:25px}[data-events=agenda] .programme-details{display:block}[data-events=agenda] .programme-event{gap:25px}[data-events=agenda] .programme-actions{margin-top:20px}[data-story=book] .chapter-media{width:auto!important;margin:20px}[data-story=book] .chapter-narrative{background:#f9f4e5}.experience-photo .photo-label{font-size:6px;letter-spacing:1px;padding:10px}.chapter-narrative h3{font-size:29px!important}}
@media(max-width:430px){.story-photo-editor{grid-template-columns:1fr}.chapter-photo-well{height:210px}.programme-number{font-size:35px;min-width:40px}.programme-event{gap:15px}.experience-gallery{gap:12px}.film-workbench h3{font-size:26px}}
@media(prefers-reduced-motion:reduce){.will-reveal{opacity:1;translate:none;transition:none}.design-stage *{animation:none!important}}
.selected-design-note{margin:12px 0 0;font-size:11px;line-height:1.7;color:#758068}.selected-design-note p{margin:0 0 5px}.selected-design-note a{color:#365340;text-underline-offset:3px}

.wedding-page .couple-photo[style*="object-fit:contain"]{border-radius:12px;background:var(--guest-paper,#fffdf8)}
.experience-photo:has(img[style*="object-fit:contain"]):hover img{transform:none}
.chapter-media,.experience-photo{background:var(--guest-wash,#eee8dc)}
