/* Crystal-white surfaces; the accent is sampled from Lynette's blue dress. */
:root {
  --dress-blue: #2c49af;
  --dress-shade: #223986;
  --dress-wash: #eef1fb;
  --crystal: #fcfcfb;
  --pearl: #f7f8fb;
  --silver: #ced3de;
  --soft-ink: #484d5b;
  --quiet-ink: #5b6171;
}
html, body { background: var(--crystal); }
.film, .birthday-welcome {
  --navy: var(--dress-blue); --navy-2: var(--dress-shade); --navy-3: var(--dress-shade);
  --blue: var(--dress-blue); --ink: var(--dress-blue); --ice: var(--crystal); --ice-2: var(--pearl);
  --paper: #fff; --champagne: var(--silver); --champagne-light: var(--dress-blue);
  --text: var(--soft-ink); --muted: var(--quiet-ink); --muted-ice: var(--quiet-ink);
  --hair: #2c49af20; --hair-ice: #2c49af20; --focus: var(--dress-blue); --focus-ice: var(--dress-blue);
  color: var(--soft-ink); background: var(--crystal);
}
.film h1, .film h2, .film h3, .film a { color: var(--dress-blue); }
.film .album-nav { background: #fffffff2; border-bottom-color: var(--silver); box-shadow: 0 5px 24px #2c49af07; }
.film .album-signature, .film .album-fifty, .film .album-links a,
.film .album-links a:hover, .film .album-links a[aria-current] { color: var(--dress-blue); }
.film .album-fifty { border-color: #2c49af55; }
.film .album-links a::after { background: var(--dress-blue); }
.film .album-intro { background: radial-gradient(ellipse at 80% 5%, #eef1fb88, transparent 65%), var(--crystal); color: var(--soft-ink); }
.film .album-intro::before { color: #2c49af07; }
.film .album-intro::after { border-color: #2c49af0f; box-shadow: 0 0 0 22px #2c49af04, 0 0 0 44px #2c49af03; }
.film .album-intro-copy, .film .section-head .lead, .film .chapter-line, .film .chapter-count { color: var(--quiet-ink); }
.film #her-night { background: radial-gradient(ellipse at 5% 4%, #eef1fb66, transparent 48%), var(--crystal); }
.film #her-night::before { border-color: #2c49af12; box-shadow: 0 0 0 24px #2c49af03, 0 0 0 48px #2c49af02; }
.film #the-night { background: var(--crystal); }
.film .section-head .eyebrow, .film .chapter-number { color: var(--dress-blue); }
.film .section-head .eyebrow::before { background: var(--silver); }
.film .section.ice { color: var(--soft-ink); background: linear-gradient(#fff, var(--pearl)); }
.film .section.ice .lead { color: var(--quiet-ink); }
.film .planner-feature { color: var(--soft-ink); background: linear-gradient(140deg, #fff, var(--pearl)); box-shadow: 0 12px 48px #2c49af06; border: 1px solid #2c49af16; }
.film .planner-heading h3, .film .planner-contact { color: var(--dress-blue); }
.film .planner-kicker, .film .planner-role, .film .planner-thanks, .film .planner-footer > p { color: var(--quiet-ink); }
.film .planner-contact { text-decoration-color: #2c49af70; }
.film .download-section, .film .select-section, .film .download-photo,
.film .planner-feature .download-section, .film .planner-feature .select-section, .film .planner-feature .download-photo {
  color: var(--dress-blue); border-color: #2c49af55;
}
.film .download-section:hover, .film .select-section:hover { background: var(--dress-wash); }
.film .btn-ink { background: var(--dress-blue); border-color: var(--dress-blue); color: #fff !important; }
.film .btn-ink:hover { background: var(--dress-shade); border-color: var(--dress-shade); }
.film .guestbook-form { border-color: var(--silver); box-shadow: 0 16px 50px #2c49af0b; border-radius: 8px; }
.film input, .film textarea { background: #fff; color: var(--soft-ink); border-color: var(--silver); }
.film .credit { background: var(--crystal); color: var(--soft-ink); }
.film .credit .meta, .film .music-credit { color: var(--quiet-ink); }
.film .print, .film .ph-grid .ph, .film .ph-grid .ph:hover { box-shadow: none; }
.film .print:focus-within { outline-color: var(--dress-blue); }
.photo-select { background: #fffffff2; color: var(--dress-blue); border-color: #2c49af55; box-shadow: 0 3px 14px #2c49af12; }
.photo-select[aria-pressed="true"] { background: var(--dress-blue); color: #fff; border-color: var(--dress-blue); }
.film .is-selected .ph img { box-shadow: 0 0 0 3px var(--dress-blue); }
.selection-tray, .selection-review, .photo-save-dialog { color: var(--soft-ink); background: #fffffff7; border-color: var(--silver); box-shadow: 0 12px 48px #2c49af18; }
.selection-tray button, .selection-review button, .photo-save-dialog button { color: var(--dress-blue); border-color: #2c49af40; }
.selection-tray .selection-count, .selection-review h2, .photo-save-dialog h2 { color: var(--dress-blue); }
.selection-tray .selection-status, .photo-save-dialog p { color: var(--quiet-ink); }
.selection-tray .selection-save, .photo-save-options button { color: #fff; background: var(--dress-blue); border-color: var(--dress-blue); }
.photo-save-dialog header { background: #fff; }
.photo-save-dialog.has-folder [data-prepare-share], .photo-save-dialog.has-folder [data-download-files],
.photo-save-dialog.has-device-share [data-download-files] { color: var(--dress-blue); background: #fff; }
.photo-save-dialog .individual-save-links a { color: var(--dress-blue); }
.selection-review::backdrop, .photo-save-dialog::backdrop { background: #e9edf4bb; backdrop-filter: blur(8px); }
.lb { background: #fcfcfbfa; color: var(--soft-ink); }
.lb::backdrop { background: #fcfcfbf5; }
.lb-bar { background: #fff; border-color: var(--silver); }
.lb-btn, .lb-bar a { background: #fff; color: var(--dress-blue); border-color: #2c49af55; }
.lb-count { color: var(--quiet-ink); }
.lb-btn:hover { background: var(--dress-wash); color: var(--dress-blue); border-color: var(--dress-blue); }
.music-dock { background: #fffffff2; color: var(--dress-blue); border-color: #2c49af40; box-shadow: 0 8px 30px #2c49af12; }
.music-bars i { background: var(--dress-blue); }
.consent-banner { background: #fffffff7; color: var(--soft-ink); border-color: var(--silver); box-shadow: 0 12px 40px #2c49af18; }
.consent-banner p { color: var(--soft-ink); }
.consent-banner a, .consent-banner .consent-decline { color: var(--dress-blue); border-color: #2c49af55; }
.consent-banner .consent-accept { background: var(--dress-blue); color: #fff; border-color: var(--dress-blue); }
.birthday-welcome { background: radial-gradient(ellipse at 50% 0, #eef1fb80, transparent 65%), var(--crystal); }
.birthday-welcome .welcome-film { border-color: var(--silver); box-shadow: 0 18px 65px #2c49af10; }
.birthday-welcome .welcome-film video, .birthday-welcome .welcome-poster { background: #fff; }
.birthday-welcome .welcome-kicker, .birthday-welcome .welcome-caption { color: var(--dress-blue); }
.birthday-welcome .welcome-skip { background: #fffffff2; color: var(--dress-blue); border-color: #2c49af50; }
.birthday-welcome .welcome-button { color: var(--dress-blue); background: #fff; border-color: #2c49af55; }
.birthday-welcome .welcome-button:hover { background: var(--dress-wash); box-shadow: 0 8px 20px #2c49af12; }
.birthday-welcome .speech-play { color: var(--dress-blue); border-color: #2c49af55; box-shadow: 0 6px 25px #2c49af18; }
.birthday-welcome .welcome-footer { color: var(--quiet-ink); border-color: var(--silver); }
.birthday-welcome .guest-invitation { background: #fffffff7; color: var(--soft-ink); border-color: var(--silver); box-shadow: 0 24px 80px #2c49af18; }
.guest-invitation::backdrop { background: #edf0f5bc; }
.guest-invitation h2, .invitation-privacy a, #invitationForm label { color: var(--dress-blue); }
.invitation-eyebrow, .invitation-privacy, .invitation-later, #invitationDescription { color: var(--quiet-ink); }
.invitation-ornament { color: #8293cb; }
.invitation-submit { background: var(--dress-blue); border-color: var(--dress-blue); }
.invitation-submit:hover { background: var(--dress-shade); }
#invitationForm input:not([type=hidden]) { color: var(--soft-ink); border-color: var(--silver); }
.photo-select:focus-visible, .selection-tray button:focus-visible, .select-section:focus-visible,
.lb-btn:focus-visible, .music-dock:focus-visible, .birthday-welcome :focus-visible { outline-color: var(--dress-blue); }
.website-photo-album { background: var(--crystal); color: var(--soft-ink); }
.website-photo-album h1, .website-photo-album a { color: var(--dress-blue); }
.website-photo-album img { background: var(--pearl); }
.guestbook-form .note-privacy { font: 14px/1.65 system-ui,sans-serif; color: #484d5b; }
.guestbook-form .note-privacy a { color: #223986; text-decoration: underline; text-underline-offset: 3px; }
.guestbook-form .note-status { font: 15px/1.65 system-ui,sans-serif; color: #223986; min-height: 1.65em; }
.guestbook-form button:disabled { cursor: wait; opacity: .65; }
