/* ══════════════════════════════════════════════════════════════
   The paper styles: Herbarium, Gazette, Black Tie, Amalfi, Storybook
   (markup: paper-themes.js). Each style is a set of colours and
   fonts (--pp-*) plus its own decoration; everything they share —
   the page, the cards, the schedule, the RSVP form — reads those.
   ══════════════════════════════════════════════════════════════ */

body[data-theme="herbarium"]{
  --pp-bg:#F3EFE6; --pp-paper:#FBF9F3; --pp-ink:#2F3A2E; --pp-sub:#5E6A55; --pp-line:#DDD5C4;
  --pp-accent:#2F3A2E; --pp-accent-ink:#F3EFE6; --pp-soft:#E8DCC2; --pp-hi:#7A8B5C;
  --pp-display:"Cormorant Garamond",Georgia,serif; --pp-body:"Cormorant Garamond",Georgia,serif;
  --pp-script:"Caveat",cursive; --pp-caps:"Cormorant Garamond",Georgia,serif; --pp-btn-radius:0;
}
body[data-theme="gazette"]{
  --pp-bg:#F4F1EA; --pp-paper:#F4F1EA; --pp-ink:#161616; --pp-sub:#4A4740; --pp-line:#BDB8AD;
  --pp-accent:#161616; --pp-accent-ink:#F4F1EA; --pp-soft:#E9E4D8; --pp-hi:#B3261E;
  --pp-display:"Playfair Display",Georgia,serif; --pp-body:"Old Standard TT",Georgia,serif;
  --pp-script:"Playfair Display",Georgia,serif; --pp-caps:"Old Standard TT",Georgia,serif; --pp-btn-radius:0;
}
body[data-theme="blacktie"]{
  --pp-bg:#1B1B1B; --pp-paper:#FBF8F1; --pp-ink:#1B1B1B; --pp-sub:#5C5548; --pp-line:#B08D57;
  --pp-accent:#1B1B1B; --pp-accent-ink:#FBF8F1; --pp-soft:#F3EEE2; --pp-hi:#8A6A3A; --pp-field:#F3EEE2;
  --pp-display:"Cinzel",Georgia,serif; --pp-body:"Cormorant Garamond",Georgia,serif;
  --pp-script:"Pinyon Script",cursive; --pp-caps:"Cinzel",Georgia,serif; --pp-btn-radius:0;
}
body[data-theme="amalfi"]{
  --pp-bg:#FFFDF8; --pp-paper:#F6EBDD; --pp-ink:#1D2E52; --pp-sub:#4A5D82; --pp-line:#D9D2C3;
  --pp-accent:#1F4FA3; --pp-accent-ink:#FFFDF8; --pp-soft:#FBE3D6; --pp-hi:#C8643B; --pp-lemon:#F2C94C;
  --pp-display:"Fraunces",Georgia,serif; --pp-body:"Fraunces",Georgia,serif;
  --pp-script:"Sacramento",cursive; --pp-caps:"Fraunces",Georgia,serif; --pp-btn-radius:999px;
}
body[data-theme="storybook"]{
  --pp-bg:#F5ECD9; --pp-paper:#FBF4E4; --pp-ink:#3B2A1A; --pp-sub:#6E5D43; --pp-line:#B8893B;
  --pp-accent:#7A1F2B; --pp-accent-ink:#F5ECD9; --pp-soft:#EFE2C6; --pp-hi:#7A1F2B; --pp-forest:#2F4A3A;
  --pp-display:"IM Fell English",Georgia,serif; --pp-body:"IM Fell English",Georgia,serif;
  --pp-script:"IM Fell English",Georgia,serif; --pp-caps:"IM Fell English SC",Georgia,serif; --pp-btn-radius:0;
}

/* ── The page ── */
body.paperTheme{ background:var(--pp-bg); color:var(--pp-ink); font-family:var(--pp-body); }
body.paperTheme .slider{ max-width:560px; margin:0 auto; padding:0 0 24px; }
body.paperTheme.layout-vertical .slide{ padding:22px 18px; }
body.paperTheme.layout-vertical .slide[data-slide="0"]{ min-height:0; padding:26px 18px 10px; }
body.paperTheme .card{ width:100%; max-width:none; margin:0; text-align:left; color:var(--pp-ink); }
body.paperTheme.layout-vertical .card:not(.cardHero){ max-width:none; }
body.paperTheme .content{ padding:0; text-align:left; }
body.paperTheme .hint{ display:none; }

/* Shared text */
body.paperTheme .ppEyebrow{ font-family:var(--pp-caps); font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--pp-hi); }
body.paperTheme .ppTitle, body.paperTheme .sectionTitle{
  font-family:var(--pp-display); font-weight:500; font-size:30px; line-height:1.15; color:var(--pp-ink);
  text-shadow:none; margin:6px 0 10px; letter-spacing:0;
}
body.paperTheme .ppBody, body.paperTheme .body{
  font-family:var(--pp-body); font-size:18px; line-height:1.55; color:var(--pp-ink); text-shadow:none;
}
body.paperTheme .divider{ background:var(--pp-line); }
body.paperTheme .ppAddress{ margin-top:10px; font-size:17px; line-height:1.5; color:var(--pp-sub); }
body.paperTheme .ppMapLink{ display:inline-flex; align-items:center; min-height:44px; margin-top:8px; color:var(--pp-hi); font-family:var(--pp-caps); font-size:14px; letter-spacing:.08em; text-decoration:none; }
body.paperTheme .ppMapLink:hover{ text-decoration:underline; }
body.paperTheme .ppButton{ padding:0 20px; border:1px solid var(--pp-ink); color:var(--pp-ink); text-transform:uppercase; border-radius:var(--pp-btn-radius); }
body.paperTheme .ppImg{ background-size:cover; background-position:center; background-color:var(--pp-soft); }

