﻿/* Noces Album — correspondence, mounting corners and photographic spreads. */
:root {
 --noces-primary:#254c43; --noces-accent:#aebab3; --noces-background:#f7f8f5; --noces-text:#202b27;
 --noces-title:"Tinos",Georgia,serif; --noces-heading:"Tinos",Georgia,serif; --noces-body:"Manrope",sans-serif; --noces-ui:"Manrope",sans-serif;
 --noces-title-size-desktop:96px; --noces-title-size-mobile:56px; --noces-heading-size-desktop:64px; --noces-heading-size-mobile:38px;
 --noces-body-size-desktop:18px; --noces-body-size-mobile:16px; --noces-ui-size-desktop:12px; --noces-ui-size-mobile:11px;
 --noces-button-size-desktop:12px; --noces-button-size-mobile:11px; --noces-countdown-number-size-desktop:64px; --noces-countdown-number-size-mobile:40px;
 --noces-countdown-label-size-desktop:10px; --noces-countdown-label-size-mobile:9px; --noces-opening-text-size-desktop:12px; --noces-opening-text-size-mobile:11px;
 --noces-hero-eyebrow-size-desktop:12px; --noces-hero-eyebrow-size-mobile:11px; --noces-introduction-size-desktop:18px; --noces-introduction-size-mobile:16px;
 --noces-rsvp-title-size-desktop:48px; --noces-rsvp-title-size-mobile:34px; --noces-rsvp-text-size-desktop:16px; --noces-rsvp-text-size-mobile:16px; --noces-rsvp-label-size-desktop:12px; --noces-rsvp-label-size-mobile:11px;
 --album-title-size:var(--noces-title-size-desktop); --album-heading-size:var(--noces-heading-size-desktop);
 --album-body-size:var(--noces-body-size-desktop); --album-ui-size:var(--noces-ui-size-desktop); --album-button-size:var(--noces-button-size-desktop);
 --album-count-number:var(--noces-countdown-number-size-desktop); --album-count-label:var(--noces-countdown-label-size-desktop);
 --album-opening-size:var(--noces-opening-text-size-desktop); --album-hero-eyebrow:var(--noces-hero-eyebrow-size-desktop); --album-intro-size:var(--noces-introduction-size-desktop);
 --album-rsvp-title:var(--noces-rsvp-title-size-desktop); --album-rsvp-text:var(--noces-rsvp-text-size-desktop); --album-rsvp-label:var(--noces-rsvp-label-size-desktop);
 --album-line:color-mix(in srgb,var(--noces-primary) 22%,transparent); --album-soft:color-mix(in srgb,var(--noces-text) 72%,var(--noces-background));
 --album-mist:color-mix(in srgb,var(--noces-primary) 11%,var(--noces-background)); --album-paper:color-mix(in srgb,var(--noces-background) 94%,white);
 --album-space:clamp(24px,5.5vw,90px); --album-ease:cubic-bezier(.22,1,.36,1); --album-width:1280px;
}
*,*::before,*::after {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:88px}
body.noces-invitation {margin:0;background:var(--noces-background);color:var(--noces-text);font:var(--album-body-size)/1.75 var(--noces-body);-webkit-font-smoothing:antialiased}
body.noces-invitation::before {content:"";position:fixed;inset:0;opacity:.1;pointer-events:none;z-index:2;background:url("../images/backgrounds/texture-papier.webp") repeat;background-size:600px}
[hidden] {display:none!important}
img {max-width:100%;height:auto;display:block}
button,input,select,textarea {font:inherit}
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent }
button,a {touch-action:manipulation}
button {cursor:pointer}
a {color:inherit;text-underline-offset:5px}
h1,h2,h3 {font-weight:400;line-height:1.08;overflow-wrap:anywhere;text-wrap:balance}
h1 {font-family:var(--noces-title)}
h2,h3 {font-family:var(--noces-heading)}
h2 {font-size:var(--album-heading-size)}
h3 {font-size:clamp(24px,3vw,36px)}
p,figure,blockquote {margin:0}
p+p {margin-top:1em}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {outline:2px solid var(--noces-primary);outline-offset:5px}
.screen-reader-text,.noces-skip-link:not(:focus) {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.noces-skip-link:focus {position:fixed;z-index:300;top:16px;left:16px;background:var(--noces-background);padding:12px}
.noces-button,.album-link,.noces-event-card__route,.noces-gifts__link {display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:14px 25px;font:var(--album-button-size)/1.5 var(--noces-ui);letter-spacing:.04em;text-decoration:none;border:1px solid var(--noces-primary);transition:background .5s,color .5s,transform .7s var(--album-ease)}
.noces-button {background:var(--noces-primary);color:var(--noces-background)}
.noces-button:hover {background:color-mix(in srgb,var(--noces-primary) 85%,black);transform:translateY(-2px)}
.album-link {padding:8px 0;justify-content:flex-start;border:0;border-bottom:1px solid currentColor}
.album-note {font:clamp(20px,2.2vw,30px)/1.3 "Marck Script",cursive;color:var(--album-soft)}
.noces-eyebrow,.noces-program__eyebrow,.noces-couple__eyebrow,.noces-profile__label,.noces-gallery__header>p,.noces-contacts__eyebrow {font:var(--album-ui-size)/1.6 var(--noces-ui);letter-spacing:.23em;text-transform:uppercase;color:var(--noces-primary)}
.album-decor {pointer-events:none;position:absolute;width:180px;z-index:0}
.noces-section {position:relative;padding:var(--album-space);margin:0;scroll-margin-top:80px}
.noces-section>header,.album-section-heading {text-align:center;max-width:850px;margin:0 auto 60px}
.noces-section>header h2,.album-section-heading h2 {margin:14px 0 25px}
.noces-section>header h2::after,.album-section-heading h2::after {content:"";display:block;width:44px;height:1px;margin:24px auto;background:var(--album-line)}
/* Closed letter. The photo and the names are real configurable content. */
html.noces-locked,html.noces-locked body {height:100dvh;overflow:hidden;overscroll-behavior:none}
.noces-opening {position:fixed;inset:0;height:100dvh;z-index:100;display:grid;place-items:center;overflow:hidden;overscroll-behavior:none;padding:35px 24px;isolation:isolate;background:var(--album-mist);color:var(--noces-primary)}
.noces-opening::before {content:"";position:absolute;inset:0;z-index:-1;background:url("../images/backgrounds/fond-ouverture.webp") center/cover;mix-blend-mode:multiply;opacity:.42}
.album-opening__frame {position:fixed;inset:24px;border:1px solid var(--album-line);pointer-events:none}
.album-opening__leaf {width:260px;opacity:.28;filter:blur(1px)}
.album-opening__leaf--left {top:-125px;left:-35px;transform:rotate(40deg)}
.album-opening__leaf--right {bottom:-130px;right:-65px;transform:rotate(25deg)}
.noces-opening__card {position:relative;width:min(720px,100%);text-align:center;display:grid;justify-items:center;gap:22px}
.noces-opening__eyebrow {font:var(--album-opening-size)/1.6 var(--noces-ui);letter-spacing:.28em;text-transform:uppercase}
.noces-opening__eyebrow::after {content:"";display:block;width:35px;height:1px;background:var(--album-line);margin:16px auto 0}
.album-envelope {position:relative;width:min(600px,88vw,max(90px,calc((100dvh - 380px)*1.5)));aspect-ratio:3/2;perspective:1400px;filter:drop-shadow(0 22px 16px #15251d28)}
.album-envelope__paper {position:relative;width:100%;height:100%;object-fit:contain;z-index:2}
.album-envelope__letter {position:absolute;inset:14% 12% 14%;padding:20px;background:var(--album-paper);z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:1px solid var(--album-line);box-shadow:0 3px 12px #0001}
.album-envelope__letter img {height:70%;width:100%;object-fit:cover}
.album-envelope__letter span {font:24px/1.1 var(--noces-title)}
.album-envelope__flap {position:absolute;top:9%;left:5%;width:90%;height:58%;z-index:3;background:#f5f3ee url("../images/backgrounds/texture-papier.webp") center/500px;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;backface-visibility:visible;display:none}
.album-envelope__seal {position:absolute;z-index:4;width:19%;aspect-ratio:1;top:49%;left:40.5%;display:grid;place-items:center;filter:drop-shadow(0 5px 4px #15251d33)}
.album-envelope__seal img {position:absolute;inset:0;width:100%;height:100%}
.album-envelope__seal span {position:relative;font:clamp(22px,3vw,38px)/1 var(--noces-title);letter-spacing:-.1em;color:var(--noces-primary);text-shadow:0 1px 1px #fff}
.noces-opening__content {display:grid;justify-items:center;gap:18px}
.noces-opening h2 {font:clamp(32px,5vw,60px)/1.1 var(--noces-title);margin:0;max-width:90vw}
.noces-opening time {font:var(--album-ui-size)/1.5 var(--noces-ui);letter-spacing:.24em}
.noces-opening.is-opening {pointer-events:none;animation:album-cover-away 4s var(--album-ease) forwards}
.is-opening .album-envelope__seal {animation:album-seal-away 1.1s var(--album-ease) forwards}
.is-opening .album-envelope__flap {display:block;animation:album-flap-open 2.3s .5s var(--album-ease) forwards}
.is-opening .album-envelope__letter {animation:album-letter-rise 2.5s 1.1s var(--album-ease) forwards}
.is-opening .noces-opening__content {transition:opacity .85s;opacity:0}
@keyframes album-seal-away {to{opacity:0;transform:translateY(20px) scale(.85)}}
@keyframes album-flap-open {to{transform:rotateX(180deg);filter:brightness(.93)}}
@keyframes album-letter-rise {65%{transform:translateY(-50%);z-index:4}100%{transform:translateY(-65%);z-index:4}}
@keyframes album-cover-away {0%,72%{opacity:1}100%{opacity:0;transform:translateY(-20px)}}
/* Album navigation. */
.noces-header {position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:18px var(--album-space);background:color-mix(in srgb,var(--noces-background) 95%,transparent);border-bottom:1px solid var(--album-line);backdrop-filter:blur(14px)}
body.admin-bar .noces-header {top:32px}
.album-brand {text-decoration:none;display:grid;flex-shrink:0;font:24px/1.1 var(--noces-heading)}
.album-brand small {font:10px/1.8 var(--noces-ui);letter-spacing:.15em;margin-top:5px}
.noces-header nav ul {list-style:none;display:flex;gap:clamp(12px,2vw,28px);align-items:center;flex-wrap:wrap;padding:0;margin:0}
.noces-header nav a {display:block;position:relative;font:var(--album-ui-size)/1.5 var(--noces-ui);letter-spacing:.06em;text-decoration:none;padding:8px 0}
.noces-header nav a::after {content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--noces-primary);transform:scaleX(0);transition:transform .7s var(--album-ease)}
.noces-header nav a:hover::after,.noces-header nav a[aria-current]::after {transform:scaleX(1)}
.album-header__sprig {position:static;width:40px;height:40px;object-fit:contain;transform:rotate(35deg);flex-shrink:0}
.noces-nav-toggle {display:none;background:transparent;border:0;width:44px;height:44px;padding:10px}
.noces-nav-toggle span {display:block;height:1px;margin:7px 0;background:var(--noces-text);transition:transform .4s}
.noces-nav-toggle[aria-expanded=true] span:first-child {transform:translateY(4px) rotate(45deg)}
.noces-nav-toggle[aria-expanded=true] span:last-child {transform:translateY(-4px) rotate(-45deg)}
/* The first spread, countdown strip and introduction. */
.noces-hero {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;padding:0;min-height:640px}
.noces-hero__visual {position:relative;grid-column:2;grid-row:1;align-self:stretch;padding:24px 24px 24px 0;min-width:0}
.noces-hero__arch {position:relative;height:100%;min-height:580px;overflow:hidden}
.noces-hero__arch--mobile {display:none}
.noces-hero__slide {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 40%;opacity:0;transition:opacity 2s ease,transform 8s linear;transform:scale(1.025)}
.noces-hero__slide[aria-hidden=false] {opacity:1;transform:scale(1)}
.noces-hero__waves,.noces-hero__monogram {display:none}
.noces-hero__visual::after,.noces-profile__image-frame::after,.noces-gallery__item::after {content:"";position:absolute;inset:12px;border:1px solid #ffffff80;pointer-events:none;z-index:2}
.noces-hero__content {position:relative;grid-column:1;grid-row:1;text-align:center;padding:60px 32px 80px;z-index:1}
.noces-hero .noces-eyebrow {font-size:var(--album-hero-eyebrow)}
.noces-hero h1 {font-size:min(var(--album-title-size),7vw);margin:30px 0;letter-spacing:-.04em;line-height:1.03}
.noces-hero__date {display:block;font:clamp(22px,2.3vw,32px)/1.3 var(--noces-heading);margin-bottom:30px}
.album-hero__annotation {display:block;margin:40px 0 0;transform:rotate(-6deg)}
.album-hero__leaf {bottom:-25px;left:-95px;width:210px;opacity:.5}
.album-countdown {position:relative;background:var(--noces-primary);color:var(--noces-background);text-align:center;padding:45px 24px;overflow:hidden}
.album-countdown__title {font:clamp(25px,3vw,38px)/1.2 var(--noces-heading);margin-bottom:24px}
.album-countdown__leaf {top:-100px;left:0;width:300px;opacity:.12;transform:rotate(-15deg)}
.noces-countdown__units {display:flex;justify-content:center;position:relative}
.noces-countdown__units>span {display:grid;width:min(23%,210px);gap:10px;position:relative;line-height:1}
.noces-countdown__units>span+span {border-left:1px solid color-mix(in srgb,var(--noces-background) 28%,transparent)}
.noces-countdown__units strong {font:400 var(--album-count-number)/1 var(--noces-heading);font-variant-numeric:tabular-nums}
.noces-countdown__units small {font:var(--album-count-label)/1.6 var(--noces-ui);letter-spacing:.2em;text-transform:uppercase}
.album-introduction {position:relative;display:flex;align-items:center;justify-content:center;gap:55px;overflow:hidden;min-height:260px;padding:55px var(--album-space);border-bottom:1px solid var(--album-line)}
.noces-introduction {position:relative;max-width:620px;text-align:center;font-size:var(--album-intro-size);z-index:1}
.album-introduction__photo {width:150px;flex-shrink:0;padding:8px 8px 25px;background:var(--album-paper);box-shadow:0 4px 14px #0001;transform:rotate(-7deg)}
.album-introduction__photo img {width:100%;height:130px;object-fit:cover}
.album-introduction__flowers {position:relative;width:180px;opacity:.65;align-self:flex-end}
/* Two portraits as pages of the same album. */
.noces-couple {display:grid;grid-template-columns:1fr .85fr 1fr;gap:45px;max-width:1440px;margin:auto;align-items:start;padding-top:110px;padding-bottom:100px}
.noces-couple__header {grid-column:2;grid-row:1;align-self:center;margin:0!important;position:relative}
.noces-couple__header::after {content:"&";display:block;font:200px/1 var(--noces-heading);color:var(--album-mist);margin-top:20px}
.noces-couple__header h2 {font-size:min(var(--album-heading-size),5vw)}
.noces-couple__introduction {color:var(--album-soft)}
.noces-profile--one {grid-column:1;grid-row:1}
.noces-profile--two {grid-column:3;grid-row:1}
.noces-profile__inner {display:grid;gap:24px;text-align:center}
.noces-profile__portrait {position:relative;margin:0;padding:10px;background:var(--album-paper);box-shadow:0 5px 20px #0000000a}
.noces-profile__image-frame {position:relative;aspect-ratio:4/5;overflow:hidden}
.noces-profile__image-frame img {width:100%;height:100%;object-fit:cover;object-position:50% 25%;transition:transform 1.5s var(--album-ease)}
.noces-profile__badge {font:var(--album-ui-size)/1.6 var(--noces-ui);margin-top:10px;letter-spacing:.08em}
.noces-profile__content h3 {font-size:38px;margin:5px 0 16px}
.noces-profile__label {display:none}
.noces-profile__content blockquote {font:italic var(--album-body-size)/1.5 var(--noces-heading);margin:0 0 18px}
.noces-profile__biography {color:var(--album-soft);font-size:var(--album-body-size)}
.noces-couple__wave,.noces-profile__portrait-backdrop {display:none}
/* Programme: chronological rows, rather than repeating cards. */
.noces-program {background:var(--album-mist)}
.noces-program__header {margin-bottom:45px!important}
.noces-program__ornament {display:none}
.noces-program__introduction {max-width:680px;margin:auto}
.noces-program__grid {max-width:var(--album-width);margin:auto;border-left:1px solid var(--album-line);padding-left:35px}
.noces-event-card {position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:50px;padding:32px 0;border-bottom:1px solid var(--album-line);align-items:center}
.noces-event-card::before {content:"";width:8px;height:8px;background:var(--noces-primary);border-radius:50%;position:absolute;left:-40px;top:50px}
.noces-event-card__image {grid-column:2;grid-row:1;padding:8px;background:var(--album-paper);transform:rotate(1deg)}
.noces-event-card__image img {width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform 1.4s var(--album-ease)}
.noces-event-card__lower {grid-column:1;grid-row:1;position:relative}
.noces-event-card__ribbon {margin:0 0 22px;font-size:36px}
.noces-event-card__content {display:grid;grid-template-columns:100px 1fr;gap:8px 24px}
.noces-event-card__date {grid-column:1;grid-row:1/7;align-self:start;display:grid;text-align:center;padding:12px 7px;background:color-mix(in srgb,var(--noces-primary) 10%,var(--noces-background));color:var(--noces-primary)}
.noces-event-card__date strong {font:44px/1 var(--noces-heading)}
.noces-event-card__date span {font:10px/1.8 var(--noces-ui);margin-top:8px;text-transform:uppercase;letter-spacing:.03em}
.noces-event-card__content>p,.noces-event-card__description,.noces-event-card__route {grid-column:2}
.noces-event-card__venue {font-weight:600}
.noces-event-card__time {font:20px/1.4 var(--noces-heading)}
.noces-event-card__time span {margin-right:8px}
.noces-event-card__address,.noces-event-card__description {color:var(--album-soft);font-size:var(--album-body-size)}
.noces-event-card__route {justify-self:start;margin-top:12px;padding:9px 18px}
.noces-event-card__lower--no-image {grid-column:1/-1}
/* Story spreads and mounted photographs. */
.noces-story {overflow:hidden}
.noces-story__header {max-width:780px!important}
.noces-story__badge {font:var(--album-ui-size)/1.5 var(--noces-ui);letter-spacing:.15em;text-transform:uppercase}
.noces-story__badge span,.noces-story__ornament,.noces-story__glow,.noces-story__spine,.noces-story-item__marker,.noces-story__finial {display:none}
.noces-story__introduction {color:var(--album-soft);font-style:italic}
.noces-story__timeline {max-width:var(--album-width);margin:auto}
.noces-story-item {display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:65px;align-items:center;margin:70px 0}
.noces-story-card {display:grid;grid-template-columns:1.15fr 1fr;gap:25px;align-items:start}
.noces-story-card__image {grid-column:1;grid-row:1/5;padding:10px 10px 30px;transform:rotate(-3deg);background:var(--album-paper);box-shadow:0 6px 18px #0001}
.noces-story-card__image img {width:100%;aspect-ratio:4/5;object-fit:cover}
.noces-story-card__header {grid-column:2;position:relative;border-bottom:1px solid var(--album-line);padding-bottom:20px}
.noces-story-card__header>span {position:absolute;top:-36px;right:-14px;font:74px/1 var(--noces-heading);opacity:.1}
.noces-story-card__period {font:var(--album-ui-size)/1.5 var(--noces-ui);letter-spacing:.14em;text-transform:uppercase}
.noces-story-card h3 {margin:14px 0 0}
.noces-story-card__text,.noces-story-card__footer {grid-column:2;color:var(--album-soft)}
.noces-story-card__footer {display:flex;gap:20px;font:italic var(--album-ui-size)/1.5 var(--noces-heading);border-top:1px solid var(--album-line);padding-top:14px}
.noces-story-quote {padding:35px;border-left:1px solid var(--album-line);transform:rotate(-3deg)}
.noces-story-quote blockquote {font:28px/1.4 "Marck Script",cursive;color:var(--noces-primary)}
.noces-story-quote p {margin-top:22px;font:var(--album-ui-size)/1.5 var(--noces-ui);letter-spacing:.1em}
.noces-story-item--right {grid-template-columns:1fr 1.7fr}
.noces-story-item--right .noces-story-card {grid-column:2;grid-row:1}
.noces-story-item--right .noces-story-quote {grid-column:1;grid-row:1}
.noces-story__conclusion {text-align:center;margin-top:55px;font:italic 24px/1.5 var(--noces-heading)}
.noces-gallery {background:var(--album-mist)}
.noces-gallery__grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;max-width:var(--album-width);margin:auto;align-items:start}
.noces-gallery__item {position:relative;border:0;background:var(--album-paper);padding:10px 10px 32px;box-shadow:0 7px 20px #0001;transform:rotate(-2deg);transition:transform 1s var(--album-ease);width:100%}
.noces-gallery__item:nth-child(2n) {transform:rotate(2deg);margin-top:30px}
.noces-gallery__item:nth-child(3n) {transform:rotate(-1deg)}
.noces-gallery__item img {width:100%;aspect-ratio:4/3;object-fit:cover}
.noces-gallery__item:nth-child(3n+2) img {aspect-ratio:4/5}
.noces-gallery__item span {display:block;font:16px/1.4 "Marck Script",cursive;margin-top:12px}
.noces-gallery__item::after {inset:16px 16px 42px}
.noces-gallery__item--lightbox-only {display:none}
.noces-gallery__more {display:block;margin:45px auto 0;background:none;border:0;border-bottom:1px solid var(--album-line);padding:14px;font:var(--album-button-size)/1.5 var(--noces-ui)}
/* Full-size images stay within the viewport. */
html.noces-lightbox-open,html.noces-lightbox-open body {overflow:hidden}
.noces-lightbox {position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:24px}
.noces-lightbox__backdrop {position:absolute;inset:0;background:color-mix(in srgb,var(--noces-text) 90%,transparent);backdrop-filter:blur(8px)}
.noces-lightbox__panel {position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:16px;align-items:center;width:min(1150px,100%);height:90dvh}
.noces-lightbox figure {min-width:0;min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;padding:45px 0}
.noces-lightbox figure img {max-width:100%;max-height:100%;object-fit:contain}
.noces-lightbox figcaption {color:var(--noces-background);font:20px/1.4 "Marck Script",cursive;padding-top:15px}
.noces-lightbox button {background:transparent;color:var(--noces-background);border:1px solid #fff4;border-radius:50%;width:44px;height:44px;font:30px/1 var(--noces-ui)}
.noces-lightbox__close {position:absolute;right:0;top:0;z-index:1}
.noces-lightbox__counter {position:absolute;bottom:0;right:0;font:12px/1.4 var(--noces-ui);color:var(--noces-background)}
/* Practical notes and RSVP — a letter the guest can answer. */
.album-practical {border-bottom:1px solid var(--album-line)}
.album-practical__grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));max-width:var(--album-width);margin:auto}
.album-practical__grid article {padding:15px 30px;border-left:1px solid var(--album-line)}
.album-practical__grid article:first-child {border:0}
.album-practical h3 {font-size:28px;margin:12px 0 20px}
.album-practical__symbol {font-size:30px;color:var(--noces-primary)}
.album-practical__grid img {margin-bottom:20px}
.album-swatches {display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}
.album-swatches span {width:30px;height:30px;background:var(--swatch);border:1px solid #0002;border-radius:50%}
body.noces-invitation .noces-section.noces-section--rsvp {display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:60px;align-items:center;max-width:1440px;margin:auto}
body.noces-invitation .noces-section.noces-section--rsvp:not(:has(.album-rsvp__photo)) {grid-template-columns:minmax(0,1fr)}
.album-rsvp__photo {background:var(--album-paper);padding:12px 12px 28px;box-shadow:0 8px 24px #0001;transform:rotate(-5deg)}
.album-rsvp__photo img {width:100%;aspect-ratio:3/4;object-fit:cover;object-position:65% 35%}
.album-rsvp__photo figcaption {margin:15px 0 0;text-align:center}
.album-rsvp__leaf {right:-20px;top:25px;width:140px;opacity:.4}
.noces-section__body {position:relative;min-width:0;z-index:1}
.noces-section__index {display:none}
.noces-rsvp {background:var(--album-paper);padding:clamp(22px,3vw,45px);border:1px solid var(--album-line);box-shadow:0 8px 26px #00000006;color:var(--noces-text)}
.noces-rsvp__header {text-align:center;margin-bottom:28px}
.noces-rsvp__eyebrow {font:var(--album-rsvp-label)/1.5 var(--noces-ui);letter-spacing:.2em;text-transform:uppercase}
.noces-rsvp__title {font:var(--album-rsvp-title)/1.08 var(--noces-heading);margin:16px 0}
.noces-rsvp__deadline {font:var(--album-rsvp-label)/1.7 var(--noces-ui);color:var(--album-soft)}
.noces-rsvp__deadline em {font-style:normal}
.noces-rsvp__deadline {display:block}
.noces-rsvp__deadline>span {display:none}
#noces-title:focus {outline:none}
.noces-rsvp__card {border:0;background:transparent;box-shadow:none;border-radius:0;padding:0}
.noces-rsvp__monogram {display:none}
.noces-rsvp__form {display:grid;gap:22px;font-size:var(--album-rsvp-text)}
.noces-rsvp__form label,.noces-contact-form label {display:grid;gap:7px;text-align:left}
.noces-rsvp__form label>span {font:var(--album-rsvp-label)/1.5 var(--noces-ui)}
.noces-rsvp__form em {font-style:normal}
.noces-rsvp__form b {color:var(--noces-primary)}
.noces-rsvp__identity {display:grid;grid-template-columns:.75fr 1fr 1fr;gap:14px}
.noces-rsvp__form input:not([type=checkbox]):not([type=radio]),.noces-rsvp__form select,.noces-contact-form input,.noces-contact-form textarea {min-width:0;width:100%;border:1px solid var(--album-line);background:color-mix(in srgb,var(--noces-background) 90%,white);border-radius:2px;padding:11px 12px;color:var(--noces-text);font-size:var(--album-rsvp-text);outline-offset:2px}
.noces-rsvp__attendance {margin:0;padding:0;border:0;min-width:0}
.noces-rsvp__attendance legend {font:var(--album-rsvp-label)/1.5 var(--noces-ui);margin-bottom:12px}
.noces-rsvp__choices {display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--album-line);padding:14px;gap:16px}
.noces-rsvp__choices label,.noces-rsvp__form .noces-rsvp__check {display:flex;align-items:flex-start;gap:10px}
.noces-rsvp__form input[type=checkbox],.noces-rsvp__form input[type=radio] {width:18px;height:18px;accent-color:var(--noces-primary);flex-shrink:0;margin:2px 0 0}
.noces-rsvp__form .noces-rsvp__check {border-top:1px solid var(--album-line);padding-top:20px}
.noces-rsvp__help {font:12px/1.6 var(--noces-ui);color:var(--album-soft)}
.noces-rsvp__partner-toggle {margin-bottom:18px}
.noces-rsvp__honeypot,.noces-contact-form__trap {position:absolute;left:-9999px;width:1px;overflow:hidden}
.noces-rsvp__submit,.noces-contact-form__submit {display:flex;justify-content:center;align-items:center;gap:16px;width:100%;padding:15px 24px;border:1px solid var(--noces-primary);background:var(--noces-primary);color:var(--noces-background);font:var(--album-button-size)/1.5 var(--noces-ui);transition:background .5s,transform .7s}
.noces-rsvp__submit:hover,.noces-contact-form__submit:hover {transform:translateY(-1px)}
.noces-rsvp__submit:disabled {opacity:.6;cursor:wait}
.noces-rsvp__spinner {display:none;width:14px;height:14px;border:1px solid currentColor;border-top-color:transparent;border-radius:50%}
.is-loading .noces-rsvp__spinner {display:block;animation:album-spin 1s linear infinite}
@keyframes album-spin {to{transform:rotate(360deg)}}
.noces-rsvp__notice,.noces-rsvp__access-message {padding:16px;border:1px solid var(--album-line)}
.noces-rsvp__notice--error {border-color:#ba453e;color:#8c302a}
.noces-rsvp__private-summary h3 {font-size:34px;margin:0 0 20px}
.noces-rsvp__ticket-list {list-style:none;padding:0;display:grid;gap:14px}
.noces-rsvp__ticket-list li {display:flex;justify-content:space-between;align-items:center;gap:15px;background:var(--album-mist);padding:18px;font:var(--album-rsvp-text)/1.5 var(--noces-body)}
.noces-rsvp__download,.noces-rsvp__edit-response {display:inline-block;border:1px solid var(--album-line);padding:10px 16px;font:var(--album-button-size)/1.5 var(--noces-ui);text-decoration:none;background:transparent;color:var(--noces-primary)}
.noces-rsvp__modification-warning,.noces-rsvp__deadline-note {font-size:12px;margin-top:18px;color:var(--album-soft)}
.noces-rsvp__edit-dialog {width:min(760px,calc(100% - 30px));max-height:90dvh;padding:35px;color:var(--noces-text);background:var(--noces-background);border:1px solid var(--album-line)}
.noces-rsvp__edit-dialog::backdrop {background:#15251db0;backdrop-filter:blur(8px)}
.noces-rsvp__dialog-close {margin-left:auto;display:block;border:0;background:none;font-size:28px;padding:10px}
/* Wishlist, organization and farewell. */
.noces-gifts {display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;border-top:1px solid var(--album-line);max-width:1440px;margin:auto}
.noces-gifts:not(:has(.album-gifts__photo)) {display:block;text-align:center}
.noces-gifts__content {grid-column:1;grid-row:1}
.noces-gifts h2 {font-size:min(var(--album-heading-size),5vw);margin:0 0 24px}
.noces-gifts__text {color:var(--album-soft);margin-bottom:28px}
.noces-gifts__link {background:var(--noces-primary);color:var(--noces-background)}
.album-gifts__photo {grid-column:2;grid-row:1;padding:10px;background:var(--album-paper);transform:rotate(2deg);box-shadow:0 5px 20px #0001}
.album-gifts__photo img {width:100%;aspect-ratio:4/3;object-fit:cover}
.noces-contacts {display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center;background:var(--album-mist)}
.noces-contacts__header {text-align:left!important;margin:0!important}
.noces-contacts__header h2::after {margin-left:0!important}
.noces-contact-form {display:grid;gap:20px;padding:35px;background:var(--album-paper);border:1px solid var(--album-line);font-size:var(--album-body-size)}
.noces-contact-form label span {font:var(--album-ui-size)/1.5 var(--noces-ui)}
.noces-contact-form textarea {resize:vertical;min-height:120px}
.noces-contact-form small {font:12px/1.5 var(--noces-ui);color:var(--album-soft)}
.noces-contact-prompt {text-align:center;padding:26px;font:var(--album-ui-size)/1.7 var(--noces-ui)}
.noces-contact-prompt button {border:0;border-bottom:1px solid var(--album-line);padding:5px;background:none;font:inherit;color:var(--noces-primary)}
.noces-contact-dialog {width:min(600px,calc(100% - 32px));max-height:90dvh;overflow:auto;border:1px solid var(--album-line);padding:0;background:var(--noces-background);color:var(--noces-text)}
.noces-contact-dialog::backdrop {background:#15251db0;backdrop-filter:blur(8px)}
.noces-contact-dialog__panel {position:relative;padding:35px}
.noces-contact-dialog__close {position:absolute;top:10px;right:12px;border:0;background:none;font:28px/1 var(--noces-ui);padding:10px;color:var(--noces-text)}
.noces-contact-dialog__header {padding-right:25px;margin-bottom:25px}
.noces-contact-dialog__header p {font:32px/1.2 var(--noces-heading)}
.noces-contact-dialog__header span {font:14px/1.6 var(--noces-body)}
.noces-contact-dialog .noces-contact-form {padding:0;border:0;background:none}
.noces-contact-feedback {padding:16px;background:var(--noces-background);border:1px solid var(--album-line)}
.noces-contact-toast {position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:200;width:min(480px,calc(100% - 32px));box-shadow:0 8px 30px #0002;transition:opacity .25s}
.noces-contact-toast.is-leaving {opacity:0}
.album-farewell {position:relative;isolation:isolate;display:flex;align-items:center;min-height:420px;background:var(--noces-primary);color:var(--noces-background);padding:var(--album-space);overflow:hidden}
.album-farewell__photo {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 45%;z-index:-2}
.album-farewell--photo::after {content:"";position:absolute;inset:0;background:linear-gradient(90deg,#13251ede, #13251e40);z-index:-1}
.album-farewell__content {max-width:720px}
.album-farewell .album-note {color:inherit}
.album-farewell h2 {font:clamp(32px,6vw,76px)/1.1 var(--noces-title);margin:22px 0}
.album-farewell time {font:var(--album-ui-size)/1.7 var(--noces-ui);letter-spacing:.15em}
.album-footer__service {display:flex;justify-content:space-between;align-items:center;gap:35px;padding:35px var(--album-space);border-bottom:1px solid var(--album-line);font-size:14px}
.album-footer__service p {max-width:650px}
.album-footer__service a {flex-shrink:0}
.album-footer__legal {margin:0;padding:15px var(--album-space);border-bottom:1px solid var(--album-line);font-size:13px}
.album-footer__legal summary {cursor:pointer}
.album-footer__legal>div {max-width:800px;padding-top:18px}
.noces-footer--credit {text-align:center;padding:22px}
.noces-footer--credit p {font:12px/1.7 var(--noces-ui)}
.noces-audio {position:fixed;z-index:110;bottom:22px;left:22px}
.noces-audio button,.album-back-top {display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--album-line);background:var(--noces-background);color:var(--noces-primary);border-radius:30px;padding:10px 15px;font:12px/1.5 var(--noces-ui);box-shadow:0 3px 12px #0001}
.album-back-top {position:fixed;bottom:22px;right:22px;z-index:40;width:44px;height:44px;text-decoration:none;font-size:22px}
/* Existing configurable animations; long easing, small distances. */
.noces-typewriter-char {opacity:0;transition:opacity .9s ease}
.is-writing .noces-typewriter-char {opacity:1}
.noces-heartbeat {animation:album-heartbeat var(--noces-heartbeat-duration,2400ms) ease var(--noces-heartbeat-delay,700ms) infinite}
@keyframes album-heartbeat {0%,65%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--noces-primary) 15%,transparent)}35%{box-shadow:0 0 0 7px transparent}}
.noces-motion-ready .noces-reveal {opacity:0;transition:opacity var(--noces-reveal-duration,1500ms) var(--album-ease) var(--noces-reveal-delay,0ms),transform var(--noces-reveal-duration,1500ms) var(--album-ease) var(--noces-reveal-delay,0ms)}
.noces-motion-ready .noces-reveal--fade-up {transform:translateY(25px)}
.noces-motion-ready .noces-reveal--fade-left {transform:translateX(-25px)}
.noces-motion-ready .noces-reveal--fade-right {transform:translateX(25px)}
.noces-motion-ready .noces-reveal--scale {transform:scale(.965)}
.noces-motion-ready .noces-reveal.is-revealed {opacity:1;transform:none}
@media (hover:hover) and (pointer:fine) {.noces-profile__portrait:hover img{transform:scale(1.025)}.noces-gallery__item:hover{transform:rotate(0) translateY(-5px)}}
@media(min-width:768px) and (max-width:1100px) {
 .noces-couple {gap:25px}.noces-couple__header h2{font-size:44px}
 .noces-section--rsvp{gap:30px;grid-template-columns:.6fr 1.4fr}
 .noces-hero{min-height:540px}.noces-hero__arch{min-height:500px}
 .noces-story-item{gap:30px}.noces-story-card{gap:18px}
}
@media(max-width:767px) {
 :root {
 --album-title-size:var(--noces-title-size-mobile);--album-heading-size:var(--noces-heading-size-mobile);--album-body-size:var(--noces-body-size-mobile);--album-ui-size:var(--noces-ui-size-mobile);--album-button-size:var(--noces-button-size-mobile);
 --album-count-number:var(--noces-countdown-number-size-mobile);--album-count-label:var(--noces-countdown-label-size-mobile);--album-opening-size:var(--noces-opening-text-size-mobile);--album-hero-eyebrow:var(--noces-hero-eyebrow-size-mobile);--album-intro-size:var(--noces-introduction-size-mobile);
 --album-rsvp-title:var(--noces-rsvp-title-size-mobile);--album-rsvp-text:var(--noces-rsvp-text-size-mobile);--album-rsvp-label:var(--noces-rsvp-label-size-mobile);--album-space:24px;
 }
 html{scroll-padding-top:74px}
 .noces-opening{padding:38px 20px}.album-opening__frame{inset:12px}.noces-opening__card{gap:15px}.noces-opening__content{gap:15px}.album-envelope{width:min(500px,92vw,max(90px,calc((100dvh - 340px)*1.5)))}
 .album-opening__leaf{width:180px;opacity:.22}.album-opening__leaf--left{top:-90px}.album-opening__leaf--right{bottom:-70px}
 .noces-header{padding:12px 22px;gap:12px}.album-brand{font-size:20px}.album-brand small{font-size:9px}.album-header__sprig{display:none}
 body.admin-bar .noces-header{top:46px}
 .noces-js .noces-nav-toggle{display:block}
 .noces-js .noces-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--noces-background);padding:20px 24px;border-bottom:1px solid var(--album-line);box-shadow:0 8px 10px #0001}
 .noces-js .noces-header nav.is-open{display:block}
 .noces-header nav ul{gap:0;flex-direction:column;align-items:stretch}
 .noces-header nav a{padding:12px;font-size:13px}
 html:not(.noces-js) .noces-header{flex-wrap:wrap}
 html:not(.noces-js) .noces-header nav{width:100%}
 html:not(.noces-js) .noces-header nav ul{flex-direction:row;flex-wrap:wrap;gap:8px}
 .noces-hero{display:block;min-height:0}.noces-hero__visual{padding:0}
 .noces-hero__arch--desktop{display:none}.noces-hero__arch--mobile{display:block;min-height:0;height:min(125vw,600px)}
 .noces-hero__slide{object-position:50% 32%}
 .noces-hero__content{padding:30px 24px 40px}.noces-hero h1{font-size:min(var(--album-title-size),14vw);margin:20px 0}
 .noces-hero .noces-eyebrow{margin-bottom:15px}.album-hero__annotation,.album-hero__leaf{display:none}
 .noces-hero__date{font-size:24px;margin-bottom:24px}
 .album-countdown{padding:32px 16px}.album-countdown__title{font-size:26px}.noces-countdown__units>span{width:25%;gap:12px}
 .noces-countdown__units small{letter-spacing:.08em}
 .album-introduction{padding:38px 25px;min-height:0}.album-introduction__photo,.album-introduction__flowers{display:none}
 .noces-section{padding:55px 24px}.noces-section>header,.album-section-heading{margin-bottom:35px}
 .noces-couple{display:flex;flex-direction:column;gap:42px;padding-top:55px;padding-bottom:55px}
 .noces-couple__header{align-self:center;order:0;max-width:540px}.noces-couple__header h2{font-size:var(--album-heading-size)}.noces-couple__header::after{display:none}
 .noces-profile{width:100%;max-width:430px;margin:auto}.noces-profile__portrait{max-width:320px;margin:auto;width:100%}
 .noces-profile__image-frame{aspect-ratio:4/5}.noces-profile__content h3{font-size:32px}
 .noces-program__grid{padding-left:20px}.noces-event-card{display:flex;flex-direction:column;gap:24px;padding:26px 0;align-items:stretch}
 .noces-event-card::before{left:-25px;top:44px}.noces-event-card__lower{order:0}.noces-event-card__image{order:1;transform:none;padding:6px}
 .noces-event-card__ribbon{font-size:28px;margin-bottom:20px}.noces-event-card__content{grid-template-columns:70px 1fr;gap:8px 15px}
 .noces-event-card__date strong{font-size:32px}.noces-event-card__date{padding:12px 4px}.noces-event-card__date span{font-size:9px}.noces-event-card__time{font-size:17px}
 .noces-story-item,.noces-story-item--right{display:flex;flex-direction:column;gap:25px;align-items:stretch;margin:45px 0}
 .noces-story-card{display:flex;flex-direction:column;gap:22px}.noces-story-card__header{width:100%;order:0}
 .noces-story-card__image{order:1;max-width:420px;margin:0 auto;width:95%;transform:rotate(-2deg)}.noces-story-card__image img{aspect-ratio:4/3}
 .noces-story-card__text{order:2}.noces-story-card__footer{order:3;width:100%}
 .noces-story-quote{padding:10px 20px;max-width:90%;align-self:center}.noces-story-quote blockquote{font-size:24px}
 .noces-story__conclusion{font-size:20px}
 .noces-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.noces-gallery__item{padding:7px 7px 18px}
 .noces-gallery__item:nth-child(2n){margin-top:22px}.noces-gallery__item span{font-size:14px}.noces-gallery__item::after{inset:11px 11px 27px}
 .noces-lightbox{padding:12px}.noces-lightbox__panel{grid-template-columns:30px minmax(0,1fr) 30px;gap:8px}
 .noces-lightbox button{width:32px;height:32px;font-size:24px}.noces-lightbox figcaption{font-size:16px}
 .album-practical__grid{display:block}.album-practical__grid article{padding:25px 0;border:0;border-bottom:1px solid var(--album-line)}
 .album-practical__grid article:last-child{border-bottom:0}
 .noces-section--rsvp{display:block;padding:45px 15px}.album-rsvp__photo{display:none}.album-rsvp__leaf{width:80px;right:0;opacity:.25}
 .noces-rsvp{padding:25px 18px}.noces-rsvp__choices{grid-template-columns:1fr;gap:12px}
 .noces-rsvp__identity{grid-template-columns:1fr 1fr;gap:15px 12px}.noces-rsvp__identity label:first-child{grid-column:1/-1}
 .noces-rsvp__ticket-list li{flex-direction:column;align-items:stretch;padding:15px}.noces-rsvp__download{text-align:center}
 .noces-rsvp__private-summary h3{font-size:28px}.noces-rsvp__edit-dialog{padding:22px}
 .noces-gifts{display:flex;flex-direction:column;gap:30px}.noces-gifts h2{font-size:var(--album-heading-size)}.album-gifts__photo{width:100%}
 .noces-contacts{display:block}.noces-contacts__header{margin-bottom:30px!important}.noces-contact-form{padding:24px 18px}
 .noces-contact-dialog__panel{padding:28px 20px}.noces-contact-dialog__header p{font-size:28px}
 .album-farewell{min-height:340px;padding:45px 25px}.album-farewell h2{font-size:44px}.album-farewell__content{max-width:90%}
 .album-footer__service{flex-direction:column;align-items:flex-start;gap:15px;padding:30px 24px}
 .noces-audio{bottom:15px;left:15px}.album-back-top{bottom:15px;right:15px}
}
@media(max-height:600px) {
 .noces-opening{padding:18px 20px}
 .noces-opening__card{gap:12px}
 .noces-opening__content{gap:10px}
 .noces-opening__eyebrow::after{margin:8px auto 0}
 .noces-opening h2{font-size:clamp(26px,5vw,36px)}
 .album-envelope{width:min(500px,88vw,max(90px,calc((100dvh - 240px)*1.5)))}
 .noces-opening__button{padding:11px 22px}
}
html:not(.noces-js) .noces-opening {display:none}
html:not(.noces-js) .noces-hero__slide {opacity:1;position:absolute}
html:not(.noces-js) .noces-hero__slide:not([src]) {display:none}
html.album-motion-off *,html.album-motion-off *::before,html.album-motion-off *::after {animation:none!important;transition:none!important}
html.album-motion-off {scroll-behavior:auto}
html.album-motion-off .noces-reveal,html.album-motion-off .noces-typewriter-char {opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto}
 *,*::before,*::after {animation:none!important;transition:none!important}
 .noces-reveal,.noces-typewriter-char {opacity:1!important;transform:none!important}
}


/* Isolate the Album layout from the unchanged plugin's default skin. */
body.noces-invitation .noces-section--rsvp::before,body.noces-invitation .noces-section--rsvp::after{display:none}
body.noces-invitation .noces-section--rsvp .noces-section__body{width:100%;max-width:none;margin:0;min-width:0}
body.noces-invitation .noces-rsvp__card{padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
body.noces-invitation .noces-rsvp__choices label{padding:0;border:0;border-radius:0;background:none;min-height:0}
body.noces-invitation .noces-rsvp .noces-rsvp__choices label>span{font-size:var(--album-rsvp-label)!important}
body.noces-invitation .noces-rsvp__submit{border-radius:2px;box-shadow:none;text-transform:none;letter-spacing:.04em;line-height:1.5}
body.noces-invitation .noces-rsvp__check>span{font-size:var(--album-rsvp-text)!important}
body.noces-invitation .noces-rsvp__choices{grid-template-columns:1fr 1fr}
body.noces-invitation .noces-rsvp__download,body.noces-invitation .noces-rsvp__edit-response{border-radius:2px}
body.noces-invitation input:focus-visible,body.noces-invitation select:focus-visible,body.noces-invitation textarea:focus-visible{outline:2px solid var(--noces-primary)!important;outline-offset:2px}
@media(max-width:767px){
 body.noces-invitation .noces-rsvp__choices{grid-template-columns:1fr}
 body.noces-invitation .noces-section.noces-section--rsvp{display:block;padding:45px 15px}
}

/* Keep the partner control separate from the generic consent row spacing. */
body.noces-invitation .noces-rsvp .noces-rsvp__form .noces-rsvp__partner-toggle{
 padding:12px;gap:12px!important;align-items:center;min-height:48px;
 border:1px solid var(--album-line);border-radius:12px;
}
body.noces-invitation .noces-rsvp .noces-rsvp__partner-toggle input[type=checkbox]{margin:0}
