/* Wedding website — one stationery look per theme, light only by design */
.wps {
	--paper: #fbf8f2; --paper2: #f3ede1; --ink: #2b2620; --soft: #6f665a; --accent: #a8833f; --accent-ink: #fff; --line: #e3d9c6;
	--display: "Cormorant Garamond", Georgia, serif; --body: "Karla", system-ui, sans-serif; --script: "Pinyon Script", "Brush Script MT", cursive;
	color-scheme: light;
}
.wps.theme-mauve { --paper: #faf6f6; --paper2: #f0e5e6; --ink: #3a2a2e; --soft: #7a6468; --accent: #94626c; --line: #e6d4d6; }
.wps.theme-sage { --paper: #f7f8f3; --paper2: #e8ece0; --ink: #24301f; --soft: #5f6b58; --accent: #6b7f55; --line: #d8dfcc; }
.wps.theme-burgundy { --paper: #fbf7f4; --paper2: #f1e6e1; --ink: #2e1a1d; --soft: #735b5e; --accent: #7d2635; --line: #e7d5d0; }
.wps.theme-navy { --paper: #f6f7fa; --paper2: #e5e9f1; --ink: #1b2236; --soft: #5b6378; --accent: #b08a3e; --line: #d6dce8; }

.wps, .wps * { box-sizing: border-box; }
html:has(.wps) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:has(.wps) { scroll-behavior: auto; } }
body.wps { margin: 0; background: var(--paper); color: var(--ink); font: 400 17px/1.65 var(--body); -webkit-font-smoothing: antialiased; }
.wps img { max-width: 100%; display: block; }
.wps a { color: inherit; }
.wps :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

.wps-nav { position: sticky; top: 0; z-index: 5; display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 22px;
	padding: calc(10px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) 10px max(16px, env(safe-area-inset-left, 0px));
	background: color-mix(in srgb, var(--paper) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line);
	font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.wps-nav a { text-decoration: none; color: var(--soft); padding: 4px 0; }
.wps-nav a:hover { color: var(--ink); }
.wps-nav .wps-nav-cta { color: var(--accent); font-weight: 700; }

.wps-eyebrow { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); margin: 0 0 8px; font-weight: 700; }

.wps-hero { position: relative; text-align: center; padding: 72px max(16px, env(safe-area-inset-right, 0px)) 80px max(16px, env(safe-area-inset-left, 0px));
	background: radial-gradient(ellipse at top, var(--paper2), var(--paper) 70%); border-bottom: 1px solid var(--line); }
.wps-hero.has-photo { color: #fff; background: linear-gradient(rgb(20 16 12 / .45), rgb(20 16 12 / .55)), var(--hero) center/cover no-repeat; min-height: 78vh; display: grid; place-items: center; }
.wps-hero.has-photo .wps-eyebrow, .wps-hero.has-photo .wps-place { color: #f4e7c9; }
.wps-hero-inner { max-width: 760px; margin: 0 auto; }
.wps-hero h1 { font-family: var(--display); font-weight: 500; font-size: clamp(52px, 11vw, 112px); line-height: .95; margin: 8px 0 20px; display: flex; flex-direction: column; align-items: center; text-wrap: balance; }
.wps-hero h1 em { font-family: var(--script); font-style: normal; color: var(--accent); font-size: .6em; line-height: 1.1; }
.wps-hero.has-photo h1 em { color: #f4e7c9; }
.wps-date { font-family: var(--display); font-size: clamp(22px, 3.4vw, 28px); margin: 0; }
.wps-place { margin: 4px 0 0; color: var(--soft); letter-spacing: .06em; }
.wps-hashtag { margin: 18px 0 0; font-size: 14px; letter-spacing: .08em; opacity: .85; }
.wps-count { display: flex; justify-content: center; gap: 28px; margin: 30px 0; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; }
.wps-count span { display: grid; gap: 2px; }
.wps-count b { font-family: var(--display); font-size: 40px; font-weight: 500; letter-spacing: 0; line-height: 1; font-variant-numeric: tabular-nums; }

.wps-btn { display: inline-block; background: var(--accent); color: var(--accent-ink) !important; border: 0; border-radius: 999px; padding: 14px 30px;
	font: 700 14px/1 var(--body); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: filter .15s; }
.wps-btn:hover { filter: brightness(1.08); }
.wps-btn:disabled { opacity: .6; cursor: wait; }

.wps-sec { max-width: 1040px; margin: 0 auto; padding: 72px max(16px, env(safe-area-inset-right, 0px)) 72px max(16px, env(safe-area-inset-left, 0px)); }
.wps-sec + .wps-sec { border-top: 1px solid var(--line); }
.wps-narrow { max-width: 680px; }
.wps-sec h2 { font-family: var(--display); font-weight: 500; font-size: clamp(36px, 6vw, 52px); text-align: center; margin: 0 0 32px; line-height: 1.05; }
.wps-sec h2::after { content: ""; display: block; width: 46px; height: 1px; background: var(--accent); margin: 18px auto 0; }
#story p { font-family: var(--display); font-size: 22px; line-height: 1.55; text-align: center; margin: 0 0 18px; }

.wps-venues { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 28px; }
.wps-venue { background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: 26px; text-align: center; min-width: 0; }
.wps-venue h3 { font-family: var(--display); font-weight: 600; font-size: 28px; margin: 0 0 4px; }
.wps-venue p { margin: 0; color: var(--soft); }
.wps-venue iframe { width: 100%; height: 220px; border: 0; margin: 18px 0 12px; border-radius: 3px; filter: saturate(.7); }
.wps-link { font-size: 14px; color: var(--accent) !important; font-weight: 700; }
.wps-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 28px; margin-top: 40px; text-align: center; }
.wps-facts p:last-child { margin: 0; }

.wps-schedule { list-style: none; margin: 0; padding: 0; }
.wps-schedule li { display: grid; grid-template-columns: 110px 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px dashed var(--line); }
.wps-schedule time { font-family: var(--display); font-size: 22px; color: var(--accent); text-align: right; font-variant-numeric: tabular-nums; }
.wps-schedule strong { display: block; font-weight: 500; font-size: 18px; }
.wps-schedule span { color: var(--soft); font-size: 15px; }

.wps-entourage { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 30px 24px; text-align: center; }
.wps-entourage p { margin: 0 0 2px; }

.wps-gallery { columns: 3 220px; column-gap: 14px; }
.wps-gallery figure { margin: 0 0 14px; break-inside: avoid; }
.wps-gallery figcaption { font-size: 13px; color: var(--soft); padding-top: 6px; }

.wps-rsvp { text-align: left; }
.wps-lede { text-align: center; color: var(--soft); margin: -12px 0 28px; }
#wps-form { display: grid; gap: 20px; background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: clamp(20px, 5vw, 36px); }
.wps-yes { display: grid; gap: 20px; }
.wps-field { display: grid; gap: 6px; }
.wps-field label, .wps-choice legend { font-weight: 700; font-size: 14px; }
.wps-field label span { font-weight: 400; color: var(--soft); }
.wps input:not([type=radio]), .wps select, .wps textarea { font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 3px; padding: 12px 14px; width: 100%; }
.wps-choice { border: 0; padding: 0; margin: 0; display: grid; gap: 10px; }
.wps-choice legend { margin-bottom: 10px; }
.wps-choice label { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 3px; padding: 12px 14px; cursor: pointer; }
.wps-choice label:has(input:checked) { border-color: var(--accent); background: var(--paper2); }
.wps-choice input { accent-color: var(--accent); width: 18px; height: 18px; }
.wps-hello { margin: 0; padding: 12px 14px; background: var(--paper2); border-radius: 3px; }
.wps-error { margin: 0; color: #a3322c; font-weight: 500; }
#wps-form .wps-btn { justify-self: start; }
.wps-thanks { text-align: center; background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: 40px 24px; }
.wps-thanks p { margin: 0; }
.wps-script { font-family: var(--script); font-size: 46px; color: var(--accent); line-height: 1.2; }

.wps-foot { text-align: center; padding: 48px 16px calc(56px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); color: var(--soft); }
.wps-foot p { margin: 0; }

@media (max-width: 560px) {
	.wps-schedule li { grid-template-columns: 1fr; gap: 2px; }
	.wps-schedule time { text-align: left; font-size: 19px; }
	.wps-count { gap: 18px; }
}

/* ---------- Save the Date ---------- */
.wps-std-page { min-height: 100vh; display: grid; place-items: center; background: radial-gradient(ellipse at center, var(--paper2), var(--paper) 75%); overflow-x: hidden; }
.wps-std { display: grid; justify-items: center; gap: 28px; padding: 40px 16px; }
.wps-std-hint { margin: 0; }
.wps-env { position: relative; width: min(88vw, 440px); aspect-ratio: 1.45; margin-top: 210px; cursor: pointer; perspective: 1200px; }
.wps-env-back, .wps-env-front, .wps-env-flap { position: absolute; inset: 0; }
.wps-env-back { background: color-mix(in srgb, var(--accent) 22%, var(--paper2)); border-radius: 6px; }
.wps-env-front { z-index: 3; border-radius: 6px; pointer-events: none;
	background: linear-gradient(to top right, color-mix(in srgb, var(--accent) 14%, var(--paper2)) 50%, transparent 50.3%) left / 50.2% 100% no-repeat,
		linear-gradient(to top left, color-mix(in srgb, var(--accent) 14%, var(--paper2)) 50%, transparent 50.3%) right / 50.2% 100% no-repeat;
	box-shadow: 0 30px 50px -25px rgb(0 0 0 / .35); }
.wps-env-flap { z-index: 4; height: 58%; transform-origin: top; transition: transform .7s ease, z-index 0s .35s;
	background: color-mix(in srgb, var(--accent) 30%, var(--paper2)); clip-path: polygon(0 0, 100% 0, 50% 100%); }
.wps-card { position: absolute; z-index: 2; left: 5%; right: 5%; top: 6%; height: 88%; background: #fff; border: 1px solid var(--line);
	border-radius: 3px; display: grid; align-content: center; justify-items: center; text-align: center; padding: 18px;
	transition: transform .9s cubic-bezier(.2,.8,.2,1) .55s, height .9s ease .55s, z-index 0s 1.2s; }
.wps-card p { margin: 0; }
.wps-card .wps-script { font-size: clamp(34px, 9vw, 46px); line-height: 1.05; }
.wps-amp { font-family: var(--display); font-style: italic; color: var(--soft); }
.wps-std-date { font-family: var(--display); font-size: 22px; margin-top: 12px !important; }
.wps-std-place { color: var(--soft); font-size: 14px; }
.wps-std-note { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--soft); margin-top: 12px !important; }
.wps-seal { position: absolute; z-index: 5; left: 50%; top: 58%; transform: translate(-50%, -50%); width: 74px; height: 74px; border-radius: 50%; border: 0; cursor: pointer;
	background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--accent) 65%, #fff), var(--accent) 60%, color-mix(in srgb, var(--accent) 70%, #000));
	box-shadow: 0 4px 10px rgb(0 0 0 / .3), inset 0 0 0 5px rgb(255 255 255 / .12); color: #fff; font: 600 24px var(--display); transition: transform .4s, opacity .4s; }
.wps-seal span { display: block; letter-spacing: .04em; }
.wps-env.open .wps-seal { transform: translate(-50%, -50%) scale(.4); opacity: 0; pointer-events: none; }
.wps-env.open .wps-env-flap { transform: rotateX(180deg); z-index: 1; }
.wps-env.open .wps-card { transform: translateY(-52%); height: 140%; z-index: 6; box-shadow: 0 20px 40px -20px rgb(0 0 0 / .3); }
.wps-env.open { cursor: default; }
@media (prefers-reduced-motion: reduce) { .wps-env-flap, .wps-card, .wps-seal { transition: none; } }

/* ---------- Find your seat ---------- */
.wps-seat-page { background: radial-gradient(ellipse at top, var(--paper2), var(--paper) 60%) fixed; min-height: 100vh; }
.wps-seat { max-width: 760px; margin: 0 auto; padding: calc(40px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) calc(40px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); display: grid; gap: 28px; }
.wps-seat-head { text-align: center; }
.wps-seat-head .wps-script { font-size: clamp(34px, 8vw, 48px); margin: 0; }
.wps-seat-head h1 { font-family: var(--display); font-weight: 500; font-size: clamp(40px, 9vw, 60px); line-height: 1; margin: 6px 0 8px; }
.wps-seat-date { color: var(--soft); margin: 0; }
.wps-seat-search { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 3; display: grid; gap: 8px; padding: 12px 0; background: var(--paper); }
.wps-seat-search label { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; color: var(--accent); text-align: center; }
.wps-seat-search input { font-size: 20px !important; padding: 16px 18px !important; border-radius: 999px !important; text-align: center; border: 1.5px solid var(--accent) !important; background: #fff !important; }
.wps-seat-results { display: grid; gap: 14px; }
.wps-seat-hit { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--accent); border-radius: 6px; padding: 22px 20px; text-align: center; }
.wps-seat-hit p { margin: 0; }
.wps-seat-label { color: var(--soft); margin-top: 6px !important; }
.wps-seat-table-name { font-family: var(--display); font-weight: 600; font-size: clamp(44px, 12vw, 64px); line-height: 1.05; color: var(--ink); }
.wps-seat-mates { margin-top: 12px !important; font-size: 14px; color: var(--soft); }
.wps-seat-mates span { font-weight: 700; color: var(--ink); }
.wps-seat-none { background: #fff; border: 1px dashed var(--line); border-radius: 6px; padding: 20px; text-align: center; }
.wps-seat-none p { margin: 6px 0 0; color: var(--soft); }
.wps-seat-all h2 { font-family: var(--display); font-weight: 500; font-size: 34px; text-align: center; margin: 12px 0 18px; }
.wps-seat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 12px; }
.wps-seat-table { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; min-width: 0; }
.wps-seat-table h3 { font-family: var(--display); font-size: 22px; font-weight: 600; margin: 0 0 6px; color: var(--accent); }
.wps-seat-table ul { list-style: none; margin: 0; padding: 0; font-size: 15px; }
.wps-seat-table li { padding: 3px 0; border-bottom: 1px dotted var(--line); overflow-wrap: anywhere; }
.wps-seat-table li:last-child { border-bottom: 0; }
.wps-seat-table li span { color: var(--soft); font-size: 13px; }
.wps-seat-empty { text-align: center; color: var(--soft); }
.wps-seat-foot { text-align: center; font-size: 14px; }
.wps-seat-foot a { color: var(--soft); }

/* =========================================================
   Minimal split layout (homepage)
   ========================================================= */
.wps.theme-pink { --paper: #fcf6f5; --paper2: #f1dbd8; --ink: #4b3538; --soft: #8a6e71; --accent: #c08589; --line: #ebd6d3; }
.wps.theme-cream { --paper: #fffef9; --paper2: #fbf5e7; --ink: #2f2b26; --soft: #6e675d; --accent: #2f2b26; --line: #e4ddcc; }
.wpm { --sans: "Jost", "Futura", "Century Gothic", system-ui, sans-serif; --script: "Pinyon Script", "Snell Roundhand", "Brush Script MT", cursive; font: 300 17px/1.7 var(--sans); background: var(--paper); color: var(--ink); }
.wpm a { color: inherit; }
.wpm-script { font-family: var(--script); font-weight: 400; color: var(--ink); line-height: 1.1; letter-spacing: -.01em; margin: 0; text-wrap: balance; }
.wpm-eyebrow { font: 400 12px/1.4 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--soft); margin: 0 0 10px; }

.wpm-top { position: sticky; top: 0; z-index: 10; display: flex; justify-content: space-between; align-items: center; gap: 10px 24px; flex-wrap: wrap;
	padding: calc(14px + env(safe-area-inset-top, 0px)) max(24px, env(safe-area-inset-right, 0px)) 14px max(24px, env(safe-area-inset-left, 0px));
	background: color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter: blur(6px); }
.wpm-brand { font: 400 26px/1 var(--script); text-decoration: none; }
.wpm-top nav { display: flex; gap: 6px 30px; flex-wrap: wrap; font-size: 15px; }
.wpm-top nav a { text-decoration: none; padding: 4px 0; border-bottom: 1px solid transparent; }
.wpm-top nav a:hover { border-bottom-color: currentColor; }

.wpm-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: min(88vh, 900px); }
.wpm-hero-text { display: grid; align-content: center; justify-items: center; text-align: center; padding: 64px max(24px, 6vw); }
.wpm-hero h1 { font-size: clamp(58px, 8.4vw, 112px); margin-bottom: 26px; }
.wpm-lede { max-width: 30em; margin: 0 0 28px; color: var(--ink); }
.wpm-hero-media { position: relative; min-height: 420px; }
.wpm-hero-media > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wpm-hashtag { margin: 22px 0 0; font-size: 14px; letter-spacing: .08em; color: var(--soft); }
.wpm-count { margin: 0 0 30px; gap: 26px; font: 400 11px var(--sans); letter-spacing: .2em; color: var(--soft); }
.wpm-count b { font: 300 34px/1 var(--sans); color: var(--ink); letter-spacing: 0; }

.wpm-btn { display: inline-block; border: 1px solid var(--ink); border-radius: 999px; padding: 11px 34px; font: 400 15px/1.2 var(--sans); color: var(--ink) !important; background: transparent; text-decoration: none; cursor: pointer; transition: background .2s, color .2s; }
.wpm-btn:hover, .wpm-btn:focus-visible { background: var(--ink); color: var(--paper) !important; }
.wpm-btn.sm { padding: 7px 22px; font-size: 14px; }
.wpm-btn.wide { width: 100%; }
.wpm-btn:disabled { opacity: .6; cursor: wait; }

.wpm-sec { max-width: 1100px; margin: 0 auto; padding: 110px max(24px, env(safe-area-inset-right, 0px)) 110px max(24px, env(safe-area-inset-left, 0px)); text-align: center; }
.wpm-sec h2 { font-size: clamp(46px, 6vw, 64px); margin-bottom: 30px; }
.wpm-story p { max-width: 34em; margin: 0 auto 18px; }
.wpm-story .wpm-btn { margin-top: 18px; }

.wpm-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding: 0 max(24px, env(safe-area-inset-right, 0px)) 0 max(24px, env(safe-area-inset-left, 0px)); }
.wpm-strip figure { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; }
.wpm-strip figure > * { width: 100%; height: 100%; object-fit: cover; display: block; }

.wpm-details { background: var(--paper2); max-width: none; }
.wpm-venues { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); max-width: 900px; margin: 0 auto; }
.wpm-venues article { padding: 10px 30px 20px; display: grid; justify-items: center; gap: 4px; }
.wpm-venues article + article { border-left: 1px solid var(--line); }
.wpm-venues h3 { font: 400 26px/1.25 "Cormorant Garamond", Georgia, serif; margin: 0; }
.wpm-venues p { margin: 0; color: var(--soft); }
.wpm-venues .wpm-time { color: var(--ink); margin-bottom: 14px; }
.wpm-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 30px; max-width: 900px; margin: 60px auto 0; padding-top: 40px; border-top: 1px solid var(--line); }
.wpm-facts p { margin: 0; }

.wpm-schedule ol { list-style: none; margin: 0 auto; padding: 0; max-width: 560px; text-align: left; }
.wpm-schedule li { display: grid; grid-template-columns: 110px 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.wpm-schedule time { font-variant-numeric: tabular-nums; color: var(--soft); }
.wpm-schedule small { display: block; color: var(--soft); font-size: 14px; }

.wpm-ent-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 34px 24px; }
.wpm-ent-grid p { margin: 0; }
.wpm-gal { columns: 3 240px; column-gap: 6px; }
.wpm-gal figure { margin: 0 0 6px; break-inside: avoid; }
.wpm-gal img { width: 100%; display: block; }

.wpm-split { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0 max(24px, env(safe-area-inset-right, 0px)) 0 max(24px, env(safe-area-inset-left, 0px)); }
.wpm-split-media { position: relative; min-height: 520px; }
.wpm-split-media > * { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wpm-split-panel { background: var(--paper2); padding: clamp(40px, 6vw, 80px) clamp(24px, 6vw, 80px); display: grid; align-content: center; gap: 6px; min-width: 0; }
.wpm-split-panel h2 { font-size: clamp(46px, 6vw, 64px); text-align: center; }
.wpm-panel-lede { text-align: center; max-width: 26em; margin: 8px auto 26px; }
.wpm-form { display: grid; gap: 22px; }
.wpm-yes { display: grid; gap: 22px; }
.wpm-f { display: grid; gap: 2px; }
.wpm-f label, .wpm-choice legend { font-size: 14px; color: var(--ink); }
.wpm input:not([type=radio]), .wpm select, .wpm textarea { font: 300 16px var(--sans) !important; color: var(--ink) !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--ink) !important; border-radius: 0 !important; padding: 8px 0 !important; width: 100%; }
.wpm input:focus, .wpm select:focus, .wpm textarea:focus { outline: none; border-bottom-width: 2px !important; padding-bottom: 7px !important; }
.wpm-choice { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.wpm-choice legend { margin-bottom: 10px; }
.wpm-choice label { position: relative; cursor: pointer; }
.wpm-choice input { position: absolute; opacity: 0; }
.wpm-choice span { display: inline-block; border: 1px solid var(--ink); border-radius: 999px; padding: 8px 20px; font-size: 15px; }
.wpm-choice input:checked + span { background: var(--ink); color: var(--paper); }
.wpm-choice input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 3px; }
.wpm-hello { margin: 0; background: color-mix(in srgb, var(--paper) 60%, transparent); padding: 12px 14px; }
.wpm .wps-error { color: #a3322c; margin: 0; }
.wpm-thanks { text-align: center; }
.wpm-thanks p { margin: 0 0 6px; }
.wpm .wps-script { font-family: var(--script); font-size: 54px; color: var(--ink); }

.wpm-foot { text-align: center; padding: 90px 24px calc(60px + env(safe-area-inset-bottom, 0px)); color: var(--soft); font-size: 14px; }
.wpm-foot .wpm-script { font-size: 40px; margin-bottom: 6px; }
.wpm-foot p { margin: 0; }

/* Photo placeholder until the couple uploads their own */
.wpm-ph { background:
	radial-gradient(120% 80% at 20% 15%, color-mix(in srgb, var(--paper) 70%, transparent), transparent 60%),
	linear-gradient(160deg, color-mix(in srgb, var(--paper2) 40%, #b9c2ad), color-mix(in srgb, var(--paper2) 30%, #8f9a83)); }
.wpm-strip .wpm-ph:nth-child(1), .wpm-strip figure:nth-child(2) .wpm-ph { filter: hue-rotate(-12deg) saturate(.8); }
.wpm-strip figure:nth-child(3) .wpm-ph { filter: saturate(.4) brightness(1.08); }
.wpm-strip figure:nth-child(4) .wpm-ph { filter: sepia(.35) brightness(.98); }

/* Gentle entrance for the hero only; content is visible without it */
@media (prefers-reduced-motion: no-preference) {
	.wpm-hero-text > * { animation: wpm-rise .9s cubic-bezier(.2,.7,.2,1) both; }
	.wpm-hero-text > *:nth-child(2) { animation-delay: .1s; }
	.wpm-hero-text > *:nth-child(3) { animation-delay: .2s; }
	.wpm-hero-text > *:nth-child(n+4) { animation-delay: .3s; }
	@keyframes wpm-rise { from { opacity: .001; transform: translateY(14px); } }
}

@media (max-width: 860px) {
	.wpm-hero { grid-template-columns: 1fr; min-height: 0; }
	.wpm-hero-media { order: -1; min-height: 62vh; }
	.wpm-hero-text { padding: 48px 24px 64px; }
	.wpm-strip { grid-template-columns: repeat(2, 1fr); }
	.wpm-split { grid-template-columns: 1fr; }
	.wpm-split-media { min-height: 320px; }
	.wpm-venues article + article { border-left: 0; border-top: 1px solid var(--line); padding-top: 30px; margin-top: 10px; }
	.wpm-sec { padding-top: 80px; padding-bottom: 80px; }
	.wpm-top nav { gap: 4px 18px; font-size: 14px; }
}
.wps [hidden] { display: none !important; }
.wpm-story p, .wpm #story p { font: 300 18px/1.75 var(--sans); text-align: center; }
.wpm #wps-form { background: none; border: 0; border-radius: 0; padding: 0; }
.wpm section[id] { scroll-margin-top: 70px; }

body.wps.wpm { font: 300 17px/1.7 var(--sans); background: var(--paper); color: var(--ink); }

/* Heading / button color hooks (theme default, or the couple's custom colors) */
.wpm { --head: var(--ink); --btn: var(--ink); }
.wps.wpm.theme-pink { --head: #c08589; --btn: #b07276; }
.wpm .wpm-script, .wpm .wpm-brand, .wpm .wps-script { color: var(--head); }
.wpm .wpm-btn { border-color: var(--btn); color: var(--btn) !important; }
.wpm .wpm-btn:hover, .wpm .wpm-btn:focus-visible { background: var(--btn); color: var(--paper) !important; }
.wpm .wpm-choice span { border-color: var(--btn); }
.wpm .wpm-choice input:checked + span { background: var(--btn); color: var(--paper); }
.wpm .wpm-choice input:focus-visible + span { outline-color: var(--btn); }

/* Headings on the colored panels ("The Details", "Kindly Reply") */
.wpm { --panel-head: var(--ink); }
.wps.wpm.theme-pink { --panel-head: #4b3538; }
.wpm .wpm-details > .wpm-script, .wpm .wpm-split-panel > .wpm-script { color: var(--panel-head); }

/* Center the story paragraph block (an older #story rule was removing its auto margins) */
.wpm #story p { max-width: 34em; margin: 0 auto 18px; }

/* Attire guide popup */
.wpm-motif-btn { margin-top: 12px; }
.wpm-lightbox { border: 0; padding: 0; background: var(--paper); color: var(--ink); width: min(1200px, calc(100vw - 32px)); max-height: calc(100vh - 32px); box-shadow: 0 30px 80px -20px rgb(0 0 0 / .45); overflow: auto; }
.wpm-lightbox::backdrop { background: rgb(30 22 22 / .6); }
.wpm-lb-bar { position: sticky; top: 0; display: flex; align-items: center; gap: 16px; padding: 10px 14px 10px 20px; background: var(--paper); border-bottom: 1px solid var(--line); }
.wpm-lb-bar .wpm-eyebrow { margin: 0 auto 0 0; }
.wpm-lb-bar a { font-size: 14px; }
.wpm-lb-close { width: 40px; height: 40px; border: 0; background: transparent; font-size: 30px; line-height: 1; color: var(--ink); cursor: pointer; border-radius: 50%; }
.wpm-lb-close:hover, .wpm-lb-close:focus-visible { background: var(--paper2); outline: none; }
.wpm-lightbox img { display: block; width: 100%; height: auto; }

/* =========================================================
   Opening invitation (envelope) shown over the homepage
   ========================================================= */
html.wpi-lock, html.wpi-lock body { overflow: hidden; }
.wpi { --W: min(74vw, 340px, 46vh); --env-h: calc(var(--W) / 1.45); --paper-env: #e6cf9f; --paper-env2: #d6b77c; --gold: #c39a45;
	position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; overflow: hidden; background: #2b2422; color: #2b2622;
	transition: opacity .8s ease, transform .9s ease; }
.wpi-bg { position: absolute; inset: -20px; background: radial-gradient(ellipse at 50% 35%, #5a4a45, #241d1b 75%) center / cover no-repeat; filter: grayscale(1) brightness(.62) contrast(1.05); transform: scale(1.04); }
.wpi-bg[style] { filter: grayscale(1) brightness(.55); }
.wpi-stage { position: relative; width: var(--W); height: calc(var(--W) * 1.05 + var(--env-h)); margin-top: -6vh; transform: translateY(calc(var(--W) * -.42)); transition: transform 1s cubic-bezier(.3,.7,.2,1); }
.wpi.opening .wpi-stage { transform: none; }

/* envelope */
.wpi-env { position: absolute; left: 0; bottom: 0; width: var(--W); height: var(--env-h); cursor: pointer; transform: rotate(-6deg); transition: transform .9s cubic-bezier(.3,.7,.2,1); perspective: 1400px; z-index: 2; }
.wpi-back { position: absolute; inset: 0; border-radius: 4px; background: linear-gradient(180deg, var(--paper-env2), #c9a86d); box-shadow: 0 30px 60px -20px rgb(0 0 0 / .6); }
.wpi-front { position: absolute; inset: 0; z-index: 3; border-radius: 4px; display: grid; align-content: end; justify-items: center; padding-bottom: 6%;
	background:
		linear-gradient(to top right, var(--paper-env) 49.6%, transparent 50%) left bottom / 50.4% 100% no-repeat,
		linear-gradient(to top left, var(--paper-env) 49.6%, transparent 50%) right bottom / 50.4% 100% no-repeat,
		linear-gradient(0deg, #e9d4a6, #e9d4a6) bottom / 100% 42% no-repeat; }
.wpi-front p { margin: 0; text-align: center; color: #4a3b2a; }
.wpi-ya { font: 500 calc(var(--W) * .035)/1 "Jost", sans-serif; letter-spacing: .3em; }
.wpi-inv { font: 500 calc(var(--W) * .11)/1.05 "Cormorant Garamond", Georgia, serif; letter-spacing: .02em; }
.wpi-mono { margin-top: 6px !important; width: calc(var(--W) * .1); height: calc(var(--W) * .1); border: 1px solid #8a6a3e; border-radius: 50%; display: grid; place-items: center; font: italic 500 calc(var(--W) * .035) "Cormorant Garamond", serif; }
.wpi-flap { position: absolute; left: 0; right: 0; top: 0; height: 58%; z-index: 4; transform-origin: top; clip-path: polygon(0 0, 100% 0, 50% 100%); border-radius: 4px 4px 0 0;
	background: linear-gradient(180deg, #ecd7aa, var(--paper-env2)); transition: transform .7s ease, z-index 0s .35s; }
.wpi-seal { position: absolute; z-index: 5; left: 50%; top: 50%; width: calc(var(--W) * .17); height: calc(var(--W) * .17); transform: translate(-50%, -50%); border: 0; border-radius: 50%; cursor: pointer; padding: 0;
	background: radial-gradient(circle at 34% 30%, #f3d98f, var(--gold) 45%, #8c6a26 100%); box-shadow: 0 4px 10px rgb(0 0 0 / .35), inset 0 0 0 calc(var(--W) * .014) rgb(255 255 255 / .18), inset 0 0 0 calc(var(--W) * .03) rgb(0 0 0 / .08);
	transition: transform .35s ease, opacity .35s ease; }
.wpi-seal span { font: italic 500 calc(var(--W) * .06)/1 "Cormorant Garamond", serif; color: #6e5017; text-shadow: 0 1px 0 rgb(255 255 255 / .35); }
.wpi-seal:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

/* save-the-date card that rises out */
.wpi-pocket { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; top: -320%; overflow: hidden; pointer-events: none; }
.wpi-std { position: absolute; left: 7%; width: 86%; top: calc(100% - var(--env-h) * .94); height: calc(var(--W) * .86 * 1.42); transition: transform 1.1s cubic-bezier(.2,.75,.2,1); visibility: hidden; }
.wpi.opened .wpi-std { visibility: visible; }
.wpi-card { background: #f7f2ea; border-radius: 2px; box-shadow: 0 10px 30px -12px rgb(0 0 0 / .45); display: grid; justify-items: center; align-content: start; text-align: center; padding: 7% 7% 0; gap: 2%; }
.wpi-card p { margin: 0; }
.wpi-names { font: 600 calc(var(--W) * .068)/1.05 "Cormorant Garamond", Georgia, serif; letter-spacing: .03em; color: #2b2622; }
.wpi-script { font: 400 calc(var(--W) * .058)/1 "Pinyon Script", cursive; color: #4a3b33; margin-top: -1% !important; }
.wpi-photo { width: 100%; aspect-ratio: 4 / 3; margin: 4% 0 3%; overflow: hidden; background: #d9cfc3; display: grid; place-items: center; }
.wpi-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85); }
.wpi-photo span { font: italic 500 calc(var(--W) * .14) "Cormorant Garamond", serif; color: #8a7a6c; }
.wpi-save { font: 600 calc(var(--W) * .09)/1 "Cormorant Garamond", Georgia, serif; letter-spacing: .02em; color: #2b2622; }
.wpi-save em { font: 400 calc(var(--W) * .06) "Pinyon Script", cursive; text-transform: none; }
.wpi-date { font: 500 calc(var(--W) * .032)/1 "Jost", sans-serif; letter-spacing: .28em; color: #4a3b33; margin-top: 2% !important; }

/* details card that fans out */
.wpi-details { position: absolute; z-index: 3; width: calc(var(--W) * .72); height: calc(var(--W) * .86); left: 14%; bottom: calc(var(--env-h) * .3); padding: 8% 8% 6%; gap: 3%; opacity: 0; transform: translateY(20%) scale(.9);
	transition: transform 1s cubic-bezier(.2,.75,.2,1), opacity .5s ease; }
.wpi-cap { font: 500 calc(var(--W) * .075)/1 "Pinyon Script", cursive; color: #2b2622; }
.wpi-cap.sm { font-size: calc(var(--W) * .055); margin-top: 6% !important; }
.wpi-rule { width: 40%; height: 1px; background: #2b2622; opacity: .5; margin: 2% 0 4%; }
.wpi-lbl { font: 500 calc(var(--W) * .026)/1.3 "Jost", sans-serif; letter-spacing: .22em; text-transform: uppercase; color: #6d5d52; margin-top: 4% !important; }
.wpi-val { font: 500 calc(var(--W) * .042)/1.2 "Cormorant Garamond", serif; color: #2b2622; }

/* controls */
.wpi-ui { position: absolute; left: 0; right: 0; bottom: calc(26px + env(safe-area-inset-bottom, 0px)); display: grid; justify-items: center; gap: 10px; z-index: 6; transition: opacity .4s; }
.wpi-btn { border: 1px solid rgb(255 255 255 / .8); background: rgb(255 255 255 / .08); color: #fff; border-radius: 999px; padding: 12px 30px; font: 400 15px "Jost", sans-serif; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; backdrop-filter: blur(4px); }
.wpi-btn:hover, .wpi-btn:focus-visible { background: #fff; color: #2b2422; outline: none; }
.wpi-skip { background: none; border: 0; color: rgb(255 255 255 / .75); font: 400 13px "Jost", sans-serif; letter-spacing: .12em; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; padding: 6px; }
.wpi-skip:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* sequence */
@media (prefers-reduced-motion: no-preference) {
	.wpi:not(.opening) .wpi-env { animation: wpi-float 3.2s ease-in-out infinite; }
	@keyframes wpi-float { 50% { transform: rotate(-6deg) translateY(-8px); } }
	.wpi:not(.opening) .wpi-seal { animation: wpi-pulse 2.4s ease-in-out infinite; }
	@keyframes wpi-pulse { 50% { box-shadow: 0 4px 10px rgb(0 0 0 / .35), 0 0 0 10px rgb(255 255 255 / .12), inset 0 0 0 calc(var(--W) * .014) rgb(255 255 255 / .18); } }
}
.wpi.opening .wpi-ui .wpi-btn { opacity: 0; pointer-events: none; }
.wpi.opening .wpi-seal { transform: translate(-50%, -50%) scale(.3); opacity: 0; pointer-events: none; }
.wpi.opening .wpi-env { transform: rotate(0deg); cursor: default; }
.wpi.opened .wpi-flap { transform: rotateX(180deg); z-index: 1; }
.wpi.risen .wpi-std { transform: translateY(calc(var(--W) * -1.02)); }
.wpi.fanned .wpi-env { transform: translateX(-12%) rotate(-3deg); }
.wpi.fanned .wpi-details { opacity: 1; transform: translate(34%, -2%) rotate(6deg); }
.wpi.out { opacity: 0; transform: scale(1.06); pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .wpi, .wpi * { transition-duration: .01s !important; animation: none !important; } }

/* Envelope in the site's dusty pink (follows theme / custom colors) */
.wpm .wpi { --env-front: color-mix(in srgb, var(--paper2) 88%, var(--accent)); --env-back: color-mix(in srgb, var(--paper2) 62%, var(--accent)); --env-flap: color-mix(in srgb, var(--paper2) 76%, var(--accent)); --seal: var(--head); --env-ink: var(--ink); }
.wpm .wpi-back { background: linear-gradient(180deg, var(--env-back), color-mix(in srgb, var(--env-back) 85%, #000)); }
.wpm .wpi-front { background:
	linear-gradient(to top right, var(--env-front) 49.6%, transparent 50%) left bottom / 50.4% 100% no-repeat,
	linear-gradient(to top left, var(--env-front) 49.6%, transparent 50%) right bottom / 50.4% 100% no-repeat,
	linear-gradient(0deg, color-mix(in srgb, var(--env-front) 92%, #fff), color-mix(in srgb, var(--env-front) 92%, #fff)) bottom / 100% 42% no-repeat; }
.wpm .wpi-front p { color: var(--env-ink); }
.wpm .wpi-flap { background: linear-gradient(180deg, color-mix(in srgb, var(--env-flap) 80%, #fff), var(--env-flap)); }
.wpm .wpi-seal { background: radial-gradient(circle at 34% 30%, color-mix(in srgb, var(--seal) 45%, #fff), var(--seal) 48%, color-mix(in srgb, var(--seal) 65%, #000) 100%); }
.wpm .wpi-seal span { color: color-mix(in srgb, var(--seal) 20%, #fff); text-shadow: 0 1px 1px rgb(0 0 0 / .25); }
.wpi-hint { margin: 0; color: #fff; font: 400 14px "Jost", sans-serif; letter-spacing: .2em; text-transform: uppercase; text-shadow: 0 1px 6px rgb(0 0 0 / .35); }
.wpi-hint::before { content: "\2191"; display: block; text-align: center; margin-bottom: 6px; font-size: 16px; letter-spacing: 0; }
.wpi.opening .wpi-hint { opacity: 0; transition: opacity .3s; }
.wpi-env { cursor: default; }
.wpi-seal { cursor: pointer; }
@media (prefers-reduced-motion: no-preference) { .wpi:not(.opening) .wpi-hint::before { animation: wpi-nudge 1.6s ease-in-out infinite; } @keyframes wpi-nudge { 50% { transform: translateY(-5px); } } }

.wpi-details { pointer-events: none; }
.wpm .wpi-seal { width: calc(var(--W) * .2); height: calc(var(--W) * .2); background: radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--seal) 55%, #fff), var(--seal) 45%, color-mix(in srgb, var(--seal) 55%, #3a1f22) 100%); box-shadow: 0 5px 12px rgb(60 30 35 / .4), inset 0 0 0 calc(var(--W) * .014) rgb(255 255 255 / .22), inset 0 0 0 calc(var(--W) * .032) rgb(0 0 0 / .08); }
.wpm .wpi-seal span { font-size: calc(var(--W) * .07); }

.wpi-bg.in-color[style] { filter: brightness(.68) saturate(.95); }

/* Save the Date page uses the envelope as the whole page */
.wps-stdx { min-height: 100vh; overflow: hidden; }
.wpi-page { position: fixed; }
.wpi-after { display: grid; justify-items: center; gap: 8px; animation: wpi-in .6s ease both; }
@keyframes wpi-in { from { opacity: 0; transform: translateY(8px); } }
.wpi-after[hidden] { display: none !important; }
.wpi.done .wpi-hint { display: none; }
a.wpi-btn { text-decoration: none; display: inline-block; }

.wpi.done .wpi-after .wpi-btn { opacity: 1; pointer-events: auto; background: #fff; color: var(--ink); border-color: #fff; }
.wpi.done .wpi-after .wpi-btn:hover, .wpi.done .wpi-after .wpi-btn:focus-visible { background: var(--paper2); }

/* Save the Date cards use the homepage fonts: Pinyon Script for titles, Jost for text, Cormorant for venue names */
.wps-stdx .wpi-names { font: 400 calc(var(--W) * .095)/1.1 "Pinyon Script", cursive; letter-spacing: 0; color: var(--head, #2b2622); }
.wps-stdx .wpi-script { font: 300 calc(var(--W) * .036)/1.3 "Jost", sans-serif; letter-spacing: .18em; text-transform: uppercase; color: #6d5d52; margin-top: 1% !important; }
.wps-stdx .wpi-save { font: 400 calc(var(--W) * .1)/1 "Pinyon Script", cursive; letter-spacing: 0; color: var(--head, #2b2622); }
.wps-stdx .wpi-date { font: 400 calc(var(--W) * .032)/1 "Jost", sans-serif; letter-spacing: .26em; color: #4a3b33; margin-top: 3% !important; }
.wps-stdx .wpi-cap { font-family: "Pinyon Script", cursive; color: var(--head, #2b2622); }
.wps-stdx .wpi-lbl { font-family: "Jost", sans-serif; font-weight: 400; }
.wps-stdx .wpi-val { font: 400 calc(var(--W) * .044)/1.2 "Cormorant Garamond", Georgia, serif; }
.wps-stdx .wpi-ya { font: 400 calc(var(--W) * .034)/1 "Jost", sans-serif; letter-spacing: .3em; }
.wps-stdx .wpi-inv { font: 400 calc(var(--W) * .13)/1.05 "Pinyon Script", cursive; letter-spacing: 0; }
.wps-stdx .wpi-seal span { font-family: "Pinyon Script", cursive; font-style: normal; font-size: calc(var(--W) * .075); }
.wps-stdx .wpi-photo span { font-family: "Pinyon Script", cursive; font-style: normal; }
.wps-stdx .wpi-hint, .wps-stdx .wpi-btn, .wps-stdx .wpi-skip { font-family: "Jost", sans-serif; }

/* "RSVP" in capitals is hard to read in script, so it uses the sans-serif */
.wpi-caps { font: 500 calc(var(--W) * .036)/1 "Jost", sans-serif; letter-spacing: .22em; vertical-align: .25em; margin-left: .15em; color: var(--ink, #2b2622); }

/* Bigger envelope and cards on the Save the Date page */
.wps-stdx .wpi { --W: min(83vw, 430px, 43vh); }
.wps-stdx .wpi-stage { margin-top: -10vh; }
/* Fan the cards a little tighter so the bigger set still fits on a phone */
.wps-stdx .wpi.fanned .wpi-env { transform: translateX(-6%) rotate(-3deg); }
.wps-stdx .wpi.fanned .wpi-details { transform: translate(22%, 36%) rotate(6deg) scale(.92); }
.wps-stdx .wpi.fanned .wpi-std { transform: translateY(calc(var(--W) * -1.2)); }
@media (max-height: 700px) { .wps-stdx .wpi-stage { margin-top: -18vh; } }

.wps-stdx .wpi-stage { margin-top: -13vh; }
@media (max-height: 700px) { .wps-stdx .wpi-stage { margin-top: -18vh; } }
@media (max-height: 700px) { .wps-stdx .wpi { --W: min(83vw, 430px, 39vh); } }
@media (min-width: 700px) and (min-height: 701px) { .wps-stdx .wpi { --W: min(83vw, 430px, 40vh); } .wps-stdx .wpi-stage { margin-top: -9vh; } }

/* ===== Flat linen envelope (Save the Date page) ===== */
.wps-stdx .wpi { --env-main: var(--accent, #c08589); --env-ivory: #fbf3ef;
	--env-dark: color-mix(in srgb, var(--env-main) 78%, #3a1f24); --env-light: color-mix(in srgb, var(--env-main) 88%, #fff);
	--linen: repeating-linear-gradient(0deg, rgb(255 255 255 / .05) 0 1px, transparent 1px 3px), repeating-linear-gradient(90deg, rgb(0 0 0 / .045) 0 1px, transparent 1px 3px); }
.wps-stdx .wpi-env { transform: rotate(-2deg); }
@media (prefers-reduced-motion: no-preference) {
	.wps-stdx .wpi:not(.opening) .wpi-env { animation: wpi-float2 3.4s ease-in-out infinite; }
	@keyframes wpi-float2 { 50% { transform: rotate(-2deg) translateY(-7px); } }
}
.wps-stdx .wpi-back { border-radius: 3px; background: var(--linen), linear-gradient(180deg, var(--env-dark), color-mix(in srgb, var(--env-dark) 85%, #000)); }
.wps-stdx .wpi-front { padding: 0; border-radius: 0 0 3px 3px; display: block;
	background: var(--linen), var(--env-main);
	clip-path: polygon(0 0, 50% 58%, 100% 0, 100% 100%, 0 100%);
	box-shadow: none; }
.wps-stdx .wpi-folds { position: absolute; inset: 0; width: 100%; height: 100%; }
.wps-stdx .wpi-folds .side { fill: rgb(255 255 255 / .05); }
.wps-stdx .wpi-folds .bottom { fill: rgb(0 0 0 / .045); }
.wps-stdx .wpi-folds .line { fill: none; stroke: rgb(70 30 35 / .22); stroke-width: .35; vector-effect: non-scaling-stroke; }
.wps-stdx .wpi-folds .soft { stroke: rgb(255 255 255 / .18); }
.wps-stdx .wpi-env-names { position: absolute; left: 0; right: 0; bottom: 9%; margin: 0; text-align: center; color: var(--env-ivory);
	font: 500 calc(var(--W) * .058)/1 "Cormorant Garamond", Georgia, serif; letter-spacing: .01em; text-shadow: 0 1px 0 rgb(0 0 0 / .08); }
.wps-stdx .wpi-flap { height: 60%; border-radius: 3px 3px 0 0; clip-path: polygon(0 0, 100% 0, 50% 100%);
	background: var(--linen), linear-gradient(180deg, var(--env-light), var(--env-main) 70%);
	filter: drop-shadow(0 2px 2px rgb(0 0 0 / .15)); }
.wps-stdx .wpi-oval { position: absolute; left: 50%; top: 14%; transform: translateX(-50%); width: 34%; height: 30%; border: 1px solid rgb(251 243 239 / .85); border-radius: 50%;
	display: grid; place-items: center; backface-visibility: hidden; }
.wps-stdx .wpi-oval span { font: 400 calc(var(--W) * .075)/1 "Pinyon Script", cursive; color: var(--env-ivory); white-space: nowrap; }
.wps-stdx .wpi-oval em { font: italic 400 calc(var(--W) * .04) "Cormorant Garamond", serif; margin: 0 .08em; opacity: .9; }
.wps-stdx .wpi.opened .wpi-oval { opacity: 0; transition: opacity .2s; }

/* wax seal in deeper dusty rose with a flower emblem */
.wps-stdx .wpi-seal { top: 60%; width: calc(var(--W) * .2); height: calc(var(--W) * .2);
	border-radius: 47% 53% 50% 50% / 52% 48% 52% 48%;
	background: radial-gradient(circle at 36% 30%, color-mix(in srgb, var(--env-main) 40%, #fff) 0, color-mix(in srgb, var(--env-main) 85%, #5a2c33) 48%, color-mix(in srgb, var(--env-main) 50%, #3a1a1f) 100%);
	box-shadow: 0 6px 12px rgb(50 20 25 / .45), inset 0 0 0 calc(var(--W) * .012) rgb(255 255 255 / .16), inset 0 -3px 6px rgb(0 0 0 / .25), inset 0 3px 5px rgb(255 255 255 / .25); }
.wps-stdx .wpi-emblem { width: 78%; height: 78%; display: block; margin: auto; }
.wps-stdx .wpi-emblem .ring { stroke: rgb(60 25 30 / .35); stroke-width: 2.2; }
.wps-stdx .wpi-emblem .petal { stroke: rgb(60 25 30 / .45); stroke-width: 2.6; }
.wps-stdx .wpi-emblem .leaf { stroke: rgb(60 25 30 / .4); stroke-width: 2.4; }
.wps-stdx .wpi-emblem g { filter: drop-shadow(0 1px 0 rgb(255 255 255 / .35)); }
.wps-stdx .wpi.opening .wpi-seal { transform: translate(-50%, -50%) scale(.3); }
.wps-stdx .wpi-front .wpi-env-names { color: var(--env-ivory); bottom: 7%; }
.wps-stdx .wpi-seal { top: 57%;
	background: radial-gradient(circle at 38% 32%, color-mix(in srgb, var(--env-main) 55%, #fff) 0, color-mix(in srgb, var(--env-main) 70%, #4a2228) 34%, color-mix(in srgb, var(--env-main) 45%, #2e1216) 100%); }
.wps-stdx .wpi-emblem .ring { stroke: rgb(255 225 228 / .35); }
.wps-stdx .wpi-emblem .petal { stroke: rgb(255 228 230 / .6); }
.wps-stdx .wpi-emblem .leaf { stroke: rgb(255 228 230 / .5); }
.wps-stdx .wpi-emblem g { filter: drop-shadow(0 -1px 0 rgb(0 0 0 / .3)); }
@media (prefers-reduced-motion: no-preference) {
	.wps-stdx .wpi:not(.opening) .wpi-seal { animation: wpi-pulse2 2.4s ease-in-out infinite; }
	@keyframes wpi-pulse2 { 50% { transform: translate(-50%, -50%) scale(1.05); } }
}
.wps-stdx .wpi-seal:not(:hover) { transform: translate(-50%, -50%); }

/* Realistic gold wax seal */
.wps-stdx .wpi-seal { width: calc(var(--W) * .26); height: calc(var(--W) * .26); top: 58%; border-radius: 50%; background: none !important; box-shadow: none !important;
	filter: drop-shadow(0 5px 6px rgb(40 15 20 / .45)) drop-shadow(0 1px 1px rgb(0 0 0 / .3)); }
.wps-stdx .wpi-wax { width: 100%; height: 100%; display: block; }
.wps-stdx .wpi-env-names { font: 400 calc(var(--W) * .085)/1 "Pinyon Script", cursive; bottom: 8%; }

/* "Kindly RSVP" in the same sans-serif as the labels */
.wpi-rsvp { margin: 6% 0 0 !important; font: 500 calc(var(--W) * .036)/1.2 "Jost", sans-serif; letter-spacing: .24em; text-transform: uppercase; color: var(--ink, #2b2622); }

/* Lighter dusty-pink envelope; deeper rose text for contrast */
.wps-stdx .wpi { --env-main: color-mix(in srgb, var(--accent, #c08589) 62%, #fff); --env-dark: color-mix(in srgb, var(--accent, #c08589) 80%, #6a3a40); }
.wps-stdx .wpi-front .wpi-env-names { color: #8f5258; text-shadow: 0 1px 0 rgb(255 255 255 / .35); }
.wps-stdx .wpi-folds .line { stroke: rgb(120 60 66 / .22); }
