/* Original Higgsfield artwork + editable invitation typography, collection 2027. */
@font-face{font-family:InvitationBodoni;src:url('fonts-2027/bodoni.woff2') format('woff2');font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:InvitationBodoni;src:url('fonts-2027/bodoni-italic.woff2') format('woff2');font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:InvitationManrope;src:url('fonts-2027/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:InvitationFraunces;src:url('fonts-2027/fraunces.woff2?v=2027-2') format('woff2');font-weight:100 900;font-display:swap}
.edition-2027,.collection-2027{--inv-display:InvitationBodoni,Georgia,serif;--inv-ui:InvitationManrope,Arial,sans-serif;--display-weight:450;--display-style:normal;--title-tracking:-.04em;--cover-align:center;--cover-justify:center;--art-rotate:0deg}
.edition-2027{background:var(--paper);font-family:var(--inv-ui)}
.edition-2027:after{opacity:.1}
.edition-2027 .generated-art{z-index:0;color:inherit;filter:hue-rotate(var(--art-rotate));transition:filter 400ms}
.generated-art img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;pointer-events:none}
.edition-2027 .inv-composition{inset:25% 11% 17%;z-index:1;align-items:var(--cover-justify);text-align:var(--cover-align);justify-content:center}
.edition-2027 .inv-overline{font-family:var(--inv-ui);font-size:2.55cqw;letter-spacing:.34cqw;font-weight:650;line-height:1.6;max-width:95%;color:var(--ink)}
.edition-2027 .inv-names{font-family:var(--inv-display);font-size:calc(15.5cqw * var(--name-scale,1));font-weight:var(--display-weight);font-style:var(--display-style);letter-spacing:var(--title-tracking);line-height:1.08;margin:6cqw 0 0;text-transform:none;text-shadow:none;max-width:100%;overflow-wrap:anywhere}
.edition-2027 .inv-person{display:block}
.edition-2027 .inv-conjunction{display:block;font-family:InvitationBodoni,Georgia,serif;font-size:.42em;font-style:italic;font-weight:450;line-height:1.5;letter-spacing:0;margin:.06em 0}
.edition-2027 .inv-divider{display:block;width:10cqw;height:1px;min-height:1px;overflow:hidden;background:var(--accent);font-size:0;line-height:0;margin:5cqw 0 3cqw;opacity:.7}
.edition-2027 .inv-date{font-family:var(--inv-ui);font-size:3.1cqw;font-weight:650;line-height:1.5;letter-spacing:.45cqw;color:var(--ink);margin:0}
.edition-2027 .inv-small{font:450 3.4cqw/1.5 var(--inv-display);margin-top:4cqw;max-width:85%;text-wrap:pretty;color:var(--ink)}
.edition-2027.family-classic,.collection-2027.family-classic{--display-style:italic;--display-weight:450}
.edition-2027.family-botanical,.collection-2027.family-botanical{--display-weight:500;--cover-align:left;--cover-justify:flex-start;--art-rotate:calc(var(--palette-hue,93deg) - 93deg)}
.edition-2027.family-botanical .inv-composition{left:12%;right:16%;inset-block:26% 18%}
.edition-2027.family-botanical .inv-names{font-size:calc(16.5cqw * var(--name-scale,1));line-height:1.05}
.edition-2027.family-floral,.collection-2027.family-floral{--display-style:italic;--display-weight:500;--art-rotate:calc(var(--palette-hue,355deg) - 355deg)}
.edition-2027.family-floral .inv-composition{inset:30% 12% 18%}
.edition-2027.family-floral .inv-names{font-size:calc(17cqw * var(--name-scale,1))}
.edition-2027.family-mediterranean,.collection-2027.family-mediterranean{--inv-display:InvitationFraunces,Georgia,serif;--display-weight:550;--title-tracking:-.065em}
.edition-2027.family-mediterranean .inv-date{padding:2.5cqw 4cqw;border:1px solid var(--accent);border-radius:100px}
.edition-2027.family-deco,.collection-2027.family-deco{--inv-display:InvitationManrope,Arial,sans-serif;--display-weight:350;--title-tracking:.01em}
.edition-2027.family-deco .inv-names{font-size:calc(11cqw * var(--name-scale,1));text-transform:uppercase;line-height:1.22}
.edition-2027.family-deco .inv-overline{letter-spacing:.5cqw;font-weight:450}
.edition-2027.family-editorial,.collection-2027.family-editorial{--display-weight:650;--cover-align:left;--cover-justify:flex-start;--title-tracking:-.065em}
.edition-2027.family-editorial .inv-composition{inset:25% 10% 20%}
.edition-2027.family-editorial .inv-names{font-size:calc(17.5cqw * var(--name-scale,1));line-height:.98}
.edition-2027.family-editorial .inv-conjunction{display:inline;font-size:.58em;line-height:1.45;color:var(--accent)}
.edition-2027.family-editorial .inv-divider{display:block}
.edition-2027.family-clouds,.collection-2027.family-clouds{--inv-display:InvitationFraunces,Georgia,serif;--display-weight:450;--title-tracking:-.055em;--art-rotate:calc(var(--palette-hue,208deg) - 208deg)}
.edition-2027.family-clouds .inv-names{font-size:calc(22cqw * var(--name-scale,1))}
.edition-2027.family-dinosaur,.collection-2027.family-dinosaur{--inv-display:InvitationFraunces,Georgia,serif;--display-weight:650;--title-tracking:-.06em}
.edition-2027.family-dinosaur .inv-names{font-size:calc(22cqw * var(--name-scale,1));font-style:normal}
.edition-2027.family-teddy,.collection-2027.family-teddy{--inv-display:InvitationFraunces,Georgia,serif;--display-weight:400;--title-tracking:-.06em}
.edition-2027.family-teddy .inv-composition{inset:24% 12% 20%}
.edition-2027.family-teddy .inv-names{font-size:calc(22cqw * var(--name-scale,1))}
.edition-2027.family-teddy .inv-small,.edition-2027.family-dinosaur .inv-small{display:block}
.edition-2027.family-sunset,.collection-2027.family-sunset{--display-style:italic;--display-weight:500;--cover-align:left;--cover-justify:flex-start}
.edition-2027.family-sunset .inv-composition{inset:24% 12% 20%}
.edition-2027.family-sunset .inv-names{font-size:calc(17cqw * var(--name-scale,1))}
.edition-2027.family-neon,.collection-2027.family-neon{--inv-display:InvitationManrope,Arial,sans-serif;--display-weight:800;--title-tracking:-.065em;--cover-align:left;--cover-justify:flex-start;--art-rotate:calc(var(--palette-hue,265deg) - 265deg)}
.edition-2027.family-neon .inv-composition{inset:29% 10% 19%}
.edition-2027.family-neon .inv-names{font-size:calc(12cqw * var(--name-scale,1));text-transform:uppercase;line-height:.98;text-shadow:none}
.edition-2027.family-neon .inv-small{display:block;font-family:var(--inv-ui);font-size:2.8cqw;font-weight:450}
.edition-2027.family-neon .inv-date{letter-spacing:.1cqw}
.edition-2027.family-corporate,.collection-2027.family-corporate{--inv-display:InvitationManrope,Arial,sans-serif;--display-weight:550;--title-tracking:-.065em;--cover-align:left;--cover-justify:flex-start}
.edition-2027.family-corporate .inv-composition{inset:27% 12% 19%}
.edition-2027.family-corporate .inv-names{font-size:calc(12cqw * var(--name-scale,1));line-height:1.08}
.edition-2027.family-corporate .inv-small{font-family:var(--inv-ui);font-size:2.7cqw;font-weight:350}
.edition-2027.family-corporate[data-palette-name=silver] .generated-art{filter:grayscale(1)}
/* Public covers keep enough room for large names and real, longer text. */
.invitation-hero>.edition-2027{aspect-ratio:9/16;min-height:700px;max-height:none}
.invitation-hero .edition-2027 .inv-composition{position:relative;inset:auto;min-height:max(700px,176.8cqw);padding:46cqw 12% 44cqw;align-items:var(--cover-justify);text-align:var(--cover-align)}
.invitation-hero .edition-2027 .inv-overline{font-size:clamp(13px,2.5cqw,18px);line-height:1.7;letter-spacing:2px;max-width:95%;font-weight:650}
.invitation-hero .edition-2027 .inv-names{font-size:clamp(48px,calc(15.5cqw * var(--name-scale,1)),112px);line-height:1.08;margin:26px 0 0;letter-spacing:var(--title-tracking);font-weight:var(--display-weight);font-style:var(--display-style)}
.invitation-hero .edition-2027 .inv-conjunction{font-size:.43em;line-height:1.45;margin:0}
.invitation-hero .edition-2027 .inv-divider{width:42px;height:1px;min-height:1px;line-height:0;margin:26px 0 20px}
.invitation-hero .edition-2027 .inv-date{font-size:clamp(16px,3.2cqw,23px);letter-spacing:2px;line-height:1.5}
.invitation-hero .edition-2027 .inv-small{font:450 clamp(18px,4cqw,25px)/1.55 var(--inv-display);max-width:90%;margin-top:20px}
.invitation-hero .edition-2027.family-editorial .inv-names{font-size:clamp(48px,calc(17cqw * var(--name-scale,1)),124px);line-height:.98}
.invitation-hero .edition-2027.family-editorial .inv-conjunction{display:block;font-size:.52em;margin:6px 0}
.invitation-hero .edition-2027.family-deco .inv-names{font-size:clamp(38px,calc(11cqw * var(--name-scale,1)),84px);font-style:normal;letter-spacing:.015em;line-height:1.2}
.invitation-hero .edition-2027.family-clouds .inv-names,.invitation-hero .edition-2027.family-dinosaur .inv-names,.invitation-hero .edition-2027.family-teddy .inv-names{font-size:clamp(60px,calc(22cqw * var(--name-scale,1)),150px)}
.invitation-hero .edition-2027.family-neon .inv-names{font-size:clamp(37px,calc(12cqw * var(--name-scale,1)),88px);line-height:1.02;letter-spacing:-.065em;font-style:normal}
.invitation-hero .edition-2027.family-corporate .inv-names{font-size:clamp(40px,calc(12cqw * var(--name-scale,1)),90px);line-height:1.08;font-style:normal}
.invitation-hero .edition-2027.family-neon .inv-small,.invitation-hero .edition-2027.family-corporate .inv-small{font:450 clamp(16px,3.6cqw,22px)/1.7 var(--inv-ui)}
.collection-2027{font-family:var(--inv-ui);font-size:18px;background:var(--paper);color:var(--ink)}
.collection-2027 .inv-section{padding:72px 48px}
.collection-2027 .inv-section h2{font-family:var(--inv-display);font-weight:var(--display-weight);font-style:var(--display-style);font-size:clamp(42px,6vw,58px);letter-spacing:-.04em;line-height:1.14;margin:24px auto}
.collection-2027 .inv-section>p{font-family:var(--inv-ui);font-size:18px;line-height:1.85;font-weight:450}
.collection-2027 .inv-section-label{font-family:var(--inv-ui);font-size:12px;font-weight:650;letter-spacing:1.7px;line-height:1.8;color:var(--ink);opacity:.8}
.collection-2027 .inv-story:before{display:none}
.collection-2027 .inv-section:after{content:'';width:40px;height:1px;background:var(--accent);opacity:.5;margin:48px auto 0}
.collection-2027 .family-names{margin-top:40px;gap:28px}
.collection-2027 .family-names span{color:var(--ink);opacity:.75;font:600 12px/1.8 var(--inv-ui);letter-spacing:1.4px}
.collection-2027 .family-names p{font:450 30px/1.3 var(--inv-display);letter-spacing:-.03em;margin:12px 0}
.collection-2027 .countdown{gap:28px}
.collection-2027 .countdown strong{font-family:var(--inv-display);font-weight:450;font-size:56px;letter-spacing:-.04em}
.collection-2027 .countdown span{font:650 11px/1.7 var(--inv-ui);color:var(--ink);opacity:.75}
.collection-2027 .venue-grid{gap:18px}
.collection-2027 .venue-grid article{border-radius:16px;padding:32px 24px;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);background:color-mix(in srgb,var(--paper) 92%,#fff)}
.collection-2027 .venue-grid h3{font:500 34px/1.2 var(--inv-display);letter-spacing:-.035em}
.collection-2027 .venue-grid p{font:450 16px/1.8 var(--inv-ui)}
.collection-2027 .venue-grid .time{font:650 18px/1.6 var(--inv-ui);letter-spacing:1px}
.collection-2027 .venue-grid a{font-family:var(--inv-ui);font-size:14px;min-height:44px;text-decoration-thickness:1px}
.collection-2027 .inv-button{font:650 15px/1.5 var(--inv-ui);padding:15px 25px;min-height:52px;border-radius:100px;transition:filter 180ms,transform 180ms}
.collection-2027 .inv-button:hover{filter:brightness(1.06);transform:translateY(-1px)}
.collection-2027 .rsvp-section label,.collection-2027 .rsvp-section legend{font:550 15px/1.7 var(--inv-ui)}
.collection-2027 .rsvp-section input,.collection-2027 .rsvp-section select,.collection-2027 .rsvp-section textarea{font:450 17px/1.5 var(--inv-ui);border-radius:10px;border-color:color-mix(in srgb,var(--ink) 28%,transparent);min-height:50px}
.collection-2027 .rsvp-section .checkbox{font:450 13px/1.8 var(--inv-ui)}
.collection-2027 .rsvp-section input[type=checkbox],.collection-2027 .rsvp-section input[type=radio]{min-height:20px}
.collection-2027 .demo-rsvp-note,.collection-2027 .form-feedback{font:450 14px/1.8 var(--inv-ui)}
.collection-2027 .event-photo{border-radius:18px;max-width:100%;max-height:560px}
.collection-2027 .story-timeline h3{font:500 34px/1.2 var(--inv-display);letter-spacing:-.035em}
.collection-2027 .story-timeline p{font:450 17px/1.85 var(--inv-ui)}
.collection-2027 .story-timeline small{font:650 12px/1.7 var(--inv-ui);letter-spacing:1px}
.collection-2027 .person-menu-title{font-family:var(--inv-display);font-weight:500;font-size:31px}
.collection-2027 .invitation-closing p{font:450 36px/1.35 var(--inv-display);letter-spacing:-.03em}
.collection-2027 .invitation-closing small{font:450 12px/1.8 var(--inv-ui)}
.collection-2027 .invitation-closing:after{display:none}
.collection-2027 .opening-screen h1{font-family:var(--inv-display);font-weight:var(--display-weight);font-style:var(--display-style);letter-spacing:-.04em;max-width:100%;overflow-wrap:anywhere}
.collection-2027 .envelope-letter{font-family:var(--inv-display);letter-spacing:-.03em}
.collection-2027 .opening-overline{font-family:var(--inv-ui);font-weight:650}
.collection-2027 .opening-screen>p{font-family:var(--inv-ui);font-size:17px}
.collection-2027 .opening-hint{font-family:var(--inv-display)}
.collection-2027.family-botanical .inv-story,.collection-2027.family-editorial .inv-story,.collection-2027.family-sunset .inv-story{text-align:left}
.collection-2027.family-botanical .inv-story>p,.collection-2027.family-editorial .inv-story>p,.collection-2027.family-sunset .inv-story>p{margin-left:0;margin-right:0}
.collection-2027.family-editorial .inv-story>p{font-family:var(--inv-display);font-size:24px;line-height:1.55}
.collection-2027.family-mediterranean .venue-grid article{border-radius:28px;border-style:dashed;border-color:color-mix(in srgb,var(--accent) 65%,transparent)}
.collection-2027.family-deco .venue-grid article,.collection-2027.family-corporate .venue-grid article{border-radius:0;background:transparent}
.collection-2027.family-deco .inv-section h2,.collection-2027.family-corporate .inv-section h2{font-weight:450;font-style:normal;line-height:1.2}
.collection-2027.family-neon .inv-section h2{font:750 clamp(35px,6vw,52px)/1.08 var(--inv-display);letter-spacing:-.055em;text-transform:uppercase}
.collection-2027.family-neon .venue-grid article{border-radius:4px;background:color-mix(in srgb,var(--accent) 7%,var(--paper))}
.collection-2027.family-neon .inv-button,.collection-2027.family-corporate .inv-button{border-radius:8px}
.collection-2027.family-clouds .venue-grid article,.collection-2027.family-teddy .venue-grid article{border-radius:80px 80px 20px 20px}
.collection-2027.family-dinosaur .venue-grid article{border-radius:28px}
.collection-2027.family-floral .family-names p{font-style:italic}
.collection-2027.family-sunset .countdown-section{background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 12%,var(--paper)),var(--paper))}
@media(max-width:600px){.collection-2027 .inv-section{padding:55px 25px}.collection-2027 .inv-section>p{font-size:17px}.collection-2027 .countdown{gap:18px}.collection-2027 .countdown strong{font-size:43px}.collection-2027 .countdown span{font-size:10px;letter-spacing:.5px}.collection-2027 .family-names{grid-template-columns:1fr}.collection-2027 .family-names p{font-size:31px}.collection-2027 .inv-section h2{font-size:43px}.collection-2027 .inv-section-label{font-size:11px;letter-spacing:1.35px}.collection-2027.family-neon .inv-section h2{font-size:35px}}
@media(prefers-reduced-motion:reduce){.collection-2027 .inv-button:hover{transform:none}}
/* Keep the floral overline legible where a translucent petal reaches inward. */
.edition-2027.family-floral .inv-overline{background:color-mix(in srgb,var(--paper) 94%,transparent);padding:.7cqw 1.3cqw;border-radius:8px}
.collection-2027 .scroll-cue{background:var(--paper);border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);border-radius:100px;padding:8px 16px;min-width:154px;font:550 12px/1.5 var(--inv-ui);letter-spacing:.3px}
.collection-2027 .scroll-cue span{font-size:17px;margin-top:2px;line-height:1.1}
/* Compact catalog covers: names and date stay prominent at thumbnail size. */
.card-preview>.edition-2027{aspect-ratio:3/4}
.edition-2027:not(.full-design) .inv-small{display:none}
.edition-2027.family-floral:not(.full-design) .inv-composition{inset:26% 11% 14%}
.edition-2027.family-floral:not(.full-design) .inv-names{font-size:calc(15cqw * var(--name-scale,1))}
.edition-2027.family-editorial:not(.full-design) .inv-composition{inset:24% 10% 16%}
.edition-2027.family-editorial:not(.full-design) .inv-names{font-size:calc(16cqw * var(--name-scale,1))}
.edition-2027.family-botanical .inv-overline{max-width:72%;text-align:left;align-self:flex-start}
.collection-2027 .inv-section-label,.collection-2027 .family-names span,.collection-2027 .countdown span,.collection-2027 .invitation-closing small,.collection-2027 .rsvp-section label>span,.collection-2027 .demo-rsvp-note{opacity:1}

.generated-art.art-loading:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#ffffff28 48%,transparent 72%);background-size:220% 100%;animation:art-placeholder 1.8s ease-in-out infinite}
@keyframes art-placeholder{from{background-position:180% 0}to{background-position:-80% 0}}
@media(prefers-reduced-motion:reduce){.generated-art.art-loading:after{animation:none}}
