/* All new treatments are opt-in; original surfaces and saved compositions stay intact. */
body[data-typography="romantic"] { --visual-display-font: 'Cormorant Garamond', Georgia, serif; --visual-display-style: italic; }
body[data-typography="editorial"] { --visual-display-font: 'Playfair Display', Georgia, serif; --visual-display-style: normal; }
body[data-typography="modern"] { --visual-display-font: 'Montserrat', sans-serif; --visual-display-style: normal; }
body[data-typography="playful"] { --visual-display-font: 'Poppins', sans-serif; --visual-display-style: normal; }
body[data-typography]:not([data-typography="original"]) { --invitation-display-font: var(--visual-display-font); }
body[data-typography]:not([data-typography="original"]) :is(.intro-cover h1, .intro-letter-title, .intro-envelope-heading h2, .invitation-module-heading, .smart-module blockquote) {
    font-family: var(--visual-display-font) !important;
    font-style: var(--visual-display-style);
    font-weight: 400;
}
body:is([data-typography="modern"], [data-typography="playful"]) :is(.intro-cover h1, .invitation-module-heading) {
    font-weight: 500;
    letter-spacing: -.045em;
}
body:is([data-typography="modern"], [data-typography="playful"]) .intro-cover h1 { font-size: clamp(42px, 6vw, 82px); }

/* Paper stays visible around portrait covers; a full-bleed cover remains a separate option. */
.intro-cover:is(.intro-cover--portrait, .intro-cover--split) {
    display: grid;
    gap: 28px;
    min-height: max(780px, 100svh);
    padding: clamp(40px, 6vw, 76px);
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto 1fr auto;
    align-items: center;
}
.intro-cover:is(.intro-cover--portrait, .intro-cover--split) .intro-cover-top { grid-column: 1 / -1; }
.intro-cover:is(.intro-cover--portrait, .intro-cover--split) .intro-cover-picture {
    position: relative;
    inset: auto;
    z-index: 1;
    grid-column: 1;
    grid-row: 2;
    width: min(100%, 460px);
    height: auto;
    aspect-ratio: 4 / 5;
    justify-self: center;
    overflow: hidden;
    border-radius: 50% 50% 46% 46%;
    box-shadow: 0 28px 64px -42px #30291f60;
}
.intro-cover:is(.intro-cover--portrait, .intro-cover--split) .intro-cover-picture img { z-index: auto; }
.intro-cover--split .intro-cover-picture { border-radius: 200px 200px 12px 12px !important; }
.intro-cover:is(.intro-cover--portrait, .intro-cover--split) .intro-cover-copy { grid-column: 2; grid-row: 2; padding: 24px 0; position: relative; z-index: 1; }
.intro-cover:is(.intro-cover--portrait, .intro-cover--split) h1 { font-size: clamp(52px, 6vw, 96px); }
.intro-cover:is(.intro-cover--portrait, .intro-cover--split) .intro-scroll { grid-column: 1 / -1; justify-self: center; }
.intro-cover:is(.intro-cover--portrait, .intro-cover--split) .intro-cover-shade { display: none; }
.intro-cover:is(.intro-cover--portrait, .intro-cover--split):has(.intro-copy-hidden) .intro-cover-picture { grid-column: 1 / -1; }
.intro-cover--split .intro-cover-copy { text-align: left; }
.intro-cover--split :is(.intro-kicker, h1, .intro-rule, .intro-subtitle) { margin-left: 0; }
.intro-cover--split .intro-rule { width: 72px; }

.intro-cover[data-monogram-style="oval"] .intro-monogram { width: 70px; height: 88px; border-radius: 50%; box-shadow: none; }
.intro-cover[data-monogram-style="minimal"] .intro-monogram { border: 0; box-shadow: none; width: auto; height: auto; min-height: 40px; font-size: 24px; }
.intro-cover[data-monogram-style="crest"] .intro-monogram {
    width: 82px; height: 88px; border-radius: 9px 9px 50% 50%;
    box-shadow: none; background: transparent;
    outline: 1px solid currentColor; outline-offset: 5px;
    font-family: 'Cinzel', Georgia, serif; font-style: normal; font-size: 17px;
}