/* Names */
body.paperTheme .namesScript{ font-family:inherit; font-size:inherit; line-height:inherit; color:inherit; text-shadow:none; margin:0; font-weight:inherit; font-style:inherit; letter-spacing:inherit; }
body.paperTheme .amp{ font-family:inherit; font-size:inherit; color:inherit; text-shadow:none; margin:0; }

/* Countdown: small and quiet, in the style's colours */
body.paperTheme .ppCountdown{ margin:14px auto 0; gap:6px; }
body.paperTheme .ppCountdown .pill{
  min-width:0; flex:1 1 0; flex-direction:column; align-items:center; gap:2px; padding:8px 4px;
  background:transparent; backdrop-filter:none; border:1px solid var(--pp-line); border-radius:var(--pp-btn-radius);
  color:var(--pp-ink); font-weight:600;
}
body.paperTheme .ppCountdown .pill .v{ font-family:var(--pp-display); font-size:20px; }
body.paperTheme .ppCountdown .pill .l{ font-family:var(--pp-caps); font-size:10px; letter-spacing:.14em; opacity:.8; }

/* ── The schedule (built in app-schedule.js) ── */
body.paperTheme .slide[data-slide="itinerary"] .card{ background:transparent; border:0; box-shadow:none; }
body.paperTheme .itinList{ gap:10px; margin-top:6px; }
body.paperTheme .itinRow{ grid-template-columns:76px 1fr; gap:12px; padding:12px 0; border-bottom:1px solid var(--pp-line); color:var(--pp-ink); }
body.paperTheme .itinRowTime{ font-family:var(--pp-display); font-style:normal; font-weight:600; font-size:18px; opacity:1; }
body.paperTheme .itinRowName{ font-family:var(--pp-body); font-size:18px; font-weight:600; }
body.paperTheme .itinRowDesc{ font-family:var(--pp-body); font-size:15px; opacity:.85; }
body.paperTheme .itinRowLoc{ background:transparent; border:1px solid var(--pp-line); color:var(--pp-ink); }
body.paperTheme .itinRowLocText{ font-family:var(--pp-body); }

/* ── The RSVP ── */
body.paperTheme .slide[data-slide="rsvp"] .card{ background:var(--pp-paper); border:1px solid var(--pp-line); padding:24px 20px; box-shadow:none; backdrop-filter:none; }
body.paperTheme .ppRsvpHead{ display:flex; flex-direction:column; gap:6px; margin-bottom:6px; text-align:center; }
body.paperTheme .slide[data-slide="rsvp"] .sectionTitle, body.paperTheme .slide[data-slide="rsvp"] .body{ text-align:center; }
body.paperTheme #rsvpForm label{ font-family:var(--pp-caps); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--pp-sub); text-shadow:none; }
body.paperTheme select{ background:var(--pp-paper); color:var(--pp-ink); border:1px solid var(--pp-line); border-radius:var(--pp-btn-radius); }
body.paperTheme input:not([readonly]):not(.prefsDietInput):not([type="radio"]):not([type="checkbox"]){
  font-family:var(--pp-body); font-size:18px; background:transparent; border:0; border-bottom:1px solid var(--pp-line);
  border-radius:0; padding:10px 0; color:var(--pp-ink); outline:none;
}
body.paperTheme input:not([readonly]):not(.prefsDietInput):not([type="radio"]):not([type="checkbox"])::placeholder{ color:var(--pp-sub); opacity:.6; }
body.paperTheme input:not([readonly]):not(.prefsDietInput):not([type="radio"]):not([type="checkbox"]):focus{ border-bottom-color:var(--pp-accent); }
body.paperTheme .nameList{ gap:14px; margin-bottom:8px; }
body.paperTheme .nameItem{ background:var(--pp-field,var(--pp-bg)); border:1px solid var(--pp-line); border-radius:4px; padding:18px 18px 12px; grid-template-columns:1fr auto; }
body.paperTheme .nameItem:last-child{ border-bottom:1px solid var(--pp-line); padding-bottom:12px; }
body.paperTheme .nameItem input[readonly]{ background:transparent; color:var(--pp-ink); border-bottom:1px solid var(--pp-line); font-family:var(--pp-body); font-size:18px; font-weight:500; }
body.paperTheme .nameItem input[data-name-input="1"]{ font-family:var(--pp-body); font-size:19px; color:var(--pp-ink); }
body.paperTheme .attendingChoice{ border:1.5px solid var(--pp-ink); background:var(--pp-paper); color:var(--pp-ink); border-radius:var(--pp-btn-radius); font-family:var(--pp-display); font-size:22px; font-weight:600; }
body.paperTheme .attendingChoice:hover{ background:var(--pp-field,var(--pp-bg)); }
body.paperTheme .attendingChoiceEm{ color:var(--pp-sub); font-family:var(--pp-caps); font-size:11px; letter-spacing:.2em; opacity:1; }
body.paperTheme .attendingChoice:has(input:checked){ background:var(--pp-accent); border-color:var(--pp-accent); color:var(--pp-accent-ink); }
body.paperTheme .attendingChoice:has(input:checked) .attendingChoiceEm{ color:var(--pp-accent-ink); opacity:.8; }
body.paperTheme .mealPick{ border:1px solid var(--pp-line); background:var(--pp-paper); color:var(--pp-ink); border-radius:var(--pp-btn-radius); }
body.paperTheme .mealPick:hover{ border-color:var(--pp-ink); }
body.paperTheme .mealPick .mealLabel{ font-family:var(--pp-body); font-size:17px; color:var(--pp-ink); text-transform:none; letter-spacing:0; }

