:root {
  --fineart-bg: #eae3d6;
  --fineart-silk: #f4eee2;
  --fineart-paper: #fbf9f4;
  --fineart-paper-pure: #fefdfa;
  --burgundy: #681d28;
  --burgundy-deep: #4e121b;
  --burgundy-light: #872937;
  --taupe-text: #5c4c44;
  --taupe-muted: #8c7b72;
  --taupe-border: #ded5c5;
  --bronze-wax: #b89258;
  --bronze-dark: #826336;
  --bronze-light: #e0be88;
  
  --font-serif: 'Cormorant Garamond', serif;
  --font-display: 'Playfair Display', serif;
  --font-roman: 'Cinzel', serif;
  --font-script: 'Pinyon Script', cursive;
  --font-sans: 'Be Vietnam Pro', sans-serif;
}

body {
  background: var(--fineart-bg);
  color: var(--taupe-text);
  font-family: var(--font-sans);
  overflow-x: hidden;
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

[hidden] {
  display: none !important;
}

/* ==================== HEADER (MINIMALIST FINE ART) ==================== */
.public-home .sidebar {
  display: none;
}
.public-home .shell {
  margin: 0;
}

.public-home header {
  height: 80px;
  padding: 0 6%;
  background: rgba(248, 244, 236, 0.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(210, 198, 180, 0.5);
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.public-monogram {
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 2px;
  color: var(--burgundy);
  text-decoration: none;
  display: flex;
  align-items: center;
}
.public-monogram span {
  font-family: var(--font-script);
  font-size: 28px;
  color: var(--bronze-wax);
  margin: 0 4px;
}

.public-links {
  display: flex;
  gap: 28px;
}
.public-links button {
  background: none;
  border: 0;
  padding: 6px 0;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--taupe-text);
  cursor: pointer;
  position: relative;
  transition: color 0.3s;
}
.public-links button:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--burgundy);
  transition: width 0.3s ease;
}
.public-links button:hover {
  color: var(--burgundy);
}
.public-links button:hover:after {
  width: 100%;
}

.header-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}
.public-home header .outline {
  border: 1px solid var(--burgundy);
  color: var(--burgundy);
  font-family: var(--font-sans);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border-radius: 2px;
  padding: 8px 16px;
  background: transparent;
  transition: all 0.3s;
}
.public-home header .outline:hover {
  background: var(--burgundy);
  color: #ffffff;
}

/* ==================== HERO SECTION: FINE ART STATIONERY FLATLAY ==================== */
.stationery-hero {
  position: relative;
  padding: 60px 4% 100px;
  background: radial-gradient(circle at 50% 20%, #f4eee2 0%, #ebe3d4 60%, #ded3c0 100%);
  min-height: 90vh;
  box-sizing: border-box;
}

.silk-linen-texture {
  position: absolute;
  inset: 0;
  background-image: 
    radial-gradient(circle at 10% 20%, rgba(255, 255, 255, 0.45), transparent 40%),
    radial-gradient(circle at 90% 80%, rgba(180, 160, 140, 0.15), transparent 50%);
  pointer-events: none;
}

.stationery-container {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.stationery-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 45px;
}
.back-pill {
  font-family: var(--font-serif);
  font-size: 20px;
  font-style: italic;
  color: var(--burgundy);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
}
.back-arrow {
  font-size: 18px;
}
.brand-subtle {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--taupe-muted);
  text-transform: uppercase;
}

/* ==================== FLATLAY SUITE COMPOSITION ==================== */
.flatlay-suite {
  display: flex;
  flex-direction: column;
  gap: 35px;
  margin-bottom: 70px;
}

.flatlay-row {
  display: grid;
  gap: 30px;
  align-items: start;
}
.top-row {
  grid-template-columns: 1fr 1.35fr;
}
.main-row {
  grid-template-columns: 1.25fr 1fr;
}

.stationery-piece {
  background: var(--fineart-paper);
  border-radius: 4px;
  box-shadow: 0 15px 35px rgba(90, 70, 55, 0.1), 0 3px 8px rgba(90, 70, 55, 0.05);
  position: relative;
  box-sizing: border-box;
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.stationery-piece:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 45px rgba(90, 70, 55, 0.14), 0 5px 12px rgba(90, 70, 55, 0.07);
}

/* 1. V-Flap Envelope */
.envelope-card {
  height: 240px;
  background: #fbf9f4;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(220, 210, 195, 0.6);
}
.envelope-v-flap {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 120px;
  background: #f5efe3;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  border-bottom: 1px solid rgba(200, 185, 165, 0.4);
  box-shadow: 0 4px 12px rgba(80, 60, 45, 0.06);
}
.envelope-monogram {
  position: absolute;
  bottom: 25px;
  right: 30px;
  text-align: right;
  color: var(--burgundy);
}
.envelope-monogram .mono-symbol {
  font-size: 22px;
  display: block;
  opacity: 0.8;
}
.envelope-monogram small {
  font-family: var(--font-sans);
  font-size: 8px;
  letter-spacing: 1.5px;
  color: var(--taupe-muted);
}

/* 2. Blind Debossed Save The Date Card */
.debossed-card {
  padding: 40px;
  min-height: 240px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid rgba(220, 210, 195, 0.6);
}
.debossed-names {
  display: flex;
  flex-direction: column;
}
.deboss-text {
  font-family: var(--font-serif);
  font-size: clamp(26px, 3.2vw, 44px);
  font-weight: 600;
  letter-spacing: 2px;
  line-height: 1.15;
  color: #eae1cf;
  text-shadow: 1px 1px 0px #ffffff, -1px -1px 1px rgba(90, 70, 55, 0.25);
}

.debossed-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 25px;
}
.invite-line {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.line-txt {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--burgundy);
  font-weight: 600;
}
.line-underline {
  width: 80px;
  height: 1px;
  background: var(--burgundy);
}

.vertical-date-column {
  display: flex;
  flex-direction: column;
  text-align: right;
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.05;
  color: var(--burgundy);
  letter-spacing: 1px;
}