.smart-module:is([data-surface="open"], [data-surface="band"]) :is(.card-premium, .invitation-mini-card, .invitation-detail-panel, .invitation-countdown-panel) {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none;
}
.smart-module:is([data-surface="open"], [data-surface="band"]) .card-premium::before,
.smart-module:is([data-surface="open"], [data-surface="band"]) .card-premium::after { display: none; }
.smart-module:is([data-surface="open"], [data-surface="band"])[data-module-type="spotify"] .invitation-module-heading,
.smart-module:is([data-surface="open"], [data-surface="band"]) .invitation-countdown-panel {
    color: var(--module-contrast-color, var(--intro-ink));
}
.smart-module:is([data-surface="open"], [data-surface="band"]) .invitation-mini-card {
    border-top: 1px solid var(--module-border) !important;
    border-radius: 0;
}
body[data-invitation-collection] .smart-module[data-surface="band"] {
    max-width: none;
    --section-color: color-mix(in srgb, var(--primary-color) 9%, var(--intro-paper));
}
.smart-module[data-surface="band"] > section {
    background: var(--section-color);
    padding-block: clamp(52px, 8vw, 100px);
    padding-inline: max(clamp(20px, 4vw, 32px), calc((100% - 1120px) / 2));
}
.smart-module[data-surface="band"][data-transition="none"] { margin-block: 32px; }
.smart-module > .invitation-section-transition { position: relative; z-index: 0; }
.invitation-section-transition { height: clamp(36px, 6vw, 72px); pointer-events: none; }
.invitation-section-transition svg { width: 100%; height: 100%; display: block; overflow: visible; fill: var(--section-color, color-mix(in srgb, var(--primary-color) 9%, var(--intro-paper))); }
.smart-module:not([data-surface="band"]) .invitation-section-transition svg { fill: none; stroke: var(--primary-color); stroke-width: 1px; opacity: .26; }
.smart-module:not([data-surface="band"]) .invitation-section-transition path { vector-effect: non-scaling-stroke; }
.invitation-section-transition--fade { background: linear-gradient(var(--section-color, color-mix(in srgb, var(--primary-color) 9%, var(--intro-paper))), transparent); }
.smart-module:not([data-surface="band"]) .invitation-section-transition--fade { opacity: .6; }