body.paperTheme .mealPick:has(input:checked){ background:var(--pp-accent); border-color:var(--pp-accent); color:var(--pp-accent-ink); }
body.paperTheme .mealPick:has(input:checked) :is(.mealLabel, svg){ color:var(--pp-accent-ink); opacity:1; }
body.paperTheme .prefsField{ background:var(--pp-field,var(--pp-bg)); border:1px solid var(--pp-line); border-left:3px solid var(--pp-hi); }
body.paperTheme .prefsFieldLabel{ font-family:var(--pp-caps); color:var(--pp-hi); font-weight:600; letter-spacing:.18em; }
body.paperTheme .nameItemPrefs .prefsDietInput{ background:var(--pp-paper); border:1px solid var(--pp-line); border-radius:3px; color:var(--pp-ink); padding:10px 12px; }
body.paperTheme .nameItemPrefs .prefsDietInput:focus{ border-color:var(--pp-accent); }
body.paperTheme .nameActions{
  display:flex; align-items:center; justify-content:center; gap:8px; margin-top:16px; width:100%;
  background:transparent; border:1px dashed var(--pp-line); border-radius:var(--pp-btn-radius); padding:14px;
  font-family:var(--pp-caps); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--pp-hi); cursor:pointer;
}
body.paperTheme .nameActions .btnIcon{ background:transparent; border:none; color:inherit; width:auto; height:auto; padding:0; font-size:16px; }
body.paperTheme .nameActions .helper{ font:inherit; color:inherit; letter-spacing:inherit; }
body.paperTheme .rsvpFormActions{ display:flex; flex-direction:column; align-items:stretch; margin-top:24px; }
body.paperTheme .btnPrimary{
  width:100%; min-height:50px; padding:0 24px; border-radius:var(--pp-btn-radius); box-shadow:none;
  background:var(--pp-accent); color:var(--pp-accent-ink); font-family:var(--pp-caps); font-size:15px; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
}
body.paperTheme .btnPrimary:hover{ filter:brightness(1.1); transform:none; }
body.paperTheme .btnPrimary:disabled{ opacity:.45; cursor:not-allowed; }
body.paperTheme .btnSecondary{ background:transparent; border:1px solid var(--pp-ink); color:var(--pp-ink); border-radius:var(--pp-btn-radius); font-family:var(--pp-caps); letter-spacing:.1em; }
body.paperTheme .btnIcon{ background:transparent; border:none; color:var(--pp-ink); }