/* 3. Formal Ceremony Announcement Card (Card Trái) */
.announcement-card {
  padding: 45px 40px;
  border: 1px solid rgba(220, 210, 195, 0.6);
}
.family-parents-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 35px;
}
.parent-col .side-lbl {
  font-family: var(--font-sans);
  font-size: 8px;
  letter-spacing: 2px;
  color: var(--burgundy);
  font-weight: 700;
  display: block;
  margin-bottom: 6px;
}
.parent-col .parent-name {
  font-family: var(--font-serif);
  font-size: 14px;
  color: var(--taupe-text);
  margin: 0 0 3px;
}
.parent-col.right {
  text-align: right;
}

.announce-middle {
  text-align: center;
}
.announce-kicker {
  font-family: var(--font-roman);
  font-size: 9px;
  letter-spacing: 2.5px;
  color: var(--taupe-muted);
  margin: 0 0 4px;
}
.announce-sub {
  font-family: var(--font-sans);
  font-size: 10px;
  letter-spacing: 1px;
  color: var(--taupe-text);
  margin: 0 0 25px;
}

.couple-names-formal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 30px;
}
.person-line {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.person-title {
  font-family: var(--font-serif);
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 600;
  color: var(--burgundy);
  letter-spacing: 1px;
}
.rank-tag {
  font-family: var(--font-sans);
  font-size: 8px;
  letter-spacing: 1.5px;
  color: var(--taupe-muted);
}
.calligraphy-ampersand {
  font-family: var(--font-script);
  font-size: 44px;
  color: var(--bronze-wax);
  line-height: 0.8;
  margin: 2px 0;
}

.ceremony-time-wrap {
  border-top: 1px solid rgba(220, 210, 195, 0.6);
  padding-top: 25px;
}
.ceremony-type {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 1.5px;
  color: var(--taupe-muted);
  margin: 0 0 4px;
}
.ceremony-date-sub {
  font-family: var(--font-roman);
  font-size: 10px;
  letter-spacing: 1.5px;
  color: var(--taupe-text);
  margin: 0 0 8px;
}
.ceremony-highlight-date {
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: 700;
  color: var(--burgundy);
  letter-spacing: 2px;
  margin: 0 0 4px;
}
.lunar-date {
  font-family: var(--font-serif);
  font-size: 12px;
  font-style: italic;
  color: var(--taupe-muted);
}

/* 4. Arched Invitation Card with Vellum Band & Wax Seal (Card Phải) */
.arched-card {
  border-radius: 180px 180px 4px 4px;
  padding: 50px 35px 40px;
  text-align: center;
  border: 1px solid rgba(220, 210, 195, 0.6);
}
.arch-heading h2 {
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 600;
  color: var(--burgundy);
  letter-spacing: 2px;
  margin: 0;
  line-height: 1.3;
}
.arch-divider-line {
  width: 1px;
  height: 25px;
  background: var(--taupe-border);
  margin: 12px auto;
}

.arch-invitation-text {
  font-family: var(--font-sans);
  font-size: 10px;
  letter-spacing: 1.5px;
  color: var(--taupe-text);
  line-height: 1.8;
  margin: 0 0 25px;
}

/* Vellum Belly Band & Bronze Wax Seal */
.vellum-belly-band {
  margin: 25px -35px;
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(5px);
  border-top: 1px solid rgba(215, 200, 180, 0.6);
  border-bottom: 1px solid rgba(215, 200, 180, 0.6);
  padding: 16px 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vellum-band-pattern {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(184, 146, 88, 0.25) 1px, transparent 1px);
  background-size: 12px 12px;
  opacity: 0.5;
}

.fineart-wax-seal {
  position: relative;
  z-index: 3;
}
.wax-seal-outer {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #d1ae74 0%, #9e763b 60%, #694a1b 100%);
  box-shadow: 0 6px 15px rgba(90, 65, 30, 0.35), inset 0 2px 4px rgba(255, 255, 255, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
}
.wax-seal-inner {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px dashed rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fffaf0;
}
.wax-flower-svg {
  width: 26px;
  height: 26px;
}

.arch-venue-info {
  margin-top: 25px;
}
.arch-venue-title {
  font-family: var(--font-serif);
  font-size: 19px;
  font-weight: 600;
  color: var(--burgundy);
  margin: 0 0 6px;
}
.arch-venue-address {
  font-family: var(--font-sans);
  font-size: 11px;
  color: var(--taupe-muted);
  margin: 0 0 20px;
  line-height: 1.6;
}
.arch-presence-vow {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 1.5px;
  color: var(--taupe-text);
  line-height: 1.8;
  margin: 0 0 20px;
}
.arch-schedule-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-roman);
  font-size: 9px;
  letter-spacing: 1px;
  color: var(--burgundy);
  font-weight: 600;
  border-top: 1px solid var(--taupe-border);
  padding-top: 18px;
}
.arch-schedule-bar i {
  color: var(--bronze-wax);
  font-style: normal;
}

.arch-cta-wrap {
  margin-top: 25px;
}
.btn-fineart-outline {
  display: inline-block;
  border: 1px solid var(--burgundy);
  color: var(--burgundy);
  font-family: var(--font-sans);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 10px 22px;
  border-radius: 2px;
  text-decoration: none;
  transition: all 0.3s;
}
.btn-fineart-outline:hover {
  background: var(--burgundy);
  color: #ffffff;
}

/* ==================== EDITORIAL PORTRAIT SHOWCASE ==================== */
.portrait-editorial-showcase {
  margin: 50px auto 40px;
}
.editorial-mat-frame {
  background: var(--fineart-paper);
  border: 1px solid rgba(220, 210, 195, 0.7);
  box-shadow: 0 20px 45px rgba(90, 70, 55, 0.1);
  padding: 20px;
  border-radius: 4px;
}
.editorial-img-wrap {
  height: 580px;
  overflow: hidden;
  border-radius: 2px;
}
.editorial-portrait-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s ease;
}
.editorial-mat-frame:hover .editorial-portrait-img {
  transform: scale(1.03);
}

.editorial-legend {
  padding: 25px 15px 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.legend-title {
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 600;
  color: var(--burgundy);
  display: block;
  margin-bottom: 6px;
}
.legend-vow {
  font-family: var(--font-serif);
  font-size: 15px;
  font-style: italic;
  color: var(--taupe-muted);
  margin: 0;
}
.demo-fineart-pill {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--bronze-wax);
  border: 1px solid var(--bronze-wax);
  padding: 5px 12px;
  border-radius: 20px;
}

