:root {
  color-scheme: light;
  --ink: #292a25;
  --muted: #77786f;
  --paper: #f7f5f0;
  --accent: #a45f4d;
  --line: #dedbd2;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 14px; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
.site-header { height: 82px; display: flex; align-items: center; justify-content: space-between; padding: 0 7.1%; border-bottom: 1px solid rgba(50,50,42,.08); }
.brand { display: inline-flex; align-items: center; gap: 9px; font-size: 21px; font-weight: 600; letter-spacing: -.8px; }
.brand-mark { width: 30px; height: 30px; display: grid; place-items: center; color: var(--paper); background: var(--accent); border-radius: 50%; font-family: var(--serif); font-size: 21px; font-style: italic; }
.brand-period { color: var(--accent); }
.header-links { display: flex; align-items: center; gap: 32px; color: #77766f; font-size: 12px; }
.header-links a:hover { color: var(--accent); }
.header-note { display: flex; align-items: center; gap: 8px; color: #89877e; font-size: 11px; }
.live-dot, .preview-dot { width: 6px; height: 6px; display: inline-block; border-radius: 50%; background: #829277; }
.header-cta { padding: 11px 17px; border: 1px solid #d5d1c7; font-size: 11px; font-weight: 600; transition: background .2s,color .2s; }
.header-cta:hover { background: var(--ink); color: white; }
.header-cta span, .primary-button span, .submit-button span { margin-left: 15px; font-size: 15px; }
.hero { position: relative; max-width: 1440px; min-height: 572px; margin: auto; padding: 90px 10.1% 72px; display: grid; grid-template-columns: 1fr 1.03fr; align-items: center; gap: 4%; overflow: hidden; }
.hero-copy { position: relative; z-index: 1; padding-bottom: 9px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 22px; color: var(--accent); font-size: 9px; font-weight: 700; letter-spacing: 1.7px; }
.eyebrow-line { display: inline-block; width: 20px; height: 1px; background: var(--accent); }
h1,h2,h3,p { margin-top: 0; }
.hero h1 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: clamp(42px,5vw,65px); letter-spacing: -2.2px; line-height: 1.12; }
.hero h1 em,.section-intro h2 em { color: var(--accent); font-weight: 400; }
.hero-description { max-width: 385px; margin: 23px 0 25px; color: #77766f; font-size: 12px; line-height: 1.9; }
.primary-button,.submit-button { display: inline-flex; align-items: center; justify-content: center; min-height: 47px; padding: 0 20px; border: 0; background: var(--ink); color: #fff; font-size: 11px; font-weight: 600; cursor: pointer; transition: background .2s,transform .2s; }
.primary-button:hover,.submit-button:hover { background: var(--accent); transform: translateY(-1px); }
.hero-proof { display: flex; align-items: center; gap: 12px; margin-top: 34px; color: #85837b; font-size: 10px; }
.proof-avatars { display: flex; padding-left: 3px; }
.proof-avatars i { width: 22px; height: 22px; display: grid; place-items: center; margin-left: -3px; border: 2px solid var(--paper); border-radius: 50%; background: #d7b6a4; color: #4a3b32; font-size: 8px; font-style: normal; }
.proof-avatars i:nth-child(2) { background: #c3c4a8; }.proof-avatars i:nth-child(3) { background: #e4d3bb; }
.hero-art { position: relative; justify-self: center; width: min(100%,440px); height: 397px; }
.hero-photo { position: absolute; z-index: 1; left: 16%; top: 5%; width: 69%; height: 91%; overflow: hidden; background: #d3c7b5; border-radius: 46% 46% 2px 2px; box-shadow: 0 17px 45px rgba(49,45,37,.1); }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.photo-overlay { position: absolute; inset: 45% 0 0; background: linear-gradient(transparent,rgba(22,23,18,.58)); }
.photo-caption { position: absolute; left: 0; right: 0; bottom: 24px; display: flex; align-items: center; flex-direction: column; color: white; letter-spacing: 2px; font-size: 8px; }
.photo-caption strong { font-family: var(--serif); font-size: 34px; font-weight: 400; letter-spacing: 0; }
.hero-orbit { position: absolute; z-index: 0; border: 1px solid #d8d1c4; border-radius: 50%; }
.orbit-one { width: 378px; height: 378px; left: 8%; top: 0; }.orbit-two { width: 316px; height: 316px; left: 15%; top: 8%; border-style: dashed; opacity: .8; }
.sun-disc { position: absolute; right: -2%; top: 8%; width: 74px; height: 74px; border-radius: 50%; background: #e8dfcc; }
.floating-note { position: absolute; z-index: 2; display: flex; align-items: center; gap: 9px; padding: 12px 14px; background: #fbfaf6; box-shadow: 0 8px 26px rgba(45,41,32,.09); color: #77766f; font-size: 8px; letter-spacing: 1px; }
.note-top { top: 18%; left: -1%; }.note-flower { color: var(--accent); font-size: 16px; }.note-divider { width: 1px; height: 14px; background: var(--line); }
.note-bottom { right: -2%; bottom: 17%; padding: 12px 16px; line-height: 1.65; letter-spacing: 0; font-size: 9px; }.note-bottom strong { color: var(--ink); font-weight: 600; }.mini-heart { font-size: 23px; color: var(--accent); }
.hero-stamp { position: absolute; z-index: 2; right: 3%; top: 33%; width: 65px; height: 65px; display: grid; place-items: center; border: 1px solid #a47766; border-radius: 50%; color: #a47766; text-align: center; transform: rotate(12deg); font-size: 7px; letter-spacing: 1px; line-height: 1.4; }
.art-spark { position: absolute; z-index: 2; color: var(--accent); }.spark-one { top: 1%; left: 30%; font-size: 20px; }.spark-two { right: 3%; bottom: 3%; font-size: 26px; }
.hero-side-label { position: absolute; top: 43%; right: 2.8%; writing-mode: vertical-rl; color: #a09d94; font-size: 8px; letter-spacing: 1.6px; }
.feature-strip { max-width: 1110px; min-height: 92px; margin: 0 auto; padding: 19px 24px; display: grid; grid-template-columns: repeat(3,1fr) 35px; align-items: center; gap: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.feature-strip>div:not(.strip-flower) { display: flex; align-items: center; gap: 12px; }.feature-number { align-self: flex-start; color: var(--accent); font-family: var(--serif); font-size: 12px; font-style: italic; }
.feature-strip strong,.feature-strip small { display: block; }.feature-strip strong { margin-bottom: 4px; font-size: 10px; font-weight: 600; }.feature-strip small { color: #88867f; font-size: 9px; }.strip-flower { color: #b98570; font-size: 21px; text-align: right; }
.builder-section { max-width: 1120px; margin: 0 auto; padding: 90px 22px 100px; }
.section-intro { display: grid; grid-template-columns: 1fr 1fr; column-gap: 30px; align-items: end; margin-bottom: 36px; }
.section-intro .eyebrow { grid-column: 1/-1; margin-bottom: 15px; }.section-intro h2 { margin: 0; font-family: var(--serif); font-size: 43px; font-weight: 400; letter-spacing: -1px; line-height: 1.18; }
.section-intro>p:last-of-type { max-width: 320px; margin: 0 0 5px; color: #77766f; font-size: 11px; line-height: 1.8; }
.step-indicator { display: flex; align-items: center; gap: 8px; grid-column: 2; grid-row: 2; margin-bottom: 5px; }.step-circle { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; background: var(--accent); color: white; font-size: 9px; }.step-muted { background: #dfddd6; color: #77766f; }.step-line { width: 25px; height: 1px; background: #ddd9d0; }.step-label { margin-left: 5px; color: #88867f; font-size: 9px; }.step-label span { padding: 0 5px; color: #c4bfb5; }
.builder-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 42px; align-items: start; }.editor-card { padding: 27px 28px 22px; background: #fbfaf7; border: 1px solid #e8e5dd; box-shadow: 0 12px 40px rgba(48,45,37,.035); }
.editor-heading { display: flex; align-items: center; justify-content: space-between; }.card-eyebrow { margin: 0 0 5px; color: var(--accent); font-size: 8px; font-weight: 700; letter-spacing: 1.4px; }.editor-heading h3,.results-heading h3 { margin: 0; font-family: var(--serif); font-size: 23px; font-weight: 400; }.required-note { color: #9c9991; font-size: 9px; }.required-note i,.field>span i { color: var(--accent); font-style: normal; }
.form-divider { height: 1px; margin: 20px 0; background: #e8e5dd; }.name-fields { display: grid; grid-template-columns: 1fr 23px 1fr; align-items: start; gap: 10px; }.ampersand { padding-top: 31px; color: var(--accent); font-family: var(--serif); font-size: 18px; text-align: center; }
.field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }.field>span { font-size: 10px; font-weight: 600; }.field input,.field textarea { width: 100%; min-width: 0; height: 39px; padding: 0 11px; outline: 0; border: 1px solid #e2dfd7; border-radius: 0; background: white; color: var(--ink); font-size: 10px; transition: border-color .2s,box-shadow .2s; }.field textarea { height: auto; min-height: 58px; padding: 10px 11px; resize: vertical; }.field input:focus,.field textarea:focus { border-color: #aa7564; box-shadow: 0 0 0 2px rgba(164,95,77,.09); }.field input::placeholder,.field textarea::placeholder { color: #b4b1a9; }.field>small,.field input+small { color: #96938b; font-size: 8px; }.optional { color: #aaa69d; font-size: 9px; font-weight: 400; }
.upload-zone { display: flex; min-height: 58px; align-items: center; gap: 11px; padding: 10px 12px; border: 1px dashed #d6d2c8; background: white; cursor: pointer; transition: border-color .2s,background .2s; }.upload-zone:hover,.upload-zone.dragging { border-color: var(--accent); background: #faf6f2; }.upload-icon { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 50%; background: #f1e9e2; color: var(--accent); font-size: 18px; }.upload-copy { display: grid; gap: 4px; flex: 1; min-width: 0; }.upload-copy strong { overflow: hidden; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }.upload-copy small { color: #96938b; font-size: 8px; }.browse-button { padding: 7px 10px; border: 1px solid #e1ded6; font-size: 8px; font-weight: 600; }.remove-photo { margin-top: 8px; padding: 0; border: 0; background: none; color: var(--accent); font-size: 9px; cursor: pointer; }
.detail-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.message-field,.guest-field { margin-top: 17px; }.submit-button { width: 100%; margin-top: 19px; }.submit-button:disabled { cursor: wait; opacity: .7; transform: none; }.privacy-note { margin: 12px 0 0; color: #95928a; font-size: 8px; text-align: center; }.privacy-note span { padding-right: 5px; color: var(--accent); font-size: 12px; vertical-align: -1px; }
.form-error { margin-top: 14px; padding: 10px 11px; border-left: 2px solid #b04f40; background: #fbefec; color: #87392e; font-size: 10px; line-height: 1.5; }
.preview-column { position: sticky; top: 24px; }.preview-topline { display: flex; align-items: center; justify-content: space-between; margin: 3px 0 12px; color: #77766f; font-size: 8px; font-weight: 700; letter-spacing: 1px; }.preview-dot { margin-right: 6px; background: #8ca17e; vertical-align: 1px; }.device-tag { color: #aaa79e; font-size: 8px; font-weight: 400; letter-spacing: 0; }.device-tag span { padding-left: 6px; }
.invite-preview { overflow: hidden; border: 1px solid #e6e2d9; background: #f2efe8; box-shadow: 0 12px 36px rgba(48,45,37,.07); }.preview-cover { min-height: 323px; display: flex; align-items: center; flex-direction: column; padding: 27px 20px 22px; color: #ede8dc; background: #656d5d; text-align: center; }.preview-tag,.preview-date { font-size: 7px; letter-spacing: 1.8px; }.preview-photo { position: relative; width: 102px; height: 126px; overflow: hidden; margin: 16px 0 13px; border: 3px solid rgba(245,240,224,.52); border-radius: 49% 49% 2px 2px; background: linear-gradient(145deg,#ddc7b5,#9d8b73); }.preview-photo img { width: 100%; height: 100%; object-fit: cover; }.photo-placeholder { display: flex; height: 100%; align-items: center; justify-content: center; flex-direction: column; color: rgba(255,255,255,.82); font-family: var(--serif); font-size: 10px; line-height: 1.5; }.photo-placeholder span { font-size: 21px; }
.preview-names { display: flex; align-items: center; flex-direction: column; font-family: var(--serif); font-size: 25px; line-height: 1.08; }.preview-names em { color: #e4b7a3; font-size: 16px; font-weight: 400; }.preview-date { margin-top: 12px; }.preview-lower { display: flex; align-items: center; flex-direction: column; padding: 21px 10px 18px; color: #767369; }.preview-lower>span { font-size: 7px; letter-spacing: 1.4px; }.preview-lower strong { color: var(--accent); font-family: var(--serif); font-size: 25px; font-weight: 400; font-style: italic; }.preview-lower p { margin: 7px 0 4px; color: #98958c; font-family: var(--serif); font-size: 9px; line-height: 1.6; text-align: center; }.preview-lower i { color: #ab806b; font-size: 11px; font-style: normal; }
.preview-link-card { display: flex; align-items: center; gap: 11px; margin-top: 13px; padding: 12px 14px; border: 1px solid #e6e2d9; background: #fbfaf7; }.link-icon { width: 27px; height: 27px; display: grid; place-items: center; background: #f0e9e2; color: var(--accent); }.preview-link-card div { display: grid; gap: 4px; flex: 1; }.preview-link-card strong { font-size: 9px; }.preview-link-card small { overflow-wrap: anywhere; color: #929087; font-size: 9px; }.lock-icon { color: #aaa69d; font-size: 18px; }.preview-footnote { margin: 11px 0 0; color: #99968e; font-size: 8px; line-height: 1.6; }.preview-footnote span { margin-right: 5px; color: #a67965; }
.share-results { margin-top: 32px; padding: 25px 28px; border: 1px solid #e8e5dd; background: #fbfaf7; box-shadow: 0 12px 40px rgba(48,45,37,.035); scroll-margin-top: 24px; }.results-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }.results-heading p:last-child { margin: 8px 0 0; color: var(--muted); font-size: 10px; }.secondary-button,.copy-button,.share-link-button { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid #dedbd2; background: #fff; color: var(--ink); font-size: 9px; font-weight: 600; cursor: pointer; }.secondary-button:hover,.copy-button:hover,.share-link-button:hover { border-color: var(--accent); color: var(--accent); }
.base-link-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 19px; padding: 13px; border: 1px solid #e8e5dd; background: #fff; }.base-link-row div { display: grid; gap: 5px; min-width: 0; }.base-link-row strong { font-size: 9px; }.base-link-row a { overflow-wrap: anywhere; color: #77766f; font-size: 9px; }.guest-link-list { display: grid; gap: 8px; margin-top: 10px; }.guest-share-row { display: flex; align-items: center; gap: 12px; padding: 12px 13px; border: 1px solid #e8e5dd; background: #fff; }.guest-share-info { display: grid; gap: 5px; flex: 1; min-width: 0; }.guest-share-info strong { font-size: 10px; }.guest-share-info a { overflow: hidden; color: #77766f; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.guest-share-actions { display: flex; gap: 6px; }.whatsapp-button { color: #39734d; }.guest-empty-note { margin: 13px 0 0; padding: 12px; background: #f3f0e9; color: #77766f; font-size: 10px; line-height: 1.6; }
.site-footer { min-height: 75px; display: flex; align-items: center; justify-content: space-between; padding: 0 7.1%; border-top: 1px solid var(--line); color: #8e8b82; font-size: 9px; }.footer-brand { color: var(--ink); font-size: 17px; }.footer-brand .brand-mark { width: 24px; height: 24px; font-size: 17px; }.site-footer>span:last-child { letter-spacing: 1px; font-size: 8px; }.site-footer>span:last-child i { padding-left: 5px; color: var(--accent); font-style: normal; }

.public-shell { min-height: 100vh; display: grid; place-items: center; padding: 40px 18px; background: #f3f0e9; }.public-card { width: min(100%,560px); overflow: hidden; background: #fbfaf6; box-shadow: 0 22px 80px rgba(50,45,38,.13); }.public-cover { position: relative; min-height: 590px; display: flex; align-items: center; flex-direction: column; padding: 53px 28px 36px; overflow: hidden; color: #f5f0e7; background: #69715f; text-align: center; }.public-cover::before,.public-cover::after { position: absolute; width: 360px; height: 360px; border: 1px solid rgba(245,240,224,.2); border-radius: 50%; content: ""; }.public-cover::before { top: -190px; right: -180px; }.public-cover::after { bottom: -240px; left: -190px; }.public-eyebrow,.public-recipient { z-index: 1; font-size: 8px; letter-spacing: 2px; }.public-recipient { margin-top: 17px; color: #f0c5ad; font-size: 10px; letter-spacing: .5px; }.public-photo { z-index: 1; width: 170px; height: 206px; margin: 24px 0 19px; overflow: hidden; border: 4px solid rgba(244,239,225,.58); border-radius: 49% 49% 2px 2px; background: linear-gradient(145deg,#dbc7b2,#958572); }.public-photo img { width: 100%; height: 100%; object-fit: cover; }.public-names { z-index: 1; display: flex; flex-direction: column; font-family: var(--serif); font-size: clamp(30px,8vw,42px); line-height: 1.07; }.public-names em { color: #e7b9a2; font-size: 21px; }.public-event { z-index: 1; margin-top: 20px; font-size: 8px; letter-spacing: 1.6px; }.public-message { max-width: 390px; z-index: 1; margin: 25px 0 0; color: rgba(255,255,255,.84); font-family: var(--serif); font-size: 14px; font-style: italic; line-height: 1.7; }.public-location { z-index: 1; margin: auto 0 0; font-size: 9px; letter-spacing: 1px; }.public-footer { padding: 27px 18px 30px; color: #77746a; text-align: center; }.public-footer span { font-size: 7px; letter-spacing: 2px; }.public-footer strong { display: block; margin: 6px 0 12px; color: var(--accent); font-family: var(--serif); font-size: 29px; font-style: italic; font-weight: 400; }.not-found { min-height: 100vh; display: grid; place-items: center; padding: 24px; text-align: center; }.not-found h1 { font-family: var(--serif); font-weight: 400; }.not-found p { color: var(--muted); line-height: 1.7; }.not-found a { color: var(--accent); font-size: 12px; text-decoration: underline; }
@media (min-width:1440px) { .hero { padding-left: 145px; padding-right: 145px; } }
@media (max-width:900px) { .site-header { padding: 0 5%; }.header-note { display: none; }.hero { padding: 75px 6% 60px; gap: 2%; }.hero-art { height: 350px; }.orbit-one { width: 335px; height: 335px; }.orbit-two { width: 280px; height: 280px; }.feature-strip { margin: 0 5%; }.builder-section { padding-top: 70px; }.builder-grid { gap: 24px; }.editor-card { padding: 23px 20px; }.preview-cover { min-height: 295px; } }
@media (max-width:650px) {
  .site-header { height: 66px; padding: 0 20px; }.brand { font-size: 19px; }.header-links { display: none; }.header-cta { padding: 9px 11px; font-size: 9px; }
  .hero { min-height: 0; padding: 56px 25px 41px; grid-template-columns: 1fr; gap: 27px; }.hero-copy { text-align: center; }.hero-copy .eyebrow { justify-content: center; }.hero h1 { font-size: 49px; letter-spacing: -1.7px; }.hero-description { max-width: 360px; margin: 17px auto 20px; font-size: 11px; }.hero-proof { justify-content: center; margin-top: 25px; }
  .hero-art { width: min(100%,350px); height: 310px; }.hero-photo { left: 17%; width: 67%; height: 90%; }.orbit-one { width: 300px; height: 300px; left: 7%; }.orbit-two { width: 255px; height: 255px; left: 13%; }.floating-note { padding: 9px 10px; }.note-top { left: 0; top: 17%; }.note-bottom { right: -1%; bottom: 14%; }.hero-stamp { right: 0; width: 55px; height: 55px; }.sun-disc { width: 57px; height: 57px; }.hero-side-label { display: none; }
  .feature-strip { margin: 0 20px; padding: 15px 3px; grid-template-columns: 1fr 1fr; row-gap: 18px; }.feature-strip>div:not(.strip-flower) { gap: 8px; }.feature-strip>div:nth-child(3) { grid-column: 1; }.strip-flower { display: none; }.feature-strip strong { font-size: 9px; }.feature-strip small { font-size: 8px; }
  .builder-section { padding: 63px 19px 70px; }.section-intro { grid-template-columns: 1fr; row-gap: 12px; margin-bottom: 24px; }.section-intro .eyebrow { grid-column: auto; margin-bottom: 2px; }.section-intro h2 { font-size: 39px; }.section-intro>p:last-of-type { max-width: 350px; margin: 0; }.step-indicator { grid-column: 1; grid-row: auto; margin: 3px 0 0; }.builder-grid { grid-template-columns: 1fr; gap: 27px; }.editor-card { padding: 21px 17px; }.name-fields { grid-template-columns: 1fr 18px 1fr; gap: 7px; }.field>span { font-size: 9px; }.detail-fields { gap: 10px; }.preview-column { position: static; }.preview-cover { min-height: 322px; }.share-results { padding: 20px 15px; }.results-heading { align-items: flex-start; flex-direction: column; }.guest-share-row { align-items: flex-start; flex-wrap: wrap; }.guest-share-actions { margin-left: auto; }.guest-share-info { flex-basis: calc(100% - 28px); }.base-link-row { align-items: flex-start; }.base-link-row .copy-button { flex-shrink: 0; }.site-footer { min-height: 68px; padding: 0 19px; }.site-footer>span:nth-child(2) { display: none; }
  .public-shell { padding: 0; }.public-card { min-height: 100vh; }.public-cover { min-height: 75vh; padding-top: 48px; }.public-photo { width: 153px; height: 183px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }

.form-section-label { margin: 0 0 14px; color: var(--accent); font-size: 8px; font-weight: 700; letter-spacing: 1.4px; }
.event-editor { min-width: 0; margin: 0 0 12px; padding: 14px; border: 1px solid #e8e5dd; }
.event-editor legend { padding: 0 6px; color: var(--ink); font-family: var(--serif); font-size: 16px; }
.event-editor-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.event-editor-grid .field { gap: 6px; }
.event-editor-grid .field input { padding: 0 7px; }
.event-editor-grid .field > span { font-size: 9px; }
.event-address { grid-column: 1/-1; }
.event-card { padding: 19px 21px; border-bottom: 1px solid #e8e5dd; }
.event-card h2 { margin: 0 0 12px; color: var(--accent); font-family: var(--serif); font-size: 20px; font-weight: 400; }
.event-card p { margin: 0 0 7px; color: #5e6057; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.event-card time { font-variant-numeric: tabular-nums; }
.event-card .event-venue { color: var(--ink); font-weight: 600; }
.map-link { display: inline-flex; min-height: 40px; align-items: center; gap: 7px; margin-top: 7px; padding: 0 12px; border: 1px solid #c8c8bc; color: #364637; font-size: 11px; font-weight: 600; }
.map-link:hover,.map-link:focus-visible { border-color: #445345; background: #f0f1eb; }
.public-story { padding: 26px 26px 20px; background: #f6f3eb; text-align: center; }
.public-story h2,.rsvp-section h2 { margin: 0 0 12px; color: var(--accent); font-family: var(--serif); font-size: 25px; font-weight: 400; }
.public-story p { max-width: 430px; margin: auto; color: #5e6057; font-family: var(--serif); font-size: 14px; line-height: 1.8; white-space: pre-line; overflow-wrap: anywhere; }
.rsvp-section { padding: 26px; }
.rsvp-section > p { margin: 0 0 17px; color: #686a62; font-size: 11px; line-height: 1.7; }
.rsvp-form { display: grid; gap: 13px; }
.rsvp-form .field { gap: 7px; }
.rsvp-form .field > span { font-size: 11px; }
.rsvp-form .field input,.rsvp-form .field textarea,.rsvp-form .field select { width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid #d5d3ca; border-radius: 0; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.rsvp-form .field textarea { min-height: 78px; resize: vertical; }
.rsvp-form .field input:focus,.rsvp-form .field textarea:focus,.rsvp-form .field select:focus { outline: 2px solid #52634f; outline-offset: 2px; }
.rsvp-options { display: flex; flex-wrap: wrap; gap: 12px; }
.rsvp-options label { display: flex; min-height: 42px; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid #d5d3ca; background: #fff; color: #4f5149; font-size: 11px; cursor: pointer; }
.rsvp-options input { accent-color: #52634f; }
.rsvp-submit { width: 100%; min-height: 45px; border: 0; background: #354336; color: white; font-size: 11px; font-weight: 600; cursor: pointer; }
.rsvp-submit:hover,.rsvp-submit:focus-visible { background: #4e604d; }
.rsvp-submit:disabled { opacity: .7; cursor: wait; }
.rsvp-privacy { margin: -3px 0 0 !important; color: #73756d !important; font-size: 9px !important; }
.rsvp-status { margin: 0; padding: 11px 12px; border-left: 3px solid #52634f; background: #eff3eb; color: #344632; font-size: 11px; line-height: 1.6; }
.rsvp-status.is-error { border-color: #a44c3f; background: #fbefec; color: #87392e; }
.public-footer { border-top: 1px solid #e8e5dd; }
@media (max-width:650px) {
  .event-editor { padding: 11px; }
  .event-editor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .event-address { grid-column: 1/-1; }
  .event-card { padding: 17px; }
  .public-story,.rsvp-section { padding: 23px 18px; }
}