body.paperTheme .attendeeCount{ font-family:var(--pp-caps); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--pp-sub); text-align:center; margin-top:10px; }
body.paperTheme .rsvpConfirmedBadge.yes{ background:var(--pp-accent); color:var(--pp-accent-ink); }
body.paperTheme .rsvpConfirmedName{ background:var(--pp-field,var(--pp-bg)); border:1px solid var(--pp-line); border-radius:4px; color:var(--pp-ink); font-family:var(--pp-body); font-size:19px; }
body.paperTheme .rsvpPersonTag.menu{ background:var(--pp-soft); color:var(--pp-ink); }
body.paperTheme .rsvpPersonTag.diet{ background:var(--pp-field,var(--pp-bg)); color:var(--pp-ink); border:1px solid var(--pp-line); }
body.paperTheme .err{ color:#B3261E; }
body.paperTheme .overlay .box{ background:var(--pp-paper); color:var(--pp-ink); border:1px solid var(--pp-line); font-family:var(--pp-body); }

body.paperTheme .ppFooter{ display:flex; justify-content:center; gap:16px; padding:10px 18px 40px; text-align:center; color:var(--pp-sub); }

/* ══ Herbarium ══════════════════════════════════════════════════ */
body[data-theme="herbarium"] .hbHand{ font-family:var(--pp-script); }
body[data-theme="herbarium"] .hbCover{ background:var(--pp-paper); border:1px solid var(--pp-line); padding:22px 20px 20px; box-shadow:0 10px 30px rgba(47,58,46,.10); display:flex; flex-direction:column; gap:16px; }
body[data-theme="herbarium"] .hbTopline{ display:flex; justify-content:space-between; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--pp-hi); }
body[data-theme="herbarium"] .hbMount{ position:relative; display:flex; justify-content:center; padding:10px 0; color:var(--pp-hi); }
body[data-theme="herbarium"] .hbCoverImg{ width:72%; aspect-ratio:4/5; }
body[data-theme="herbarium"] .hbCoverEmpty{ width:72%; aspect-ratio:4/5; display:flex; align-items:center; justify-content:center; border:1px dashed var(--pp-line); }
body[data-theme="herbarium"] .hbCoverEmpty .ppSprig{ width:30%; height:auto; position:static; }
body[data-theme="herbarium"] .hbStrip{ position:absolute; width:54px; height:16px; background:#E9E1CF; box-shadow:0 1px 2px rgba(0,0,0,.08); }
body[data-theme="herbarium"] .hbStrip-a{ top:4px; left:20%; transform:rotate(-8deg); }
body[data-theme="herbarium"] .hbStrip-b{ bottom:6px; right:19%; transform:rotate(-6deg); }
body[data-theme="herbarium"] .hbMount > .ppSprig{ position:absolute; left:-6px; bottom:0; width:62px; height:auto; }
body[data-theme="herbarium"] .hbNames{ margin:0; text-align:center; font-family:var(--pp-script); font-weight:500; font-size:46px; line-height:1.05; }
body[data-theme="herbarium"] .hbSub{ text-align:center; font-style:italic; font-size:18px; margin-top:-8px; }
body[data-theme="herbarium"] .hbLabel{ margin-left:auto; width:min(250px,100%); border:1px solid var(--pp-ink); padding:10px 12px; font-size:15px; line-height:1.5; }
body[data-theme="herbarium"] .hbLabel b{ font-weight:600; }
body[data-theme="herbarium"] .hbLabelHead{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--pp-hi); }
body[data-theme="herbarium"] .hbLabel .hbHand{ font-size:19px; }
body[data-theme="herbarium"] .hbLetter{ padding:4px 6px; display:flex; flex-direction:column; gap:12px; }
body[data-theme="herbarium"] .hbSalut{ font-size:32px; line-height:1.1; }
body[data-theme="herbarium"] .hbLetterBody{ font-size:20px; line-height:1.55; }
body[data-theme="herbarium"] .hbSign{ font-size:26px; text-align:right; line-height:1.2; }
body[data-theme="herbarium"] .hbPs{ font-style:italic; font-size:16px; color:var(--pp-sub); }
body[data-theme="herbarium"] .hbGalleryHead{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; }
body[data-theme="herbarium"] .hbGalleryHead h2{ margin:0; font-family:var(--pp-display); font-style:italic; font-weight:500; font-size:30px; }
body[data-theme="herbarium"] .hbGalleryHead span{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--pp-hi); }
body[data-theme="herbarium"] .hbSpecimens{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
body[data-theme="herbarium"] .hbSpecimen{ margin:0; background:var(--pp-paper); border:1px solid var(--pp-line); padding:10px; display:flex; flex-direction:column; gap:6px; }
body[data-theme="herbarium"] .hbSpecimen .ppImg{ aspect-ratio:1; }
body[data-theme="herbarium"] .hbSpecimen figcaption{ font-size:18px; line-height:1.15; }
body[data-theme="herbarium"] .hbSpecimen:first-child{ grid-column:span 2; }
body[data-theme="herbarium"] .hbSpecimen:first-child .ppImg{ aspect-ratio:4/3; }
body[data-theme="herbarium"] .hbSpecimen:nth-child(2){ transform:rotate(-1.5deg); }
body[data-theme="herbarium"] .hbSpecimen:nth-child(3){ transform:rotate(1.5deg); margin-top:14px; }
body[data-theme="herbarium"] .hbSpecimens-2 .hbSpecimen:nth-child(2){ grid-column:span 2; transform:none; }
body[data-theme="herbarium"] .hbVenue{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:4px; }
body[data-theme="herbarium"] .hbDivider{ width:120px; color:var(--pp-hi); margin-bottom:8px; }
body[data-theme="herbarium"] .hbPacket{
  width:min(280px,100%); margin:0 auto; background:#E3E6D6; border:1px solid #C9CDB6; padding:18px; text-align:center;
  clip-path:polygon(0 10px,10px 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%);
}
body[data-theme="herbarium"] .hbPacket .ppEyebrow{ color:#5E6C45; font-size:11px; }
body[data-theme="herbarium"] .hbPacket .ppTitle{ font-size:26px; margin:4px 0; }
body[data-theme="herbarium"] .hbPacket .ppBody{ font-style:italic; font-size:17px; }
body[data-theme="herbarium"] .ppScheduleTitle{ font-style:italic; text-align:center; }
body[data-theme="herbarium"] .itinRow{
  background:var(--pp-soft); border:0; padding:12px 14px 12px 30px; position:relative;
  clip-path:polygon(16px 0,100% 0,100% 100%,16px 100%,0 50%);
}
body[data-theme="herbarium"] .itinRow::before{ content:""; position:absolute; left:15px; top:calc(50% - 4px); width:8px; height:8px; border-radius:50%; background:var(--pp-bg); }
body[data-theme="herbarium"] .ppFooter{ font-size:22px; color:var(--pp-hi); }

/* ══ The Gazette ════════════════════════════════════════════════ */
body[data-theme="gazette"] .gzFront{ display:flex; flex-direction:column; gap:10px; }
body[data-theme="gazette"] .gzTopline{ display:flex; justify-content:space-between; gap:8px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; border-bottom:1px solid var(--pp-ink); padding-bottom:6px; }
body[data-theme="gazette"] .gzMasthead{ font-family:"UnifrakturCook",serif; font-size:clamp(34px,11vw,52px); text-align:center; line-height:1; }
body[data-theme="gazette"] .gzDateline{ display:flex; justify-content:space-between; gap:8px; border-top:3px double var(--pp-ink); border-bottom:1px solid var(--pp-ink); padding:5px 0; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
body[data-theme="gazette"] .gzRed{ color:var(--pp-hi); font-weight:700; }
body[data-theme="gazette"] .gzHeadline{ margin:6px 0 0; font-family:var(--pp-display); font-weight:900; font-size:clamp(40px,13vw,60px); line-height:.95; text-align:center; text-transform:uppercase; }
body[data-theme="gazette"] .gzToWed{ display:block; font-size:.62em; }
body[data-theme="gazette"] .gzDeck{ margin:0; font-family:var(--pp-display); font-style:italic; font-weight:700; font-size:19px; text-align:center; line-height:1.3; }
body[data-theme="gazette"] .gzLead{ margin:4px 0 0; display:flex; flex-direction:column; gap:6px; }
body[data-theme="gazette"] .gzLead .ppImg{ aspect-ratio:4/3; filter:grayscale(1) contrast(1.05); }
body[data-theme="gazette"] .gzLead figcaption{ font-size:13px; font-style:italic; border-bottom:1px solid var(--pp-ink); padding-bottom:6px; }
body[data-theme="gazette"] .gzDelivered{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; text-align:center; }
body[data-theme="gazette"] .ppCountdown .pill{ border-color:var(--pp-ink); }
body[data-theme="gazette"] .gzSection, body[data-theme="gazette"] .slide[data-slide="itinerary"] .gzSection{
  font-family:var(--pp-display); font-weight:900; font-size:26px; border-top:3px solid var(--pp-ink); padding-top:8px; margin:0 0 10px; text-align:left;
}
body[data-theme="gazette"] .gzColumns{ column-count:2; column-gap:18px; column-rule:1px solid var(--pp-line); font-size:16px; line-height:1.5; text-align:justify; hyphens:auto; }
body[data-theme="gazette"] .gzColumns::first-letter{ float:left; font-family:var(--pp-display); font-weight:900; font-size:54px; line-height:.8; padding:4px 6px 0 0; }
body[data-theme="gazette"] .gzByline, body[data-theme="gazette"] .gzPs{ margin-top:10px; font-style:italic; font-size:15px; }
body[data-theme="gazette"] .gzGrid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body[data-theme="gazette"] .gzGrid figure{ margin:0; }
body[data-theme="gazette"] .gzGrid .ppImg{ aspect-ratio:1; filter:grayscale(1) contrast(1.05); }
body[data-theme="gazette"] .gzGrid figure:first-child{ grid-column:span 2; }
body[data-theme="gazette"] .gzGrid figure:first-child .ppImg{ aspect-ratio:16/10; }
body[data-theme="gazette"] .gzGrid-2 figure:nth-child(2){ grid-column:span 2; }
body[data-theme="gazette"] .gzBox{ border-top:3px solid var(--pp-ink); border-bottom:1px solid var(--pp-ink); padding:10px 0 12px; }
body[data-theme="gazette"] .gzKicker{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--pp-hi); font-weight:700; }
body[data-theme="gazette"] .gzBoxTitle{ margin:4px 0 6px; font-family:var(--pp-display); font-weight:700; font-size:24px; line-height:1.1; }
body[data-theme="gazette"] .itinRow{ grid-template-columns:64px 1fr; }
body[data-theme="gazette"] .itinRowTime{ font-family:var(--pp-body); font-weight:700; }
body[data-theme="gazette"] .slide[data-slide="rsvp"] .card{ background:transparent; border:2px dashed var(--pp-ink); position:relative; }
body[data-theme="gazette"] .gzScissors{ position:absolute; top:-10px; left:20px; width:30px; height:20px; background:var(--pp-bg); padding:0 4px; }
body[data-theme="gazette"] .gzCouponHead{ display:flex; justify-content:space-between; align-items:baseline; font-family:var(--pp-display); font-weight:900; font-size:24px; text-transform:uppercase; }
body[data-theme="gazette"] .gzCouponHead .gzRed{ font-family:var(--pp-body); font-size:12px; letter-spacing:.1em; }
body[data-theme="gazette"] .gzClip{ margin:0; font-style:italic; font-size:15px; text-align:left; }
body[data-theme="gazette"] .attendingChoice{ font-weight:900; text-transform:uppercase; font-size:19px; }
body[data-theme="gazette"] .ppFooter{ justify-content:space-between; border-top:1px solid var(--pp-ink); margin:0 18px; padding:6px 0 40px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--pp-ink); }

/* ══ Black Tie ══════════════════════════════════════════════════ */
body[data-theme="blacktie"] .card{ color:var(--pp-ink); }
body[data-theme="blacktie"] .btCard{ position:relative; background:var(--pp-paper); padding:14px; box-shadow:0 16px 36px rgba(0,0,0,.45); }
body[data-theme="blacktie"] .btFrame{ border:1px solid var(--pp-line); padding:5px; }
body[data-theme="blacktie"] .btFrameInner{ border:2px solid var(--pp-line); padding:30px 18px 30px; display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; }
body[data-theme="blacktie"] .btCrest{ position:relative; width:96px; height:96px; border-radius:50%; border:1.5px solid var(--pp-line); display:flex; align-items:center; justify-content:center; color:var(--pp-line); }
body[data-theme="blacktie"] .btLaurel{ position:absolute; inset:0; width:100%; height:100%; }
body[data-theme="blacktie"] .btCrest span{ font-family:var(--pp-caps); font-size:26px; color:var(--pp-hi); letter-spacing:.06em; }
body[data-theme="blacktie"] .btCrest i{ font-style:normal; font-size:14px; margin:0 3px; }
body[data-theme="blacktie"] .btCaps{ font-family:var(--pp-caps); font-size:12px; letter-spacing:.3em; text-transform:uppercase; text-align:center; margin:0; font-weight:400; }
body[data-theme="blacktie"] .btNames{ margin:0; font-family:var(--pp-script); font-weight:400; font-size:54px; line-height:1.05; display:flex; flex-direction:column; }
body[data-theme="blacktie"] .btRequest{ font-family:var(--pp-body); font-style:italic; font-size:18px; line-height:1.45; max-width:280px; margin:0 auto; text-align:center; }
body[data-theme="blacktie"] .btRule{ width:60px; height:1px; background:var(--pp-line); }
body[data-theme="blacktie"] .btDate{ font-family:var(--pp-caps); font-size:14px; letter-spacing:.18em; line-height:1.8; text-transform:uppercase; }
body[data-theme="blacktie"] .btVellum{
  position:absolute; left:-6px; right:-6px; top:58%; min-height:44px; padding:6px 12px; box-sizing:border-box;
  background:rgba(251,248,241,.74); border-top:1px solid rgba(176,141,87,.5); border-bottom:1px solid rgba(176,141,87,.5);
  display:flex; align-items:center; justify-content:center; font-family:var(--pp-caps); font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--pp-hi); backdrop-filter:blur(1px);
}
body[data-theme="blacktie"] .btPanel{ background:var(--pp-paper); padding:28px 20px; display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; }
body[data-theme="blacktie"] .btScript{ margin:0; font-family:var(--pp-script); font-weight:400; font-size:38px; line-height:1.1; color:var(--pp-ink); text-align:center; }
body[data-theme="blacktie"] .btBody{ font-family:var(--pp-body); font-size:19px; line-height:1.55; text-align:center; }
body[data-theme="blacktie"] .btSign{ font-family:var(--pp-body); font-style:italic; font-size:17px; }
body[data-theme="blacktie"] .btSign .btScript{ font-size:32px; }
body[data-theme="blacktie"] .btPs{ font-style:italic; font-size:16px; color:var(--pp-sub); }
body[data-theme="blacktie"] .btArch{ width:140px; height:180px; border-radius:70px 70px 0 0; box-shadow:0 0 0 5px var(--pp-paper), 0 0 0 6.5px var(--pp-line); }
body[data-theme="blacktie"] .btArch-lg{ width:220px; height:290px; border-radius:110px 110px 0 0; margin:8px 0; }
body[data-theme="blacktie"] .btArches{ flex-direction:row; flex-wrap:wrap; justify-content:center; gap:22px; }
body[data-theme="blacktie"] .btCapsLink{ font-family:var(--pp-caps); color:var(--pp-hi); letter-spacing:.2em; font-size:12px; }
body[data-theme="blacktie"] .ppAddress{ text-align:center; }
body[data-theme="blacktie"] .btDiamond{ display:flex; align-items:center; gap:10px; width:100%; color:var(--pp-line); }
body[data-theme="blacktie"] .btDiamond span{ flex:1; height:1px; background:var(--pp-line); }
body[data-theme="blacktie"] .btDiamond i{ font-style:normal; font-size:12px; }
body[data-theme="blacktie"] .btDressTitle{ font-size:16px; }
body[data-theme="blacktie"] .slide[data-slide="itinerary"] .card{ background:var(--pp-paper); padding:28px 20px; }
body[data-theme="blacktie"] .btScheduleTitle{ font-size:13px; margin-bottom:8px; }
body[data-theme="blacktie"] .itinRow{ grid-template-columns:1fr; text-align:center; gap:2px; border-bottom:0; padding:8px 0; }
body[data-theme="blacktie"] .itinRowTime{ font-family:var(--pp-caps); font-size:13px; letter-spacing:.2em; color:var(--pp-hi); font-weight:400; }
body[data-theme="blacktie"] .itinRowName{ font-weight:500; font-size:20px; }
body[data-theme="blacktie"] .slide[data-slide="rsvp"] .card{ border:1px solid var(--pp-line); outline:14px solid var(--pp-paper); margin:14px 0; }
body[data-theme="blacktie"] .ppFooter{ font-family:var(--pp-caps); font-size:12px; letter-spacing:.3em; color:var(--pp-line); }