/* ==================== COUNTDOWN (MINIMALIST FINE ART) ==================== */
.fineart-countdown-card {
  background: var(--fineart-paper);
  border: 1px solid rgba(220, 210, 195, 0.6);
  box-shadow: 0 15px 35px rgba(90, 70, 55, 0.08);
  border-radius: 4px;
  padding: 40px 30px;
  text-align: center;
  margin-top: 30px;
}
.countdown-heading .cd-kicker {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 3px;
  color: var(--taupe-muted);
  display: block;
  margin-bottom: 6px;
}
.countdown-heading h3 {
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 600;
  color: var(--burgundy);
  margin: 0 0 6px;
}
.countdown-heading p {
  font-family: var(--font-sans);
  font-size: 12px;
  color: var(--taupe-muted);
  margin: 0 0 25px;
}

.countdown-grid-minimal {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 25px;
}
.cd-block {
  text-align: center;
}
.cd-digit {
  font-family: var(--font-serif);
  font-size: clamp(34px, 4.5vw, 52px);
  font-weight: 600;
  color: var(--burgundy);
  line-height: 1;
  display: block;
}
.cd-label {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 1.5px;
  color: var(--taupe-muted);
  margin-top: 6px;
  display: block;
}
.cd-sep {
  font-family: var(--font-serif);
  font-size: 28px;
  color: var(--taupe-border);
}

/* ==================== FINE ART SECTION COMMON ==================== */
.fineart-section {
  padding: 100px 6% 110px;
  background: var(--fineart-bg);
}
.fineart-section-head {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 60px;
}
.head-kicker {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 3px;
  color: var(--taupe-muted);
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
}
.head-title {
  font-family: var(--font-serif);
  font-size: clamp(32px, 3.8vw, 48px);
  font-weight: 600;
  color: var(--burgundy);
  margin: 0 0 15px;
  letter-spacing: 0.5px;
}
.head-title i {
  font-family: var(--font-script);
  font-size: 1.25em;
  color: var(--bronze-wax);
}
.head-line {
  width: 45px;
  height: 1px;
  background: var(--burgundy);
  margin: 0 auto 16px;
}
.head-sub {
  font-family: var(--font-serif);
  font-size: 15px;
  font-style: italic;
  color: var(--taupe-muted);
  margin: 0;
}

.fineart-card {
  background: var(--fineart-paper);
  border: 1px solid rgba(220, 210, 195, 0.7);
  box-shadow: 0 15px 35px rgba(90, 70, 55, 0.08);
  border-radius: 4px;
  box-sizing: border-box;
}

/* ==================== THE COUPLE (FINE ART) ==================== */
.couple-fineart-grid {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
.couple-paper-card {
  padding: 30px;
}
.couple-photo-mat {
  position: relative;
  height: 420px;
  overflow: hidden;
  border-radius: 2px;
  margin-bottom: 25px;
}
.couple-photo-mat img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.couple-paper-card:hover .couple-photo-mat img {
  transform: scale(1.04);
}
.deboss-tag {
  position: absolute;
  top: 15px;
  left: 15px;
  background: rgba(251, 249, 244, 0.9);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(220, 210, 195, 0.8);
  padding: 5px 14px;
  font-family: var(--font-sans);
  font-size: 8px;
  letter-spacing: 2px;
  color: var(--burgundy);
  font-weight: 600;
}

.couple-card-body h3 {
  font-family: var(--font-serif);
  font-size: 28px;
  color: var(--burgundy);
  margin: 0 0 6px;
  font-weight: 600;
}
.role-desc {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--taupe-muted);
  margin: 0 0 15px;
  text-transform: uppercase;
}
.sep-line {
  width: 35px;
  height: 1px;
  background: var(--bronze-wax);
  margin-bottom: 16px;
}
.bio-quote {
  font-family: var(--font-serif);
  font-size: 15px;
  font-style: italic;
  color: var(--taupe-text);
  line-height: 1.8;
  margin: 0;
}

/* ==================== TIMELINE ==================== */
.timeline-fineart-stream {
  max-width: 850px;
  margin: 0 auto;
  position: relative;
}
.timeline-center-rule {
  position: absolute;
  left: 110px;
  top: 20px;
  bottom: 20px;
  width: 1px;
  background: var(--taupe-border);
}
.timeline-entry {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 30px;
  margin-bottom: 35px;
  position: relative;
  align-items: center;
}
.entry-time {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--burgundy);
  text-align: right;
  letter-spacing: 1px;
}
.entry-card {
  padding: 24px 30px;
  position: relative;
}
.entry-card h4 {
  font-family: var(--font-serif);
  font-size: 22px;
  color: var(--burgundy);
  margin: 0 0 8px;
  font-weight: 600;
}
.entry-card p {
  font-family: var(--font-sans);
  font-size: 13px;
  color: var(--taupe-text);
  line-height: 1.7;
  margin: 0;
}
.entry-seal-pill {
  position: absolute;
  top: 15px;
  right: 15px;
  font-family: var(--font-sans);
  font-size: 8px;
  letter-spacing: 1.5px;
  color: var(--bronze-wax);
  border: 1px solid var(--bronze-wax);
  padding: 3px 10px;
  border-radius: 12px;
}

/* ==================== GALLERY (EDITORIAL) ==================== */
.editorial-gallery-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
}
.gallery-fineart-item {
  margin: 0;
}
.gallery-fineart-item.tall {
  grid-column: span 2;
}

.gallery-photo-btn {
  width: 100%;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  display: block;
}
.photo-paper-wrapper {
  background: var(--fineart-paper);
  border: 1px solid rgba(220, 210, 195, 0.7);
  box-shadow: 0 15px 35px rgba(90, 70, 55, 0.08);
  padding: 12px;
  border-radius: 4px;
  position: relative;
  overflow: hidden;
  height: 400px;
}
.photo-paper-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s ease;
}
.gallery-photo-btn:hover .photo-paper-wrapper img {
  transform: scale(1.05);
}