/* The album has a large lead photograph followed by quieter, captioned details. */
.smart-module:is([data-presentation="album"], [data-presentation="portraits"]) .invitation-gallery-composition {
    display: grid; columns: auto; grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 3vw, 32px); position: relative;
}
.smart-module:is([data-presentation="album"], [data-presentation="portraits"]) .invitation-photo {
    margin: 0; padding: 0; border: 0; box-shadow: none; background: transparent; border-radius: 12px;
    text-align: left; align-self: start;
}
.smart-module[data-presentation="album"] .invitation-photo:first-child { grid-column: 1 / -1; }
.smart-module[data-presentation="album"] .invitation-gallery-composition[data-image-count="2"] { grid-template-columns: 1fr; }
.smart-module[data-presentation="album"] .invitation-gallery-composition[data-image-count="3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.smart-module[data-presentation="album"] .invitation-photo img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: 12px; }
.smart-module[data-presentation="album"] .invitation-photo:first-child img { aspect-ratio: 16 / 9; }
.smart-module[data-presentation="album"] .invitation-gallery-composition[data-image-count="2"] .invitation-photo img { aspect-ratio: 16 / 9; }
.smart-module[data-presentation="album"] .invitation-photo-image { border-radius: 12px; }
.smart-module[data-presentation="album"][data-photo-frame="arch"] .invitation-photo-image { border-radius: 160px 160px 12px 12px; }
.smart-module[data-presentation="album"][data-photo-frame="oval"] .invitation-photo-image { border-radius: 50%; }
.smart-module[data-presentation="album"][data-photo-frame]:not([data-photo-frame="original"]) .invitation-photo { border-radius: 0; }
.invitation-photo-caption { display: flex; gap: 20px; justify-content: space-between; padding: 16px 2px 4px; font: 10px/1.6 'Montserrat', sans-serif; letter-spacing: .07em; color: var(--module-contrast-color, var(--intro-ink)); }
.invitation-photo-caption > span:first-child { opacity: .5; }
.smart-module[data-presentation="portraits"] .invitation-photo { border-radius: 50%; }
.smart-module[data-presentation="portraits"] .invitation-photo img { aspect-ratio: 3 / 4; object-fit: cover; }
.smart-module[data-presentation="portraits"] .invitation-photo:nth-child(even) { margin-top: 48px; }
.smart-module[data-presentation="portraits"] .invitation-gallery-composition[data-image-count="1"] { grid-template-columns: minmax(0, 420px); justify-content: center; }
.smart-module[data-presentation="portraits"] .invitation-gallery-composition[data-image-count="2"] { grid-template-columns: repeat(2, minmax(0, 380px)); justify-content: center; }
.smart-module[data-photo-frame="arch"] :is(.invitation-photo, .invitation-person-photo),
.smart-module[data-photo-frame="arch"] .invitation-photo img { border-radius: 160px 160px 12px 12px; }
.smart-module[data-photo-frame="oval"] :is(.invitation-photo, .invitation-person-photo),
.smart-module[data-photo-frame="oval"] .invitation-photo img { border-radius: 50%; }
.smart-module[data-photo-frame="clean"] :is(.invitation-photo, .invitation-person-photo),
.smart-module[data-photo-frame="clean"] .invitation-photo img { border-radius: 12px; border: 0; box-shadow: none; transform: none; }
.smart-module[data-photo-frame]:not([data-photo-frame="original"]) .invitation-person-photo { height: 160px; }

.collection-ornament-image { aspect-ratio: 1; background-size: contain; background-repeat: no-repeat; }
.collection-ornament:is(.collection-ornament--floral, .collection-ornament--orbits) .collection-ornament-leaf { width: clamp(160px, 26vw, 340px); opacity: .28; }
.collection-ornament--floral .collection-ornament-leaf--first { top: 20%; left: -60px; transform: rotate(-12deg); }
.collection-ornament--floral .collection-ornament-leaf--last { bottom: 0; right: -60px; transform: rotate(168deg); }
.collection-ornament--orbits .collection-ornament-leaf--first { top: 0; left: -40px; transform: none; }
.collection-ornament--orbits .collection-ornament-leaf--last { bottom: 4%; right: -40px; transform: rotate(130deg); }
.smart-module[data-ornament]:not([data-ornament="none"]) > section > :not(script):not(.absolute) { position: relative; z-index: 1; }
.smart-module[data-surface="band"] > .collection-ornament { z-index: 1; }
.smart-module[data-surface="band"] > section > :not(script):not(.absolute) { position: relative; z-index: 2; }
.smart-module[data-ornament="floral"] .invitation-gallery-composition { padding-inline: clamp(0px, 4vw, 40px); }

body[data-visual-motion="soft"] [data-aos="fade-up"] { transform: translateY(18px); }
body[data-visual-motion="soft"] [data-aos="fade-up"].aos-animate { transform: none; }
body[data-visual-motion="still"] :is(.intro-cover *, .intro-envelope-stage *, .smart-module *) { animation: none !important; transition: none !important; }
body[data-visual-motion="still"] :is(.invitation-gallery-composition img, .invitation-person-photo) { transform: none !important; }
body[data-visual-motion="still"] [data-aos] { opacity: 1 !important; transform: none !important; }
body[data-visual-motion="still"] .collection-ornament-leaf { translate: none; }
[data-aos]:not(.aos-init) { opacity: 1 !important; transform: none !important; }

@media (max-width: 700px) {
    .intro-cover:is(.intro-cover--portrait, .intro-cover--split) { grid-template-columns: 1fr; grid-template-rows: auto auto auto auto; gap: 24px; padding: 38px 28px 24px; }
    .intro-cover:is(.intro-cover--portrait, .intro-cover--split) .intro-cover-picture { grid-column: 1; grid-row: 2; width: min(64vw, 300px); aspect-ratio: 4 / 5; }
    .intro-cover:is(.intro-cover--portrait, .intro-cover--split) .intro-cover-copy { grid-column: 1; grid-row: 3; text-align: center; padding: 0; }
    .intro-cover:is(.intro-cover--portrait, .intro-cover--split) h1 { font-size: clamp(42px, 11vw, 64px); margin-block: 18px; }
    .intro-cover--split :is(.intro-kicker, h1, .intro-rule, .intro-subtitle) { margin-inline: auto; }
    .smart-module[data-presentation="album"] .invitation-gallery-composition { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .smart-module[data-presentation="album"] .invitation-photo:first-child img { aspect-ratio: 4 / 3; }
    .smart-module[data-presentation="portraits"] .invitation-gallery-composition { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .smart-module[data-presentation="portraits"] .invitation-photo:nth-child(even) { margin-top: 24px; }
    .smart-module[data-ornament="floral"] .invitation-gallery-composition { padding-inline: 0; }
    .collection-ornament:is(.collection-ornament--floral, .collection-ornament--orbits) .collection-ornament-leaf { width: 170px; opacity: .17; }
}
@media (prefers-reduced-motion: reduce) {
    [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }
    .intro-cover *, .smart-module *, .collection-ornament-leaf { animation: none !important; transition: none !important; translate: none !important; }
}