/* ══ Amalfi ═════════════════════════════════════════════════════ */
body[data-theme="amalfi"] .amCover{
  position:relative; padding:40px 24px 30px; display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center;
}
body[data-theme="amalfi"] .amCover::before{
  content:""; position:absolute; inset:0; border:14px solid transparent; pointer-events:none;
  border-image:repeating-linear-gradient(45deg,var(--pp-accent) 0 6px,var(--pp-bg) 6px 12px) 14;
}
body[data-theme="amalfi"] .amLemons{ width:200px; height:auto; }
body[data-theme="amalfi"] .amEyebrow{ font-family:var(--pp-caps); font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--pp-hi); font-weight:600; }
body[data-theme="amalfi"] .amNames{ margin:0; font-family:var(--pp-script); font-weight:400; font-size:66px; line-height:.92; color:var(--pp-accent); display:flex; flex-direction:column; }
body[data-theme="amalfi"] .amWindow{ width:min(260px,80%); aspect-ratio:1.13; border-radius:130px 130px 12px 12px; box-shadow:0 0 0 6px var(--pp-bg), 0 0 0 8px var(--pp-accent); }
body[data-theme="amalfi"] .amDate{ font-style:italic; font-size:19px; }
body[data-theme="amalfi"] .amFor{ color:var(--pp-hi); font-size:15px; }
body[data-theme="amalfi"] .amLetter{ background:var(--pp-paper); border-radius:14px; padding:24px 22px; display:flex; flex-direction:column; gap:10px; }
body[data-theme="amalfi"] .amScript{ font-family:var(--pp-script); font-size:42px; line-height:1; color:var(--pp-hi); text-align:inherit; }
body[data-theme="amalfi"] .amSign{ text-align:right; font-style:italic; font-size:17px; }
body[data-theme="amalfi"] .amPs{ font-size:15px; color:var(--pp-sub); }
body[data-theme="amalfi"] .amTitle, body[data-theme="amalfi"] .slide[data-slide="itinerary"] .amTitle{ font-family:var(--pp-display); font-weight:600; font-size:28px; text-align:center; margin:0 0 12px; color:var(--pp-ink); }
body[data-theme="amalfi"] .amTiles{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; background:var(--pp-line); padding:4px; border-radius:6px; }
body[data-theme="amalfi"] .amTile{ aspect-ratio:1; }
body[data-theme="amalfi"] .amTileArt{ background:var(--pp-bg); display:flex; align-items:center; justify-content:center; }
body[data-theme="amalfi"] .amTileArt svg{ width:72%; height:auto; }
body[data-theme="amalfi"] .amTileWide{ grid-column:span 2; aspect-ratio:2; }
body[data-theme="amalfi"] .amVenue{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:6px; }
body[data-theme="amalfi"] .amVenue .amTitle{ color:var(--pp-accent); margin:0; }
body[data-theme="amalfi"] .amPill{ padding:0 22px; border-radius:999px; background:var(--pp-accent); color:var(--pp-accent-ink); font-family:var(--pp-body); font-weight:600; letter-spacing:0; }
body[data-theme="amalfi"] .amDress{ background:var(--pp-soft); border-radius:14px; padding:18px 20px; display:flex; gap:14px; align-items:center; }
body[data-theme="amalfi"] .amSun{ width:44px; height:44px; flex-shrink:0; color:var(--pp-hi); }
body[data-theme="amalfi"] .amDressTitle{ margin:2px 0; font-family:var(--pp-display); font-weight:600; font-size:20px; }
body[data-theme="amalfi"] .amDress .ppBody{ font-style:italic; font-size:16px; }
body[data-theme="amalfi"] .itinList{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
body[data-theme="amalfi"] .itinRow{
  grid-template-columns:1fr; text-align:center; align-content:center; gap:4px; aspect-ratio:1; padding:12px;
  border:2px solid var(--pp-accent); border-radius:4px; background:var(--pp-bg); box-shadow:inset 0 0 0 5px var(--pp-bg), inset 0 0 0 6px var(--pp-accent);
}
body[data-theme="amalfi"] .itinRow:nth-child(4n+2), body[data-theme="amalfi"] .itinRow:nth-child(4n+3){ background:var(--pp-lemon); box-shadow:inset 0 0 0 5px var(--pp-lemon), inset 0 0 0 6px var(--pp-accent); }
body[data-theme="amalfi"] .itinRow:last-child{ border-bottom:2px solid var(--pp-accent); }
body[data-theme="amalfi"] .itinRowTime{ color:var(--pp-accent); font-size:24px; }
body[data-theme="amalfi"] .itinRowName{ font-weight:400; font-size:16px; }
body[data-theme="amalfi"] .itinRowDesc{ display:none; }
body[data-theme="amalfi"] .slide[data-slide="rsvp"] .card{ background:var(--pp-bg); border:2px solid var(--pp-accent); border-radius:14px; }
body[data-theme="amalfi"] .btnPrimary{ background:var(--pp-lemon); color:var(--pp-ink); font-family:var(--pp-body); text-transform:none; letter-spacing:0; font-size:17px; }
body[data-theme="amalfi"] .attendingChoice{ border-color:var(--pp-accent); border-radius:14px; }
body[data-theme="amalfi"] .mealPick{ border-radius:12px; }
body[data-theme="amalfi"] .ppFooter{ padding:0; }
body[data-theme="amalfi"] .amBand{ display:block; width:100%; height:22px; background:repeating-linear-gradient(90deg,var(--pp-accent) 0 22px,var(--pp-bg) 22px 26px,var(--pp-lemon) 26px 48px,var(--pp-bg) 48px 52px); }

/* ══ Storybook ══════════════════════════════════════════════════ */
body[data-theme="storybook"] .sbSC{ font-family:var(--pp-caps); font-size:14px; letter-spacing:.24em; font-weight:400; margin:0; }
body[data-theme="storybook"] .sbCover{ background:var(--pp-forest); border-radius:4px 12px 12px 4px; padding:16px 16px 16px 26px; box-shadow:0 16px 34px rgba(47,74,58,.35), inset 8px 0 0 #263D30; }
body[data-theme="storybook"] .sbCoverFrame{ border:1.5px solid var(--pp-line); padding:6px; }
body[data-theme="storybook"] .sbCoverInner{ border:1px solid var(--pp-line); padding:30px 16px; display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; color:#EAD9B0; }
body[data-theme="storybook"] .sbFlourish{ width:120px; color:var(--pp-line); }
body[data-theme="storybook"] .sbNames{ margin:0; font-family:var(--pp-display); font-style:italic; font-weight:400; font-size:50px; line-height:1; color:#F3E3BC; display:flex; flex-direction:column; }
body[data-theme="storybook"] .sbTale{ font-style:italic; font-size:17px; }
body[data-theme="storybook"] .sbPlateFrame{ width:170px; aspect-ratio:.85; border:1.5px solid var(--pp-line); padding:5px; }
body[data-theme="storybook"] .sbPlateFrame .ppImg{ width:100%; height:100%; filter:sepia(.25); }
body[data-theme="storybook"] .sbCover .ppCountdown .pill{ border-color:var(--pp-line); color:#EAD9B0; }
body[data-theme="storybook"] .sbPage{ display:flex; flex-direction:column; gap:10px; }
body[data-theme="storybook"] .sbChapterNo{ color:var(--pp-hi); font-size:13px; letter-spacing:.3em; text-align:center; }
body[data-theme="storybook"] .sbChapterTitle, body[data-theme="storybook"] .slide[data-slide="itinerary"] .sbChapterTitle{
  margin:0; font-family:var(--pp-display); font-style:italic; font-weight:400; font-size:28px; line-height:1.15; text-align:center; color:var(--pp-ink);
}
body[data-theme="storybook"] .sbProse{ font-size:19px; line-height:1.55; text-align:justify; }
body[data-theme="storybook"] .sbDropcap::first-letter{ float:left; font-size:66px; line-height:.8; padding:6px 8px 0 0; color:var(--pp-hi); }
body[data-theme="storybook"] .sbSign{ text-align:right; font-style:italic; font-size:18px; }
body[data-theme="storybook"] .sbPs{ font-style:italic; font-size:15px; color:var(--pp-sub); }
body[data-theme="storybook"] .sbPlate{ margin:0; border:1px solid var(--pp-line); padding:8px; background:var(--pp-paper); display:flex; flex-direction:column; gap:6px; }
body[data-theme="storybook"] .sbPlate .ppImg{ aspect-ratio:4/3; filter:sepia(.25); }
body[data-theme="storybook"] .sbPlate figcaption{ font-style:italic; font-size:14px; text-align:center; }
body[data-theme="storybook"] .sbChapter-side{ flex-direction:row-reverse; align-items:center; gap:14px; }
body[data-theme="storybook"] .sbChapter-side .sbPlate{ width:46%; flex-shrink:0; }
body[data-theme="storybook"] .sbChapter-side .sbPlate .ppImg{ aspect-ratio:.85; }
body[data-theme="storybook"] .sbChapter-side .sbChapterHead *{ text-align:left; }
body[data-theme="storybook"] .sbCenter{ align-items:center; text-align:center; }
body[data-theme="storybook"] .sbCenter .sbProse{ text-align:center; }
body[data-theme="storybook"] .sbDate{ font-size:22px; }
body[data-theme="storybook"] .sbVenueName{ margin:0; font-weight:400; font-style:italic; font-size:21px; }
body[data-theme="storybook"] .sbSCLink{ font-family:var(--pp-caps); color:var(--pp-hi); letter-spacing:.18em; font-size:15px; }
body[data-theme="storybook"] .sbFootnote{ border-top:1px solid var(--pp-line); padding-top:14px; }
body[data-theme="storybook"] .sbFootnote .sbSC{ color:var(--pp-hi); font-size:13px; }
body[data-theme="storybook"] .sbFootnote .sbProse{ font-style:italic; font-size:16px; }
body[data-theme="storybook"] .slide[data-slide="itinerary"] .card{ border-top:1px solid var(--pp-line); border-bottom:1px solid var(--pp-line); padding:16px 4px; }
body[data-theme="storybook"] .itinList{ counter-reset:sbstep; }
body[data-theme="storybook"] .itinRow{ grid-template-columns:30px 1fr auto; border-bottom:0; padding:6px 0; counter-increment:sbstep; }
body[data-theme="storybook"] .itinRow::before{ content:counter(sbstep, lower-roman) "."; font-family:var(--pp-caps); color:var(--pp-hi); font-size:18px; }
body[data-theme="storybook"] .itinRowTime{ order:3; font-style:italic; font-weight:400; font-family:var(--pp-body); font-size:17px; }
body[data-theme="storybook"] .itinRowBody{ order:2; }
body[data-theme="storybook"] .ppFooter{ font-style:italic; font-size:24px; color:var(--pp-hi); }