.photo-caption-overlay {
  position: absolute;
  inset: 12px;
  background: linear-gradient(180deg, transparent 40%, rgba(55, 20, 25, 0.88) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  color: #ffffff;
  opacity: 0.9;
}
.caption-text {
  font-family: var(--font-serif);
  font-size: 17px;
  font-style: italic;
  margin: 0 0 6px;
}
.caption-zoom {
  font-family: var(--font-sans);
  font-size: 10px;
  letter-spacing: 1px;
  color: var(--fineart-silk);
}

.gallery-tip-box {
  max-width: 700px;
  margin: 45px auto 0;
  text-align: center;
  font-size: 12px;
  color: var(--taupe-muted);
}

/* ==================== WISHES GUESTBOOK ==================== */
.wishes-fineart-layout {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 35px;
  align-items: start;
}
.wishes-paper-card, .wishes-stream-card {
  padding: 35px;
}
.wishes-paper-card h3, .wishes-stream-card h3 {
  font-family: var(--font-serif);
  font-size: 25px;
  font-weight: 600;
  color: var(--burgundy);
  margin: 0 0 6px;
}
.wishes-subtitle {
  font-size: 12px;
  color: var(--taupe-muted);
  margin: 0 0 25px;
}

.form-group-fineart {
  margin-bottom: 20px;
}
.form-group-fineart label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  color: var(--taupe-text);
  margin-bottom: 8px;
}
.form-group-fineart input, .form-group-fineart textarea {
  width: 100%;
  border: 1px solid var(--taupe-border);
  border-radius: 2px;
  padding: 12px 14px;
  font-family: var(--font-sans);
  font-size: 13px;
  color: var(--taupe-text);
  background: #ffffff;
  box-sizing: border-box;
  transition: all 0.3s;
}
.form-group-fineart input:focus, .form-group-fineart textarea:focus {
  outline: none;
  border-color: var(--burgundy);
  box-shadow: 0 0 8px rgba(104, 29, 40, 0.15);
}

.btn-fineart-submit {
  width: 100%;
  background: var(--burgundy);
  color: #ffffff;
  border: 1px solid var(--burgundy);
  padding: 13px;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 2px;
  transition: all 0.3s;
}
.btn-fineart-submit:hover {
  background: var(--burgundy-deep);
  transform: translateY(-2px);
}

.wishes-stream {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-height: 440px;
  overflow-y: auto;
  padding-right: 6px;
}
.wish-item-fineart {
  background: #ffffff;
  border: 1px solid rgba(220, 210, 195, 0.6);
  padding: 18px 22px;
  border-radius: 2px;
}
.wish-head {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
}
.wish-head strong {
  font-family: var(--font-serif);
  font-size: 17px;
  color: var(--burgundy);
}
.wish-date {
  font-size: 10px;
  color: var(--taupe-muted);
}
.wish-item-fineart p {
  font-family: var(--font-serif);
  font-size: 15px;
  font-style: italic;
  color: var(--taupe-text);
  line-height: 1.7;
  margin: 0;
}

/* ==================== GIFT / HỘP HỶ SỰ ==================== */
.gift-fineart-card {
  max-width: 850px;
  margin: 0 auto;
  padding: 50px 40px;
  text-align: center;
}
.gift-seal-badge {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}
.gift-title {
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 600;
  color: var(--burgundy);
  margin: 0 0 10px;
}
.gift-desc {
  max-width: 600px;
  margin: 0 auto 35px;
  font-size: 13px;
  color: var(--taupe-muted);
  line-height: 1.8;
}

.bank-cards-fineart {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}
.bank-box {
  background: #ffffff;
  border: 1px solid rgba(220, 210, 195, 0.7);
  padding: 25px;
  border-radius: 3px;
  text-align: center;
}
.bank-recipient {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 1.5px;
  color: var(--burgundy);
  font-weight: 700;
  display: block;
  margin-bottom: 6px;
}
.bank-org {
  font-size: 12px;
  color: var(--taupe-muted);
  margin: 0 0 10px;
}
.bank-acc {
  font-family: var(--font-roman);
  font-size: 22px;
  letter-spacing: 2px;
  color: var(--burgundy);
  display: block;
  margin-bottom: 6px;
}
.bank-holder {
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--taupe-text);
  font-weight: 600;
}

/* ==================== CLOSING & FOOTER ==================== */
.section-closing-fineart {
  padding: 90px 4% 100px;
  background: radial-gradient(circle at 50% 30%, #f4eee2 0%, #ebe3d4 70%, #ded3c0 100%);
  text-align: center;
}
.closing-wax {
  display: flex;
  justify-content: center;
  margin-bottom: 25px;
}
.closing-sub {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 3px;
  color: var(--taupe-muted);
  margin-bottom: 12px;
}
.closing-names {
  font-family: var(--font-serif);
  font-size: clamp(32px, 3.8vw, 52px);
  color: var(--burgundy);
  margin: 0 0 18px;
  font-weight: 600;
}
.closing-names i {
  font-family: var(--font-script);
  font-size: 1.25em;
  color: var(--bronze-wax);
}
.closing-sep {
  width: 40px;
  height: 1px;
  background: var(--burgundy);
  margin: 0 auto 16px;
}
.closing-note {
  font-family: var(--font-serif);
  font-size: 16px;
  font-style: italic;
  color: var(--taupe-muted);
}

.public-home footer {
  background: #f8f4ec;
  padding: 25px 6%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--taupe-border);
  color: var(--taupe-muted);
}
.public-home .footer-names {
  font-family: var(--font-serif);
  font-size: 20px;
  color: var(--burgundy);
  font-style: italic;
}
.public-home footer > span:last-child {
  font-family: var(--font-sans);
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--taupe-muted);
}

/* ==================== FLOATING CONTACT BUTTONS (AS IN SAMPLE) ==================== */
.floating-contact-buttons {
  position: fixed;
  bottom: 30px;
  right: 25px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  z-index: 999;
}
.float-btn {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.22);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.float-btn:hover {
  transform: scale(1.1);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
}

.float-call {
  background: #25d366;
  color: #ffffff;
}
.float-zalo {
  background: #0068ff;
  color: #ffffff;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.5px;
}

