:root {
  --color-cream: #FBF7F0;
  --color-gold: #B78A2E;
  --color-sakura: #F3C9D3;
  --color-cherry: #C4232F;
  --color-branch: #5E4032;
  --color-primary: var(--color-gold);
  --color-secondary: var(--color-sakura);
  --color-background: var(--color-cream);
  --color-ink: var(--color-branch);
  --color-muted: var(--color-branch);
  --color-card: var(--color-cream);
  --color-danger: var(--color-cherry);
  --color-success: var(--color-branch);
  --font-heading: Baskerville, "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --font-body: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --line-gold: 1px solid rgb(183 138 46 / 35%);
  --shadow-soft: 0 8px 24px rgb(94 64 50 / 8%);
  --radius: .45rem;
  --shadow: var(--shadow-soft);
}


* { box-sizing: border-box; }
html { scroll-behavior: smooth; background-color: var(--color-background); }
body {
  margin: 0;
  color: var(--color-ink);
  background: var(--color-background);
  font-family: var(--font-body);
  line-height: 1.6;
}
body[data-theme="floral"], body[data-pattern="floral"] {
  background-color: var(--color-background);
  background-image: none;
  background-attachment: fixed;
  background-position: center top;
  background-size: 440px 440px;
}
body[data-theme="floral"] .site-header,
body[data-pattern="floral"] .site-header { border-bottom-color: color-mix(in srgb, var(--color-primary) 18%, transparent); }
body[data-theme="floral"] .section-heading::before,
body[data-pattern="floral"] .section-heading::before,
body[data-theme="floral"] .story-introduction::before,
body[data-pattern="floral"] .story-introduction::before {
  content: "❦  ✿  ❦";
  display: block;
  margin-bottom: .7rem;
  color: var(--color-primary);
  font-family: Georgia, serif;
  font-size: 1rem;
  letter-spacing: .45rem;
}
body[data-theme="floral"] .detail-card,
body[data-pattern="floral"] .detail-card,
body[data-theme="floral"] .card,
body[data-pattern="floral"] .card,
body[data-theme="floral"] .guest-form,
body[data-pattern="floral"] .guest-form,
body[data-theme="floral"] .gallery-card,
body[data-pattern="floral"] .gallery-card,
body[data-theme="floral"] .timeline-item,
body[data-pattern="floral"] .timeline-item {
  border-color: color-mix(in srgb, var(--color-primary) 20%, transparent);
  background: color-mix(in srgb, #fff 92%, var(--color-background));
}
body[data-theme="floral"] .site-footer,
body[data-pattern="floral"] .site-footer { background: color-mix(in srgb, var(--color-background) 88%, #fff); }

body[data-theme="silvia-javi"] {
  --color-ink: var(--color-branch);
  --color-muted: var(--color-branch);
  --color-card: color-mix(in srgb, var(--color-sakura) 88%, transparent);
  --radius: .45rem;
  --shadow: var(--shadow-soft);
  background-color: var(--color-background);
  background-image:
    radial-gradient(circle at 14% 12%, color-mix(in srgb, var(--color-secondary) 34%, transparent) 0 .12rem, transparent .14rem),
    radial-gradient(circle at 82% 24%, color-mix(in srgb, var(--color-primary) 13%, transparent) 0 .1rem, transparent .12rem),
    linear-gradient(105deg, color-mix(in srgb, var(--color-cream) 28%, transparent), transparent 35% 68%, color-mix(in srgb, var(--color-gold) 8%, transparent));
  background-position: 0 0, 1.4rem 2rem, 0 0;
  background-size: 3rem 3rem, 3.7rem 3.7rem, auto;
}
body[data-theme="silvia-javi"] .site-header {
  border-bottom-color: color-mix(in srgb, var(--color-primary) 18%, transparent);
  background: color-mix(in srgb, var(--color-background) 91%, transparent);
}
body[data-theme="silvia-javi"] .section-heading::before,
body[data-theme="silvia-javi"] .story-introduction::before {
  content: "—  ♥  —";
  display: block;
  margin-bottom: .8rem;
  color: var(--color-primary);
  font-family: Georgia, serif;
  font-size: .8rem;
  letter-spacing: .45rem;
}
body[data-theme="silvia-javi"] .detail-card,
body[data-theme="silvia-javi"] .card,
body[data-theme="silvia-javi"] .guest-form,
body[data-theme="silvia-javi"] .gallery-card,
body[data-theme="silvia-javi"] .timeline-item {
  border-color: color-mix(in srgb, var(--color-primary) 19%, transparent);
  background: var(--color-card);
  backdrop-filter: blur(8px);
}
body[data-theme="silvia-javi"] .button { letter-spacing: .04em; }
body[data-theme="silvia-javi"] .button:not(.secondary),
body[data-theme="silvia-javi"] .button.danger {
  border-color: var(--color-danger);
  background: var(--color-danger);
  color: var(--color-background);
}
body[data-theme="silvia-javi"] .section:nth-child(even),
body[data-theme="silvia-javi"] .home-section-slot:nth-child(even) > .home-engine-section {
  background: color-mix(in srgb, var(--color-secondary) 38%, var(--color-background));
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header {
  display: grid;
  grid-template-columns: minmax(9rem, 1fr) auto minmax(9rem, 1fr);
  border-bottom: 0;
  background: linear-gradient(180deg, color-mix(in srgb, var(--color-cream) 95%, transparent), color-mix(in srgb, var(--color-cream) 66%, transparent) 68%, transparent);
  backdrop-filter: none;
}
body[data-theme="silvia-javi"]:has(.watercolor-home) .site-header {
  position: absolute;
  right: 0;
  left: 0;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header .brand {
  overflow: hidden;
  color: var(--color-primary);
  font-family: "URW Chancery L", "Apple Chancery", "Segoe Script", "Brush Script MT", cursive;
  font-size: 1.35rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header .brand img {
  display: block;
  width: auto;
  height: clamp(5rem, 11vw, 7rem);
  max-height: clamp(5rem, 11vw, 7rem);
  max-width: min(12rem, 24vw);
  object-fit: contain;
  opacity: 1;
  visibility: visible;
  filter: drop-shadow(0 .2rem .35rem rgb(94 64 50 / 12%));
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header nav {
  grid-column: 2;
  justify-content: center;
  color: var(--color-branch);
  font-family: var(--font-heading);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
}

body[data-theme="romantic"] {
  background-color: var(--color-background);
  background-image:
    radial-gradient(circle at 10% 18%, color-mix(in srgb, var(--color-secondary) 32%, transparent) 0 5rem, transparent 5.1rem),
    radial-gradient(circle at 92% 72%, color-mix(in srgb, var(--color-secondary) 24%, transparent) 0 7rem, transparent 7.1rem);
  background-attachment: fixed;
}
body[data-theme="romantic"] .detail-card,
body[data-theme="romantic"] .card,
body[data-theme="romantic"] .guest-form,
body[data-theme="romantic"] .gallery-card { border-radius: 2rem; }
body[data-theme="romantic"] .button { box-shadow: 0 8px 24px color-mix(in srgb, var(--color-primary) 18%, transparent); }

body[data-theme="mediterranean"] {
  background-color: var(--color-background);
  background-image:
    linear-gradient(135deg, color-mix(in srgb, var(--color-secondary) 15%, transparent) 25%, transparent 25%),
    linear-gradient(315deg, color-mix(in srgb, var(--color-primary) 7%, transparent) 25%, transparent 25%);
  background-position: 0 0, 2rem 2rem;
  background-size: 4rem 4rem;
}
body[data-theme="mediterranean"] .eyebrow { letter-spacing: .22em; }
body[data-theme="mediterranean"] .detail-card,
body[data-theme="mediterranean"] .card { border-bottom: 3px solid var(--color-secondary); }

body[data-theme="minimal"] { --radius: .4rem; --shadow: none; }
body[data-theme="minimal"] .site-header { border-bottom-color: #b8b8b4; backdrop-filter: none; }
body[data-theme="minimal"] .detail-card,
body[data-theme="minimal"] .card,
body[data-theme="minimal"] .story-preview-card,
body[data-theme="minimal"] .gallery-card,
body[data-theme="minimal"] .guest-form { border-color: #b8b8b4; }
body[data-theme="minimal"] .eyebrow { letter-spacing: .24em; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, .button { touch-action: manipulation; }
h1, h2, h3 { margin: 0 0 .75rem; font-family: var(--font-heading); font-weight: 500; line-height: 1.12; }
h1 { font-size: clamp(2.8rem, 11vw, 6.5rem); }
h2 { font-size: clamp(2rem, 7vw, 3.8rem); }
h3 { font-size: 1.4rem; }
p { margin: 0 0 1rem; }

.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 4.5rem;
  padding: .8rem clamp(1rem, 5vw, 5rem);
  border-bottom: 1px solid rgb(90 75 62 / 10%);
  background: color-mix(in srgb, var(--color-background) 88%, transparent);
  backdrop-filter: blur(14px);
}
.site-header .brand { font-family: var(--font-heading); font-size: 1.2rem; text-decoration: none; }
.site-header .brand img { max-height: 2.8rem; width: auto; }
.site-header nav { display: flex; gap: clamp(.75rem, 2.5vw, 2rem); overflow-x: auto; font-size: .88rem; white-space: nowrap; scrollbar-width: none; }
.site-header nav::-webkit-scrollbar { display: none; }
.site-header nav a { text-decoration: none; }
.site-header nav a:hover { color: var(--color-primary); }

.hero {
  position: relative;
  display: grid;
  min-height: min(860px, calc(100svh - 4.5rem));
  place-items: end center;
  overflow: hidden;
  background: var(--color-branch);
  color: #fff;
}
.hero-slideshow { position: absolute; inset: 0; }
.hero-slide { position: absolute; inset: 0; overflow: hidden; opacity: 0; transform: scale(1.03); transition: opacity 1.4s ease, transform 8s ease; }
.hero-slide.is-active { opacity: 1; transform: scale(1); }
.hero-slide img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-slide-backdrop { display: none; }
.hero-slide-image { object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(20 17 14 / 8%), rgb(20 17 14 / 70%)); }
.hero-content { position: relative; z-index: 1; width: min(920px, 100%); padding: clamp(3rem, 10vw, 7rem) 1.25rem; text-align: center; animation: rise .8s ease-out both; }
.hero-kicker { margin-bottom: .5rem; letter-spacing: .18em; text-transform: uppercase; }
.hero-welcome { max-width: 650px; margin: 1rem auto 2rem; font-size: clamp(1rem, 3vw, 1.25rem); }
@keyframes rise { from { opacity: 0; transform: translateY(20px); } }

.countdown { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 560px; margin: 2rem auto 0; gap: .5rem; }
.countdown div { padding: .7rem .25rem; border: 1px solid rgb(255 255 255 / 38%); border-radius: .75rem; background: rgb(0 0 0 / 12%); backdrop-filter: blur(5px); }
.countdown strong { display: block; font-family: var(--font-heading); font-size: clamp(1.4rem, 5vw, 2.25rem); line-height: 1; }
.countdown span { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }

.watercolor-home { overflow: clip; }
.watercolor-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: 100vh;
  min-height: 100dvh;
  place-items: center;
  overflow: hidden;
  padding: clamp(7rem, 8vw, 8.5rem) 1rem 3.5rem;
  background-color: var(--color-cream);
  background-image: none;
  background-position: center;
  background-size: cover;
  color: var(--color-branch);
}
.watercolor-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, transparent 23%, color-mix(in srgb, var(--color-cream) 38%, transparent) 34% 66%, transparent 77%);
  pointer-events: none;
}
.watercolor-hero-decor {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.watercolor-reference-layer {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.watercolor-reference-layer img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
}
.watercolor-reference-clean img {
  opacity: .98;
  -webkit-mask-image: linear-gradient(to bottom, #000 0 72%, rgb(0 0 0 / 88%) 84%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0 72%, rgb(0 0 0 / 88%) 84%, transparent 100%);
}
.watercolor-reference-mobile-bottom { display: none; }
.watercolor-mobile-tree { display: none; }
.watercolor-hero-wash {
  position: absolute;
  width: min(42rem, 62vw);
  height: min(30rem, 48vw);
  border-radius: 50%;
  background: var(--color-sakura);
  filter: blur(2.5rem);
  opacity: .32;
}
.watercolor-hero-wash-top-left { top: -9rem; left: -13rem; transform: rotate(-18deg); }
.watercolor-hero-wash-bottom-right { right: -12rem; bottom: -8rem; transform: rotate(18deg); opacity: .27; }
.watercolor-hero-botanical {
  position: absolute;
  width: min(31rem, 36vw);
  height: auto;
  overflow: visible;
  color: var(--color-branch);
  opacity: .58;
}
.watercolor-hero-botanical path {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 1.55;
}
.watercolor-hero-flower { fill: var(--color-sakura); stroke: color-mix(in srgb, var(--color-cherry) 45%, var(--color-branch)); stroke-width: .65; }
.watercolor-hero-flower-light { opacity: .7; }
.watercolor-hero-botanical-top-left { top: 5rem; left: -2.2rem; transform: rotate(-7deg); }
.watercolor-hero-botanical-bottom-right { right: -2.4rem; bottom: -1.8rem; transform: rotate(173deg); }
.watercolor-hero-petal {
  position: absolute;
  width: .5rem;
  height: .9rem;
  border-radius: 100% 0 100% 0;
  background: var(--color-sakura);
  opacity: .72;
}
.watercolor-hero-petal-one { top: 19%; left: 30%; transform: rotate(-30deg); }
.watercolor-hero-petal-two { top: 29%; right: 27%; transform: rotate(46deg); }
.watercolor-hero-petal-three { bottom: 23%; left: 27%; transform: rotate(24deg); }
.watercolor-hero-petal-four { bottom: 16%; right: 29%; transform: rotate(-42deg); }
.watercolor-portrait {
  position: absolute;
  z-index: -1;
  top: 4.5rem;
  width: min(30vw, 500px);
  height: min(43vw, 690px);
  max-height: 68%;
  opacity: .9;
  filter: saturate(.78) sepia(.12) contrast(.94) brightness(1.04);
  -webkit-mask-image: radial-gradient(ellipse 73% 70% at 50% 46%, #000 0 42%, rgb(0 0 0 / 92%) 54%, rgb(0 0 0 / 45%) 67%, transparent 79%);
  mask-image: radial-gradient(ellipse 73% 70% at 50% 46%, #000 0 42%, rgb(0 0 0 / 92%) 54%, rgb(0 0 0 / 45%) 67%, transparent 79%);
  pointer-events: none;
}
.watercolor-portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(110deg, rgb(248 238 216 / 18%), transparent 48%),
    radial-gradient(ellipse at center, transparent 42%, color-mix(in srgb, var(--color-sakura) 42%, transparent) 67%, var(--color-cream) 82%);
  mix-blend-mode: screen;
}
.watercolor-portrait img { width: 100%; height: 100%; object-fit: cover; }
.watercolor-portrait-left { left: -.5%; transform: rotate(-1.5deg); }
.watercolor-portrait-left img { object-position: 50% 35%; }
.watercolor-portrait-right { right: -.5%; transform: rotate(1.3deg); }
.watercolor-portrait-right img { object-position: 50% 35%; }
.watercolor-hero-center {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  width: min(100%, 66rem);
  margin: 0 auto;
  text-align: center;
}
.watercolor-emblem {
  position: relative;
  display: grid;
  width: min(78vw, 52rem);
  height: min(78vw, 52rem);
  aspect-ratio: 1;
  min-height: 0;
  margin: 0 auto;
  place-items: center;
  isolation: isolate;
}
.watercolor-emblem-frame {
  position: absolute;
  z-index: 0;
  inset: -1.5%;
  width: 103%;
  height: 103%;
  overflow: visible;
  color: var(--color-gold);
  opacity: .78;
  pointer-events: none;
}
.watercolor-emblem-frame path {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  vector-effect: non-scaling-stroke;
}
.watercolor-emblem-frame-inner { opacity: .82; }
.watercolor-emblem-content {
  position: relative;
  z-index: 3;
  width: min(69%, 30rem);
  margin-top: -.3rem;
}
.watercolor-emblem-content .watercolor-welcome { max-width: 25rem; }
.watercolor-emblem-content .countdown { max-width: 25rem; }
.watercolor-emblem-botanical {
  position: absolute;
  z-index: 2;
  width: clamp(8rem, 17vw, 14rem);
  height: auto;
  overflow: visible;
  color: var(--color-branch);
  opacity: .92;
  pointer-events: none;
}
.watercolor-emblem-botanical path {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 2.2;
}
.watercolor-emblem-flower { fill: var(--color-sakura); stroke: color-mix(in srgb, var(--color-cherry) 45%, var(--color-branch)); stroke-width: .8; }
.watercolor-emblem-cherry { fill: var(--color-cherry); opacity: .9; }
.watercolor-emblem-botanical-top-left { top: 1%; left: 0; transform: rotate(-8deg); }
.watercolor-emblem-botanical-bottom-right { right: 0; bottom: 1%; transform: rotate(172deg); }
.watercolor-emblem::before,
.watercolor-emblem::after {
  content: "";
  position: absolute;
  z-index: 1;
  width: clamp(3.5rem, 8vw, 6rem);
  height: clamp(5rem, 11vw, 8rem);
  background:
    radial-gradient(ellipse at 22% 18%, var(--color-sakura) 0 4%, transparent 5%),
    radial-gradient(ellipse at 72% 45%, color-mix(in srgb, var(--color-sakura) 78%, white) 0 3%, transparent 4%),
    radial-gradient(ellipse at 38% 82%, color-mix(in srgb, var(--color-sakura) 62%, white) 0 3%, transparent 4%);
  opacity: .72;
  pointer-events: none;
}
.watercolor-emblem::before { top: 17%; right: 8%; transform: rotate(22deg); }
.watercolor-emblem::after { bottom: 14%; left: 8%; transform: rotate(-28deg) scaleX(-1); }
.watercolor-emblem-petal {
  position: absolute;
  z-index: 2;
  width: .48rem;
  height: .88rem;
  border-radius: 100% 0 100% 0;
  background: var(--color-sakura);
  opacity: .7;
  pointer-events: none;
}
.watercolor-emblem-petal-one { top: 26%; left: 17%; transform: rotate(-32deg); }
.watercolor-emblem-petal-two { top: 34%; right: 15%; transform: rotate(48deg); }
.watercolor-emblem-petal-three { bottom: 23%; right: 21%; transform: rotate(18deg); }
.watercolor-kicker {
  margin-bottom: .45rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.watercolor-flourish {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  width: min(300px, 68%);
  margin: 0 auto .65rem;
  gap: .75rem;
  color: #9f9368;
  font-size: .72rem;
}
.watercolor-flourish::before,
.watercolor-flourish::after { content: ""; height: 1px; background: linear-gradient(90deg, transparent, #b9a978); }
.watercolor-flourish::after { background: linear-gradient(90deg, #b9a978, transparent); }
.watercolor-hero h1 {
  margin: 0 -.08em;
  color: #6e6a4d;
  font-family: "URW Chancery L", "Apple Chancery", "Segoe Script", "Brush Script MT", cursive;
  font-size: clamp(4.5rem, 7.4vw, 8.2rem);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .84;
  text-wrap: balance;
  text-shadow: 0 2px 0 rgb(255 255 255 / 44%);
}
.watercolor-bouquet-mark {
  margin: .55rem auto -.1rem;
  color: #9a9872;
  font-family: Georgia, serif;
  font-size: 2.15rem;
  transform: rotate(-8deg);
}
.watercolor-date {
  margin: 0;
  color: #55523f;
  font-family: var(--font-heading);
  font-size: clamp(.9rem, 1.35vw, 1.2rem);
  font-weight: 600;
  letter-spacing: .21em;
  text-transform: uppercase;
}
.watercolor-welcome {
  max-width: 520px;
  margin: .55rem auto 0;
  color: #6b6652;
  font-size: clamp(.82rem, 1.05vw, 1rem);
  letter-spacing: .08em;
  line-height: 1.45;
}
.watercolor-hero .countdown {
  max-width: 390px;
  margin-top: .85rem;
  color: #5e5943;
}
.watercolor-hero .countdown div {
  padding: .4rem .2rem;
  border-color: rgb(119 114 82 / 22%);
  background: rgb(255 252 243 / 48%);
  backdrop-filter: blur(5px);
}
.watercolor-hero .countdown strong { font-size: clamp(1.2rem, 2vw, 1.65rem); }
.watercolor-nav-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(610px, 100%);
  margin: clamp(1.05rem, 2vw, 1.7rem) auto 0;
  column-gap: clamp(.5rem, 2vw, 1.5rem);
  row-gap: .7rem;
}
.watercolor-nav-grid { overflow: visible; }
.watercolor-nav-link {
  display: grid;
  justify-items: center;
  color: #5a5744;
  font-family: var(--font-heading);
  font-size: clamp(.68rem, .95vw, .86rem);
  font-weight: 600;
  letter-spacing: .09em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
}
.watercolor-nav-link { transition: color .18s ease, transform .18s ease; }
.watercolor-nav-link { position: relative; z-index: 0; }
.watercolor-nav-link > span { position: relative; z-index: 1; }
.watercolor-icon-medallion {
  display: grid;
  width: clamp(4.4rem, 6.5vw, 6rem);
  height: clamp(4.4rem, 6.5vw, 6rem);
  margin-bottom: .4rem;
  place-items: center;
  border: 1px solid rgb(147 132 89 / 11%);
  border-radius: 50%;
  background:
    radial-gradient(circle at 38% 34%, rgb(255 255 255 / 65%), transparent 38%),
    radial-gradient(circle, rgb(231 217 181 / 43%), rgb(248 241 220 / 22%) 63%, transparent 72%);
  transition: transform .25s ease, background-color .25s ease;
}
.watercolor-icon-medallion { z-index: 1; }

/* Ensure hovered item comes above siblings, without hiding others */
.watercolor-nav-link:hover,
.watercolor-nav-link:focus-visible { z-index: 3; color: var(--color-primary); }
.watercolor-nav-link:hover .watercolor-icon-medallion,
.watercolor-nav-link:focus-visible .watercolor-icon-medallion {
  background-color: rgb(226 209 166 / 28%);
  transform: rotate(-1deg) scale(1.02);
  box-shadow: 0 10px 20px rgb(91 78 48 / 10%);
  z-index: 4;
}
.watercolor-nav-icon { width: 62%; height: 62%; color: #777252; }
.watercolor-link-flourish {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  width: 74%;
  margin-top: .38rem;
  gap: .35rem;
  color: #9c9067;
  font-size: .52rem;
}
.watercolor-link-flourish::before,
.watercolor-link-flourish::after { content: ""; height: 1px; background: #cdbf9a; }
.watercolor-nav-link:hover .watercolor-icon-medallion,
.watercolor-nav-link:focus-visible .watercolor-icon-medallion { background-color: rgb(226 209 166 / 28%); transform: rotate(-1deg); }
.watercolor-nav-link:focus-visible { border-radius: .7rem; outline: 2px solid color-mix(in srgb, var(--color-primary) 45%, transparent); outline-offset: .3rem; }

/* Mejoras visuales para los botones/enlaces de la portada acuarela */
body[data-theme="silvia-javi"] .watercolor-nav-link { color: var(--color-primary); }
body[data-theme="silvia-javi"] .watercolor-icon-medallion {
  border-color: color-mix(in srgb, var(--color-primary) 22%, transparent);
  box-shadow: 0 8px 22px rgb(91 78 48 / 10%);
  background-color: rgb(255 252 243 / 86%);
}

.section { width: min(1120px, 100%); margin: 0 auto; padding: clamp(4rem, 10vw, 8rem) 1.25rem; }
.section-heading { max-width: 720px; margin: 0 auto 3rem; text-align: center; }
.eyebrow { color: var(--color-primary); font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.lead { color: var(--color-muted); font-size: 1.1rem; }
.pre-line { white-space: pre-line; }
.details-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.detail-card, .card { padding: 1.4rem; border: 1px solid color-mix(in srgb, var(--color-secondary) 55%, transparent); border-radius: var(--radius); background: var(--color-card); box-shadow: var(--shadow); }
.detail-card small { display: block; margin-bottom: .35rem; color: var(--color-primary); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.detail-card p:last-child { margin-bottom: 0; }
.detail-card a { color: var(--color-primary); font-weight: 700; }
.location-map-widget { display: grid; justify-items: center; gap: 1rem; margin-top: 1.25rem; }
.location-map-frame { width: 100%; min-height: 320px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--color-secondary) 65%, transparent); border-radius: var(--radius); background: #e9e5de; box-shadow: var(--shadow); }
.location-map-frame iframe { display: block; width: 100%; height: clamp(320px, 48vw, 460px); border: 0; }
.location-map-directions { width: fit-content; }
.hotel-location-summary { max-width: 760px; margin-inline: auto; text-align: center; }
.hotel-location-summary h3 { margin-bottom: .35rem; }
.hotel-location-summary .pre-line { margin-top: 1rem; }

.story-preview-grid { display: grid; gap: 1rem; }
.story-preview-card { position: relative; min-height: 25rem; overflow: hidden; border-radius: var(--radius); background: #5d5248; color: #fff; box-shadow: var(--shadow); text-decoration: none; }
.story-preview-card > img, .story-preview-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.story-preview-placeholder { background: linear-gradient(145deg, #a99580, #5e5145); }
.story-preview-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 28%, rgb(24 20 17 / 80%)); }
.story-preview-card:hover > img { transform: scale(1.035); }
.story-preview-copy { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; display: grid; padding: 1.5rem; }
.story-preview-copy small { margin-bottom: .35rem; font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.story-preview-copy strong { font-family: var(--font-heading); font-size: 2rem; font-weight: 500; }
.story-preview-copy > span { margin-top: .5rem; font-size: .85rem; }

.story-page { overflow: clip; }
.story-page.has-story-background {
  background-color: var(--color-background);
  background-image: var(--story-background-image);
  background-position: top center;
  background-repeat: repeat-y;
  background-size: min(78rem, 100vw) auto;
}
body[data-theme="silvia-javi"] .story-page,
body[data-theme="silvia-javi"] .wedding-information-page {
  background-color: #FBF7F0;
  background-image:
    linear-gradient(90deg, rgb(251 246 235 / 14%), rgb(251 246 235 / 74%) 30% 70%, rgb(251 246 235 / 14%)),
    none;
  background-attachment: fixed, fixed;
  background-position: center, center;
  background-repeat: no-repeat;
  background-size: cover;
}
body[data-theme="silvia-javi"] .story-page.has-story-background {
  background-image:
    linear-gradient(90deg, rgb(251 246 235 / 14%), rgb(251 246 235 / 74%) 30% 70%, rgb(251 246 235 / 14%)),
    var(--story-background-image),
    none;
  background-attachment: fixed, scroll, fixed;
  background-position: center, top center, center;
  background-repeat: no-repeat, repeat-y, no-repeat;
  background-size: cover, min(78rem, 100vw) auto, cover;
}
body[data-theme="silvia-javi"]:has(.story-page),
body[data-theme="silvia-javi"]:has(.wedding-information-page),
body[data-theme="silvia-javi"]:has(.photo-gallery-page),
body[data-theme="silvia-javi"]:has(.photo-upload-page),
body[data-theme="silvia-javi"]:has(.invite-shell) {
  background-color: #FBF7F0;
  background-image:
    linear-gradient(90deg, rgb(251 246 235 / 14%), rgb(251 246 235 / 74%) 30% 70%, rgb(251 246 235 / 14%)),
    none;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.story-introduction { width: min(820px, 100%); margin: 0 auto; padding: clamp(4rem, 10vw, 8rem) 1.25rem clamp(2.5rem, 7vw, 5rem); text-align: center; }
.story-introduction h1 { margin-bottom: 1.4rem; }
.story-introduction > p:last-child { max-width: 680px; margin: 0 auto; color: var(--color-muted); font-size: clamp(1.05rem, 2vw, 1.25rem); }
.story-reading-layout { display: grid; width: min(1180px, 100%); margin: 0 auto; padding: 0 1.25rem clamp(4rem, 10vw, 8rem); gap: clamp(2rem, 7vw, 6rem); }
.story-carousel-column { min-width: 0; }
.story-carousel { position: relative; width: 100%; }
.story-carousel-frame { position: relative; overflow: hidden; width: 100%; aspect-ratio: 4 / 5; border-radius: var(--radius); background: #d8cbbb; box-shadow: var(--shadow); }
.story-carousel-media-frame { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; aspect-ratio: 4 / 5; border-radius: inherit; }
.story-carousel-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0; pointer-events: none; transform: scale(1.025); transition: opacity .9s ease, transform 3s ease; }
.story-carousel-image.is-active { opacity: 1; pointer-events: auto; transform: scale(1); }
.story-carousel-video { object-fit: contain; background: #090807; transform: none; }
.story-carousel-fullscreen-trigger { position: absolute; z-index: 2; inset: 0; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.story-carousel-fullscreen-trigger::after { content: "⛶"; position: absolute; top: 1rem; right: 1rem; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid rgb(255 255 255 / 45%); border-radius: 50%; background: rgb(20 17 14 / 45%); color: #fff; font-size: 1.15rem; backdrop-filter: blur(6px); }
.story-carousel-fullscreen-trigger:focus-visible { outline: 3px solid #fff; outline-offset: -5px; }
.story-carousel-counter { position: absolute; z-index: 3; right: 1rem; bottom: 1rem; padding: .35rem .7rem; border-radius: 999px; background: rgb(20 17 14 / 55%); color: #fff; font-size: .75rem; pointer-events: none; backdrop-filter: blur(6px); }
.story-carousel-timer { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; height: .3rem; background: rgb(255 255 255 / 28%); pointer-events: none; }
.story-carousel-timer span, .story-lightbox-timer span { display: block; width: 100%; height: 100%; background: #fff; transform-origin: left; animation-name: carousel-timer; animation-timing-function: linear; animation-fill-mode: forwards; }
@keyframes carousel-timer { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.story-carousel-controls { display: grid; grid-template-columns: auto 1fr auto; align-items: center; margin-top: 1rem; gap: .75rem; }
.story-carousel-controls > button { display: grid; width: 2.7rem; height: 2.7rem; place-items: center; padding: 0; border: 1px solid var(--color-secondary); border-radius: 50%; background: transparent; color: var(--color-primary); cursor: pointer; }
.story-carousel-controls > button:hover { border-color: var(--color-primary); }
.story-carousel-dots { display: flex; min-width: 0; justify-content: center; gap: .45rem; overflow: hidden; }
.story-carousel-dots button { width: .45rem; height: .45rem; padding: 0; border: 0; border-radius: 50%; background: var(--color-secondary); cursor: pointer; transition: width .25s, background .25s; }
.story-carousel-dots button.is-active { width: 1.5rem; border-radius: 999px; background: var(--color-primary); }
.story-carousel-autoplay { margin: .65rem 0 0; color: var(--color-muted); font-size: .72rem; text-align: center; }
.story-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.story-photo-grid-item { overflow: hidden; margin: 0; border-radius: var(--radius); background: #d8cbbb; box-shadow: var(--shadow); }
.story-photo-grid-item > img, .story-photo-grid-item > button, .story-photo-grid-item > button img { display: block; width: 100%; }
.story-photo-grid-item > img, .story-photo-grid-item > button img { aspect-ratio: 4 / 5; object-fit: cover; }
.story-photo-grid-item > button { position: relative; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.story-photo-grid-item > button::after { content: "⛶"; position: absolute; top: .65rem; right: .65rem; display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border: 1px solid rgb(255 255 255 / 45%); border-radius: 50%; background: rgb(20 17 14 / 45%); color: #fff; backdrop-filter: blur(6px); }
.story-photo-grid-item > button:focus-visible { outline: 3px solid var(--color-primary); outline-offset: -4px; }
.story-carousel-empty { display: grid; min-height: 32rem; place-content: center; padding: 2rem; border: 1px dashed var(--color-secondary); border-radius: var(--radius); background: color-mix(in srgb, var(--color-secondary) 18%, #fff); color: var(--color-muted); text-align: center; }
.story-carousel-empty span { font-family: var(--font-heading); font-size: 1.5rem; }
.story-carousel-empty code { margin-top: .75rem; overflow-wrap: anywhere; font-size: .75rem; }
.story-copy { min-width: 0; }
.story-chapter { display: flex; min-height: min(540px, 66svh); flex-direction: column; justify-content: center; padding: clamp(2.5rem, 6vw, 5rem) 0; border-top: 1px solid color-mix(in srgb, var(--color-secondary) 65%, transparent); }
.story-chapter:first-child { border-top: 0; }
.story-chapter > span { margin-bottom: 1rem; color: var(--color-primary); font-size: .75rem; font-weight: 700; letter-spacing: .14em; }
.story-chapter h2 { font-size: clamp(2rem, 5vw, 3.4rem); }
.story-chapter-narrative { width: min(100%, 43rem); padding: 1rem 1.25rem; border-radius: 16px; background: rgb(251 247 240 / 64%); -webkit-backdrop-filter: blur(1.5px); backdrop-filter: blur(1.5px); }
.story-chapter-narrative p { margin: 0; }
.story-chapter-narrative p + p { margin-top: 1.05rem; }
.story-chapter p { color: var(--color-muted); font-size: 1.05rem; }
.story-next-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem; width: min(820px, 100%); margin: 0 auto; padding: 0 1.25rem clamp(4rem, 9vw, 7rem); }
.story-next-links a { padding: .65rem 1rem; border: 1px solid var(--color-secondary); border-radius: 999px; color: var(--color-primary); font-weight: 700; text-decoration: none; }
.story-next-links a:hover { border-color: var(--color-primary); }
.wedding-information-page { min-height: 100dvh; overflow: clip; }
.wedding-information-section { scroll-margin-top: 5.5rem; }
.wedding-information-section + .wedding-information-section { border-top: 1px solid color-mix(in srgb, var(--color-secondary) 42%, transparent); }
.wedding-information-empty { max-width: 720px; margin-inline: auto; text-align: center; }

.story-lightbox { position: fixed; z-index: 1000; inset: 0; display: grid; min-width: 0; grid-template-rows: auto minmax(0, 1fr) auto; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); background: rgb(12 10 9 / 97%); color: #fff; }
.story-lightbox-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; }
.story-lightbox-header > div { display: grid; }
.story-lightbox-header strong { font-family: var(--font-heading); font-size: 1.35rem; font-weight: 500; }
.story-lightbox-header span { color: rgb(255 255 255 / 72%); font-size: .75rem; }
.story-lightbox-header > button { display: grid; flex: 0 0 auto; width: 2.8rem; height: 2.8rem; place-items: center; padding: 0; border: 1px solid rgb(255 255 255 / 35%); border-radius: 50%; background: rgb(255 255 255 / 8%); color: #fff; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.story-lightbox-stage { position: relative; display: grid; min-width: 0; min-height: 0; place-items: center; overflow: hidden; border-radius: .8rem; background: #090807; touch-action: pan-y; user-select: none; }
.story-lightbox-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.story-lightbox-video { background: #090807; }
.story-lightbox-arrow { position: absolute; z-index: 2; top: 50%; display: grid; width: 3rem; height: 3rem; place-items: center; padding: 0; border: 1px solid rgb(255 255 255 / 32%); border-radius: 50%; background: rgb(10 8 7 / 55%); color: #fff; font-size: 1.25rem; cursor: pointer; transform: translateY(-50%); backdrop-filter: blur(6px); }
.story-lightbox-arrow.previous { left: .75rem; }
.story-lightbox-arrow.next { right: .75rem; }
.story-lightbox-timer { position: absolute; right: 0; bottom: 0; left: 0; height: .3rem; background: rgb(255 255 255 / 22%); }
.story-lightbox-thumbnails { display: flex; max-width: 100%; gap: .55rem; overflow-x: auto; padding-top: .75rem; scrollbar-width: thin; touch-action: pan-x; }
.story-lightbox-thumbnails button { flex: 0 0 auto; width: 4rem; height: 4rem; overflow: hidden; padding: 0; border: 2px solid transparent; border-radius: .55rem; background: #25211e; opacity: .58; cursor: pointer; }
.story-lightbox-thumbnails button.is-active { border-color: #fff; opacity: 1; }
.story-lightbox-thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.gallery-video-thumbnail { display: grid; width: 100%; height: 100%; place-content: center; color: #fff; font-size: 1.2rem; }
.gallery-video-thumbnail small { display: block; font-size: .55rem; text-transform: uppercase; }

.agenda { position: relative; max-width: 720px; margin: 0 auto; }
.agenda::before { content: ""; position: absolute; top: 0; bottom: 0; left: 4.25rem; width: 1px; background: var(--color-secondary); }
.agenda-item { position: relative; display: grid; grid-template-columns: 3.5rem 1fr; gap: 1.5rem; padding: 0 0 2.25rem; }
.agenda-item time { color: var(--color-primary); font-weight: 700; }
.agenda-item article::before { content: ""; position: absolute; left: 4rem; top: .45rem; width: .55rem; height: .55rem; border: 3px solid var(--color-background); border-radius: 50%; background: var(--color-primary); box-shadow: 0 0 0 1px var(--color-primary); }
.agenda-item p { color: var(--color-muted); }

.timeline { display: grid; gap: 1.25rem; }
.timeline-item { display: grid; overflow: hidden; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.timeline-item img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.timeline-copy { padding: 1.5rem; }
.timeline-copy time { color: var(--color-primary); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.button, button.button {
  display: inline-flex;
  min-height: 2.8rem;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .72rem 1.1rem;
  border: 1px solid var(--color-primary);
  border-radius: 999px;
  background: var(--color-danger);
  color: var(--color-background);
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}
.button:hover { filter: brightness(.93); }
.button.secondary { background: transparent; color: var(--color-primary); }
.button.danger { border-color: var(--color-danger); background: var(--color-danger); }
.button.small { min-height: 2.15rem; padding: .45rem .8rem; font-size: .8rem; }
.button:disabled { opacity: .55; cursor: not-allowed; }
.actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }

.form-grid { display: grid; gap: 1rem; }
.form-grid.two { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.section-heading-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.section-heading-row > :first-child { min-width: 0; }
.invitation-guests-editor { display: grid; gap: 1rem; padding-top: .5rem; }
.invitation-guest-drafts { display: grid; gap: 1rem; }
.invitation-guest-draft { padding: 1rem; border: 1px solid var(--color-secondary); border-radius: var(--radius); background: color-mix(in srgb, var(--color-background) 76%, white); }
.invitation-guest-draft h3, .menu-option-list h3 { margin: 0; }
.guest-permission-list { display: grid; gap: .65rem; padding: .85rem; border-radius: calc(var(--radius) * .75); background: color-mix(in srgb, var(--color-secondary) 14%, transparent); }
.menu-option-settings { align-items: start; }
.menu-option-list { display: grid; gap: 1rem; }
.invitation-field-settings { margin-top: 1rem; }
.invitation-audience-tabs { margin-top: 1rem; }
.invitation-field-group { min-width: 0; margin: 0; padding: 1rem; border: 1px solid #e3e0da; border-radius: .85rem; }
.invitation-field-group legend { padding: 0 .4rem; font-family: var(--font-heading); font-size: 1.2rem; font-weight: 750; }
.invitation-field-settings-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 1rem; }
.invitation-field-setting-card { display: grid; align-content: start; gap: .8rem; min-width: 0; padding: 1rem; border-radius: .75rem; background: #f8f6f2; }
.invitation-field-setting-card h3 { margin: 0; font-family: var(--font-body); font-size: 1rem; }
.guest-partner-choice { margin-top: 1rem; }
.guest-partner-choice .choice-row { grid-template-columns: repeat(2, 1fr); }
label.field { display: grid; gap: .4rem; color: var(--color-muted); font-size: .88rem; font-weight: 650; }
input, select, textarea {
  width: 100%;
  min-height: 2.85rem;
  padding: .7rem .8rem;
  border: 1px solid #d8d3cb;
  border-radius: .65rem;
  outline: none;
  background: #fff;
  color: var(--color-ink);
}
textarea { min-height: 6rem; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 16%, transparent); }
.checkbox { display: flex; align-items: flex-start; gap: .6rem; font-size: .92rem; }
.checkbox input { width: 1.15rem; min-height: 1.15rem; margin-top: .15rem; accent-color: var(--color-primary); }
.checkbox span { display: grid; gap: .15rem; }
.checkbox small { color: var(--color-muted); font-weight: 400; }
.choice-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.choice-row label { position: relative; cursor: pointer; }
.choice-row input { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; opacity: 0; pointer-events: none; }
.choice-row span { display: grid; min-height: 3rem; place-items: center; padding: .5rem; border: 1px solid #d8d3cb; border-radius: .75rem; background: #fff; font-size: .85rem; font-weight: 700; text-align: center; }
.choice-row input:checked + span { border-color: var(--color-primary); background: color-mix(in srgb, var(--color-secondary) 35%, #fff); color: var(--color-primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 15%, transparent); }
.help { color: var(--color-muted); font-size: .82rem; }
.field-help { margin-top: -.45rem; }
.alert { margin: 1rem 0; padding: .9rem 1rem; border-radius: .75rem; background: #f4eee4; }
.alert.success { background: #e6f3eb; color: var(--color-success); }
.alert.error { background: #f9e9e7; color: var(--color-danger); }
.home-success-notice { position: fixed; z-index: 100; top: 5.5rem; left: 50%; width: min(34rem, calc(100% - 2rem)); margin: 0; padding: 1rem 1.25rem; border: 1px solid color-mix(in srgb, var(--color-success) 28%, transparent); border-radius: 999px; background: rgb(239 248 241 / 96%); color: var(--color-success); box-shadow: 0 14px 35px rgb(44 79 52 / 18%); font-weight: 700; text-align: center; transform: translateX(-50%); backdrop-filter: blur(10px); }

.invite-shell, .narrow-page { width: min(760px, 100%); margin: 0 auto; padding: clamp(2rem, 6vw, 5rem) 1rem; }
.invite-intro { margin-bottom: 2rem; text-align: center; }
.invite-location { margin-bottom: 1rem; text-align: center; }
.invite-location h3 { margin-bottom: .5rem; }
.invite-location .button { margin-top: .5rem; }
.invite-location .location-map-widget { margin-top: 1.25rem; }
.invite-location .location-map-frame { min-height: 280px; }
.invite-location .location-map-frame iframe { height: clamp(280px, 56vw, 380px); }
.guest-form { margin-bottom: 1rem; padding: 1.25rem; border: 1px solid var(--color-secondary); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.guest-form h3 { display: flex; justify-content: space-between; gap: 1rem; }
.guest-form h3 small { color: var(--color-muted); font-family: var(--font-body); font-size: .72rem; text-transform: uppercase; }
.dietary-box { margin-top: 1rem; padding: 1rem; border-radius: .85rem; background: var(--color-background); }
.dietary-checks { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; margin-bottom: 1rem; }

.gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
.gallery-card { overflow: hidden; border-radius: .9rem; background: #fff; box-shadow: var(--shadow); }
.gallery-card-media { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; border: 0; background: #e9e5de; }
.gallery-card-media.is-interactive { cursor: zoom-in; }
.gallery-card-media.is-interactive::after { content: "⛶"; position: absolute; top: .65rem; right: .65rem; display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border: 1px solid rgb(255 255 255 / 45%); border-radius: 50%; background: rgb(20 17 14 / 45%); color: #fff; backdrop-filter: blur(6px); }
.gallery-card-media.is-interactive:focus-visible { outline: 3px solid var(--color-primary); outline-offset: -4px; }
.gallery-card-media img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .45s ease; }
.gallery-card-media video { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; background: #090807; }
.gallery-card-media.is-interactive:hover img { transform: scale(1.035); }
.gallery-card figcaption { padding: .65rem; color: var(--color-muted); font-size: .8rem; }
.guest-gallery-carousel { width: min(760px, 100%); margin: 0 auto; }
.gallery-carousel-position { color: var(--color-muted); font-size: .8rem; text-align: center; }
.gallery-carousel-caption { margin: .65rem 0 0; color: var(--color-muted); font-size: .85rem; text-align: center; }
.upload-drop { display: grid; min-height: 11rem; place-items: center; padding: 1rem; border: 2px dashed var(--color-secondary); border-radius: var(--radius); background: #fff; text-align: center; }
.progress { height: .55rem; overflow: hidden; border-radius: 1rem; background: #e5e1dc; }
.progress span { display: block; height: 100%; background: var(--color-primary); transition: width .25s; }

.site-footer { padding: 3rem 1rem; border-top: 1px solid var(--color-secondary); color: var(--color-muted); text-align: center; }
.site-footer p:first-child { color: var(--color-ink); font-family: var(--font-heading); font-size: 1.3rem; }
body:has(.home-page) > .site-footer { display: none; }

@media (min-width: 700px) {
  .hero-slide, .hero-slide.is-active { transform: none; }
  .hero-slide-backdrop { display: block; object-fit: cover; filter: blur(28px); opacity: .62; transform: scale(1.08); }
  .hero-slide-image { z-index: 1; object-fit: contain; }
  .story-preview-card > img, .story-preview-card:hover > img { object-fit: contain; transform: none; }
  .story-carousel-frame { background: #2f2a26; }
  .story-carousel-image, .story-carousel-image.is-active { object-fit: cover; object-position: center; transform: none; }
  .timeline-item { grid-template-columns: minmax(250px, 42%) 1fr; align-items: center; }
  .timeline-item img { object-fit: contain; background: #eee9e2; }
  .timeline-item:nth-child(even) img { order: 2; }
  .gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
  .gallery-card-media img, .gallery-card-media.is-interactive:hover img { object-fit: contain; background: #eee9e2; transform: none; }
  .story-preview-grid { grid-template-columns: repeat(3, 1fr); }
  .story-preview-card:nth-child(2) { transform: translateY(2rem); }
  .story-reading-layout { grid-template-columns: minmax(280px, .88fr) minmax(330px, 1.12fr); align-items: start; }
  .story-carousel-column { position: sticky; top: 6rem; }
  .story-carousel-column.is-static { position: static; }
  .story-photo-grid-item > img, .story-photo-grid-item > button img { object-fit: contain; background: #2f2a26; }
}

@media (max-width: 699px) {
  .hero-slide, .hero-slide.is-active { transform: none; }
  .hero-slide-backdrop { display: block; object-fit: cover; filter: blur(28px); opacity: .62; transform: scale(1.08); }
  .hero-slide-image { z-index: 1; object-fit: contain; }
  .story-preview-card > img, .story-preview-card:hover > img { object-fit: contain; transform: none; }
  .story-carousel-frame { background: #2f2a26; }
  .story-carousel-image, .story-carousel-image.is-active { object-fit: cover; object-position: center; transform: none; }
  .story-photo-grid-item > img, .story-photo-grid-item > button img { object-fit: contain; background: #2f2a26; }
  .timeline-item img { object-fit: contain; background: #eee9e2; }
  .gallery-card-media img, .gallery-card-media.is-interactive:hover img { object-fit: contain; background: #eee9e2; transform: none; }
}

@media (max-width: 520px) {
  .section-heading-row { align-items: stretch; flex-direction: column; }
  .site-header { align-items: flex-start; flex-direction: column; }
  .site-header nav { width: 100%; padding-bottom: .15rem; }
  .hero { min-height: calc(100svh - 7rem); }
  .choice-row { grid-template-columns: 1fr; }
  .choice-row span { min-height: 2.7rem; }
  .story-lightbox-arrow { width: 2.65rem; height: 2.65rem; }
  .story-lightbox-arrow.previous { left: .4rem; }
  .story-lightbox-arrow.next { right: .4rem; }
  body[data-theme="floral"], body[data-pattern="floral"], body[data-theme="romantic"] { background-attachment: scroll; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .story-preview-card:hover > img { transform: none; }
  .gallery-card-media.is-interactive:hover img { transform: none; }
  .story-carousel-timer, .story-carousel-autoplay, .story-lightbox-timer, .story-lightbox-autoplay-label { display: none; }
}

.theme-catalog-page { min-height: 100svh; padding: clamp(6rem, 10vw, 10rem) clamp(1rem, 5vw, 5rem); background: #f2f0eb; color: #171717; }
.theme-catalog-page > header { max-width: 900px; margin-bottom: 4rem; }
.theme-catalog-page > header h1 { font-size: clamp(4rem, 12vw, 10rem); letter-spacing: -.07em; }
.theme-catalog-grid { display: grid; gap: clamp(2rem, 7vw, 7rem); }
.theme-catalog-grid article { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); align-items: center; gap: clamp(1.5rem, 6vw, 6rem); }
.theme-catalog-grid article:nth-child(even) img { order: 2; }
.theme-catalog-grid article > img { width: 100%; box-shadow: 0 25px 70px #1b18152a; }
.theme-catalog-grid article > div > span { color: #777; font-size: .75rem; letter-spacing: .2em; }
.theme-catalog-grid dl { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2rem; border-top: 1px solid #aaa; }
.theme-catalog-grid dl div { padding-top: .7rem; }
.theme-catalog-grid dt { color: #777; font-size: .65rem; text-transform: uppercase; }
.theme-catalog-grid dd { margin: .25rem 0 0; font-size: .8rem; }
@media (max-width: 760px) { .theme-catalog-grid article { grid-template-columns: 1fr; } .theme-catalog-grid article:nth-child(even) img { order: 0; } }

/* Administración */
body:has(.admin-shell) > .site-header,
body:has(.admin-shell) > .site-footer { display: none; }
.admin-shell { min-height: 100svh; background: #f5f4f1; color: #242321; }
.admin-sidebar {
  position: fixed; z-index: 30; right: 0; bottom: 0; left: 0;
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .55rem .7rem; border-top: 1px solid #dedbd5; background: #272521; color: #fff;
}
.admin-sidebar > div, .admin-sidebar > form { display: none; }
.admin-sidebar nav { display: flex; width: 100%; gap: .25rem; overflow-x: auto; scrollbar-width: none; }
.admin-sidebar nav a { flex: 0 0 auto; padding: .55rem .65rem; border-radius: .5rem; color: #e9e5de; font-size: .78rem; text-decoration: none; }
.admin-sidebar nav a:hover { background: #3a3732; color: #fff; }
.admin-sidebar nav a.admin-subnav { color: #bcb7ae; font-size: .72rem; }
.admin-brand { margin: 0; font-family: var(--font-heading); font-size: 1.3rem; }
.admin-user { margin: .2rem 0 0; color: #aaa59c; font-size: .8rem; }
.admin-logout { padding: 0; border: 0; background: none; color: #d8d2c9; cursor: pointer; }
.admin-content { padding-bottom: 5rem; }
.admin-page { width: min(1280px, 100%); margin: 0 auto; padding: 1.2rem; }
.admin-page-header { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.admin-page-header h1, .admin-login h1 { font-family: var(--font-body); font-size: clamp(2rem, 6vw, 3.2rem); font-weight: 750; letter-spacing: -.04em; }
.admin-page-header p { color: #716d66; }
.stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.stat-card { display: grid; gap: .1rem; padding: 1.1rem; border: 1px solid #e3e0da; border-radius: .85rem; background: #fff; }
.stat-card strong { font-size: 2rem; line-height: 1; }
.stat-card span { color: #716d66; font-size: .82rem; }
.admin-card { padding: 1rem; border: 1px solid #e3e0da; border-radius: .85rem; background: #fff; }
.admin-card + .admin-card { margin-top: 1rem; }
.admin-card h2, .admin-card h3 { overflow-wrap: anywhere; font-family: var(--font-body); font-weight: 750; }
.admin-card h2 { font-size: 1.35rem; }
.admin-card h3 { font-size: 1.05rem; }
.analytics-section { margin-top: 1rem; }
.analytics-section > .help { margin-bottom: 1rem; }
.analytics-filters { margin-top: 1rem; }
.admin-table-wrap { overflow-x: auto; border: 1px solid #e3e0da; border-radius: .85rem; background: #fff; }
.admin-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.admin-table th, .admin-table td { padding: .75rem; border-bottom: 1px solid #ece9e4; text-align: left; vertical-align: top; }
.admin-table th { color: #706c65; font-size: .72rem; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table a { color: var(--color-primary); font-weight: 700; }
.badge { display: inline-flex; padding: .2rem .5rem; border-radius: 999px; background: #ece9e4; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.badge.green { background: #e2f1e7; color: #286044; }
.badge.red { background: #f6e6e4; color: #8b332e; }
.badge.amber { background: #f6eedb; color: #7d5a15; }
.filter-bar { display: grid; gap: .65rem; margin-bottom: 1rem; padding: .8rem; border-radius: .85rem; background: #fff; }
.filter-bar input, .filter-bar select { min-height: 2.5rem; }
.admin-form-section { margin: 1.5rem 0; padding-top: 1.5rem; border-top: 1px solid #e4e0da; }
.admin-form-section:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.admin-form-section > h2 { font-family: var(--font-body); font-size: 1.35rem; font-weight: 750; }
.guest-admin-card { padding: 1rem; border: 1px solid #e1ddd7; border-radius: .85rem; background: #fff; }
.guest-admin-card + .guest-admin-card { margin-top: .8rem; }
.guest-admin-card summary { cursor: pointer; font-weight: 750; }
.guest-admin-card[open] summary { margin-bottom: 1rem; }
.admin-login { display: grid; min-height: 100svh; place-items: center; padding: 1rem; }
.login-card { width: min(430px, 100%); padding: clamp(1.3rem, 5vw, 2.2rem); border: 1px solid #e1ddd7; border-radius: 1rem; background: #fff; box-shadow: var(--shadow); }
.settings-columns { display: grid; gap: 1rem; }
.app-info-card { display: grid; gap: 1rem; align-items: center; }
.app-info-card h2 { margin-bottom: .25rem; }
.app-version-summary { display: grid; justify-items: start; gap: .2rem; padding: 1rem; border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent); border-radius: .85rem; background: color-mix(in srgb, var(--color-secondary) 16%, #fff); }
.app-version-summary span, .app-version-summary small { color: var(--color-muted); font-size: .78rem; }
.app-version-summary strong { color: var(--color-primary); font-size: clamp(1.8rem, 5vw, 2.6rem); line-height: 1; }
.theme-picker-card { margin-bottom: 1rem; }
.theme-picker-card > div > h2 { font-size: clamp(2rem, 4vw, 3rem); }
.theme-picker-form { display: grid; gap: 1rem; }
.theme-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .8rem; }
.theme-option { position: relative; display: block; cursor: pointer; }
.theme-option > input { position: absolute; width: 1px; min-height: 1px; opacity: 0; pointer-events: none; }
.theme-option-body { display: grid; height: 100%; overflow: hidden; border: 1px solid #d8d3cb; border-radius: .85rem; background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.theme-option:hover .theme-option-body { transform: translateY(-2px); }
.theme-option > input:focus-visible + .theme-option-body { outline: 3px solid color-mix(in srgb, var(--color-primary) 22%, transparent); outline-offset: 2px; }
.theme-option > input:checked + .theme-option-body { border-color: var(--color-primary); box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 16%, transparent); }
.theme-preview { position: relative; display: block; height: 6.2rem; overflow: hidden; background-color: var(--theme-preview-background); }
.theme-preview::before { content: ""; position: absolute; right: 13%; bottom: -42%; width: 6rem; height: 6rem; border-radius: 50%; background: var(--theme-preview-primary); }
.theme-preview::after { content: ""; position: absolute; top: 18%; left: 12%; width: 42%; height: .65rem; border-radius: 999px; background: var(--theme-preview-secondary); box-shadow: 0 1.2rem 0 color-mix(in srgb, var(--theme-preview-primary) 36%, transparent), 0 2.4rem 0 color-mix(in srgb, var(--theme-preview-secondary) 65%, transparent); }
.theme-preview[data-theme-preview="floral"] { background-image: none; background-size: 130px 130px; }
.theme-preview[data-theme-preview="acuarela"] { background-image: none; background-position: center; background-size: cover; }
.theme-preview[data-theme-preview="romantic"] { background-image: radial-gradient(circle at 18% 28%, var(--theme-preview-secondary) 0 1.8rem, transparent 1.85rem); }
.theme-preview[data-theme-preview="mediterranean"] { background-image: linear-gradient(145deg, transparent 45%, color-mix(in srgb, var(--theme-preview-primary) 15%, transparent) 45% 55%, transparent 55%); }
.theme-preview[data-theme-preview="minimal"] { background-image: linear-gradient(90deg, transparent 49%, var(--theme-preview-secondary) 49% 51%, transparent 51%); }
.theme-option-copy { position: relative; display: grid; align-content: start; padding: .8rem; }
.theme-option-copy strong { color: #242321; }
.theme-option-copy small { margin-top: .25rem; color: #716d66; line-height: 1.35; }
.theme-option-copy em { position: absolute; top: .65rem; right: .65rem; padding: .15rem .45rem; border-radius: 999px; background: color-mix(in srgb, var(--color-primary) 14%, #fff); color: var(--color-primary); font-size: .65rem; font-style: normal; font-weight: 750; text-transform: uppercase; }
.story-editor-chapter { display: grid; gap: .75rem; min-width: 0; margin: 0; padding: 1rem; border: 1px solid #e3e0da; border-radius: .7rem; }
.story-editor-chapter legend { padding: 0 .35rem; font-weight: 750; }
.story-editor-list { display: grid; gap: 1rem; }
.story-editor-toolbar { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.story-editor-toolbar h3 { margin-bottom: .2rem; }
.story-editor-chapter-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.story-editor-list .button:disabled { cursor: not-allowed; opacity: .45; }
.story-admin-tabs { display: flex; gap: .4rem; margin-bottom: 1rem; overflow-x: auto; padding: .35rem; border: 1px solid #e3e0da; border-radius: .8rem; background: #fff; scrollbar-width: none; }
.story-admin-tabs a { flex: 0 0 auto; padding: .6rem .85rem; border-radius: .55rem; color: #5f5b54; font-size: .85rem; font-weight: 700; text-decoration: none; }
.story-admin-tabs a[aria-current="page"] { background: var(--color-primary); color: #fff; }
.admin-section-tabs { display: flex; gap: .4rem; margin-bottom: 1rem; overflow-x: auto; padding: .35rem; border: 1px solid #e3e0da; border-radius: .8rem; background: #fff; scrollbar-width: none; }
.admin-section-tabs a { flex: 0 0 auto; padding: .6rem .85rem; border-radius: .55rem; color: #5f5b54; font-size: .85rem; font-weight: 700; text-decoration: none; }
.admin-section-tabs a[aria-current="page"] { background: var(--color-primary); color: #fff; }
.location-admin-tabs { display: flex; gap: .4rem; margin-bottom: 1rem; overflow-x: auto; padding: .35rem; border: 1px solid #e3e0da; border-radius: .8rem; background: #fff; scrollbar-width: none; }
.location-admin-tabs a { flex: 0 0 auto; padding: .6rem .85rem; border-radius: .55rem; color: #5f5b54; font-size: .85rem; font-weight: 700; text-decoration: none; }
.location-admin-tabs a[aria-current="page"] { background: var(--color-primary); color: #fff; }
.location-admin-cards { display: grid; gap: 1rem; }
.location-admin-cards > .admin-card { margin-top: 0; }
.location-admin-card { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.location-admin-card h2 { margin-bottom: .25rem; }
.location-admin-layout { display: grid; gap: 1rem; align-items: start; }
.location-admin-preview { overflow: hidden; }
.location-admin-preview .location-map-frame { min-height: 260px; }
.location-admin-preview .location-map-frame iframe { height: clamp(260px, 42vw, 360px); }
.story-admin-cards { display: grid; gap: 1rem; }
.story-admin-card { display: grid; grid-template-columns: minmax(100px, 32%) 1fr; gap: 1rem; align-items: center; }
.story-admin-card > img, .story-admin-card-placeholder { width: 100%; aspect-ratio: 4 / 5; border-radius: .7rem; background: #e9e5de; object-fit: contain; }
.story-admin-card h2 { margin-bottom: .2rem; }
.story-admin-layout { display: grid; gap: 1rem; align-items: start; }
.story-admin-photos { margin-top: 1rem; }
.story-admin-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)); gap: .65rem; margin-top: 1rem; }
.story-admin-photo-grid figure { position: relative; overflow: hidden; margin: 0; border-radius: .65rem; background: #e9e5de; }
.story-admin-photo-grid img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: contain; }
.story-admin-photo-grid figcaption { position: absolute; right: .4rem; bottom: .4rem; min-width: 1.6rem; padding: .15rem .4rem; border-radius: 999px; background: rgb(20 17 14 / 65%); color: #fff; font-size: .68rem; text-align: center; }
.story-background-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: .7rem; }
.story-background-preview { display: grid; height: 8rem; overflow: hidden; place-items: center; background-color: #f8f5ed; }
.story-background-preview img { width: 100%; height: 100%; object-fit: contain; }
.story-background-preview.is-empty { color: var(--color-muted); font-size: .8rem; font-weight: 700; }
.additional-field-editor { padding: 1rem 0; border-bottom: 1px solid #ece9e4; }
.additional-field-editor:last-child { padding-bottom: 0; border-bottom: 0; }
.additional-field-editor > form + form { margin-top: .6rem; }
.photo-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.photo-admin-card { overflow: hidden; border: 1px solid #e3e0da; border-radius: .85rem; background: #fff; }
.photo-admin-card img { width: 100%; aspect-ratio: 1; object-fit: cover; background: #e9e5de; }
.photo-admin-card video { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; background: #090807; }
.photo-admin-copy { padding: .85rem; }
.photo-admin-copy p { margin-bottom: .5rem; font-size: .83rem; }
.storage-quota-card { display: grid; gap: 1rem; margin-bottom: 1rem; }
.storage-quota-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: .75rem; }
.storage-quota-summary article { display: grid; gap: .25rem; padding: .85rem; border-radius: .7rem; background: #f5f3ef; }
.storage-quota-summary span, .storage-quota-summary small { color: #716d66; font-size: .76rem; }
.storage-quota-summary strong { font-size: 1.45rem; }
.storage-quota-progress { height: .7rem; overflow: hidden; border-radius: 999px; background: #e5e1dc; }
.storage-quota-progress span { display: block; height: 100%; background: var(--color-primary); }
.storage-quota-form { display: grid; gap: .8rem; padding-top: 1rem; border-top: 1px solid #e4e0da; }
.media-format-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: .55rem; padding: .8rem; border: 1px solid #e4e0da; border-radius: .7rem; background: #f8f6f2; }
.media-format-options .checkbox { margin: 0; }
.media-format-options small { color: var(--color-muted); }
.qr-generator { display: grid; gap: 1.2rem; align-items: center; margin-bottom: 1rem; }
.qr-generator-copy { min-width: 0; }
.qr-generator-url { margin-bottom: 1rem; }
.qr-generator-preview { display: grid; min-width: 0; overflow: hidden; justify-items: center; gap: .5rem; padding: 1rem; border-radius: .8rem; background: #f5f3ef; }
.qr-generator-preview img { display: block; width: 320px; max-width: 100%; height: auto; background: #fff; }
.qr-generator-actions { align-items: stretch; }
.code-box { overflow-wrap: anywhere; padding: .7rem; border-radius: .5rem; background: #f0ede8; font-family: ui-monospace, monospace; font-size: .76rem; }
.invitation-message-field { display: grid; gap: .85rem; padding: 1rem; border: 1px solid #e4e0da; border-radius: .8rem; background: #faf8f4; }
.invitation-message-field h2, .invitation-default-message-settings h2 { margin-bottom: .25rem; font-family: var(--font-body); font-size: 1.2rem; font-weight: 750; }
.invitation-default-message-settings { display: grid; gap: .8rem; margin-top: .5rem; padding-top: 1.25rem; border-top: 1px solid #e4e0da; }
.invitation-message-preview { margin: 0; padding: .9rem; border: 1px solid #e2ddd4; border-radius: .65rem; background: #f5f2ec; color: #39352f; font-size: .88rem; line-height: 1.55; overflow-wrap: anywhere; white-space: pre-wrap; }
.invitation-share-card { display: grid; gap: 1rem; }
.pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .75rem; margin: 2rem 0; color: var(--color-muted); font-size: .85rem; text-align: center; }
.pagination > :last-child { justify-self: end; }

@media (min-width: 760px) {
  .admin-shell { display: grid; grid-template-columns: 230px 1fr; }
  .admin-shell.admin-login { grid-template-columns: minmax(0, 1fr); }
  .admin-sidebar { position: sticky; top: 0; display: flex; height: 100svh; flex-direction: column; align-items: stretch; padding: 1.5rem 1rem; border: 0; }
  .admin-sidebar > div, .admin-sidebar > form { display: block; }
  .admin-sidebar nav { display: grid; width: auto; min-height: 0; margin-top: 2rem; overflow-x: hidden; overflow-y: auto; }
  .admin-sidebar nav a { padding: .7rem .8rem; font-size: .88rem; }
  .admin-sidebar nav a.admin-subnav { margin-top: -.3rem; padding-top: .35rem; padding-bottom: .35rem; padding-left: 1.35rem; font-size: .74rem; }
  .admin-sidebar form { margin-top: auto; }
  .admin-content { min-width: 0; padding-bottom: 0; }
  .admin-page { padding: 2.2rem; }
  .stats-grid { grid-template-columns: repeat(4, 1fr); gap: 1rem; }
  .filter-bar { grid-template-columns: 2fr 1fr 1fr auto; }
  .settings-columns { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); align-items: start; }
  .app-info-card { grid-template-columns: minmax(0, 1fr) minmax(180px, 260px); }
  .story-admin-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .story-admin-card { grid-template-columns: 1fr; align-items: start; }
  .story-admin-layout { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
  .location-admin-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .location-admin-layout { grid-template-columns: minmax(0, 1.35fr) minmax(320px, 1fr); }
  .qr-generator { grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); }
  .photo-admin-card img, .photo-admin-card video { object-fit: contain; }
}

@media (max-width: 1050px) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header {
    display: flex;
    background: color-mix(in srgb, var(--color-background) 86%, transparent);
    backdrop-filter: blur(9px);
  }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header nav { justify-content: flex-start; }
  .watercolor-hero-center { width: min(55vw, 620px); }
  .watercolor-portrait { width: 35vw; opacity: .78; }
}

@media (max-width: 760px) {
  .home-success-notice { top: 7.2rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header {
    display: grid;
    min-height: 6.7rem;
    grid-template-columns: 1fr;
    align-content: center;
    padding-top: .55rem;
    padding-bottom: .55rem;
    gap: .25rem;
  }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header .brand { max-width: 100%; justify-self: center; font-size: 1.15rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header nav {
    grid-column: 1;
    width: 100%;
    justify-content: flex-start;
    font-size: .7rem;
  }
  .watercolor-hero {
    padding: 7.2rem 1rem 3.5rem;
    background-image:
      linear-gradient(180deg, transparent 0 19rem, rgb(251 246 235 / 72%) 26rem 73%, transparent),
      none;
    background-position: center, center;
    background-size: auto, auto 100%;
  }
  body[data-theme="silvia-javi"] .story-page,
  body[data-theme="silvia-javi"] .wedding-information-page { background-attachment: scroll; }
  body[data-theme="silvia-javi"]:has(.story-page),
  body[data-theme="silvia-javi"]:has(.wedding-information-page),
  body[data-theme="silvia-javi"]:has(.photo-gallery-page),
  body[data-theme="silvia-javi"]:has(.photo-upload-page),
  body[data-theme="silvia-javi"]:has(.invite-shell) { background-attachment: scroll; }
  .watercolor-hero::after { background: linear-gradient(90deg, transparent, rgb(251 247 237 / 42%) 20% 80%, transparent); }
  .watercolor-portrait {
    top: 5.8rem;
    width: 66vw;
    height: 27rem;
    max-height: none;
    opacity: .57;
  }
  .watercolor-portrait-left { left: -24vw; }
  .watercolor-portrait-right { right: -24vw; }
  .watercolor-hero-center { width: 100%; padding-top: 13.5rem; }
  .watercolor-kicker { text-shadow: 0 1px 8px #FBF7F0; }
  .watercolor-hero h1 { font-size: clamp(3.5rem, 16vw, 5rem); text-shadow: 0 1px 10px #FBF7F0; }
  .watercolor-welcome { max-width: 32rem; }
  .watercolor-nav-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 26rem; margin-top: 1.4rem; row-gap: 1rem; }
  .watercolor-nav-link { font-size: .72rem; }
  .watercolor-icon-medallion { width: 4.8rem; height: 4.8rem; }
}

@media (max-width: 430px) {
  .watercolor-portrait { height: 22rem; }
  .watercolor-hero-center { padding-top: 11.2rem; }
  .watercolor-hero h1 { font-size: clamp(3.1rem, 15vw, 4.2rem); }
  .watercolor-date { letter-spacing: .13em; }
  .watercolor-welcome { font-size: .8rem; letter-spacing: .045em; }
  .watercolor-nav-grid { column-gap: .35rem; }
  .watercolor-icon-medallion { width: 4.35rem; height: 4.35rem; }
}

@page { size: A4; margin: 18mm; }

@media print {
  body.qr-print-mode * { visibility: hidden !important; }
  body.qr-print-mode .qr-print-target, body.qr-print-mode .qr-print-target * { visibility: visible !important; }
  body.qr-print-mode .qr-print-target { position: fixed; inset: 0; display: grid; grid-template-columns: 1fr; align-content: center; justify-items: center; gap: 8mm; width: 100%; min-height: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; background: #fff; color: #171512; text-align: center; }
  body.qr-print-mode .qr-print-target .qr-generator-copy { display: contents; }
  body.qr-print-mode .qr-print-target .eyebrow { color: #171512; }
  body.qr-print-mode .qr-print-target h2 { max-width: 160mm; margin: 0; font-size: 24pt; }
  body.qr-print-mode .qr-print-target .qr-generator-copy > p:not(.eyebrow):not(.code-box) { max-width: 150mm; margin: 0; font-size: 12pt; }
  body.qr-print-mode .qr-print-target .qr-generator-url { max-width: 170mm; margin: 0; padding: 3mm; background: transparent; font-size: 9pt; }
  body.qr-print-mode .qr-print-target .qr-generator-preview { order: 2; padding: 0; background: #fff; }
  body.qr-print-mode .qr-print-target .qr-generator-preview img { width: 90mm; max-width: 90mm; }
  body.qr-print-mode .qr-print-target .qr-generator-actions, body.qr-print-mode .qr-print-target .alert, body.qr-print-mode .qr-print-target .help { display: none !important; }
}

/* Wedding Theme Engine ---------------------------------------------------- */
:focus-visible { outline: 3px solid var(--color-accent, var(--color-primary)); outline-offset: 3px; }
.theme-hero::after { background: linear-gradient(180deg, rgb(10 10 10 / 5%), rgb(10 10 10 / var(--hero-overlay, 45%))); }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; margin: 1.4rem 0; }
.theme-hero .hero-actions .button.secondary {
  border-color: currentColor;
  background: rgb(12 12 12 / 18%);
  color: inherit;
  backdrop-filter: blur(8px);
}
.hero-art-mark { position: absolute; z-index: 2; top: 7rem; right: 3vw; display: flex; align-items: center; gap: .7rem; font-size: .7rem; letter-spacing: .2em; }
.hero-art-mark span:last-child { font-family: var(--font-heading); font-size: 2rem; }
.home-sections { overflow: clip; }
.home-section-slot { position: relative; }
.home-engine-section { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(4.5rem, 10vw, 9rem) clamp(1rem, 5vw, 5rem); text-align: center; }
.home-engine-section > p:not(.eyebrow) { max-width: 650px; margin-inline: auto; color: var(--color-muted); font-size: 1.08rem; }
.home-link-row { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2.5rem; border-top: 1px solid var(--color-secondary); }
.home-link-row a { display: flex; justify-content: space-between; padding: 1.2rem; border-bottom: 1px solid var(--color-secondary); text-decoration: none; }
.home-schedule-list { max-width: 820px; margin: 2.5rem auto 0; text-align: left; }
.home-schedule-list article { display: grid; grid-template-columns: 6rem 1fr; padding: 1.4rem 0; border-top: 1px solid color-mix(in srgb, var(--color-secondary) 70%, transparent); gap: 1rem; }
.home-schedule-list time { color: var(--color-primary); font-family: var(--font-heading); font-size: 1.6rem; }
.home-schedule-list h3 { margin-bottom: .25rem; }
.faq-list { width: min(780px, 100%); margin: 2rem auto 0; border-top: 1px solid var(--color-secondary); text-align: left; }
.faq-list details { border-bottom: 1px solid var(--color-secondary); }
.faq-list summary { padding: 1.2rem 2.5rem 1.2rem 0; cursor: pointer; font-family: var(--font-heading); font-size: 1.2rem; }
.faq-list details p { padding: 0 0 1.2rem; color: var(--color-muted); }
.home-gallery-cta, .home-upload-cta { min-height: 34rem; display: grid; align-content: center; justify-items: center; }
.appearance-section-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .55rem; }
.appearance-live-preview { margin-top: 1rem; }
.appearance-preview-heading { display: flex; justify-content: space-between; gap: 1rem; }
.appearance-device-switcher { display: flex; align-items: center; gap: .3rem; }
.appearance-device-switcher button { padding: .5rem .7rem; border: 1px solid #d7d2c9; border-radius: .5rem; background: #fff; cursor: pointer; }
.appearance-device-switcher button.is-active { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.appearance-preview-stage { display: flex; min-height: 640px; margin-top: 1rem; overflow: auto; justify-content: center; padding: .7rem; background: #dedbd5; }
.appearance-preview-stage iframe { height: 700px; max-width: 100%; border: 0; background: #fff; transition: width .25s ease; }
.theme-preview { width: 100%; object-fit: cover; }

body[data-background="paper"] { background-image: radial-gradient(circle at 10% 20%, rgb(185 127 125 / 7%), transparent 26%), repeating-linear-gradient(0deg, rgb(90 80 60 / 2%) 0 1px, transparent 1px 5px); }
body[data-background="linen"] { background-image: repeating-linear-gradient(87deg, rgb(91 70 49 / 3%) 0 1px, transparent 1px 4px), repeating-linear-gradient(3deg, rgb(255 255 255 / 18%) 0 1px, transparent 1px 5px); }

/* Botanical Garden: split invitation with botanical framing. */
body[data-theme="botanical-garden"] { --radius: 0; --shadow: 0 20px 70px rgb(29 54 37 / 12%); }
body[data-theme="botanical-garden"] .site-header { border: 0; background: #f5f1e7ee; color: #294631; }
body[data-theme="botanical-garden"] .theme-hero { min-height: calc(100svh - 4.5rem); place-items: center start; background: #f5f1e7; color: #243c2b; }
body[data-theme="botanical-garden"] .theme-hero .hero-slideshow { left: 48%; clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%); }
body[data-theme="botanical-garden"] .theme-hero::after { background: linear-gradient(90deg, #f5f1e7 0 47%, transparent 62%); }
body[data-theme="botanical-garden"] .hero-content { width: min(48%, 720px); margin: 0; padding-left: clamp(2rem, 8vw, 9rem); text-align: left; }
body[data-theme="botanical-garden"] .hero-content h1 { font-size: clamp(4rem, 8vw, 8rem); }
body[data-theme="botanical-garden"] .hero-welcome { margin-left: 0; }
body[data-theme="botanical-garden"] .hero-actions { justify-content: flex-start; }
body[data-theme="botanical-garden"] .theme-hero .countdown { margin-left: 0; color: #243c2b; }
body[data-theme="botanical-garden"] .theme-hero .countdown div { border-color: #90a085; background: #fff7; }
body[data-theme="botanical-garden"] .home-story-section { border-right: 1px solid #9eaa91; border-left: 1px solid #9eaa91; background: #faf7efdd; }

/* Elegant Minimal: fashion editorial with strict rules and negative space. */
body[data-theme="elegant-minimal"] { --radius: 0; --shadow: none; }
body[data-theme="elegant-minimal"] .site-header { position: relative; border-color: #191919; background: #f7f5f1; text-transform: uppercase; }
body[data-theme="elegant-minimal"] .theme-hero { min-height: 88svh; place-items: center start; background: #f7f5f1; color: #191919; }
body[data-theme="elegant-minimal"] .theme-hero .hero-slideshow { left: 54%; }
body[data-theme="elegant-minimal"] .theme-hero::after { background: linear-gradient(90deg, #f7f5f1 0 53%, transparent 53%); }
body[data-theme="elegant-minimal"] .hero-content { width: 54%; margin: 0; padding: 8vw; text-align: left; }
body[data-theme="elegant-minimal"] .hero-content h1 { max-width: 7ch; font-size: clamp(4rem, 9vw, 10rem); letter-spacing: -.06em; }
body[data-theme="elegant-minimal"] .hero-welcome { margin-left: 0; }
body[data-theme="elegant-minimal"] .hero-actions { justify-content: flex-start; }
body[data-theme="elegant-minimal"] .theme-hero .countdown { margin-left: 0; color: #191919; }
body[data-theme="elegant-minimal"] .theme-hero .countdown div { border: 0; border-top: 1px solid #191919; border-radius: 0; background: transparent; }
body[data-theme="elegant-minimal"] .home-engine-section { text-align: left; }
body[data-theme="elegant-minimal"] .home-engine-section > p:not(.eyebrow) { margin-left: 0; }
body[data-theme="elegant-minimal"] .home-engine-section h2 { max-width: 12ch; font-size: clamp(3rem, 9vw, 8rem); letter-spacing: -.045em; }

/* Mediterranean: architectural arches, terracotta and abstract tiles. */
body[data-theme="mediterranean"] .site-header { background: #fbf3e5e8; color: #214f57; }
body[data-theme="mediterranean"] .theme-hero { min-height: 92svh; background: #fbf3e5; color: #244b50; place-items: center start; }
body[data-theme="mediterranean"] .theme-hero .hero-slideshow { inset: 8% 5% 5% 51%; border-radius: 50% 50% 1.5rem 1.5rem / 34% 34% 1.5rem 1.5rem; box-shadow: 1.2rem 1.2rem 0 var(--color-accent); }
body[data-theme="mediterranean"] .theme-hero::after { background: linear-gradient(90deg, #fbf3e5 0 46%, transparent 65%); }
body[data-theme="mediterranean"] .hero-content { width: 51%; margin: 0; padding-left: 8vw; text-align: left; }
body[data-theme="mediterranean"] .hero-content h1 { font-size: clamp(4rem, 8vw, 8.5rem); color: #245963; }
body[data-theme="mediterranean"] .hero-welcome, body[data-theme="mediterranean"] .theme-hero .countdown { margin-left: 0; }
body[data-theme="mediterranean"] .hero-actions { justify-content: flex-start; }
body[data-theme="mediterranean"] .theme-hero .countdown { color: #244b50; }
body[data-theme="mediterranean"] .theme-hero .countdown div { border-color: #c98a72; background: #fff8; }
body[data-theme="mediterranean"] .home-celebration-section { border-radius: 18rem 18rem 1rem 1rem / 10rem 10rem 1rem 1rem; background: var(--color-primary); color: #fff; }
body[data-theme="mediterranean"] .home-celebration-section .eyebrow, body[data-theme="mediterranean"] .home-celebration-section > p { color: #fff; }

/* Rustic: tactile framed photography and grounded blocks. */
body[data-theme="rustic"] { --radius: .25rem; --shadow: 0 18px 45px rgb(67 46 28 / 15%); }
body[data-theme="rustic"] .site-header { background: #eee5d6ee; border-bottom: 2px solid #7b6048; }
body[data-theme="rustic"] .theme-hero { min-height: 94svh; padding: 4vw; background: #d9c5a8; color: #fffaf0; }
body[data-theme="rustic"] .theme-hero .hero-slideshow { inset: 4vw; box-shadow: 0 0 0 1px #fff8, 0 25px 60px #3d2c1f55; }
body[data-theme="rustic"] .theme-hero::after { inset: 4vw; background: linear-gradient(0deg, rgb(43 29 20 / 68%), rgb(43 29 20 / 10%)); }
body[data-theme="rustic"] .hero-content { padding-bottom: 8vw; }
body[data-theme="rustic"] .hero-content h1 { text-transform: uppercase; letter-spacing: .035em; }
body[data-theme="rustic"] .home-story-section::before { content: "✦"; display: block; margin-bottom: 2rem; color: var(--color-accent); font-size: 3rem; }
body[data-theme="rustic"] .home-location-section { background: #dfd0bb; box-shadow: var(--shadow); }

/* Modern Editorial: full-bleed studio composition and oversized type. */
body[data-theme="modern-editorial"] { --radius: 0; --shadow: none; }
body[data-theme="modern-editorial"] .site-header { position: absolute; right: 0; left: 0; border: 0; background: transparent; color: #fff; mix-blend-mode: difference; }
body[data-theme="modern-editorial"] .theme-hero { min-height: 100svh; place-items: end start; }
body[data-theme="modern-editorial"] .theme-hero::after { background: linear-gradient(90deg, rgb(0 0 0 / 74%), transparent 70%); }
body[data-theme="modern-editorial"] .hero-content { width: min(1250px, 100%); margin: 0; padding: 8rem 5vw 4vw; text-align: left; }
body[data-theme="modern-editorial"] .hero-content h1 { max-width: 10ch; font-size: clamp(4.5rem, 13vw, 13rem); font-weight: 900; letter-spacing: -.08em; line-height: .78; text-transform: uppercase; }
body[data-theme="modern-editorial"] .hero-welcome { max-width: 520px; margin-left: 0; }
body[data-theme="modern-editorial"] .hero-actions { justify-content: flex-start; }
body[data-theme="modern-editorial"] .theme-hero .countdown { margin-left: 0; }
body[data-theme="modern-editorial"] .hero-art-mark { top: auto; right: 4vw; bottom: 4vw; color: var(--color-accent); transform: rotate(90deg); }
body[data-theme="modern-editorial"] .home-section-slot:nth-child(even) { background: #151515; color: #fff; }
body[data-theme="modern-editorial"] .home-engine-section { text-align: left; }
body[data-theme="modern-editorial"] .home-engine-section > p:not(.eyebrow) { margin-left: 0; }
body[data-theme="modern-editorial"] .home-engine-section h2 { max-width: 12ch; font-size: clamp(3.5rem, 10vw, 9rem); font-weight: 900; letter-spacing: -.07em; line-height: .88; text-transform: uppercase; }

@media (max-width: 760px) {
  .home-link-row { grid-template-columns: 1fr; }
  .appearance-preview-heading { flex-direction: column; }
  .appearance-device-switcher { overflow-x: auto; }
  body[data-theme="botanical-garden"] .theme-hero .hero-slideshow,
  body[data-theme="elegant-minimal"] .theme-hero .hero-slideshow,
  body[data-theme="mediterranean"] .theme-hero .hero-slideshow { inset: 0; clip-path: none; border-radius: 0; box-shadow: none; }
  body[data-theme="botanical-garden"] .theme-hero::after,
  body[data-theme="elegant-minimal"] .theme-hero::after,
  body[data-theme="mediterranean"] .theme-hero::after { background: linear-gradient(0deg, rgb(15 20 15 / 78%), rgb(15 20 15 / 8%)); }
  body[data-theme="botanical-garden"] .hero-content,
  body[data-theme="elegant-minimal"] .hero-content,
  body[data-theme="mediterranean"] .hero-content { align-self: end; width: 100%; padding: 8rem 1.2rem 3rem; color: #fff; text-align: center; }
  body[data-theme="botanical-garden"] .hero-content h1,
  body[data-theme="elegant-minimal"] .hero-content h1,
  body[data-theme="mediterranean"] .hero-content h1 { max-width: none; color: #fff; font-size: clamp(3.5rem, 17vw, 6rem); }
  body[data-theme="botanical-garden"] .hero-welcome,
  body[data-theme="elegant-minimal"] .hero-welcome,
  body[data-theme="mediterranean"] .hero-welcome { margin-inline: auto; }
  body[data-theme="botanical-garden"] .hero-actions,
  body[data-theme="elegant-minimal"] .hero-actions,
  body[data-theme="mediterranean"] .hero-actions { justify-content: center; }
  body[data-theme="botanical-garden"] .theme-hero .countdown,
  body[data-theme="elegant-minimal"] .theme-hero .countdown,
  body[data-theme="mediterranean"] .theme-hero .countdown { margin-inline: auto; color: #fff; }
  body[data-theme="modern-editorial"] .hero-content h1 { font-size: clamp(4rem, 20vw, 7rem); }
  body[data-theme="rustic"] .theme-hero .hero-slideshow, body[data-theme="rustic"] .theme-hero::after { inset: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Envelope introduction: full-bleed ivory paper, following the reference composition. */
body[data-theme="silvia-javi"] .envelope-intro {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  overflow: hidden;
  color: #665b4d;
  background: #FBF7F0;
  animation: envelope-intro-in 420ms ease both;
}
body[data-theme="silvia-javi"] .envelope-intro.is-opening { animation: envelope-intro-out 1560ms cubic-bezier(.6,0,.4,1) forwards; pointer-events: none; }
body[data-theme="silvia-javi"] .envelope-intro::before { position: absolute; inset: 0; content: ""; pointer-events: none; opacity: .12; background: repeating-linear-gradient(0deg, transparent 0 7px, rgb(126 108 82 / 9%) 7px 8px), repeating-linear-gradient(90deg, transparent 0 11px, rgb(255 255 255 / 40%) 11px 12px); mix-blend-mode: multiply; }
body[data-theme="silvia-javi"] .envelope-intro__content { position: relative; z-index: 1; width: 100%; height: 100%; }
body[data-theme="silvia-javi"] .envelope-intro__trigger { display: block; width: 100%; height: 100%; margin: 0; padding: 0; color: inherit; background: transparent; border: 0; cursor: pointer; font: inherit; }
body[data-theme="silvia-javi"] .envelope-intro__trigger:focus-visible { outline: 2px solid rgb(178 148 91 / 68%); outline-offset: -.4rem; }
body[data-theme="silvia-javi"] .envelope-intro__paper { position: relative; display: block; width: 100%; height: 100%; min-height: 100dvh; overflow: hidden; isolation: isolate; background-color: #FBF7F0; background-image: radial-gradient(ellipse at 12% 12%, rgb(185 127 125 / 7%), transparent 28%), radial-gradient(ellipse at 88% 88%, rgb(111 115 82 / 6%), transparent 30%), linear-gradient(115deg, transparent 0 42%, rgb(255 255 255 / 55%) 50%, transparent 58%); border: 0; border-radius: 0; box-shadow: none; perspective: 1000px; }
body[data-theme="silvia-javi"] .envelope-intro__paper::before { position: absolute; inset: 0; z-index: 12; content: ""; pointer-events: none; opacity: .22; background: radial-gradient(ellipse at 10% 10%, rgb(185 127 125 / 20%), transparent 25%), radial-gradient(ellipse at 94% 92%, rgb(111 115 82 / 17%), transparent 28%); filter: blur(7px); }
body[data-theme="silvia-javi"] .envelope-intro__paper::after { position: absolute; inset: 0; z-index: 13; content: ""; pointer-events: none; box-shadow: inset 0 0 5rem rgb(122 105 80 / 5%); }
body[data-theme="silvia-javi"] .envelope-intro__inner-card { position: absolute; z-index: 1; inset: 9% 10% 9%; display: grid; place-items: center; color: rgb(120 100 82 / 78%); background: #fffefa; opacity: .08; transform: translateY(20%); }
body[data-theme="silvia-javi"] .envelope-intro__inner-card span { font-family: var(--font-heading), Georgia, serif; font-size: clamp(1.4rem, 5vw, 2.5rem); letter-spacing: .08em; }
body[data-theme="silvia-javi"] .envelope-intro__flap { position: absolute; display: block; backface-visibility: hidden; transform-style: preserve-3d; }
body[data-theme="silvia-javi"] .envelope-intro__flap--top { z-index: 6; inset: 0; clip-path: polygon(0 0, 100% 0, 50% 52%); background: linear-gradient(145deg, #fffefa 0%, #f8f2e9 100%); transform-origin: 50% 0; box-shadow: 0 .35rem .8rem rgb(114 94 66 / 8%); }
body[data-theme="silvia-javi"] .envelope-intro__flap--left { z-index: 4; inset: 0 50% 0 0; clip-path: polygon(0 0, 100% 52%, 0 100%); background: linear-gradient(110deg, #fdfaf4, #f4ecdf); }
body[data-theme="silvia-javi"] .envelope-intro__flap--right { z-index: 4; inset: 0 0 0 50%; clip-path: polygon(100% 0, 0 52%, 100% 100%); background: linear-gradient(250deg, #fdfaf4, #f3ebde); }
body[data-theme="silvia-javi"] .envelope-intro__flap--bottom { z-index: 3; inset: 48% 0 0; clip-path: polygon(0 100%, 100% 100%, 50% 0); background: linear-gradient(145deg, #faf5ec, #f0e6d7); }
body[data-theme="silvia-javi"] .envelope-intro__fold-lines { position: absolute; z-index: 8; inset: 0; width: 100%; height: 100%; pointer-events: none; }
body[data-theme="silvia-javi"] .envelope-intro__fold-line { fill: none; stroke: rgb(178 148 91 / 34%); stroke-linecap: round; stroke-linejoin: round; stroke-width: .22; vector-effect: non-scaling-stroke; }
body[data-theme="silvia-javi"] .envelope-intro__seal { position: absolute; z-index: 10; top: 52%; left: 50%; display: grid; width: clamp(5.4rem, 22vw, 7.2rem); aspect-ratio: 1; place-items: center; color: #9a8158; background: radial-gradient(circle at 34% 28%, #fffefa, #f5ebda 72%, #e5d5bd); border: 1px solid rgb(178 148 91 / 72%); border-radius: 50%; box-shadow: 0 .55rem 1.2rem rgb(113 92 64 / 14%), inset .12rem .12rem .3rem #fff, inset -.14rem -.14rem .35rem rgb(166 134 83 / 18%); transform: translate(-50%, -50%); }
body[data-theme="silvia-javi"] .envelope-intro__seal-art { position: absolute; inset: .18rem; width: calc(100% - .36rem); height: calc(100% - .36rem); overflow: visible; }
body[data-theme="silvia-javi"] .envelope-intro__seal-rim { fill: none; stroke: rgb(178 148 91 / 78%); stroke-width: 1.1; }
body[data-theme="silvia-javi"] .envelope-intro__seal-rim--inner { stroke: rgb(178 148 91 / 44%); stroke-width: .8; }
body[data-theme="silvia-javi"] .envelope-intro__seal-initials { position: relative; color: rgb(141 116 74 / 80%); font-family: "Z003", "URW Chancery L", cursive; font-size: clamp(1.5rem, 6vw, 2rem); letter-spacing: .02em; text-shadow: .04rem .04rem 0 #fff, -.035rem -.035rem 0 rgb(148 119 75 / 22%); }
body[data-theme="silvia-javi"] .envelope-intro__paper-message { position: absolute; z-index: 9; top: 61%; left: 1.5rem; right: 1.5rem; color: rgb(112 101 87 / 78%); font-family: "Z003", "URW Chancery L", cursive; font-size: clamp(1.25rem, 5vw, 2rem); line-height: 1.15; }
body[data-theme="silvia-javi"] .envelope-intro__recipient { position: absolute; z-index: 9; top: 70%; left: 1rem; right: 1rem; display: grid; justify-items: center; gap: .25rem; color: rgb(102 91 77 / 86%); }
body[data-theme="silvia-javi"] .envelope-intro__recipient strong { max-width: 88%; overflow-wrap: anywhere; font-family: "Z003", "URW Chancery L", cursive; font-size: clamp(1.12rem, 4.8vw, 1.7rem); font-weight: 400; line-height: 1.1; }
body[data-theme="silvia-javi"] .envelope-intro__recipient small { color: rgb(122 108 89 / 70%); font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; }
body[data-theme="silvia-javi"] .envelope-intro__action { position: absolute; z-index: 9; right: 1.5rem; bottom: max(1.7rem, env(safe-area-inset-bottom)); left: 1.5rem; color: rgb(122 108 89 / 70%); font-size: .65rem; letter-spacing: .09em; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__seal { animation: envelope-seal-release 390ms cubic-bezier(.2,.72,.2,1) forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__flap--top { animation: envelope-top-flap-open 980ms cubic-bezier(.2,.72,.2,1) 180ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__flap--left { animation: envelope-side-left-open 820ms cubic-bezier(.2,.72,.2,1) 520ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__flap--right { animation: envelope-side-right-open 820ms cubic-bezier(.2,.72,.2,1) 520ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__flap--bottom { animation: envelope-bottom-open 820ms cubic-bezier(.2,.72,.2,1) 620ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__inner-card { animation: envelope-card-rise 920ms cubic-bezier(.2,.72,.2,1) 560ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__paper-message,
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__recipient,
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__action { animation: envelope-copy-fade 340ms ease 350ms forwards; }
@keyframes envelope-intro-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes envelope-intro-out { 0%, 72% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } }
@keyframes envelope-seal-release { 0% { transform: translate(-50%, -50%) scale(1); } 18% { transform: translate(-50%, -50%) scale(1.06); } 48% { transform: translate(-50%, -50%) scale(.98); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(.76); } }
@keyframes envelope-top-flap-open { from { transform: rotateX(0); } to { transform: rotateX(-174deg); } }
@keyframes envelope-side-left-open { from { transform: translateX(0); } to { transform: translateX(-24%); opacity: .25; } }
@keyframes envelope-side-right-open { from { transform: translateX(0); } to { transform: translateX(24%); opacity: .25; } }
@keyframes envelope-bottom-open { from { transform: translateY(0); } to { transform: translateY(18%); opacity: .2; } }
@keyframes envelope-card-rise { 0% { opacity: .08; transform: translateY(20%); } 34% { opacity: 1; } 100% { opacity: 1; transform: translateY(-5%); } }
@keyframes envelope-copy-fade { to { opacity: 0; transform: translateY(-12%); } }

@media (min-width: 760px) {
  body[data-theme="silvia-javi"] .envelope-intro { place-items: center; padding: 1.5rem; }
  body[data-theme="silvia-javi"] .envelope-intro__content { width: min(100%, 30rem); height: min(100%, 48rem); }
  body[data-theme="silvia-javi"] .envelope-intro__paper { min-height: 0; border: 1px solid rgb(178 148 91 / 16%); border-radius: .12rem; box-shadow: 0 1.2rem 3rem rgb(113 92 64 / 13%); }
}

@media (scripting: none) {
  body[data-theme="silvia-javi"] .envelope-intro { display: none; }
}

/* Silvia y Javi 1.1.4: invitación editorial de papel, sakura y líneas doradas. */
body[data-theme="silvia-javi"] {
  --color-cream: #FBF7F0;
  --color-gold: #B78A2E;
  --color-sakura: #F3C9D3;
  --color-cherry: #C4232F;
  --color-branch: #5E4032;
  --color-gold-soft: color-mix(in srgb, var(--color-gold) 35%, transparent);
  --color-sakura-soft: color-mix(in srgb, var(--color-sakura) 58%, transparent);
  --color-primary: var(--color-gold);
  --color-secondary: var(--color-sakura);
  --color-background: var(--color-cream);
  --color-ink: var(--color-branch);
  --color-muted: var(--color-branch);
  --color-card: var(--color-cream);
  --color-danger: var(--color-cherry);
  --color-success: var(--color-branch);
  --font-heading: Baskerville, "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --font-body: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --line-gold: 1px solid var(--color-gold-soft);
  --shadow-soft: 0 8px 24px color-mix(in srgb, var(--color-branch) 8%, transparent);
  --radius: .45rem;
  --shadow: var(--shadow-soft);
  color: var(--color-branch);
  background: var(--color-cream);
  background-image: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) {
  font-family: var(--font-body);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) h1,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) h2,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) h3,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header .brand,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-footer p:first-child {
  font-family: var(--font-heading);
  font-weight: 500;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) h1,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) h2,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) h3,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .eyebrow,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-date,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .detail-card small,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .timeline-copy time,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-schedule-list time {
  color: var(--color-gold);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) a {
  color: var(--color-gold);
  transition: color 300ms ease, border-color 300ms ease, background-color 300ms ease, transform 300ms ease;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) a:hover {
  color: var(--color-cherry);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header {
  display: grid;
  grid-template-columns: minmax(7rem, 1fr) auto minmax(7rem, 1fr);
  min-height: 5rem;
  border-bottom: var(--line-gold);
  background: color-mix(in srgb, var(--color-cream) 94%, transparent);
  box-shadow: none;
  backdrop-filter: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header .brand {
  display: flex;
  align-items: center;
  gap: .72rem;
  color: var(--color-gold);
  letter-spacing: .02em;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-brand-monogram {
  flex: 0 0 auto;
  color: var(--color-gold);
  font-family: "URW Chancery L", "Apple Chancery", "Segoe Script", cursive;
  font-size: clamp(1.8rem, 3vw, 2.55rem);
  font-weight: 500;
  letter-spacing: -.08em;
  line-height: 1;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-brand-name {
  color: var(--color-branch);
  font-family: var(--font-body);
  font-size: clamp(.9rem, 1.25vw, 1.1rem);
  font-style: italic;
  letter-spacing: .05em;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header .brand img {
  width: auto;
  height: clamp(4.5rem, 9vw, 6.25rem);
  max-width: min(10rem, 22vw);
  max-height: none;
  object-fit: contain;
  filter: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header nav {
  grid-column: 2;
  justify-content: center;
  color: var(--color-branch);
  font-family: var(--font-body);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header nav a:hover {
  color: var(--color-cherry);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero {
  min-height: max(100dvh, 52rem);
  place-items: center;
  padding: clamp(8rem, 12vw, 10rem) 1rem 4rem;
  background-color: var(--color-cream);
  background-image:
    radial-gradient(circle at 8% 24%, rgb(255 255 255 / 72%) 0 1px, transparent 1.8px),
    radial-gradient(circle at 74% 16%, rgb(179 153 92 / 20%) 0 1px, transparent 1.8px),
    radial-gradient(circle at 86% 68%, rgb(179 153 92 / 17%) 0 1px, transparent 1.8px),
    linear-gradient(115deg, rgb(255 255 255 / 30%), transparent 38% 63%, rgb(255 255 255 / 24%));
  background-size: 7.3rem 6.8rem, 9.2rem 8.4rem, 8rem 7.2rem, auto;
  color: var(--color-branch);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  inset: 0;
  background:
    radial-gradient(ellipse at 4% 34%, color-mix(in srgb, var(--color-sakura) 62%, transparent) 0 5%, transparent 27%),
    radial-gradient(ellipse at 96% 72%, color-mix(in srgb, var(--color-sakura) 54%, transparent) 0 5%, transparent 27%),
    radial-gradient(ellipse at 20% 89%, color-mix(in srgb, var(--color-sakura) 42%, transparent) 0 4%, transparent 24%),
    radial-gradient(ellipse at 79% 42%, color-mix(in srgb, var(--color-sakura) 34%, transparent) 0 4%, transparent 22%),
    radial-gradient(ellipse at 54% 45%, rgb(255 255 255 / 48%) 0 10%, transparent 42%);
  filter: blur(1.35rem);
  opacity: .7;
  pointer-events: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero::after {
  z-index: 0;
  background:
    radial-gradient(circle at 7% 31%, rgb(190 142 48 / 30%) 0 1px, transparent 1.8px),
    radial-gradient(circle at 89% 25%, rgb(190 142 48 / 26%) 0 1px, transparent 1.8px),
    radial-gradient(circle at 94% 70%, rgb(190 142 48 / 22%) 0 1px, transparent 1.8px),
    linear-gradient(90deg, rgb(251 247 237 / 8%), rgb(255 255 255 / 18%) 48% 52%, rgb(251 247 237 / 8%));
  background-size: 4.8rem 5.4rem, 5.6rem 6rem, 6.2rem 5.8rem, auto;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-center {
  width: min(66rem, 100%);
  padding: 0 1rem;
  transform: translateY(-5rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-portrait {
  display: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-emblem-botanical {
  display: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-portrait::after {
  background: color-mix(in srgb, var(--color-cream) 38%, transparent);
  mix-blend-mode: screen;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero h1 {
  position: relative;
  color: var(--color-gold);
  font-family: var(--font-heading);
  font-size: clamp(3.2rem, 7vw, 6.5rem);
  font-weight: 500;
  letter-spacing: .02em;
  line-height: .9;
  text-shadow: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-kicker,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-welcome {
  color: var(--color-branch);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-flourish,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-bouquet-mark {
  color: var(--color-cherry);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-flourish::before,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-flourish::after,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-link-flourish::before,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-link-flourish::after {
  background: var(--color-gold);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link {
  color: var(--color-branch);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:hover,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:focus-visible {
  color: var(--color-cherry);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-icon-medallion {
  width: clamp(4.2rem, 6.5vw, 5.4rem);
  height: clamp(4.2rem, 6.5vw, 5.4rem);
  margin-bottom: 1rem;
  border: 1px solid var(--color-gold-soft);
  border-radius: .3rem;
  background: var(--color-cream);
  box-shadow: var(--shadow-soft);
  transform: rotate(45deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-icon-medallion .watercolor-nav-icon {
  transform: rotate(-45deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:hover .watercolor-icon-medallion,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:focus-visible .watercolor-icon-medallion {
  background: var(--color-sakura);
  box-shadow: var(--shadow-soft);
  transform: rotate(45deg) scale(1.04);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero .countdown {
  max-width: 32rem;
  color: var(--color-branch);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero .countdown div,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .countdown div {
  padding: .65rem .35rem;
  border: 0;
  border-top: var(--line-gold);
  border-bottom: var(--line-gold);
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  position: relative;
  z-index: 3;
  margin-top: clamp(.4rem, 1.5vw, 1rem);
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link { grid-column: span 2; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:nth-child(4) { grid-column: 2 / span 2; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:nth-child(5) { grid-column: 4 / span 2; }

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .countdown strong {
  color: var(--color-gold);
  font-family: var(--font-heading);
  font-weight: 500;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .countdown span {
  color: var(--color-branch);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-section-slot {
  border-top: var(--line-gold);
  background: var(--color-cream);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-section-slot:nth-child(even) {
  background: var(--color-sakura-soft);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-engine-section {
  position: relative;
  padding-block: clamp(4.5rem, 9vw, 8rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-engine-section::before {
  content: "◇";
  display: block;
  margin-bottom: 1.2rem;
  color: var(--color-gold);
  font-size: 1.3rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-link-row,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-schedule-list,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .faq-list {
  border-color: var(--color-gold-soft);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-link-row a,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-schedule-list article,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .faq-list details {
  border-color: var(--color-gold-soft);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-celebration-section,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-upload-cta {
  background: var(--color-sakura);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-engine-section > p:not(.eyebrow),
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-schedule-list article p,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .faq-list details p {
  color: var(--color-branch);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .detail-card,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .card,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .guest-form,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .gallery-card,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .timeline-item,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-preview-card,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-carousel-frame,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-photo-grid-item,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .location-map-frame {
  border: var(--line-gold);
  border-radius: var(--radius);
  background: var(--color-cream);
  box-shadow: var(--shadow-soft);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-preview-card {
  color: var(--color-cream);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-preview-card::after {
  background: rgb(94 64 50 / 48%);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .wedding-information-page,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-upload-page,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .invite-shell {
  background: var(--color-cream);
  background-image: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-carousel-frame,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-photo-grid-item,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .gallery-card {
  overflow: hidden;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-carousel-controls > button,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .gallery-card-media.is-interactive::after,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-photo-grid-item > button::after {
  border-color: var(--color-gold);
  background: var(--color-cream);
  color: var(--color-gold);
  backdrop-filter: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-carousel-dots button {
  background: var(--color-sakura);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-carousel-dots button.is-active {
  background: var(--color-gold);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) input,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) select,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) textarea {
  border: 0;
  border-bottom: var(--line-gold);
  border-radius: 0;
  background: transparent;
  color: var(--color-branch);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) input:focus,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) select:focus,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) textarea:focus {
  border-color: var(--color-gold);
  box-shadow: 0 2px 0 var(--color-gold);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .choice-row span,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .upload-drop {
  border-color: var(--color-gold-soft);
  border-radius: var(--radius);
  background: var(--color-cream);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .choice-row input:checked + span {
  border-color: var(--color-gold);
  background: var(--color-sakura);
  color: var(--color-branch);
  box-shadow: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .button,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) button.button {
  min-height: 2.65rem;
  border: 1px solid var(--color-cherry);
  border-radius: .25rem;
  background: var(--color-cherry);
  color: var(--color-cream);
  box-shadow: none;
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: .04em;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .button:hover,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) button.button:hover {
  background: color-mix(in srgb, var(--color-cherry) 88%, var(--color-branch));
  color: var(--color-cream);
  filter: none;
  transform: translateY(-1px);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .button.secondary {
  border-color: var(--color-gold);
  background: transparent;
  color: var(--color-gold);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .button.secondary:hover {
  background: color-mix(in srgb, var(--color-gold) 12%, transparent);
  color: var(--color-cherry);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-footer {
  border-top: var(--line-gold);
  background: var(--color-sakura-soft);
  color: var(--color-branch);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-footer::before {
  content: "⌁  ◇  ⌁";
  display: block;
  margin-bottom: .85rem;
  color: var(--color-gold);
  letter-spacing: .4em;
}

body[data-theme="silvia-javi"] .envelope-intro,
body[data-theme="silvia-javi"] .envelope-intro__paper {
  background: var(--color-cream);
  background-image: none;
}

body[data-theme="silvia-javi"] .envelope-intro__paper::before,
body[data-theme="silvia-javi"] .envelope-intro__paper::after {
  display: none;
}

body[data-theme="silvia-javi"] .envelope-intro__flap--top,
body[data-theme="silvia-javi"] .envelope-intro__flap--left,
body[data-theme="silvia-javi"] .envelope-intro__flap--right,
body[data-theme="silvia-javi"] .envelope-intro__flap--bottom {
  background: var(--color-cream);
  box-shadow: none;
}

body[data-theme="silvia-javi"] .envelope-intro__seal {
  border-color: var(--color-gold);
  background: var(--color-sakura);
  box-shadow: var(--shadow-soft);
}

@media (max-width: 760px) {
  html:has(body[data-theme="silvia-javi"] .home-page > .watercolor-hero:only-child),
  body:has(.home-page > .watercolor-hero:only-child) {
    overflow: hidden;
    overscroll-behavior-y: none;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header {
    position: fixed;
    inset: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    min-height: 3.2rem;
    padding: .35rem .55rem;
    transition: transform 260ms ease, opacity 260ms ease;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header.watercolor-header-hidden {
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header .brand {
    display: none;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header > nav {
    grid-column: 1;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    gap: clamp(.2rem, 1.8vw, .65rem);
    overflow: hidden;
    font-size: clamp(.52rem, 1.95vw, .68rem);
    letter-spacing: .05em;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header > nav a {
    flex: 0 0 auto;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero {
    min-height: 100svh;
    min-height: 100dvh;
    align-content: center;
    padding: 4rem .75rem 1.25rem;
    background-image: none;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero::before {
    inset: 0;
    width: auto;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-botanical {
    width: min(18rem, 64vw);
    opacity: .46;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-botanical-top-left {
    top: 8.7rem;
    left: -5.2rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-botanical-bottom-right {
    right: -5.7rem;
    bottom: -2.4rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-reference-clean img {
    top: -2rem;
    left: -38vw;
    width: min(230vw, 900px);
    max-width: none;
    clip-path: inset(0);
    -webkit-mask-image: linear-gradient(to bottom, #000 0 72%, rgb(0 0 0 / 88%) 84%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0 72%, rgb(0 0 0 / 88%) 84%, transparent 100%);
    filter: saturate(1.1) contrast(1.03);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-reference-mobile-bottom {
    display: block;
    inset: 0;
    opacity: .08;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-reference-clean { opacity: .08; }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-mobile-tree {
    display: block;
    position: absolute;
    z-index: 1;
    overflow: hidden;
    pointer-events: none;
    filter: saturate(1.12) contrast(1.04);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-mobile-tree img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-mobile-tree-top {
    top: 6.7rem;
    left: -2rem;
    width: min(20rem, 62vw);
    height: 17rem;
    -webkit-mask-image: radial-gradient(ellipse 115% 110% at 0 0, #000 0 52%, rgb(0 0 0 / 82%) 72%, transparent 100%);
    mask-image: radial-gradient(ellipse 115% 110% at 0 0, #000 0 52%, rgb(0 0 0 / 82%) 72%, transparent 100%);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-mobile-tree-top img { object-position: left top; }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-mobile-tree-bottom {
    right: -2rem;
    bottom: -4rem;
    width: min(27rem, 100vw);
    height: 20rem;
    -webkit-mask-image: radial-gradient(ellipse 115% 110% at 100% 100%, #000 0 50%, rgb(0 0 0 / 82%) 74%, transparent 100%);
    mask-image: radial-gradient(ellipse 115% 110% at 100% 100%, #000 0 50%, rgb(0 0 0 / 82%) 74%, transparent 100%);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-mobile-tree-bottom img { object-position: right bottom; }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-reference-mobile-bottom img {
    left: -48vw;
    width: min(230vw, 900px);
    max-width: none;
    top: 24%;
    bottom: auto;
    clip-path: inset(0);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0 8%, rgb(0 0 0 / 70%) 20%, #000 34%);
    mask-image: linear-gradient(to bottom, transparent 0 8%, rgb(0 0 0 / 70%) 20%, #000 34%);
    filter: saturate(1.1) contrast(1.03);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-wash {
    width: 19rem;
    height: 17rem;
    filter: blur(2rem);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-petal-one { top: 24%; left: 18%; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-petal-two { top: 34%; right: 17%; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-petal-three { bottom: 27%; left: 17%; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-petal-four { bottom: 21%; right: 18%; }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-center {
    min-width: 0;
    width: 100%;
    padding: 0 .25rem;
    transform: translateY(2.5rem);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-emblem {
    width: min(84vw, 22rem);
    height: auto;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-emblem-content {
    width: min(76%, 18rem);
    margin-top: 0;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero h1 {
    max-width: 13rem;
    margin-right: auto;
    margin-left: auto;
    font-size: clamp(2.35rem, 11vw, 2.85rem);
    line-height: .82;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-flourish { margin-bottom: .35rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-bouquet-mark { margin-top: .3rem; font-size: 1.8rem; line-height: 1; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-date { font-size: .78rem; letter-spacing: .08em; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero .countdown { margin-top: .35rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero .countdown div { padding: .45rem .15rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero .countdown strong { font-size: 1.05rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero .countdown span { font-size: .58rem; }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    width: min(100%, 21rem);
    margin-top: 1.35rem;
    column-gap: .25rem;
    row-gap: .6rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link { grid-column: span 2; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:nth-child(4) { grid-column: 2 / span 2; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:nth-child(5) { grid-column: 4 / span 2; }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-portrait {
    top: 7rem;
    width: 62vw;
    height: 20rem;
    opacity: .14;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-portrait-left { left: -23vw; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-portrait-right { right: -23vw; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .home-link-row { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-emblem { width: min(86vw, 21rem); }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-emblem-content { width: min(78%, 17.5rem); }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-icon-medallion { width: 3.5rem; height: 3.5rem; }
}

@media (max-width: 760px) and (max-height: 740px) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero {
    min-height: 100svh;
    min-height: 100dvh;
    align-content: start;
    padding: 6.8rem .55rem .5rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-hero-center {
    transform: none;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-emblem {
    width: min(72vw, 17rem);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-emblem-content {
    width: min(74%, 14rem);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-icon-medallion {
    width: 3rem;
    height: 3rem;
    margin-bottom: .25rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-grid {
    width: min(100%, 19rem);
    margin-top: .8rem;
    column-gap: .15rem;
    row-gap: .4rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link {
    font-size: clamp(.58rem, 2.5vw, .72rem);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-reference-clean img {
    -webkit-mask-image: linear-gradient(to bottom, #000 0 72%, rgb(0 0 0 / 88%) 84%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0 72%, rgb(0 0 0 / 88%) 84%, transparent 100%);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-reference-mobile-bottom img {
    top: 24%;
    bottom: auto;
    clip-path: inset(0);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0 8%, rgb(0 0 0 / 70%) 20%, #000 34%);
    mask-image: linear-gradient(to bottom, transparent 0 8%, rgb(0 0 0 / 70%) 20%, #000 34%);
  }

}

@media (max-width: 340px) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .site-header nav {
    gap: .35rem;
    font-size: .52rem;
    letter-spacing: .035em;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-icon-medallion {
    width: 2.8rem;
    height: 2.8rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-mobile-tree-top {
    left: -3rem;
    width: min(20rem, 75vw);
    height: 14rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-mobile-tree-bottom {
    right: -4rem;
    bottom: -6rem;
    width: min(24rem, 92vw);
    height: 15rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .button:hover,
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) button.button:hover,
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .watercolor-nav-link:hover .watercolor-icon-medallion {
    transform: none;
  }
}

/* Silvia y Javi 1.2.5: historias con composición editorial independiente por página. */
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia {
  position: relative;
  isolation: isolate;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia:not(.has-story-background) {
  background-color: var(--color-cream);
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp");
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    image-set(
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.avif") type("image/avif"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp") type("image/webp"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.png") type("image/png")
    );
  background-position: center top, center top;
  background-repeat: no-repeat, repeat-y;
  background-size: cover, 100% auto;
  background-attachment: scroll;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia.has-story-background {
  background-color: var(--color-cream);
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    var(--story-background-image);
  background-position: center top, center top;
  background-repeat: no-repeat, repeat-y;
  background-size: cover, 100% auto;
  background-attachment: scroll;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-introduction {
  width: min(900px, 100%);
  padding: clamp(3.8rem, 8vw, 7.2rem) 1.25rem clamp(2.5rem, 5vw, 4.2rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-introduction::before {
  content: "—  ♥  —";
  margin-bottom: .95rem;
  color: var(--color-gold);
  font-size: .82rem;
  letter-spacing: .48rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-introduction .eyebrow {
  margin-bottom: .8rem;
  color: var(--color-branch);
  font-size: .72rem;
  letter-spacing: .46em;
  text-transform: uppercase;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-introduction h1 {
  margin-bottom: 1.1rem;
  color: var(--color-gold);
  font-size: clamp(3.5rem, 8vw, 6.2rem);
  letter-spacing: -.035em;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-introduction h1::after {
  display: block;
  margin: .75rem auto 0;
  color: var(--color-sakura);
  content: "✿";
  font-family: Georgia, serif;
  font-size: 1.45rem;
  letter-spacing: 0;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-introduction > p:last-child {
  max-width: 760px;
  color: var(--color-branch);
  font-size: clamp(1.02rem, 1.8vw, 1.2rem);
  line-height: 1.7;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-reading-layout {
  width: min(1120px, 100%);
  grid-template-columns: minmax(300px, .92fr) minmax(360px, 1.08fr);
  align-items: start;
  gap: clamp(2.5rem, 6vw, 6rem);
  padding-bottom: clamp(4rem, 9vw, 7.5rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-column {
  padding: .75rem .35rem 0;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-frame {
  overflow: visible;
  aspect-ratio: 1 / 1.08;
  padding: 1.05rem 1.05rem 3.5rem;
  border: 1px solid color-mix(in srgb, var(--color-gold) 72%, transparent);
  border-radius: .08rem;
  background: #fffefa;
  box-shadow: 0 .45rem 0 rgb(255 254 248 / 92%), .72rem .82rem 0 rgb(246 215 218 / 56%), 0 1.1rem 2.1rem rgb(94 64 50 / 14%);
  transform: rotate(-2.2deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-media-frame {
  inset: 1.05rem 1.05rem 3.5rem;
  width: auto;
  height: auto;
  border-radius: 0;
  background: #eee7dc;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-frame::before {
  position: absolute;
  z-index: -1;
  inset: .7rem -1.05rem -1rem .7rem;
  border: 1px solid rgb(183 138 46 / 28%);
  background: rgb(251 226 229 / 76%);
  content: "";
  transform: rotate(4.4deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-image,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-image.is-active {
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
  object-fit: cover;
  object-position: center;
  transform: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-fullscreen-trigger {
  inset: 0;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-fullscreen-trigger::after {
  top: .65rem;
  right: .65rem;
  width: 2rem;
  height: 2rem;
  border-color: rgb(255 254 248 / 80%);
  background: rgb(94 64 50 / 36%);
  font-size: .9rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-counter,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-timer {
  display: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-controls {
  position: relative;
  z-index: 1;
  margin-top: 1.25rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-controls > button {
  width: 2.6rem;
  height: 2.6rem;
  border-color: var(--color-gold);
  color: var(--color-gold);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-dots button {
  background: var(--color-sakura);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-dots button.is-active {
  background: var(--color-gold);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-autoplay {
  display: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-copy {
  padding-top: .4rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-chapter {
  min-height: min(540px, 66svh);
  padding: clamp(2rem, 5vw, 4.5rem) 0;
  border-top: 0;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-chapter > span {
  display: flex;
  align-items: center;
  gap: .8rem;
  width: 100%;
  margin-bottom: 1.3rem;
  color: var(--color-gold);
  font-size: .7rem;
  letter-spacing: .2em;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-chapter > span::after {
  flex: 1;
  height: 1px;
  background: color-mix(in srgb, var(--color-gold) 66%, transparent);
  content: "";
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-chapter h2 {
  margin-bottom: 1.25rem;
  color: var(--color-gold);
  font-size: clamp(2.25rem, 4.8vw, 3.65rem);
  letter-spacing: -.025em;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-chapter p {
  max-width: 43rem;
  color: var(--color-branch);
  font-size: 1.04rem;
  line-height: 1.72;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-chapter::after {
  display: block;
  width: min(100%, 26rem);
  margin-top: 1.3rem;
  color: var(--color-sakura);
  content: "────────  ✿  ────────";
  font-size: .72rem;
  letter-spacing: .08em;
  white-space: nowrap;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-next-links {
  gap: 1rem;
  padding-bottom: clamp(3.5rem, 8vw, 6rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-next-links a {
  padding: .55rem .8rem;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 42%, transparent);
  border-radius: 0;
  color: var(--color-gold);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

@media (max-width: 699px) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-chapter-narrative { background: rgb(251 247 240 / 78%); }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia:not(.has-story-background) {
    background-position: center top, center top;
    background-size: cover, auto 39rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-introduction {
    padding-top: clamp(3.2rem, 16vw, 5rem);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-reading-layout {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-carousel-column {
    width: min(100%, 27rem);
    margin: 0 auto;
    padding-inline: .7rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-copy {
    padding-top: 1rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-chapter {
    min-height: 0;
    padding: 3.5rem .2rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novia .story-chapter h2 {
    font-size: clamp(2.2rem, 11vw, 3.2rem);
  }
}

/* La historia del novio mantiene su propia composición para poder evolucionar sin afectar a las demás. */
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio {
  position: relative;
  isolation: isolate;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio:not(.has-story-background) {
  background-color: var(--color-cream);
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp");
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    image-set(
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.avif") type("image/avif"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp") type("image/webp"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.png") type("image/png")
    );
  background-position: center top, center top;
  background-repeat: no-repeat, repeat-y;
  background-size: cover, 100% auto;
  background-attachment: scroll;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio.has-story-background {
  background-color: var(--color-cream);
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    var(--story-background-image);
  background-position: center top, center top;
  background-repeat: no-repeat, repeat-y;
  background-size: cover, 100% auto;
  background-attachment: scroll;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-introduction {
  width: min(900px, 100%);
  padding: clamp(3.8rem, 8vw, 7.2rem) 1.25rem clamp(2.5rem, 5vw, 4.2rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-introduction::before {
  content: "—  ♥  —";
  margin-bottom: .95rem;
  color: var(--color-gold);
  font-size: .82rem;
  letter-spacing: .48rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-introduction .eyebrow {
  margin-bottom: .8rem;
  color: var(--color-branch);
  font-size: .72rem;
  letter-spacing: .46em;
  text-transform: uppercase;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-introduction h1 {
  margin-bottom: 1.1rem;
  color: var(--color-gold);
  font-size: clamp(3.5rem, 8vw, 6.2rem);
  letter-spacing: -.035em;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-introduction h1::after {
  display: block;
  margin: .75rem auto 0;
  color: var(--color-sakura);
  content: "✿";
  font-family: Georgia, serif;
  font-size: 1.45rem;
  letter-spacing: 0;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-introduction > p:last-child {
  max-width: 760px;
  color: var(--color-branch);
  font-size: clamp(1.02rem, 1.8vw, 1.2rem);
  line-height: 1.7;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-reading-layout {
  width: min(1120px, 100%);
  grid-template-columns: minmax(300px, .92fr) minmax(360px, 1.08fr);
  align-items: start;
  gap: clamp(2.5rem, 6vw, 6rem);
  padding-bottom: clamp(4rem, 9vw, 7.5rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-column {
  padding: .75rem .35rem 0;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-frame {
  overflow: visible;
  aspect-ratio: 1 / 1.08;
  padding: 1.05rem 1.05rem 3.5rem;
  border: 1px solid color-mix(in srgb, var(--color-gold) 72%, transparent);
  border-radius: .08rem;
  background: #fffefa;
  box-shadow: 0 .45rem 0 rgb(255 254 248 / 92%), .72rem .82rem 0 rgb(246 215 218 / 56%), 0 1.1rem 2.1rem rgb(94 64 50 / 14%);
  transform: rotate(-2.2deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-media-frame {
  inset: 1.05rem 1.05rem 3.5rem;
  width: auto;
  height: auto;
  border-radius: 0;
  background: #eee7dc;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-frame::before {
  position: absolute;
  z-index: -1;
  inset: .7rem -1.05rem -1rem .7rem;
  border: 1px solid rgb(183 138 46 / 28%);
  background: rgb(251 226 229 / 76%);
  content: "";
  transform: rotate(4.4deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-image,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-image.is-active {
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
  object-fit: cover;
  object-position: center;
  transform: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-fullscreen-trigger { inset: 0; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-fullscreen-trigger::after {
  top: .65rem;
  right: .65rem;
  width: 2rem;
  height: 2rem;
  border-color: rgb(255 254 248 / 80%);
  background: rgb(94 64 50 / 36%);
  font-size: .9rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-counter,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-timer { display: none; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-controls {
  position: relative;
  z-index: 1;
  margin-top: 1.25rem;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-controls > button {
  width: 2.6rem;
  height: 2.6rem;
  border-color: var(--color-gold);
  color: var(--color-gold);
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-dots button { background: var(--color-sakura); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-dots button.is-active { background: var(--color-gold); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-autoplay { display: none; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-copy { padding-top: .4rem; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-chapter {
  min-height: min(540px, 66svh);
  padding: clamp(2rem, 5vw, 4.5rem) 0;
  border-top: 0;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-chapter > span {
  display: flex;
  align-items: center;
  gap: .8rem;
  width: 100%;
  margin-bottom: 1.3rem;
  color: var(--color-gold);
  font-size: .7rem;
  letter-spacing: .2em;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-chapter > span::after {
  flex: 1;
  height: 1px;
  background: color-mix(in srgb, var(--color-gold) 66%, transparent);
  content: "";
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-chapter h2 {
  margin-bottom: 1.25rem;
  color: var(--color-gold);
  font-size: clamp(2.25rem, 4.8vw, 3.65rem);
  letter-spacing: -.025em;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-chapter p {
  max-width: 43rem;
  color: var(--color-branch);
  font-size: 1.04rem;
  line-height: 1.72;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-chapter::after {
  display: block;
  width: min(100%, 26rem);
  margin-top: 1.3rem;
  color: var(--color-sakura);
  content: "────────  ✿  ────────";
  font-size: .72rem;
  letter-spacing: .08em;
  white-space: nowrap;
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-next-links {
  gap: 1rem;
  padding-bottom: clamp(3.5rem, 8vw, 6rem);
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-next-links a {
  padding: .55rem .8rem;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 42%, transparent);
  border-radius: 0;
  color: var(--color-gold);
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

@media (max-width: 699px) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio:not(.has-story-background) { background-position: center top, center top; background-size: cover, auto 39rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-introduction { padding-top: clamp(3.2rem, 16vw, 5rem); }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-reading-layout { grid-template-columns: 1fr; gap: 1rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-carousel-column { width: min(100%, 27rem); margin: 0 auto; padding-inline: .7rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-copy { padding-top: 1rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-chapter { min-height: 0; padding: 3.5rem .2rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--novio .story-chapter h2 { font-size: clamp(2.2rem, 11vw, 3.2rem); }
}

/* Nuestra historia también es independiente para admitir una dirección propia en el futuro. */
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos {
  position: relative;
  isolation: isolate;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos:not(.has-story-background) {
  background-color: var(--color-cream);
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp");
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    image-set(
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.avif") type("image/avif"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp") type("image/webp"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.png") type("image/png")
    );
  background-position: center top, center top;
  background-repeat: no-repeat, repeat-y;
  background-size: cover, 100% auto;
  background-attachment: scroll;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos.has-story-background {
  background-color: var(--color-cream);
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 5%), rgb(251 247 240 / 22%) 50%, rgb(251 247 240 / 5%)),
    var(--story-background-image);
  background-position: center top, center top;
  background-repeat: no-repeat, repeat-y;
  background-size: cover, 100% auto;
  background-attachment: scroll;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-introduction {
  width: min(900px, 100%);
  padding: clamp(3.8rem, 8vw, 7.2rem) 1.25rem clamp(2.5rem, 5vw, 4.2rem);
}
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-introduction::before { content: "—  ♥  —"; margin-bottom: .95rem; color: var(--color-gold); font-size: .82rem; letter-spacing: .48rem; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-introduction .eyebrow { margin-bottom: .8rem; color: var(--color-branch); font-size: .72rem; letter-spacing: .46em; text-transform: uppercase; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-introduction h1 { margin-bottom: 1.1rem; color: var(--color-gold); font-size: clamp(3.5rem, 8vw, 6.2rem); letter-spacing: -.035em; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-introduction h1::after { display: block; margin: .75rem auto 0; color: var(--color-sakura); content: "✿"; font-family: Georgia, serif; font-size: 1.45rem; letter-spacing: 0; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-introduction > p:last-child { max-width: 760px; color: var(--color-branch); font-size: clamp(1.02rem, 1.8vw, 1.2rem); line-height: 1.7; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-reading-layout { width: min(1120px, 100%); grid-template-columns: minmax(300px, .92fr) minmax(360px, 1.08fr); align-items: start; gap: clamp(2.5rem, 6vw, 6rem); padding-bottom: clamp(4rem, 9vw, 7.5rem); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-column { padding: .75rem .35rem 0; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-frame { overflow: visible; aspect-ratio: 1 / 1.08; padding: 1.05rem 1.05rem 3.5rem; border: 1px solid color-mix(in srgb, var(--color-gold) 72%, transparent); border-radius: .08rem; background: #fffefa; box-shadow: 0 .45rem 0 rgb(255 254 248 / 92%), .72rem .82rem 0 rgb(246 215 218 / 56%), 0 1.1rem 2.1rem rgb(94 64 50 / 14%); transform: rotate(-2.2deg); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-media-frame { inset: 1.05rem 1.05rem 3.5rem; width: auto; height: auto; border-radius: 0; background: #eee7dc; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-frame::before { position: absolute; z-index: -1; inset: .7rem -1.05rem -1rem .7rem; border: 1px solid rgb(183 138 46 / 28%); background: rgb(251 226 229 / 76%); content: ""; transform: rotate(4.4deg); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-image,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-image.is-active { inset: 0; width: 100%; height: 100%; border: 0; background: transparent; object-fit: cover; object-position: center; transform: none; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-fullscreen-trigger { inset: 0; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-fullscreen-trigger::after { top: .65rem; right: .65rem; width: 2rem; height: 2rem; border-color: rgb(255 254 248 / 80%); background: rgb(94 64 50 / 36%); font-size: .9rem; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-counter,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-timer { display: none; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-controls { position: relative; z-index: 1; margin-top: 1.25rem; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-controls > button { width: 2.6rem; height: 2.6rem; border-color: var(--color-gold); color: var(--color-gold); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-dots button { background: var(--color-sakura); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-dots button.is-active { background: var(--color-gold); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-autoplay { display: none; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-copy { padding-top: .4rem; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-chapter { min-height: min(540px, 66svh); padding: clamp(2rem, 5vw, 4.5rem) 0; border-top: 0; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-chapter > span { display: flex; align-items: center; gap: .8rem; width: 100%; margin-bottom: 1.3rem; color: var(--color-gold); font-size: .7rem; letter-spacing: .2em; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-chapter > span::after { flex: 1; height: 1px; background: color-mix(in srgb, var(--color-gold) 66%, transparent); content: ""; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-chapter h2 { margin-bottom: 1.25rem; color: var(--color-gold); font-size: clamp(2.25rem, 4.8vw, 3.65rem); letter-spacing: -.025em; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-chapter p { max-width: 43rem; color: var(--color-branch); font-size: 1.04rem; line-height: 1.72; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-chapter::after { display: block; width: min(100%, 26rem); margin-top: 1.3rem; color: var(--color-sakura); content: "────────  ✿  ────────"; font-size: .72rem; letter-spacing: .08em; white-space: nowrap; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-next-links { gap: 1rem; padding-bottom: clamp(3.5rem, 8vw, 6rem); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-next-links a { padding: .55rem .8rem; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--color-gold) 42%, transparent); border-radius: 0; color: var(--color-gold); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 699px) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos:not(.has-story-background) { background-position: center top, center top; background-size: cover, auto 39rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-introduction { padding-top: clamp(3.2rem, 16vw, 5rem); }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-reading-layout { grid-template-columns: 1fr; gap: 1rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-carousel-column { width: min(100%, 27rem); margin: 0 auto; padding-inline: .7rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-copy { padding-top: 1rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-chapter { min-height: 0; padding: 3.5rem .2rem; }
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .story-page--juntos .story-chapter h2 { font-size: clamp(2.2rem, 11vw, 3.2rem); }
}

/* Silvia y Javi 1.2.5: galería editorial independiente y legible sobre el papel floral. */
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: 100dvh;
  background-color: var(--color-cream);
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 84%), rgb(251 247 240 / 94%) 50%, rgb(251 247 240 / 84%)),
    url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp");
  background-image:
    linear-gradient(90deg, rgb(251 247 240 / 84%), rgb(251 247 240 / 94%) 50%, rgb(251 247 240 / 84%)),
    image-set(
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.avif") type("image/avif"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp") type("image/webp"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.png") type("image/png")
    );
  background-position: center top, center top;
  background-repeat: no-repeat, repeat-y;
  background-size: cover, min(78rem, 100vw) auto;
  background-attachment: scroll;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .section-heading {
  width: min(900px, 100%);
  margin-bottom: clamp(2.5rem, 6vw, 4.5rem);
  padding: clamp(3.8rem, 8vw, 7.2rem) 1.25rem clamp(1rem, 3vw, 2rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .section-heading::before {
  content: "—  ♥  —";
  margin-bottom: .95rem;
  color: var(--color-gold);
  font-size: .82rem;
  letter-spacing: .48rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .section-heading .eyebrow {
  margin-bottom: .8rem;
  color: var(--color-branch);
  font-size: .72rem;
  letter-spacing: .46em;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .section-heading h1 {
  margin-bottom: 1.1rem;
  color: var(--color-gold);
  font-size: clamp(3.5rem, 8vw, 6.2rem) !important;
  letter-spacing: -.035em;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .section-heading h1::after {
  display: block;
  margin: .75rem auto 0;
  color: var(--color-sakura);
  content: "✿";
  font-family: Georgia, serif;
  font-size: 1.45rem;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .section-heading .lead {
  max-width: 760px;
  margin-inline: auto;
  color: var(--color-branch);
  font-size: clamp(1.02rem, 1.8vw, 1.2rem);
  line-height: 1.7;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .section-heading .button {
  margin-top: 1.35rem;
  border-color: var(--color-gold);
  background: var(--color-cream);
  color: var(--color-gold);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-grid {
  width: min(1060px, 100%);
  margin: 0 auto;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.8rem, 4vw, 3.2rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card {
  min-width: 0;
  overflow: visible;
  padding: .72rem .72rem .95rem;
  border: 1px solid color-mix(in srgb, var(--color-gold) 72%, transparent);
  border-radius: .08rem;
  background: #fffefa;
  box-shadow: 0 .35rem 0 rgb(255 254 248 / 92%), .72rem .82rem 0 rgb(246 215 218 / 56%), 0 1.1rem 2.1rem rgb(94 64 50 / 14%);
  transform: rotate(-1.2deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card:nth-child(3n + 2) { transform: rotate(1.1deg); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card:nth-child(3n) { transform: rotate(-.35deg); }

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card-media {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid rgb(94 64 50 / 14%);
  border-radius: 0;
  background: #eee7dc;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
  transition: transform .45s ease;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card-media video {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: contain;
  background: #2f2a26;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card-media.is-interactive:hover img,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card-media.is-interactive:focus-visible img { transform: scale(1.035); }

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card-media.is-interactive:focus-visible {
  outline: 3px solid var(--color-gold);
  outline-offset: 4px;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card figcaption {
  min-height: 2.8rem;
  padding: .9rem .2rem .05rem;
  color: var(--color-branch);
  font-size: .9rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel {
  width: min(820px, 100%);
  margin: 0 auto clamp(2rem, 5vw, 4rem);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-frame {
  overflow: visible;
  aspect-ratio: 4 / 5;
  padding: .85rem .85rem 3rem;
  border: 1px solid color-mix(in srgb, var(--color-gold) 72%, transparent);
  border-radius: .08rem;
  background: #fffefa;
  box-shadow: 0 .45rem 0 rgb(255 254 248 / 92%), .72rem .82rem 0 rgb(246 215 218 / 56%), 0 1.1rem 2.1rem rgb(94 64 50 / 14%);
  transform: rotate(-1.1deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-frame::before {
  position: absolute;
  z-index: -1;
  inset: .7rem -1.05rem -1rem .7rem;
  border: 1px solid rgb(183 138 46 / 28%);
  background: rgb(251 226 229 / 76%);
  content: "";
  transform: rotate(3.8deg);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-image,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-image.is-active {
  inset: .85rem .85rem 3rem;
  width: auto;
  height: auto;
  border: 1px solid rgb(94 64 50 / 14%);
  background: #eee7dc;
  object-fit: cover;
  object-position: center;
  transform: none;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-video { object-fit: contain; background: #2f2a26; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-fullscreen-trigger { inset: .85rem .85rem 3rem; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-counter,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-timer { display: none; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-controls { position: relative; z-index: 1; margin-top: 1.25rem; }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel .story-carousel-controls > button { border-color: var(--color-gold); color: var(--color-gold); }
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-carousel-caption { color: var(--color-branch); font-size: .95rem; line-height: 1.55; }

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page > .alert,
body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .pagination {
  width: min(820px, 100%);
  margin-inline: auto;
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page > .alert {
  border: 1px solid color-mix(in srgb, var(--color-gold) 38%, transparent);
  border-radius: .08rem;
  background: rgb(255 254 248 / 94%);
  color: var(--color-branch);
  box-shadow: var(--shadow-soft);
}

body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .pagination {
  margin-top: clamp(2.5rem, 6vw, 4rem);
  padding-bottom: clamp(3.5rem, 8vw, 6rem);
}

@media (max-width: 699px) {
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page {
    background-size: cover, auto 39rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .section-heading {
    padding-top: clamp(3.2rem, 16vw, 5rem);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-grid {
    grid-template-columns: 1fr;
    gap: 2.25rem;
    padding-inline: .7rem;
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card,
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card:nth-child(3n + 2),
  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card:nth-child(3n) {
    transform: rotate(-.7deg);
  }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .gallery-card:nth-child(even) { transform: rotate(.7deg); }

  body[data-theme="silvia-javi"]:not(:has(.admin-shell)) .photo-gallery-page .guest-gallery-carousel { padding-inline: .7rem; }
}

/* 1.2.5 active envelope rules: these are intentionally last so the inherited theme overrides cannot flatten the animation. */
body[data-theme="silvia-javi"] .envelope-intro {
  background-color: var(--color-cream);
  background-image:
    linear-gradient(rgb(251 247 240 / 26%), rgb(251 247 240 / 26%)),
    image-set(
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.avif") type("image/avif"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp") type("image/webp"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.png") type("image/png")
    );
  background-position: center;
  background-size: cover;
}

body[data-theme="silvia-javi"] .envelope-intro.is-opening { animation: sj-envelope-intro-out 2400ms cubic-bezier(.62, 0, .38, 1) forwards; }
body[data-theme="silvia-javi"] .envelope-intro__content { display: grid; width: 100%; height: 100%; place-items: center; }
body[data-theme="silvia-javi"] .envelope-intro__trigger { display: grid; place-items: center; }
body[data-theme="silvia-javi"] .envelope-intro__paper {
  width: min(83vw, 25rem);
  height: auto;
  min-height: 0;
  max-height: min(76dvh, 38rem);
  aspect-ratio: .68;
  overflow: visible;
  background-color: #fbf7f0;
  background-image: linear-gradient(125deg, rgb(255 255 255 / 58%), transparent 38%, rgb(183 138 46 / 3%) 82%), repeating-linear-gradient(0deg, transparent 0 .45rem, rgb(126 108 82 / 3%) .45rem .5rem);
  border: 1px solid rgb(178 148 91 / 23%);
  border-radius: .08rem;
  box-shadow: 0 1.1rem 2.5rem rgb(113 92 64 / 20%), 0 .15rem .4rem rgb(113 92 64 / 8%);
  perspective: 1100px;
}
body[data-theme="silvia-javi"] .envelope-intro__paper::before { z-index: 0; display: block; opacity: .2; background: radial-gradient(circle at 18% 18%, rgb(243 201 211 / 48%), transparent 20%), radial-gradient(circle at 82% 75%, rgb(183 138 46 / 10%), transparent 24%); filter: blur(9px); }
body[data-theme="silvia-javi"] .envelope-intro__paper::after { z-index: 14; display: block; box-shadow: inset 0 0 2rem rgb(122 105 80 / 8%); }
body[data-theme="silvia-javi"] .envelope-intro__inner-card {
  z-index: 9;
  inset: 8% 9% 8%;
  display: grid;
  overflow: hidden;
  place-items: center;
  isolation: isolate;
  color: var(--color-branch);
  background: #fffaf2;
  border: 1px solid rgb(178 148 91 / 36%);
  box-shadow: 0 .65rem 1rem rgb(113 92 64 / 13%);
  opacity: .04;
  transform: translateY(18%) scale(.96) rotate(-.4deg);
}
body[data-theme="silvia-javi"] .envelope-intro__card-frame { position: absolute; z-index: 2; width: 69%; aspect-ratio: 1; border: 1px solid rgb(183 138 46 / 80%); transform: rotate(45deg); }
body[data-theme="silvia-javi"] .envelope-intro__card-frame::after { position: absolute; inset: .45rem; content: ""; border: 1px solid rgb(183 138 46 / 63%); }
body[data-theme="silvia-javi"] .envelope-intro__card-copy { z-index: 4; display: grid; justify-items: center; gap: .32rem; text-align: center; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy small { color: rgb(94 64 50 / 68%); font-size: clamp(.45rem, 1.4vw, .62rem); letter-spacing: .24em; text-transform: uppercase; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy strong { color: var(--color-gold); font-family: "Baskerville", "Iowan Old Style", Georgia, serif; font-size: clamp(3.4rem, 13vw, 5.4rem); font-weight: 400; letter-spacing: -.12em; line-height: .85; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy > span { color: var(--color-gold); font-size: clamp(.72rem, 2.5vw, 1rem); letter-spacing: .16em; }
body[data-theme="silvia-javi"] .envelope-intro__card-floral { position: absolute; z-index: 3; width: 48%; height: 32%; opacity: .85; background: radial-gradient(ellipse at 33% 36%, rgb(243 151 171 / 90%) 0 4%, transparent 4.7%), radial-gradient(ellipse at 52% 20%, rgb(250 190 205 / 94%) 0 5%, transparent 5.7%), radial-gradient(ellipse at 67% 44%, rgb(228 119 146 / 84%) 0 3.5%, transparent 4.3%), radial-gradient(ellipse at 79% 12%, rgb(243 184 199 / 90%) 0 4%, transparent 4.8%), linear-gradient(136deg, transparent 0 42%, rgb(94 64 50 / 70%) 43% 44%, transparent 45% 100%); }
body[data-theme="silvia-javi"] .envelope-intro__card-floral::before { position: absolute; inset: 28% 7% auto 20%; height: .11rem; content: ""; background: rgb(94 64 50 / 70%); transform: rotate(-24deg); transform-origin: left center; }
body[data-theme="silvia-javi"] .envelope-intro__card-floral::after { position: absolute; right: 16%; bottom: 12%; width: .34rem; height: .52rem; content: ""; background: rgb(111 115 82 / 72%); border-radius: 100% 0 100% 0; transform: rotate(34deg); }
body[data-theme="silvia-javi"] .envelope-intro__card-floral--left { top: 0; left: 0; transform: rotate(-7deg); transform-origin: top left; }
body[data-theme="silvia-javi"] .envelope-intro__card-floral--right { right: 0; bottom: 0; transform: rotate(173deg); transform-origin: bottom right; }
body[data-theme="silvia-javi"] .envelope-intro__flap { backface-visibility: hidden; transform-style: preserve-3d; }
body[data-theme="silvia-javi"] .envelope-intro__flap--top { z-index: 10; background: linear-gradient(145deg, #fffefa 0%, #f5ecdf 100%); box-shadow: 0 .45rem .85rem rgb(114 94 66 / 14%); }
body[data-theme="silvia-javi"] .envelope-intro__flap--left,
body[data-theme="silvia-javi"] .envelope-intro__flap--right { z-index: 7; background: linear-gradient(110deg, #fffefa, #f1e7d8); }
body[data-theme="silvia-javi"] .envelope-intro__flap--bottom { z-index: 8; background: linear-gradient(145deg, #faf4e9, #eddfcc); box-shadow: 0 -.15rem .45rem rgb(114 94 66 / 8%); }
body[data-theme="silvia-javi"] .envelope-intro__fold-lines { z-index: 11; opacity: .8; transition: opacity 180ms ease; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__fold-lines { opacity: 0; }
body[data-theme="silvia-javi"] .envelope-intro__seal { z-index: 20; background: radial-gradient(circle at 34% 28%, #ffdce4, #f3b9c7 72%, #dd8fa3); border-color: rgb(183 138 46 / 90%); box-shadow: 0 .45rem 1rem rgb(113 92 64 / 18%), inset .12rem .12rem .3rem rgb(255 255 255 / 78%); }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__seal { animation: sj-envelope-seal-release 460ms cubic-bezier(.2, .72, .2, 1) forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__flap--top { animation: sj-envelope-top-flap-open 950ms cubic-bezier(.2, .72, .2, 1) 130ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__flap--left { animation: sj-envelope-side-left-open 760ms cubic-bezier(.2, .72, .2, 1) 980ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__flap--right { animation: sj-envelope-side-right-open 760ms cubic-bezier(.2, .72, .2, 1) 980ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__flap--bottom { animation: sj-envelope-bottom-open 720ms cubic-bezier(.2, .72, .2, 1) 1.08s forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__inner-card { animation: sj-envelope-card-rise 1180ms cubic-bezier(.2, .72, .2, 1) 530ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__paper-message,
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__recipient,
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__action { animation: sj-envelope-copy-fade 360ms ease 390ms forwards; }
@keyframes sj-envelope-intro-out { 0%, 80% { opacity: 1; visibility: visible; } 100% { opacity: 0; visibility: hidden; } }
@keyframes sj-envelope-seal-release { 0% { transform: translate(-50%, -50%) scale(1); } 18% { transform: translate(-50%, -50%) scale(1.08); } 52% { transform: translate(-50%, -50%) scale(.98); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(.72) rotate(-8deg); } }
@keyframes sj-envelope-top-flap-open { 0% { transform: rotateX(0) translateY(0); } 62% { transform: rotateX(-150deg) translateY(-1%); } 100% { transform: rotateX(-178deg) translateY(-2%); } }
@keyframes sj-envelope-side-left-open { 0% { transform: translateX(0) rotate(0); opacity: 1; } 100% { transform: translateX(-20%) rotate(-3deg); opacity: .28; } }
@keyframes sj-envelope-side-right-open { 0% { transform: translateX(0) rotate(0); opacity: 1; } 100% { transform: translateX(20%) rotate(3deg); opacity: .28; } }
@keyframes sj-envelope-bottom-open { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(17%); opacity: .35; } }
@keyframes sj-envelope-card-rise { 0% { opacity: .04; transform: translateY(18%) scale(.96) rotate(-.4deg); } 24% { opacity: 1; } 70% { transform: translateY(-18%) scale(1.015) rotate(.15deg); } 100% { opacity: 1; transform: translateY(-16%) scale(1) rotate(0); } }
@keyframes sj-envelope-copy-fade { to { opacity: 0; transform: translateY(-12%); } }
@media (min-width: 760px) { body[data-theme="silvia-javi"] .envelope-intro__paper { width: min(29vw, 26rem); max-height: min(76dvh, 38rem); } }
@media (max-width: 380px) { body[data-theme="silvia-javi"] .envelope-intro__paper { width: 86vw; } body[data-theme="silvia-javi"] .envelope-intro__card-copy strong { font-size: clamp(3rem, 14vw, 4.2rem); } body[data-theme="silvia-javi"] .envelope-intro__card-copy small { letter-spacing: .17em; } }

/* 1.2.10: closed envelope geometry faithfully follows the supplied reference. */
body[data-theme="silvia-javi"] .envelope-intro {
  background-color: var(--color-cream);
  background-position: center;
  background-size: cover;
}

body[data-theme="silvia-javi"] .envelope-intro.is-opening { animation: sj26-envelope-intro-out 3500ms cubic-bezier(.62, 0, .38, 1) forwards; }
body[data-theme="silvia-javi"] .envelope-intro__content { display: grid; place-items: center; }
body[data-theme="silvia-javi"] .envelope-intro__trigger { display: grid; place-items: center; }
body[data-theme="silvia-javi"] .envelope-intro__paper {
  width: 100%;
  height: 100%;
  min-height: 100dvh;
  max-height: none;
  aspect-ratio: auto;
  overflow: hidden;
  background-color: #FBF7F0;
  background-image:
    linear-gradient(rgb(251 247 240 / 36%), rgb(251 247 240 / 36%)),
    image-set(
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.avif") type("image/avif"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp") type("image/webp"),
      url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.png") type("image/png")
    );
  background-position: center;
  background-size: cover;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  perspective: 1200px;
}
body[data-theme="silvia-javi"] .envelope-intro__paper::before {
  z-index: 0;
  opacity: .12;
  background: radial-gradient(circle at 18% 18%, rgb(243 201 211 / 48%), transparent 20%), radial-gradient(circle at 82% 75%, rgb(183 138 46 / 10%), transparent 24%);
  filter: blur(9px);
}
body[data-theme="silvia-javi"] .envelope-intro__paper::after { z-index: 20; box-shadow: inset 0 0 3rem rgb(122 105 80 / 8%); }
body[data-theme="silvia-javi"] .envelope-intro { padding: 1.5rem; }
body[data-theme="silvia-javi"] .envelope-intro__composition {
  position: relative;
  display: block;
  z-index: 2;
  width: min(84vw, 54dvh, 47.5rem);
  margin-inline: auto;
  aspect-ratio: .76;
  transform: translateY(0);
}
body[data-theme="silvia-javi"] .envelope-intro__back-envelope {
  position: absolute;
  z-index: 2;
  inset: 18% 0 auto;
  overflow: visible;
  aspect-ratio: .76;
  border: 1px solid rgb(178 148 91 / 34%);
  background: linear-gradient(145deg, #FBF7F0 0%, #F8F0E5 58%, #EEE0CD 100%);
  box-shadow: 0 1.1rem 2rem rgb(113 92 64 / 20%), 0 .15rem .4rem rgb(113 92 64 / 8%);
}
body[data-theme="silvia-javi"] .envelope-intro__back-envelope::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent 0 .42rem, rgb(126 108 82 / 3%) .42rem .48rem);
  opacity: .8;
}
body[data-theme="silvia-javi"] .envelope-intro__back-flap {
  position: absolute;
  z-index: 7;
  top: 0;
  left: -1px;
  right: -1px;
  height: 44%;
  clip-path: polygon(0 0, 100% 0, 100% 19%, 50% 100%, 0 19%);
  border: 1px solid rgb(178 148 91 / 24%);
  background: linear-gradient(155deg, #FBF7F0 0%, #F8F0E5 58%, #EEE0CD 100%);
  box-shadow: 0 .3rem .5rem rgb(114 94 66 / 10%);
  transform: rotateX(0);
  transform-origin: 50% 100%;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}
body[data-theme="silvia-javi"] .envelope-intro__back-flap::after {
  display: none;
}
body[data-theme="silvia-javi"] .envelope-intro__back-flap::before {
  display: none;
}
body[data-theme="silvia-javi"] .envelope-intro__side-flap {
  position: absolute;
  z-index: 6;
  top: 0;
  bottom: 0;
  width: 51%;
  pointer-events: none;
  background: linear-gradient(110deg, #FBF7F0, #F1E7D8);
  transition: opacity 200ms ease;
}
body[data-theme="silvia-javi"] .envelope-intro__side-flap--left { left: 0; clip-path: polygon(0 0, 100% 50%, 0 100%); }
body[data-theme="silvia-javi"] .envelope-intro__side-flap--right { right: 0; clip-path: polygon(100% 0, 0 50%, 100% 100%); background: linear-gradient(250deg, #FBF7F0, #F1E7D8); }
body[data-theme="silvia-javi"] .envelope-intro__inner-lining {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(145deg, rgb(243 201 211 / 25%), transparent 47%), linear-gradient(35deg, transparent 0 45%, rgb(183 138 46 / 10%) 46% 47%, transparent 48%);
}
body[data-theme="silvia-javi"] .envelope-intro__front-pocket {
  position: absolute;
  z-index: 8;
  inset: 43% -1px -1px;
  overflow: hidden;
  clip-path: polygon(0 34%, 50% 0, 100% 34%, 100% 100%, 0 100%);
  border: 1px solid rgb(178 148 91 / 28%);
  background: linear-gradient(145deg, #FBF7F0, #F1E7D8);
  box-shadow: 0 -.15rem .45rem rgb(114 94 66 / 8%);
}
body[data-theme="silvia-javi"] .envelope-intro__front-pocket::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background-image:
    linear-gradient(to top right, transparent 49.35%, rgb(183 138 46 / 22%) 49.7% 50.3%, transparent 50.65%),
    linear-gradient(to top left, transparent 49.35%, rgb(183 138 46 / 22%) 49.7% 50.3%, transparent 50.65%);
  background-position: left top, right top;
  background-repeat: no-repeat, no-repeat;
  background-size: 50% 34%, 50% 34%;
}
body[data-theme="silvia-javi"] .envelope-intro__insert-card {
  position: absolute;
  z-index: 4;
  top: 0;
  left: 8%;
  right: 8%;
  height: 76%;
  display: grid;
  overflow: hidden;
  place-items: center;
  isolation: isolate;
  color: var(--color-branch);
  background-color: #fffaf2;
  background-image: linear-gradient(rgb(255 250 242 / 54%), rgb(255 250 242 / 54%)), url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp");
  background-position: 17% 2%;
  background-size: 170% auto;
  border: 1px solid rgb(178 148 91 / 42%);
  box-shadow: 0 .65rem 1rem rgb(113 92 64 / 15%);
  opacity: 0;
  transform: translateY(34%) scale(.94) rotate(-.4deg);
}
body[data-theme="silvia-javi"] .envelope-intro__card-frame {
  position: absolute;
  z-index: 2;
  width: 68%;
  aspect-ratio: 1;
  border: 1px solid rgb(183 138 46 / 86%);
  transform: rotate(45deg);
}
body[data-theme="silvia-javi"] .envelope-intro__card-frame::after { position: absolute; inset: .42rem; content: ""; border: 1px solid rgb(183 138 46 / 65%); }
body[data-theme="silvia-javi"] .envelope-intro__card-copy { z-index: 4; display: grid; justify-items: center; gap: .45rem; text-align: center; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy small { color: rgb(94 64 50 / 70%); font-size: clamp(.46rem, 1.2vw, .64rem); letter-spacing: .24em; text-transform: uppercase; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy strong { color: var(--color-gold); font-family: Baskerville, "Iowan Old Style", Georgia, serif; font-size: clamp(3.5rem, 7vw, 5.5rem); font-weight: 400; letter-spacing: -.12em; line-height: .84; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy > span { color: var(--color-gold); font-size: clamp(.7rem, 1.8vw, 1rem); letter-spacing: .18em; }
body[data-theme="silvia-javi"] .envelope-intro__card-floral { position: absolute; z-index: 3; width: 49%; height: 34%; opacity: .88; background: radial-gradient(ellipse at 33% 36%, rgb(243 151 171 / 90%) 0 4%, transparent 4.7%), radial-gradient(ellipse at 52% 20%, rgb(250 190 205 / 94%) 0 5%, transparent 5.7%), radial-gradient(ellipse at 67% 44%, rgb(228 119 146 / 84%) 0 3.5%, transparent 4.3%), radial-gradient(ellipse at 79% 12%, rgb(243 184 199 / 90%) 0 4%, transparent 4.8%), linear-gradient(136deg, transparent 0 42%, rgb(94 64 50 / 70%) 43% 44%, transparent 45% 100%); }
body[data-theme="silvia-javi"] .envelope-intro__card-floral::before { position: absolute; inset: 28% 7% auto 20%; height: .11rem; content: ""; background: rgb(94 64 50 / 70%); transform: rotate(-24deg); transform-origin: left center; }
body[data-theme="silvia-javi"] .envelope-intro__card-floral::after { position: absolute; right: 16%; bottom: 12%; width: .34rem; height: .52rem; content: ""; background: rgb(111 115 82 / 72%); border-radius: 100% 0 100% 0; transform: rotate(34deg); }
body[data-theme="silvia-javi"] .envelope-intro__card-floral--left { top: 0; left: 0; transform: rotate(-7deg); transform-origin: top left; }
body[data-theme="silvia-javi"] .envelope-intro__card-floral--right { right: 0; bottom: 0; transform: rotate(173deg); transform-origin: bottom right; }
body[data-theme="silvia-javi"] .envelope-intro__seal { z-index: 11; top: 43%; width: clamp(4.5rem, 24.5%, 12rem); background: radial-gradient(circle at 34% 26%, #F3C9D3 0%, #D7A19B 70%, #B98278 100%); border-color: rgb(183 138 46 / 92%); box-shadow: 0 .42rem .85rem rgb(113 92 64 / 20%), inset .12rem .12rem .28rem rgb(255 255 255 / 65%), inset -.12rem -.12rem .25rem rgb(126 73 64 / 14%); }
body[data-theme="silvia-javi"] .envelope-intro__paper-message { top: 23%; z-index: 9; color: #5E4032; font-family: var(--font-heading); font-size: clamp(1rem, 2vw, 1.45rem); font-style: italic; letter-spacing: -.015em; }
body[data-theme="silvia-javi"] .envelope-intro__paper-message::after { position: absolute; top: calc(100% + .9rem); left: 50%; width: 2.25rem; height: 1px; content: ""; background: rgb(183 138 46 / 55%); transform: translateX(-50%); }
body[data-theme="silvia-javi"] .envelope-intro__recipient { top: 51%; z-index: 9; color: #5E4032; font-family: var(--font-body); }
body[data-theme="silvia-javi"] .envelope-intro__recipient strong { font-family: var(--font-body); font-size: clamp(1rem, 2vw, 1.38rem); letter-spacing: .075em; }
body[data-theme="silvia-javi"] .envelope-intro__recipient small { letter-spacing: .38em; }
body[data-theme="silvia-javi"] .envelope-intro__action { z-index: 9; bottom: 1.4rem; color: #5E4032; font-size: .6rem; letter-spacing: .28em; }
body[data-theme="silvia-javi"] .envelope-intro__action::before { position: absolute; bottom: calc(100% + .85rem); left: 50%; width: 1.5rem; height: 1px; content: ""; background: rgb(183 138 46 / 48%); transform: translateX(-50%); }
body[data-theme="silvia-javi"] .envelope-intro__stage { position: absolute; right: 1rem; bottom: clamp(1.8rem, 5vh, 3.8rem); left: 1rem; z-index: 3; display: grid; justify-items: center; gap: .35rem; color: rgb(94 64 50 / 84%); text-align: center; }
body[data-theme="silvia-javi"] .envelope-intro__stage strong { color: var(--color-gold); font-size: clamp(.76rem, 1.5vw, 1rem); font-weight: 500; letter-spacing: .2em; text-transform: uppercase; }
body[data-theme="silvia-javi"] .envelope-intro__stage span { max-width: 28rem; font-size: clamp(.78rem, 1.5vw, 1rem); line-height: 1.45; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__back-flap { z-index: 1; animation: sj26-envelope-top-flap-open 1050ms cubic-bezier(.2, .72, .2, 1) 180ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__insert-card { animation: sj26-envelope-card-rise 2400ms cubic-bezier(.2, .72, .2, 1) 350ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__side-flap--left { animation: sj26-envelope-side-left-open 1100ms cubic-bezier(.2, .72, .2, 1) 1250ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__side-flap--right { animation: sj26-envelope-side-right-open 1100ms cubic-bezier(.2, .72, .2, 1) 1250ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__seal { animation: sj26-envelope-seal-release 1200ms cubic-bezier(.2, .72, .2, 1) 1250ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__paper-message,
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__recipient,
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__action { animation: envelope-copy-fade 450ms ease 1650ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-open .envelope-intro__insert-card { opacity: 1; transform: translateY(-25%) scale(1) rotate(0); }
@keyframes sj26-envelope-intro-out { 0%, 88% { opacity: 1; visibility: visible; } 100% { opacity: 0; visibility: hidden; } }
@keyframes sj26-envelope-top-flap-open { 0% { transform: rotateX(0); } 100% { transform: rotateX(-174deg); } }
@keyframes sj26-envelope-card-rise { 0% { opacity: 0; transform: translateY(34%) scale(.94) rotate(-.4deg); } 28% { opacity: 1; transform: translateY(34%) scale(.96) rotate(-.4deg); } 52% { transform: translateY(8%) scale(1.01) rotate(.15deg); } 100% { opacity: 1; transform: translateY(-25%) scale(1) rotate(0); } }
@keyframes sj26-envelope-side-left-open { to { transform: translateX(-12%) rotate(-2deg); opacity: .6; } }
@keyframes sj26-envelope-side-right-open { to { transform: translateX(12%) rotate(2deg); opacity: .6; } }
@keyframes sj26-envelope-seal-release { 0%, 55% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(.76) rotate(-8deg); } }
@media (max-width: 759px) {
  body[data-theme="silvia-javi"] .envelope-intro { background-position: 18% center; background-size: auto 100%; }
  body[data-theme="silvia-javi"] .envelope-intro__composition { transform: translateY(0); }
  body[data-theme="silvia-javi"] .envelope-intro__stage { bottom: max(1.3rem, env(safe-area-inset-bottom)); }
  body[data-theme="silvia-javi"] .envelope-intro__stage span { max-width: 21rem; font-size: .78rem; }
  body[data-theme="silvia-javi"] .envelope-intro__card-copy strong { font-size: clamp(3rem, 14vw, 4.5rem); }
}

/* 1.2.10: interactive envelope composition, tuned against the supplied visual reference. */
body[data-theme="silvia-javi"] .envelope-intro {
  display: grid;
  padding: 0;
  overflow: hidden;
  background-color: #FBF7F0;
  background-image: linear-gradient(rgb(251 247 240 / 26%), rgb(251 247 240 / 26%)), url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp");
  background-position: center;
  background-size: cover;
  animation: none;
}

body[data-theme="silvia-javi"] .envelope-intro.is-opening {
  animation: none;
  pointer-events: auto;
}

body[data-theme="silvia-javi"] .envelope-intro__content,
body[data-theme="silvia-javi"] .envelope-intro__trigger {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
}

body[data-theme="silvia-javi"] .envelope-intro__trigger {
  overflow: hidden;
}

body[data-theme="silvia-javi"] .envelope-intro__paper {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 100dvh;
  place-items: center;
  padding: 0 0 clamp(4.6rem, 11vh, 7rem);
  overflow: hidden;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  perspective: 1200px;
}

body[data-theme="silvia-javi"] .envelope-intro__paper::before {
  z-index: 0;
  opacity: .12;
  background: radial-gradient(circle at 18% 18%, rgb(243 201 211 / 48%), transparent 20%), radial-gradient(circle at 82% 75%, rgb(183 138 46 / 10%), transparent 24%);
  filter: blur(9px);
}

body[data-theme="silvia-javi"] .envelope-intro__paper::after {
  z-index: 20;
  box-shadow: inset 0 0 3rem rgb(122 105 80 / 8%);
}

body[data-theme="silvia-javi"] .envelope-intro__composition {
  position: relative;
  z-index: 2;
  display: block;
  width: min(82vw, 52dvh, 32rem);
  aspect-ratio: .72;
  margin: 0;
  opacity: 1 !important;
  transform: none;
  transition: none;
}

body[data-theme="silvia-javi"] .envelope-intro__back-envelope {
  position: absolute;
  z-index: 2;
  top: 5%;
  left: 0;
  width: 100%;
  height: 95%;
  overflow: visible;
  border: 1px solid rgb(178 148 91 / 34%);
  background: linear-gradient(145deg, #FBF7F0 0%, #F8F0E5 58%, #EEE0CD 100%);
  box-shadow: 0 1.1rem 2rem rgb(113 92 64 / 20%), 0 .15rem .4rem rgb(113 92 64 / 8%);
}

body[data-theme="silvia-javi"] .envelope-intro__back-envelope::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent 0 .42rem, rgb(126 108 82 / 3%) .42rem .48rem);
  opacity: .8;
}

body[data-theme="silvia-javi"] .envelope-intro__back-flap {
  position: absolute;
  z-index: 9;
  top: 0;
  left: -1px;
  right: -1px;
  height: 55%;
  clip-path: polygon(0 0, 100% 0, 100% 19%, 50% 100%, 0 19%);
  border: 1px solid rgb(178 148 91 / 28%);
  background: linear-gradient(155deg, #FBF7F0 0%, #F8F0E5 58%, #EEE0CD 100%);
  box-shadow: 0 .3rem .5rem rgb(114 94 66 / 10%);
  transform: rotateX(0);
  transform-origin: 50% 0;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}

body[data-theme="silvia-javi"] .envelope-intro__back-flap::before,
body[data-theme="silvia-javi"] .envelope-intro__back-flap::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
}

body[data-theme="silvia-javi"] .envelope-intro__back-flap::before {
  background: linear-gradient(135deg, transparent 0 49.5%, rgb(183 138 46 / 20%) 50%, transparent 50.5%);
}

body[data-theme="silvia-javi"] .envelope-intro__back-flap::after {
  background: linear-gradient(225deg, transparent 0 49.5%, rgb(183 138 46 / 20%) 50%, transparent 50.5%);
}

body[data-theme="silvia-javi"] .envelope-intro__side-flap {
  position: absolute;
  z-index: 6;
  top: 0;
  bottom: 0;
  width: 51%;
  pointer-events: none;
  background: linear-gradient(110deg, #FBF7F0, #F1E7D8);
}

body[data-theme="silvia-javi"] .envelope-intro__side-flap--left { left: 0; clip-path: polygon(0 0, 100% 50%, 0 100%); }
body[data-theme="silvia-javi"] .envelope-intro__side-flap--right { right: 0; clip-path: polygon(100% 0, 0 50%, 100% 100%); background: linear-gradient(250deg, #FBF7F0, #F1E7D8); }

body[data-theme="silvia-javi"] .envelope-intro__inner-lining {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(145deg, rgb(243 201 211 / 16%), transparent 49%),
    url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp") center / cover;
  opacity: .9;
}

body[data-theme="silvia-javi"] .envelope-intro__front-pocket {
  position: absolute;
  z-index: 8;
  inset: 34% -1px -1px;
  overflow: hidden;
  clip-path: polygon(0 34%, 50% 0, 100% 34%, 100% 100%, 0 100%);
  border: 1px solid rgb(178 148 91 / 28%);
  background: linear-gradient(145deg, #FBF7F0 0%, #F4EADD 100%);
  box-shadow: 0 -.15rem .45rem rgb(114 94 66 / 8%);
}

body[data-theme="silvia-javi"] .envelope-intro__front-pocket::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(135deg, transparent 0 49%, rgb(183 138 46 / 18%) 49.5% 50%, transparent 50.5%),
    linear-gradient(225deg, transparent 0 49%, rgb(183 138 46 / 18%) 49.5% 50%, transparent 50.5%);
  background-size: 50% 34%, 50% 34%;
  background-position: left top, right top;
  background-repeat: no-repeat;
}

body[data-theme="silvia-javi"] .envelope-intro__insert-card {
  position: absolute;
  z-index: 7;
  top: 5%;
  left: 7%;
  right: 7%;
  height: 72%;
  display: grid;
  overflow: hidden;
  place-items: center;
  isolation: isolate;
  color: #8F6427;
  background-color: #FFF9F1;
  background-image:
    linear-gradient(rgb(255 249 241 / 38%), rgb(255 249 241 / 38%)),
    url("/themes/silvia-javi/1.2.10/propuesta-fondo-limpio.webp");
  background-position: 18% 2%;
  background-size: 170% auto;
  border: 1px solid rgb(178 148 91 / 50%);
  box-shadow: 0 .65rem 1rem rgb(113 92 64 / 15%);
  opacity: 0;
  transform: translateY(38%) scale(.96) rotate(-.35deg);
}

body[data-theme="silvia-javi"] .envelope-intro__card-frame {
  position: absolute;
  z-index: 2;
  width: 68%;
  aspect-ratio: 1;
  border: 1px solid rgb(183 138 46 / 86%);
  transform: rotate(45deg);
}

body[data-theme="silvia-javi"] .envelope-intro__card-frame::after { position: absolute; inset: .42rem; content: ""; border: 1px solid rgb(183 138 46 / 65%); }
body[data-theme="silvia-javi"] .envelope-intro__card-copy { z-index: 4; display: grid; justify-items: center; gap: .42rem; text-align: center; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy small { color: rgb(94 64 50 / 70%); font-size: clamp(.42rem, 1.2vw, .62rem); letter-spacing: .24em; text-transform: uppercase; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy strong { color: #B78A2E; font-family: Baskerville, "Iowan Old Style", Georgia, serif; font-size: clamp(3rem, 7vw, 5rem); font-weight: 400; letter-spacing: -.12em; line-height: .84; }
body[data-theme="silvia-javi"] .envelope-intro__card-copy > span { color: #B78A2E; font-size: clamp(.62rem, 1.7vw, .9rem); letter-spacing: .16em; }

body[data-theme="silvia-javi"] .envelope-intro__card-floral { display: none; }

body[data-theme="silvia-javi"] .envelope-intro__seal {
  z-index: 12;
  top: 43%;
  width: clamp(4.55rem, 24.5%, 12rem);
  background: radial-gradient(circle at 34% 26%, #F3C9D3 0%, #D7A19B 70%, #B98278 100%);
  border-color: rgb(183 138 46 / 92%);
  box-shadow: 0 .42rem .85rem rgb(113 92 64 / 20%), inset .12rem .12rem .28rem rgb(255 255 255 / 65%), inset -.12rem -.12rem .25rem rgb(126 73 64 / 14%);
}

body[data-theme="silvia-javi"] .envelope-intro__seal-initials { color: #8E633D; font-family: Baskerville, "Iowan Old Style", Georgia, serif; font-size: clamp(1.2rem, 5vw, 1.9rem); letter-spacing: .02em; text-shadow: .04rem .04rem 0 rgb(255 255 255 / 70%); }
body[data-theme="silvia-javi"] .envelope-intro__paper-message { top: 36%; z-index: 9; color: #5E4032; font-family: var(--font-heading); font-size: clamp(.88rem, 3.6vw, 1.45rem); font-style: italic; letter-spacing: -.015em; }
body[data-theme="silvia-javi"] .envelope-intro__paper-message::after { position: absolute; top: calc(100% + .75rem); left: 50%; width: 2.25rem; height: 1px; content: ""; background: rgb(183 138 46 / 55%); transform: translateX(-50%); }
body[data-theme="silvia-javi"] .envelope-intro__recipient { top: 56%; z-index: 9; color: #5E4032; font-family: var(--font-body); }
body[data-theme="silvia-javi"] .envelope-intro__recipient strong { font-family: var(--font-body); font-size: clamp(.85rem, 3.2vw, 1.25rem); letter-spacing: .075em; }
body[data-theme="silvia-javi"] .envelope-intro__recipient small { letter-spacing: .38em; }
body[data-theme="silvia-javi"] .envelope-intro__action { z-index: 9; bottom: 1.25rem; color: #5E4032; font-size: clamp(.48rem, 1.4vw, .6rem); letter-spacing: .25em; }
body[data-theme="silvia-javi"] .envelope-intro__action::before { position: absolute; bottom: calc(100% + .75rem); left: 50%; width: 1.5rem; height: 1px; content: ""; background: rgb(183 138 46 / 48%); transform: translateX(-50%); }

body[data-theme="silvia-javi"] .envelope-intro__stage { right: 1rem; bottom: max(1.2rem, env(safe-area-inset-bottom)); left: 1rem; z-index: 22; gap: .3rem; color: rgb(94 64 50 / 84%); opacity: 1; }
body[data-theme="silvia-javi"] .envelope-intro__stage strong { color: #8F6427; font-size: clamp(.64rem, 1.5vw, .9rem); letter-spacing: .18em; }
body[data-theme="silvia-javi"] .envelope-intro__stage span { max-width: 25rem; font-size: clamp(.66rem, 1.4vw, .82rem); line-height: 1.35; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__stage { opacity: 0; transition: opacity 280ms ease; }

body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__back-flap { z-index: 2; animation: sj-reference-flap-open 1050ms cubic-bezier(.2, .72, .2, 1) 120ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__insert-card { z-index: 7; animation: sj-reference-card-rise 1900ms cubic-bezier(.2, .72, .2, 1) 520ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__side-flap--left { animation: sj-reference-side-left 850ms cubic-bezier(.2, .72, .2, 1) 1050ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__side-flap--right { animation: sj-reference-side-right 850ms cubic-bezier(.2, .72, .2, 1) 1050ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__seal { animation: sj-reference-seal-release 440ms cubic-bezier(.2, .72, .2, 1) forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__paper-message,
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__recipient,
body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__action { animation: sj-reference-copy-fade 360ms ease 360ms forwards; }
body[data-theme="silvia-javi"] .envelope-intro.is-open .envelope-intro__insert-card { z-index: 7; opacity: 1; transform: translateY(-20%) scale(1) rotate(0); }
body[data-theme="silvia-javi"] .envelope-intro.is-open .envelope-intro__front-pocket { box-shadow: 0 -.2rem .65rem rgb(114 94 66 / 12%); }
body[data-theme="silvia-javi"] .envelope-intro.is-open .envelope-intro__front-pocket::after { background:
  linear-gradient(135deg, transparent 0 49%, rgb(183 138 46 / 20%) 49.5% 50%, transparent 50.5%),
  linear-gradient(225deg, transparent 0 49%, rgb(183 138 46 / 20%) 49.5% 50%, transparent 50.5%); }

@keyframes sj-reference-flap-open {
  0% { transform: rotateX(0); }
  68% { transform: rotateX(-155deg); }
  100% { transform: rotateX(-176deg); }
}
@keyframes sj-reference-card-rise {
  0% { opacity: 0; transform: translateY(38%) scale(.96) rotate(-.35deg); }
  20% { opacity: 1; transform: translateY(36%) scale(.97) rotate(-.35deg); }
  62% { transform: translateY(-12%) scale(1.01) rotate(.12deg); }
  100% { opacity: 1; transform: translateY(-20%) scale(1) rotate(0); }
}
@keyframes sj-reference-side-left { to { transform: translateX(-8%) rotate(-2deg); opacity: .68; } }
@keyframes sj-reference-side-right { to { transform: translateX(8%) rotate(2deg); opacity: .68; } }
@keyframes sj-reference-seal-release { 0%, 45% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(.72) rotate(-8deg); } }
@keyframes sj-reference-copy-fade { to { opacity: 0; transform: translateY(-12%); } }

@media (max-height: 700px) {
  body[data-theme="silvia-javi"] .envelope-intro__composition { width: min(82vw, 47dvh, 32rem); }
  body[data-theme="silvia-javi"] .envelope-intro__paper { padding-bottom: 4.2rem; }
}

@media (max-width: 380px) {
  body[data-theme="silvia-javi"] .envelope-intro__composition { width: min(82vw, 48dvh, 32rem); }
  body[data-theme="silvia-javi"] .envelope-intro__card-copy strong { font-size: clamp(2.7rem, 13vw, 4.4rem); }
  body[data-theme="silvia-javi"] .envelope-intro__stage span { max-width: 19rem; font-size: .68rem; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__back-flap,
  body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__insert-card,
  body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__side-flap,
  body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__seal,
  body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__paper-message,
  body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__recipient,
  body[data-theme="silvia-javi"] .envelope-intro.is-opening .envelope-intro__action { animation-duration: 1ms; animation-delay: 0ms; }
}

/* Closed-envelope material pass: make every paper layer read as a physical fold. */
body[data-theme="silvia-javi"] .envelope-intro__composition { isolation: isolate; }

body[data-theme="silvia-javi"] .envelope-intro__back-envelope {
  border-color: rgb(145 115 78 / 30%);
  background:
    linear-gradient(145deg, rgb(255 253 248 / 94%), rgb(246 237 225 / 96%) 62%, rgb(232 217 196 / 98%)),
    repeating-linear-gradient(0deg, rgb(126 108 82 / 4%) 0 1px, transparent 1px 5px),
    repeating-linear-gradient(90deg, rgb(255 255 255 / 14%) 0 1px, transparent 1px 7px);
  background-blend-mode: normal, multiply, normal;
  box-shadow:
    0 1.25rem 2rem rgb(91 69 42 / 22%),
    0 .2rem .5rem rgb(113 92 64 / 14%),
    inset 0 0 1.5rem rgb(148 119 80 / 10%);
}

body[data-theme="silvia-javi"] .envelope-intro__back-envelope::before {
  position: absolute;
  z-index: 0;
  inset: .1rem;
  content: "";
  pointer-events: none;
  border: 1px solid rgb(255 255 255 / 34%);
  background:
    repeating-linear-gradient(0deg, transparent 0 .18rem, rgb(126 108 82 / 3%) .18rem .205rem),
    repeating-linear-gradient(90deg, transparent 0 .23rem, rgb(255 255 255 / 5%) .23rem .255rem);
  opacity: .72;
  mix-blend-mode: multiply;
}

body[data-theme="silvia-javi"] .envelope-intro__back-envelope::after {
  z-index: 1;
  background:
    radial-gradient(ellipse at 50% 46%, rgb(91 69 42 / 15%) 0 3%, transparent 17%),
    linear-gradient(90deg, rgb(126 108 82 / 8%), transparent 13% 87%, rgb(126 108 82 / 8%)),
    repeating-linear-gradient(0deg, transparent 0 .42rem, rgb(126 108 82 / 4%) .42rem .48rem);
  opacity: .72;
  mix-blend-mode: multiply;
}

body[data-theme="silvia-javi"] .envelope-intro__back-flap {
  height: 46%;
  border-color: rgb(145 115 78 / 38%);
  border-radius: .35rem .35rem 0 0;
  background:
    linear-gradient(155deg, rgb(255 254 250 / 99%), rgb(244 230 210 / 99%) 58%, rgb(222 201 172 / 99%)),
    repeating-linear-gradient(0deg, rgb(126 108 82 / 4%) 0 1px, transparent 1px 5px);
  background-blend-mode: normal, multiply;
  box-shadow:
    inset 0 -.8rem 1.25rem rgb(126 91 49 / 19%),
    inset 0 .08rem .18rem rgb(255 255 255 / 55%),
    0 .22rem .55rem rgb(91 69 42 / 15%);
  filter:
    drop-shadow(0 .5rem .48rem rgb(91 69 42 / 25%))
    drop-shadow(0 .05rem .08rem rgb(91 69 42 / 16%));
}

body[data-theme="silvia-javi"] .envelope-intro__back-flap::before {
  background:
    linear-gradient(to bottom right, transparent 46%, rgb(255 255 255 / 38%) 47.4% 48.6%, rgb(126 91 49 / 25%) 49.1% 50.5%, transparent 52.2%) left top / 50% 100% no-repeat,
    linear-gradient(to bottom left, transparent 46%, rgb(255 255 255 / 38%) 47.4% 48.6%, rgb(126 91 49 / 25%) 49.1% 50.5%, transparent 52.2%) right top / 50% 100% no-repeat;
  opacity: 1;
}

body[data-theme="silvia-javi"] .envelope-intro__back-flap::after {
  inset: 0 0 1px;
  background:
    linear-gradient(180deg, rgb(255 255 255 / 26%), transparent 20% 76%, rgb(126 91 49 / 8%)),
    linear-gradient(135deg, transparent 49.4%, rgb(183 138 46 / 22%) 49.75% 50.15%, transparent 50.5%),
    linear-gradient(225deg, transparent 49.4%, rgb(183 138 46 / 22%) 49.75% 50.15%, transparent 50.5%);
  opacity: .9;
}

body[data-theme="silvia-javi"] .envelope-intro__side-flap {
  border: 1px solid rgb(145 115 78 / 25%);
  background:
    linear-gradient(110deg, rgb(255 254 250 / 98%), rgb(240 228 211 / 98%)),
    repeating-linear-gradient(0deg, rgb(126 108 82 / 4%) 0 1px, transparent 1px 5px);
  background-blend-mode: normal, multiply;
  filter: drop-shadow(0 .18rem .3rem rgb(91 69 42 / 10%));
}

body[data-theme="silvia-javi"] .envelope-intro__side-flap::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, rgb(126 108 82 / 10%), transparent 35% 72%, rgb(255 255 255 / 22%));
  opacity: .72;
}

body[data-theme="silvia-javi"] .envelope-intro__front-pocket {
  inset: 46% -1px -1px;
  border-color: rgb(145 115 78 / 36%);
  background:
    linear-gradient(145deg, rgb(255 253 248 / 98%), rgb(241 227 208 / 98%)),
    repeating-linear-gradient(0deg, rgb(126 108 82 / 4%) 0 1px, transparent 1px 5px);
  background-blend-mode: normal, multiply;
  box-shadow:
    0 -.42rem .95rem rgb(91 69 42 / 22%),
    0 .2rem .42rem rgb(91 69 42 / 10%),
    inset 0 .18rem .45rem rgb(255 255 255 / 55%);
  filter: drop-shadow(0 -.14rem .24rem rgb(91 69 42 / 16%));
}

body[data-theme="silvia-javi"] .envelope-intro__front-pocket::after {
  z-index: 2;
  background:
    linear-gradient(135deg, transparent 0 46.5%, rgb(255 255 255 / 42%) 47.2% 48.8%, rgb(126 91 49 / 23%) 49.2% 50.7%, transparent 51.8%),
    linear-gradient(225deg, transparent 0 46.5%, rgb(255 255 255 / 42%) 47.2% 48.8%, rgb(126 91 49 / 23%) 49.2% 50.7%, transparent 51.8%),
    linear-gradient(135deg, transparent 0 49.1%, rgb(183 138 46 / 14%) 49.55% 50.1%, transparent 50.55%),
    linear-gradient(225deg, transparent 0 49.1%, rgb(183 138 46 / 14%) 49.55% 50.1%, transparent 50.55%);
  background-position: left top, right top, left top, right top;
  background-repeat: no-repeat;
  background-size: 50% 34%, 50% 34%, 50% 34%, 50% 34%;
  opacity: .9;
}

body[data-theme="silvia-javi"] .envelope-intro__front-pocket::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    repeating-linear-gradient(0deg, transparent 0 .18rem, rgb(126 108 82 / 3%) .18rem .205rem),
    repeating-linear-gradient(90deg, transparent 0 .23rem, rgb(255 255 255 / 5%) .23rem .255rem);
  opacity: .7;
  mix-blend-mode: multiply;
}

body[data-theme="silvia-javi"] .envelope-intro__seal {
  top: 46%;
  border-width: 2px;
  border-radius: 49% 51% 48% 52% / 51% 49% 52% 48%;
  background:
    radial-gradient(circle at 28% 20%, rgb(255 235 240 / 80%) 0 8%, transparent 25%),
    radial-gradient(circle at 36% 30%, #f2bbc5 0%, #d99b98 62%, #b9746c 100%);
  box-shadow:
    0 .48rem .7rem rgb(91 69 42 / 22%),
    0 .08rem .12rem rgb(91 69 42 / 20%),
    inset .14rem .14rem .3rem rgb(255 255 255 / 74%),
    inset -.16rem -.16rem .3rem rgb(126 73 64 / 24%);
}

body[data-theme="silvia-javi"] .envelope-intro__seal::before {
  position: absolute;
  z-index: 0;
  inset: .15rem;
  content: "";
  pointer-events: none;
  border: 1px solid rgb(255 239 237 / 58%);
  border-radius: inherit;
  box-shadow: inset 0 -.12rem .18rem rgb(126 73 64 / 18%), 0 .04rem .08rem rgb(255 255 255 / 45%);
}

body[data-theme="silvia-javi"] .envelope-intro__paper-message { top: 42%; }
body[data-theme="silvia-javi"] .envelope-intro__recipient { top: 58%; }