/* ==================== RESPONSIVE DESIGN ==================== */
@media (max-width: 992px) {
  .top-row, .main-row {
    grid-template-columns: 1fr;
  }
  .couple-fineart-grid {
    grid-template-columns: 1fr;
  }
  .wishes-fineart-layout {
    grid-template-columns: 1fr;
  }
  .editorial-gallery-grid {
    grid-template-columns: 1fr 1fr;
  }
  .gallery-fineart-item.tall {
    grid-column: span 1;
  }
  .timeline-center-rule {
    left: 20px;
  }
  .timeline-entry {
    grid-template-columns: 1fr;
    gap: 8px;
    padding-left: 35px;
  }
  .entry-time {
    text-align: left;
  }
}

@media (max-width: 600px) {
  .public-home header {
    padding: 0 4%;
    height: 70px;
  }
  .public-links {
    display: none;
  }
  .stationery-hero {
    padding: 30px 3% 60px;
  }
  .family-parents-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .parent-col.right {
    text-align: left;
  }
  .person-line {
    flex-direction: column;
    align-items: center;
    gap: 2px;
  }
  .bank-cards-fineart {
    grid-template-columns: 1fr;
  }
  .editorial-gallery-grid {
    grid-template-columns: 1fr;
  }
  .countdown-grid-minimal {
    gap: 12px;
  }
  .editorial-img-wrap {
    height: 380px;
  }
}
body.public-home{font-family:Roboto,Arial,sans-serif!important}body.public-home h1,body.public-home h2,body.public-home h3,body.public-home h4{font-family:'Playfair Display',Georgia,serif!important}body.public-home p,body.public-home small,body.public-home button,body.public-home nav{font-family:Roboto,Arial,sans-serif!important}
body:not(.public-home),body:not(.public-home) *{font-family:Roboto,Arial,sans-serif!important;letter-spacing:normal!important}body:not(.public-home){font-size:14px}body:not(.public-home) input,body:not(.public-home) select,body:not(.public-home) button{font-size:14px;min-height:44px}body:not(.public-home) h1{font-size:28px}body:not(.public-home) h2{font-size:22px}body:not(.public-home) label{font-size:14px}body:not(.public-home) .settings-panel{max-width:1000px}
.family-mobile{display:grid;gap:14px}.family-root{background:#fffdf8;border:1px solid var(--line);border-radius:9px;padding:15px}.family-root summary{cursor:pointer;font-size:16px;padding:10px;line-height:1.6}.family-root .person{margin-top:15px}.family-root .children{padding-left:22px;border-left:1px solid #cfb78d;margin-left:12px}.family-root .children:before{display:none}.family-root .person button{min-height:44px;padding:10px}.family-root .person strong{font-size:15px}.family-root .person small{font-size:12px}.family-root .avatar{display:none}
@media(max-width:720px){body:not(.public-home) .form-grid{grid-template-columns:1fr}.family-root{padding:10px}.family-root .children{padding-left:12px;margin-left:4px}body:not(.public-home) nav a span{font-size:13px}}
/* Typography edition: Vietnamese-first, locally served and deliberately restrained. */
:root{--font-serif:'Noto Serif',Georgia,serif;--font-display:'Noto Serif',Georgia,serif;--font-roman:'Be Vietnam Pro',Arial,sans-serif;--font-script:'Noto Serif',Georgia,serif;--font-sans:'Be Vietnam Pro',Arial,sans-serif}
body.public-home{font-family:var(--font-sans)!important;font-size:15px;line-height:1.8;color:#51423c;text-rendering:optimizeLegibility}
body.public-home *{font-synthesis:none}
body.public-home :is(p,small,button,nav,label,input,textarea,.side-lbl,.rank-tag,.announce-kicker,.line-txt,.ceremony-type,.ceremony-date-sub,.entry-time,.bank-recipient,.arch-schedule-bar){font-family:var(--font-sans)!important;font-weight:400;letter-spacing:.02em;line-height:1.85}
body.public-home :is(h1,h2,h3,h4,.person-title,.parent-name,.arch-venue-title,.ceremony-highlight-date,.closing-names,.deboss-text){font-family:var(--font-serif)!important;font-weight:600;letter-spacing:-.025em;line-height:1.55}
body.public-home :is(.head-title,.closing-names){font-size:clamp(29px,3.5vw,46px);font-weight:400;line-height:1.5}
body.public-home .person-title{font-size:clamp(26px,2.45vw,38px);letter-spacing:-.025em;line-height:1.65;white-space:normal}
body.public-home .person-line{justify-content:center;flex-wrap:wrap;gap:8px 14px}
body.public-home .parent-col .parent-name{font-size:15px!important;font-weight:400;color:#59483e;line-height:1.95}
body.public-home :is(.side-lbl,.rank-tag,.announce-kicker,.ceremony-type,.section-label,.bank-recipient){font-size:11px!important;letter-spacing:.12em!important;font-weight:500;color:#795c48}
body.public-home :is(.announce-sub,.ceremony-date-sub,.arch-invitation-text,.arch-schedule-bar,.line-txt){font-size:12px!important;letter-spacing:.055em!important;color:#68483e;line-height:2}
body.public-home :is(.head-sub,.bio-quote,.story-text,.entry-card p,.arch-venue-address,.closing-note){font-size:15px!important;letter-spacing:0!important;line-height:1.95;color:#6c584a}
body.public-home .arch-heading h2{font-size:27px;font-weight:400;letter-spacing:.02em;line-height:1.65}
body.public-home .arch-venue-title{font-size:22px!important;line-height:1.6;color:#681d28}
body.public-home .ceremony-highlight-date{font-size:32px!important;font-weight:400;letter-spacing:.045em!important;margin-top:12px}
body.public-home .lunar-date{font-family:var(--font-serif)!important;font-style:italic;font-size:13px;color:#78674f;letter-spacing:0}
body.public-home .calligraphy-ampersand{font-family:var(--font-serif)!important;font-style:italic;font-size:36px;line-height:1.5;color:#a67b40}
body.public-home .announcement-card{padding:42px 34px;background:#fffdf8;box-shadow:0 12px 45px #5a40300d}
body.public-home .family-parents-grid{margin-bottom:36px}
body.public-home .couple-names-formal{gap:10px;margin:25px 0 32px}
body.public-home .public-links button{font-size:12px!important;letter-spacing:0}
body.public-home :is(.bank-holder,.arch-venue-address){font-size:13px!important;line-height:1.9}
body.public-home :is(.bank-acc,.count-number){font-family:var(--font-sans)!important;font-variant-numeric:tabular-nums;letter-spacing:.02em}
@media(max-width:600px){body.public-home .announcement-card{padding:30px 22px}body.public-home .person-title{font-size:27px}body.public-home .rank-tag{font-size:10px!important}body.public-home .family-parents-grid{grid-template-columns:1fr 1fr;gap:16px}body.public-home .parent-col.right{text-align:right}body.public-home .parent-col .parent-name{font-size:12px!important}body.public-home .arch-venue-title{font-size:20px!important}body.public-home .arch-heading h2{font-size:25px}body.public-home .ceremony-date-sub{font-size:11px!important}body.public-home .head-title{font-size:30px}body.public-home .person-line{gap:3px}body.public-home .arched-card{padding-left:25px;padding-right:25px}}
/* Ivory paper, oxblood lacquer and antique brass. */
body.public-home{--fineart-bg:#eee5d9;--fineart-paper:#fffdf8;--fineart-silk:#e7d8c4;--burgundy:#671e2a;--burgundy-deep:#45131e;--taupe-text:#544338;--taupe-muted:#806b58;--taupe-border:#d8c6ae;--bronze-wax:#ae844b;background:#eee5d9}
body.public-home header{background:#fffdf8f5;border-bottom:1px solid #d8c6ae;box-shadow:0 3px 18px #492b1908}
body.public-home .stationery-hero{background:radial-gradient(ellipse at 18% 8%,#faf5ec 0%,transparent 55%),linear-gradient(135deg,#eee5d8,#deceb8);border-bottom:1px solid #d2bea0}
body.public-home .announcement-card,body.public-home .arched-card{background:#fffdf8;border:1px solid #ddccb5;box-shadow:0 20px 55px #59391f13,0 3px 10px #59391f08}
body.public-home .envelope-card{background:#6c2631;border-color:#7e3640;box-shadow:0 18px 36px #48132324}
body.public-home .envelope-v-flap{filter:sepia(.4)}
body.public-home .envelope-monogram{color:#dfbe82}
body.public-home .debossed-card{background:#f7f0e4;border-color:#d7c3a7}
body.public-home .vellum-belly-band{background:#f1e7d8bd;border-color:#d9c3a0}
body.public-home .section-couple{background:#fffaf2}
body.public-home .section-timeline{background:#eee2d1;border-top:1px solid #e0d0b9;border-bottom:1px solid #e0d0b9}
body.public-home .entry-card{background:#fffdf8;border-color:#dbc5a6;box-shadow:0 8px 25px #603c1d08}
body.public-home .section-gallery{background:#f9f4eb}
body.public-home .section-wishes{background:#ece1d2}
body.public-home .section-gift{background:#fffaf2}
body.public-home .fineart-card,body.public-home .bank-box{border-color:#ddcbb2}
body.public-home .section-closing-fineart{background:radial-gradient(ellipse at 50% 0%,#833d45 0%,#611e2a 55%,#481520 100%);border-top:1px solid #a8784b}
body.public-home .section-closing-fineart .closing-names{color:#fff2dd!important}
body.public-home .section-closing-fineart :is(.closing-sub,.closing-note){color:#e8d1ae!important}
body.public-home .section-closing-fineart .closing-names i{color:#d5b16c}
body.public-home .closing-sep{background:#c49a5d}
body.public-home footer{background:#39131b;border-top:1px solid #b28a5140;color:#d8bd91}
body.public-home footer .footer-names{color:#f3dfba}
body.public-home footer span{color:#d8bd91}
body.public-home .back-pill{padding-left:0}
/* Royal invitation: a print-safe palace border, ivory paper and vermilion ink. */
.royal-invitation{background:#fffaf0;color:#612431;padding:16px;max-width:600px;border:1px solid #c9ad78;box-shadow:0 20px 60px #54252b18;overflow:hidden}
.royal-frame{border:1px solid #b99655;outline:1px solid #d8c399;outline-offset:5px;padding:18px 24px 12px;position:relative;text-align:center;background:linear-gradient(135deg,#b99a5a0a,transparent 35%,#b99a5a08)}
.royal-frame:before,.royal-frame:after{content:'';position:absolute;inset:5px;border:1px solid #c7a86c55;pointer-events:none}.royal-frame:after{inset:9px;border-color:#c7a86c22}
.royal-invitation .palace-pattern{color:#ac8645;height:32px;margin:0 auto 8px;max-width:360px}.palace-pattern svg{display:block;width:100%;height:100%}.royal-invitation .palace-pattern.bottom{transform:rotate(180deg);margin:10px auto 0}
.royal-invitation .royal-seal{font-family:serif!important;color:#a67e3b;font-size:37px;line-height:1.3;margin:8px auto}.royal-invitation .royal-kicker{font-size:10px;letter-spacing:.16em!important;color:#8e613e;margin:7px 0 20px;font-weight:500}
.royal-families{display:grid;grid-template-columns:1fr 1px 1fr;gap:16px;align-items:start}.royal-family-divider{height:100%;background:#d3bd94}.royal-family h3{font:600 11px Roboto,Arial,sans-serif!important;color:#8e613e;margin:0 0 9px;letter-spacing:.12em!important}.royal-family p{font:500 12px/1.7 Roboto,Arial,sans-serif!important;margin:3px 0;color:#633e34;overflow-wrap:anywhere}.royal-family address{font:400 11px/1.7 Roboto,Arial,sans-serif!important;color:#806a54;font-style:normal;margin-top:8px;overflow-wrap:anywhere}
.royal-invitation .royal-announcement{font-size:11px;line-height:1.8;color:#8a7056;margin:20px 0 12px}.royal-invitation .royal-names{font-family:'Noto Serif',Georgia,serif!important;color:#6c2030;font-size:27px;font-weight:600;line-height:1.55;margin:8px 0 19px}.royal-names span{display:block;font-family:inherit!important}.royal-invitation .royal-names em{display:block;color:#ad8646;font:italic 25px/1.4 'Noto Serif',Georgia,serif!important;margin:3px 0}
.royal-recipient{border-block:1px solid #d6c09a;padding:13px 5px;margin:0 0 14px}.royal-recipient p{font-size:10px;letter-spacing:.13em!important;margin:0 0 7px;color:#936e45}.royal-invitation .royal-recipient strong{font:600 20px/1.6 'Noto Serif',Georgia,serif!important;color:#692a33;overflow-wrap:anywhere}
.royal-invitation .royal-message{font-size:11px;line-height:1.85;color:#79604b;margin:10px 0 15px}.royal-date{display:grid;gap:6px}.royal-date span{font-size:11px;color:#805d44}.royal-invitation .royal-date strong{font:600 23px/1.6 'Noto Serif',Georgia,serif!important;color:#6c2030}.royal-venue{margin:15px 0 12px;display:grid;gap:6px}.royal-venue>span{font-size:9px;color:#947044;letter-spacing:.1em!important}.royal-invitation .royal-venue strong{font:600 16px/1.6 'Noto Serif',Georgia,serif!important;color:#6c2030}.royal-venue p{font-size:11px;line-height:1.8;margin:0;color:#79604b}.royal-invitation .royal-gratitude{font:italic 11px/1.9 'Noto Serif',Georgia,serif!important;color:#8a7056;margin:14px 0 3px}
@media(max-width:720px){.royal-invitation{padding:12px}.royal-frame{padding:14px 15px 10px}.royal-families{gap:10px}.royal-invitation .royal-names{font-size:24px}.royal-family p{font-size:11px!important}.royal-family address{font-size:10px!important}.royal-invitation .royal-recipient strong{font-size:18px!important}}
@media print{@page{size:A5 portrait;margin:6mm}.royal-invitation,.royal-invitation *{print-color-adjust:exact;-webkit-print-color-adjust:exact}.royal-invitation{width:136mm;max-width:136mm;padding:3mm;border:1px solid #c9ad78;box-shadow:none;break-inside:avoid;break-after:page;margin:0 auto}.royal-frame{padding:3mm 4mm 2mm;min-height:185mm}.royal-invitation .palace-pattern{height:7mm;margin-bottom:1mm}.royal-invitation .royal-seal{font-size:26px;margin:2px}.royal-invitation .royal-kicker{margin:4px 0 12px}.royal-invitation .royal-announcement{margin:12px 0 7px}.royal-invitation .royal-names{font-size:24px;margin:5px 0 12px}.royal-recipient{padding:8px 3px;margin-bottom:9px}.royal-invitation .royal-recipient strong{font-size:18px!important}.royal-invitation .royal-message{margin:7px 0 10px}.royal-venue{margin:9px 0}.royal-invitation .royal-gratitude{margin:8px 0}.floating-contact-buttons{display:none!important}}
/* Botanical stationery, inspired by the supplied red-and-ivory reference. */
.floral-invitation{--card-gold:#d5b579;--card-ink:#f6e9cb;--card-muted:#e4cdaa;background:#8d2028;border:1px solid #a74740;padding:24px;max-width:560px;box-shadow:0 24px 60px #59251e26}
.floral-invitation.theme-ivory{--card-gold:#a78349;--card-ink:#683d32;--card-muted:#826c57;background:#fffdf6;border-color:#e3d7c3;box-shadow:0 24px 60px #59251e16}
.floral-invitation .royal-frame{border:0;outline:0;background:radial-gradient(ellipse at center,#fff2d103,transparent);padding:5px 16px 18px}.floral-invitation .royal-frame:before,.floral-invitation .royal-frame:after{display:none}
.floral-crest{position:relative;width:210px;height:188px;margin:0 auto 10px;color:var(--card-gold)}.floral-crest svg{width:100%;height:100%}.floral-crest>div{position:absolute;inset:54px 42px 45px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.floral-invitation .floral-crest span{font:italic 23px/1.35 'Noto Serif',Georgia,serif!important;color:var(--card-gold);white-space:nowrap}
.floral-invitation .royal-families{gap:12px;margin:8px 0 13px}.floral-invitation .royal-family-divider{background:color-mix(in srgb,var(--card-gold) 30%,transparent)}.floral-invitation .royal-family h3{color:var(--card-gold);font-size:9px!important;letter-spacing:.13em!important}.floral-invitation .royal-family p{color:var(--card-ink);font-size:10px!important;font-weight:400!important;line-height:1.8!important}.floral-invitation .royal-family address{color:var(--card-muted);font-size:10px!important;line-height:1.7!important}
.floral-invitation .royal-announcement{color:var(--card-muted);font-size:10px;letter-spacing:.04em!important;margin:15px 0 10px}.floral-invitation .royal-names{color:var(--card-gold);font-size:26px;font-weight:400!important;line-height:1.5;margin:10px 0 20px}.floral-invitation .royal-names em{color:var(--card-gold);font-size:20px!important;line-height:1.2!important;margin:6px}
.floral-invitation .royal-recipient{border-color:color-mix(in srgb,var(--card-gold) 36%,transparent);padding:12px 3px}.floral-invitation .royal-recipient p{color:var(--card-muted);font-size:9px}.floral-invitation .royal-recipient strong{color:var(--card-ink);font-size:19px!important;font-weight:400!important}.floral-invitation .royal-message{color:var(--card-muted);font-size:10px;line-height:1.9;margin:14px 0}.floral-invitation .royal-date span{color:var(--card-muted);font-size:11px}.floral-invitation .royal-date strong{color:var(--card-gold);font-size:25px!important;font-weight:400!important;letter-spacing:.06em!important}.floral-invitation .royal-venue>span{color:var(--card-muted);font-size:9px}.floral-invitation .royal-venue strong{color:var(--card-gold);font-size:16px!important;font-weight:400!important}.floral-invitation .royal-venue p,.floral-invitation .royal-gratitude{color:var(--card-muted);font-size:10px!important}.floral-end{color:var(--card-gold);font-size:28px;margin-top:16px}
@media(max-width:720px){.floral-invitation{padding:20px 12px}.floral-invitation .royal-frame{padding:0 8px 12px}.floral-crest{width:185px;height:168px}.floral-crest>div{inset:42px 32px 40px}.floral-invitation .floral-crest span{font-size:21px!important}.floral-invitation .royal-names{font-size:23px}.floral-invitation .royal-family p{font-size:10px!important}.floral-invitation .royal-family address{font-size:10px!important}}
@media print{.floral-invitation{width:136mm;max-width:136mm;padding:5mm;background:#8d2028!important;min-height:195mm}.floral-invitation.theme-ivory{background:#fffdf6!important}.floral-invitation .royal-frame{padding:0 3mm;min-height:183mm}.floral-crest{height:38mm;width:44mm;margin-bottom:0}.floral-crest>div{inset:12mm 8mm 8mm}.floral-invitation .floral-crest span{font-size:19px!important}.floral-invitation .royal-names{font-size:23px;margin:8px 0 12px}.floral-invitation .royal-recipient{padding:8px 3px}.floral-invitation .royal-message{margin:9px 0}.floral-end{margin-top:8px}}
/* Airy botanical engraving with a protected, uncluttered title area. */
.floral-invitation .floral-crest{width:260px;height:228px;margin:0 auto 12px;color:var(--card-gold)}
.floral-invitation .floral-crest>div{inset:68px 72px 62px;gap:7px}
.floral-invitation .floral-crest span{font:italic 22px/1.5 'Noto Serif',Georgia,serif!important;white-space:nowrap}
.floral-invitation .floral-crest span:first-child{font-size:19px!important}
.floral-invitation.theme-red .floral-crest{color:#ddbb7d}
@media(max-width:720px){.floral-invitation .floral-crest{width:240px;height:210px}.floral-invitation .floral-crest>div{inset:62px 66px 57px}.floral-invitation .floral-crest span{font-size:20px!important}}
@media print{.floral-invitation .floral-crest{width:49mm;height:43mm;margin-bottom:2mm}.floral-invitation .floral-crest>div{inset:13mm 14mm 12mm;gap:2px}.floral-invitation .floral-crest span{font-size:16px!important}.floral-invitation .floral-crest span:first-child{font-size:14px!important}}
/* Direct manipulation family canvas. */
.tree-editor-tools{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:12px}.tree-editor-tools label{min-width:190px}.tree-zoom{display:flex;gap:5px;margin-left:auto}.tree-zoom button{min-width:44px}.tree-save-line{min-height:30px;color:#567345;font-size:13px}.tree-save-line.save-error{color:#b04636}.tree-save-line button{padding:5px 12px;min-height:32px!important}.tree-editor-help{font-size:12px;color:#8a7867;line-height:1.8;margin-bottom:15px}.tree-canvas{height:calc(100dvh - 315px);min-height:450px;overflow:auto;border:1px solid #ddcfba;border-radius:12px;background-color:#f9f6ee;background-image:radial-gradient(#d8ccba 1px,transparent 1px);background-size:22px 22px;overscroll-behavior:contain;padding:30px;scrollbar-width:auto}.tree-stage{width:max-content;min-width:100%;padding:0 15px 50px;transform-origin:top left}.tree-group-title{text-align:center;color:#775c42;font-size:19px;font-weight:600;margin:0 0 28px}.tree-group-title small{display:block;font-size:12px;font-weight:400;margin-top:8px;color:#9a836a}.visual-tree,.visual-tree ul{list-style:none;margin:0;padding:28px 0 0;display:flex;justify-content:center;position:relative;width:max-content;min-width:100%}.visual-tree>li,.visual-tree ul>li{position:relative;padding:24px 16px 0;display:flex;flex-direction:column;align-items:center}.visual-tree li:before,.visual-tree li:after{content:'';position:absolute;top:0;height:24px;width:50%;border-top:1.5px solid #bca278}.visual-tree li:before{right:50%}.visual-tree li:after{left:50%;border-left:1.5px solid #bca278}.visual-tree li:first-child:before,.visual-tree li:last-child:after{border-top:0}.visual-tree li:only-child:before{display:none}.visual-tree ul:before{content:'';position:absolute;top:0;left:50%;height:28px;border-left:1.5px solid #bca278}.visual-tree>li:only-child:after{border:0}.visual-tree{padding-top:0}.quick-couple{display:flex;align-items:center;position:relative;gap:0;z-index:1}.quick-person{width:230px;padding:13px;background:#fffefa;border:1px solid #cdbd9f;border-radius:10px;box-shadow:0 5px 18px #73532c0c}.quick-person.is-deceased{background:#f1eee7;border-color:#d4cfc4}.quick-person.is-draft{border:2px dashed #af8548;background:#fff9e9}.quick-person-cap{font-size:10px;color:#9b8465;min-height:25px;display:flex;align-items:center;justify-content:space-between;gap:5px}.quick-person .tree-detail{border:0;background:transparent;color:#92734d;min-height:26px!important;padding:0 8px;font-size:23px!important;line-height:1}.quick-person .tree-name{width:100%;font-size:16px!important;font-weight:500;color:#533a31;background:transparent;border:1px solid transparent;padding:8px 5px;min-height:42px!important}.quick-person .tree-name:hover{border-color:#d5c3a8;background:white}.quick-person .tree-name:focus{background:white;border-color:#ae834a;outline:2px solid #e3cda7;outline-offset:1px}.quick-person>small{font-size:11px;color:#99856b;display:block;min-height:12px;padding-left:6px}.quick-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;border-top:1px solid #eee5d5;padding-top:10px}.quick-actions button{border:1px solid #e4d7c1;background:#f9f5ec;color:#876941;border-radius:5px;padding:5px 7px;font-size:11px!important;min-height:32px!important;white-space:nowrap}.quick-actions button:hover{background:#e8dcc5}.couple-link{font-size:19px;color:#b1835a;background:#dfc9a8;width:28px;text-align:center;height:2px;line-height:0;z-index:2}.tree-collapse{font-size:10px!important;padding:5px 10px;background:#f9f6ee;border:1px solid #d4c3a7;color:#977954;min-height:28px!important;margin-top:12px;border-radius:20px;z-index:1}.tree-canvas:focus-visible{outline:2px solid #b29360}
@media(max-width:720px){.tree-editor-tools{gap:8px}.tree-editor-tools>button{font-size:12px!important;padding:9px}.tree-editor-tools label{width:100%}.tree-zoom{margin-left:0}.tree-canvas{height:65dvh;min-height:400px;padding:22px 10px}.quick-person{width:205px}.quick-actions button{min-height:40px!important;font-size:11px!important}.quick-person .tree-detail{min-height:36px!important}.tree-editor-help{font-size:11px}.visual-tree>li,.visual-tree ul>li{padding-left:10px;padding-right:10px}}
