:root {
  --ivory: #f8f3e9;
  --paper: #fffdf8;
  --ink: #39352f;
  --muted: #766e62;
  --gold: #a78343;
  --gold-light: #d7c08b;
  --sage: #6f8774;
  --sage-soft: #e5ece4;
  --wine: #954850;
  --night: #242420;
  --serif: "Iowan Old Style", "Palatino Linotype", Baskerville, Georgia, serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ivory); }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: var(--sans); }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
audio { display: none; }

.petal-layer {
  position: fixed;
  inset: 0;
  z-index: 110;
  overflow: hidden;
  pointer-events: none;
}
.petal-layer i {
  position: absolute;
  top: -14vh;
  left: var(--left);
  width: var(--size);
  height: calc(var(--size) * 1.55);
  opacity: 0;
  border-radius: 78% 18% 74% 24% / 72% 22% 78% 28%;
  background:
    radial-gradient(circle at 28% 22%, rgba(255,255,255,.94), transparent 22%),
    linear-gradient(145deg, var(--petal-light, #fffaf5), var(--petal, #e8c9c1) 58%, var(--petal-edge, #c9948b));
  box-shadow: inset -.08rem -.12rem .16rem rgba(121,70,64,.14), 0 .2rem .55rem rgba(82,57,43,.12);
  transform: rotate(24deg) rotateY(24deg);
  transform-origin: 42% 72%;
  backface-visibility: visible;
  will-change: transform, opacity;
}
.petal-layer i::after {
  content: "";
  position: absolute;
  inset: 17% 47% 12% auto;
  width: 1px;
  border-radius: 50%;
  background: linear-gradient(transparent, rgba(139,89,82,.25), transparent);
  transform: rotate(8deg);
}
.petal-layer.is-active i {
  animation: petal-fall var(--duration) var(--delay) cubic-bezier(.24,.5,.34,1) both;
}
.petal-layer i:nth-child(3n) { --petal: #e7d8c9; --petal-edge: #c9a98f; --petal-light: #fffdf7; border-radius: 52% 48% 76% 24% / 68% 34% 66% 32%; }
.petal-layer i:nth-child(4n) { --petal: #d9b2ae; --petal-edge: #b77874; --petal-light: #fff7f3; }
.petal-layer i:nth-child(5n) { filter: blur(.25px); }
.petal-layer i:nth-child(even) { border-radius: 24% 76% 32% 68% / 29% 69% 31% 71%; }
.petal-layer i:nth-child(1) { --left: 3%; --size: .72rem; --duration: 7.6s; --delay: .02s; --sway-a: 7vw; --sway-b: -3vw; --drift: 11vw; --turn: 630deg; }
.petal-layer i:nth-child(2) { --left: 10%; --size: .94rem; --duration: 9.2s; --delay: .42s; --sway-a: -6vw; --sway-b: 5vw; --drift: -9vw; --turn: -540deg; }
.petal-layer i:nth-child(3) { --left: 17%; --size: .6rem; --duration: 8.1s; --delay: 1.3s; --sway-a: 8vw; --sway-b: 2vw; --drift: 13vw; --turn: 710deg; }
.petal-layer i:nth-child(4) { --left: 24%; --size: 1.02rem; --duration: 10s; --delay: .1s; --sway-a: -8vw; --sway-b: 3vw; --drift: -12vw; --turn: -660deg; }
.petal-layer i:nth-child(5) { --left: 31%; --size: .67rem; --duration: 8.7s; --delay: 1.75s; --sway-a: 5vw; --sway-b: -4vw; --drift: 8vw; --turn: 580deg; }
.petal-layer i:nth-child(6) { --left: 38%; --size: .84rem; --duration: 9.6s; --delay: .8s; --sway-a: -7vw; --sway-b: 4vw; --drift: -7vw; --turn: -720deg; }
.petal-layer i:nth-child(7) { --left: 45%; --size: 1.08rem; --duration: 10.4s; --delay: .25s; --sway-a: 7vw; --sway-b: -2vw; --drift: 10vw; --turn: 760deg; }
.petal-layer i:nth-child(8) { --left: 52%; --size: .58rem; --duration: 7.9s; --delay: 1.55s; --sway-a: -5vw; --sway-b: 6vw; --drift: -11vw; --turn: -590deg; }
.petal-layer i:nth-child(9) { --left: 59%; --size: .88rem; --duration: 9.4s; --delay: .58s; --sway-a: 9vw; --sway-b: -4vw; --drift: 9vw; --turn: 690deg; }
.petal-layer i:nth-child(10) { --left: 66%; --size: .63rem; --duration: 8.4s; --delay: 2.05s; --sway-a: -7vw; --sway-b: 2vw; --drift: -8vw; --turn: -640deg; }
.petal-layer i:nth-child(11) { --left: 73%; --size: 1rem; --duration: 10.2s; --delay: .95s; --sway-a: 6vw; --sway-b: -5vw; --drift: 12vw; --turn: 740deg; }
.petal-layer i:nth-child(12) { --left: 80%; --size: .7rem; --duration: 8.9s; --delay: 1.4s; --sway-a: -8vw; --sway-b: 3vw; --drift: -10vw; --turn: -700deg; }
.petal-layer i:nth-child(13) { --left: 87%; --size: .91rem; --duration: 9.8s; --delay: .18s; --sway-a: 5vw; --sway-b: -4vw; --drift: 7vw; --turn: 620deg; }
.petal-layer i:nth-child(14) { --left: 94%; --size: .62rem; --duration: 8.2s; --delay: 1.15s; --sway-a: -6vw; --sway-b: 4vw; --drift: -12vw; --turn: -580deg; }
.petal-layer i:nth-child(15) { --left: 20%; --size: .52rem; --duration: 7.5s; --delay: 2.45s; --sway-a: 10vw; --sway-b: 1vw; --drift: 15vw; --turn: 780deg; }
.petal-layer i:nth-child(16) { --left: 42%; --size: .76rem; --duration: 9s; --delay: 2.7s; --sway-a: -9vw; --sway-b: 5vw; --drift: -13vw; --turn: -730deg; }
.petal-layer i:nth-child(17) { --left: 64%; --size: .54rem; --duration: 8s; --delay: 2.28s; --sway-a: 7vw; --sway-b: -5vw; --drift: 11vw; --turn: 670deg; }
.petal-layer i:nth-child(18) { --left: 84%; --size: .8rem; --duration: 9.5s; --delay: 2.85s; --sway-a: -8vw; --sway-b: 3vw; --drift: -9vw; --turn: -760deg; }

.envelope-screen {
  position: fixed;
  inset: 0;
  z-index: 100;
  overflow: hidden;
  background: #e9dcc5;
  perspective: 1400px;
  isolation: isolate;
}
.envelope-screen picture, .envelope-photo { width: 100%; height: 100%; display: block; }
.envelope-base { position: absolute; inset: 0; }
.envelope-photo { object-fit: cover; object-position: center; }
.envelope-screen.closed .envelope-base .envelope-photo {
  animation: envelope-breathe 7s ease-in-out infinite alternate;
}
.envelope-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(ellipse at 50% 45%, rgba(86, 62, 34, .34), rgba(31, 23, 14, .08) 42%, transparent 72%);
  clip-path: polygon(0 0, 100% 0, 50% 56%);
}
.envelope-screen::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(circle at 50% 48%, rgba(255, 253, 246, .92), rgba(255, 250, 240, .38) 34%, transparent 72%);
}
.seal-button {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
}
.seal-button::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4.9rem;
  height: 4.9rem;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(138, 103, 52, .45);
  border-radius: 50%;
  animation: seal-pulse 2.2s ease-in-out infinite;
}
.opening-flap {
  position: absolute;
  inset: 0;
  z-index: 2;
  transform-origin: top;
  transform-style: preserve-3d;
  will-change: transform, opacity;
  pointer-events: none;
  opacity: 0;
  clip-path: polygon(0 0, 100% 0, 50% 55%);
}
.opening-flap .envelope-photo { animation: none; }
.envelope-screen.opening::before { animation: envelope-interior 1.15s ease-out forwards; }
.envelope-screen.opening::after { animation: invitation-light .9s .7s ease-out forwards; }
.envelope-screen.opening .opening-flap { animation: flap-open 1.2s cubic-bezier(.22,.72,.16,1) forwards; }
.envelope-screen.opening .seal-button { animation: seal-break .42s ease forwards; }
.envelope-screen.opening .envelope-base .envelope-photo { animation: envelope-away 1.9s .16s cubic-bezier(.22,.72,.18,1) forwards; }
.envelope-screen.opening { animation: screen-away .42s 1.48s ease forwards; }

main { overflow: hidden; }
.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 18% 12%, rgba(215, 192, 139, .16), transparent 28%),
    radial-gradient(circle at 82% 88%, rgba(215, 192, 139, .14), transparent 30%),
    linear-gradient(145deg, #fffdf8, #f4ecdd);
}
.reveal-stage {
  position: relative;
  width: min(100%, 960px);
  height: min(100svh, 820px);
  opacity: 0;
  transform: scale(.96);
  perspective: 1400px;
}
.reveal-scene.is-open .reveal-stage { animation: reveal-scene-in .42s ease-out forwards; }
.hero .scene-quote {
  position: absolute;
  display: block;
  top: clamp(1rem, 2.5vh, 1.5rem);
  left: 50%;
  z-index: 10;
  width: min(86%, 760px);
  margin: 0;
  transform: translateX(-50%);
  color: #7d6338;
  font: inherit;
  letter-spacing: normal;
  text-align: center;
}
.scene-quote span {
  display: block;
  margin: 0 0 .45rem .45em;
  font: 700 clamp(.58rem, 1.5vw, .78rem)/1 var(--sans);
  letter-spacing: .45em;
  text-transform: uppercase;
}
.scene-quote strong {
  display: block;
  color: rgba(125,99,56,.58);
  font: italic 400 clamp(3.2rem, 6.5vw, 5.8rem)/.78 var(--serif);
  letter-spacing: -.045em;
}
.scene-scroll-cue {
  position: absolute;
  left: 50%;
  bottom: .5rem;
  z-index: 9;
  transform: translateX(-50%);
  color: #9a783f;
  font: 400 2.2rem/1 var(--serif);
  text-decoration: none;
}
.reveal-envelope-back,
.reveal-envelope-front {
  position: absolute;
  left: 50%;
  bottom: 4%;
  width: min(94vw, 90vh, 760px);
  aspect-ratio: 1.75;
  transform: translateX(-50%);
}
.reveal-envelope-back {
  z-index: 1;
  background: linear-gradient(155deg, #d6c7ac, #f7f0e4 54%, #cbb995);
  clip-path: polygon(0 43%, 50% 0, 100% 43%, 100% 100%, 0 100%);
  filter: drop-shadow(0 1.6rem 1.8rem rgba(73, 55, 31, .2));
}
.reveal-envelope-front {
  z-index: 7;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 80%, rgba(255,255,255,.72), transparent 32%),
    linear-gradient(135deg, #f9f4eb, #e3d5bd 56%, #fbf7ef);
  clip-path: polygon(0 0, 50% 48%, 100% 0, 100% 100%, 0 100%);
  filter: drop-shadow(0 .9rem 1.2rem rgba(73, 55, 31, .18));
}
.reveal-envelope-front::before,
.reveal-envelope-front::after {
  content: "";
  position: absolute;
  inset: 0;
  border-top: 1px solid rgba(155, 120, 66, .38);
}
.reveal-envelope-front::before { background: linear-gradient(35deg, transparent 49.8%, rgba(172, 137, 82, .25) 50%, transparent 50.4%); }
.reveal-envelope-front::after { background: linear-gradient(-35deg, transparent 49.8%, rgba(172, 137, 82, .25) 50%, transparent 50.4%); }
.reveal-envelope-seal {
  position: absolute;
  left: 50%;
  bottom: calc(4% + min(26vw, 130px));
  z-index: 8;
  width: clamp(3.5rem, 12vw, 5rem);
  aspect-ratio: 1;
  transform: translateX(-50%) scale(0);
  border: 1px solid rgba(164, 128, 69, .42);
  border-radius: 50%;
  background:
    radial-gradient(circle at 42% 35%, #fffdf6 0 8%, transparent 9%),
    radial-gradient(circle, #eee4d3 0 48%, #d9c7a9 50% 56%, #f8f2e8 58% 68%, #c9b38d 70% 72%, #f5ede0 74%);
  box-shadow: 0 .55rem 1rem rgba(84, 59, 27, .22);
}
.keepsake {
  position: absolute;
  left: 50%;
  bottom: 18vh;
  opacity: 0;
  will-change: transform, opacity;
}
.invitation-card {
  z-index: 2;
  width: min(66vw, 42vh, 340px);
  aspect-ratio: 1055 / 1491;
  overflow: hidden;
  transform: translate(-50%, 54%) scale(.82);
  border: 4px solid #fffdf8;
  background: #f9f2e7;
  box-shadow: 0 1.4rem 2.5rem rgba(73, 55, 31, .22);
}
.invitation-card img { width: 100%; height: 100%; display: block; object-fit: cover; }
.photo-card {
  padding: clamp(.35rem, 1.5vw, .7rem);
  background: #fffdf8;
  box-shadow: 0 1.15rem 2rem rgba(73, 55, 31, .22);
}
.photo-window {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(167, 131, 67, .3);
  background: #fffdf8;
  background-position: center;
  background-size: cover;
}
.photo-window img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.photo-window .photo-botanical {
  padding: 12%;
  opacity: .5;
  filter: saturate(.72);
  object-fit: contain;
}
.photo-window .uploaded-photo {
  opacity: 0;
  transition: opacity .65s ease;
}
.photo-window .uploaded-photo.is-loaded { opacity: 1; }
.photo-left {
  z-index: 4;
  width: min(43vw, 33vh, 245px);
  aspect-ratio: .78;
  transform: translate(-50%, 58%) rotate(0);
  border: 2px solid rgba(255,255,255,.95);
  border-radius: 48% 48% 43% 43% / 34% 34% 18% 18%;
}
.photo-left .photo-window { border-radius: 48% 48% 42% 42% / 34% 34% 18% 18%; }
.photo-right {
  z-index: 5;
  width: min(45vw, 34vh, 255px);
  aspect-ratio: .82;
  transform: translate(-50%, 62%) rotate(0);
}
.reveal-scene.is-open .invitation-card { animation: invitation-emerge 1.25s .08s cubic-bezier(.18,.78,.2,1) forwards; }
.reveal-scene.is-open .photo-left { animation: photo-left-emerge 1.18s .34s cubic-bezier(.18,.78,.2,1) forwards; }
.reveal-scene.is-open .photo-right { animation: photo-right-emerge 1.18s .48s cubic-bezier(.18,.78,.2,1) forwards; }
.reveal-scene.is-open .reveal-envelope-front { animation: envelope-settle .8s cubic-bezier(.2,.7,.2,1) both; }
.reveal-scene.is-open .reveal-envelope-back { animation: envelope-settle .8s cubic-bezier(.2,.7,.2,1) both; }
.reveal-scene.is-open .reveal-envelope-seal { animation: reveal-seal .55s .72s cubic-bezier(.2,.8,.2,1.2) forwards; }
.hero-copy { width: min(100%, 780px); text-align: center; }
.eyebrow {
  margin: 0 0 1.1rem;
  color: var(--gold);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .34em;
  text-transform: uppercase;
}
.hero h1 {
  margin: 0;
  font: 400 clamp(3.5rem, 16vw, 8.8rem)/.82 var(--serif);
  letter-spacing: -.055em;
}
.hero h1 span { display: block; }
.hero h1 i { display: block; color: var(--gold); font-weight: 400; }
.hero-date { margin: 3.5rem 0 1.5rem; color: var(--muted); font: italic 1.15rem var(--serif); text-align: center; }
.countdown { display: flex; justify-content: center; gap: clamp(.5rem, 4vw, 2.25rem); }
.countdown div { min-width: 3.15rem; text-align: center; }
.countdown strong { display: block; font: 400 1.85rem var(--serif); }
.countdown small { color: var(--muted); font-size: .58rem; letter-spacing: .15em; text-transform: uppercase; }
.scroll-cue { display: inline-flex; flex-direction: column; gap: .6rem; margin-top: 3rem; color: var(--muted); font-size: .65rem; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.scroll-cue span { color: var(--gold); font-size: 1rem; animation: float 1.8s ease-in-out infinite; }
.hero-orbit { position: absolute; z-index: -1; width: 15rem; aspect-ratio: 1; border: 1px solid rgba(167, 131, 67, .15); border-radius: 50%; }
.orbit-one { top: -7rem; right: -7rem; }
.orbit-two { bottom: -7rem; left: -7rem; }

.paper-section { position: relative; padding: 6rem 1.4rem; background: var(--paper); }
.story-section {
  overflow: hidden;
  background:
    radial-gradient(circle at 4% 22%, rgba(131,158,135,.18), transparent 24%),
    radial-gradient(circle at 96% 84%, rgba(131,158,135,.13), transparent 27%),
    var(--paper);
}
.story-section > :not(.reference-flower) { position: relative; z-index: 1; }
.reference-flower { position: absolute; z-index: 0; height: auto; pointer-events: none; user-select: none; }
.reference-flower-blue { top: 10rem; left: -4.5rem; width: clamp(7rem, 18vw, 13rem); opacity: .24; transform: rotate(12deg); }
.reference-flower-story-red { right: -5rem; bottom: 4rem; width: clamp(10rem, 24vw, 20rem); opacity: .14; transform: rotate(-10deg); }
.reference-branch { top: -2.5rem; right: -4rem; width: clamp(12rem, 28vw, 23rem); opacity: .27; transform: rotate(7deg); }
.section-heading { width: min(100%, 650px); margin: 0 auto 3rem; text-align: center; }
.section-heading h2, .rsvp-intro h2, .admin-card h1 {
  margin: 0 0 1rem;
  font: 400 clamp(2.6rem, 9vw, 5.6rem)/.96 var(--serif);
  letter-spacing: -.045em;
}
.section-heading > p:last-child, .rsvp-intro > p:last-child, .admin-card > p { margin: 0; color: var(--muted); line-height: 1.8; }
.section-kicker {
  margin: 0 0 1rem;
  color: var(--sage);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .26em;
  text-transform: uppercase;
}
.reservation-card {
  position: relative;
  width: min(100%, 620px);
  margin: 0 auto;
  padding: 3.5rem 1.2rem;
  border: 1px solid var(--gold-light);
  clip-path: polygon(0 1rem, 1rem 0, calc(100% - 1rem) 0, 100% 1rem, 100% calc(100% - 1rem), calc(100% - 1rem) 100%, 1rem 100%, 0 calc(100% - 1rem));
  background: linear-gradient(145deg, #fffefa, #f5eddf);
  box-shadow: 0 24px 60px rgba(76, 61, 38, .1);
  text-align: center;
}
.reservation-card::before, .reservation-card::after { content: "✦"; position: absolute; top: .7rem; color: var(--gold); }
.reservation-card::before { left: .8rem; }
.reservation-card::after { right: .8rem; }
.reservation-card > p { margin: 0 0 1.2rem; color: var(--gold); font-size: .62rem; font-weight: 800; letter-spacing: .28em; text-transform: uppercase; }
.reservation-card h3 { margin: 0 0 .65rem; font: italic 2rem var(--serif); }
#invitation-name:empty, #ticket-info:empty, #invitee-list:empty, #download-ticket:empty { display: none; }
.reservation-card span { display: block; font-weight: 650; }
.reservation-card ul { display: grid; gap: .45rem; margin: 1.5rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid rgba(167,131,67,.25); list-style: none; }
.reservation-card li { font: italic 1.05rem var(--serif); }
.faith-story {
  width: min(100%, 960px);
  margin: 4rem auto 0;
  padding: clamp(2.4rem, 7vw, 4.8rem) clamp(1.4rem, 7vw, 5rem);
  border-block: 1px solid rgba(111,135,116,.28);
  background: rgba(247,249,245,.62);
}
.faith-story blockquote {
  max-width: 49rem;
  margin: 0 auto;
  color: #536356;
  font: 400 clamp(1.2rem, 4.7vw, 1.75rem)/1.65 var(--serif);
  text-align: center;
}
.countdown-phrase {
  width: min(100%, 760px);
  margin: 5.5rem auto 0;
  color: #8e7040;
  font: italic clamp(1.9rem, 7vw, 3.6rem)/1.15 var(--serif);
  text-align: center;
}
.countdown-phrase strong { display: block; margin-top: .35em; color: var(--sage); font-weight: 400; }

.details-section {
  position: relative;
  overflow: hidden;
  padding: 6rem 1.4rem;
  color: var(--ink);
  background:
    radial-gradient(circle at 10% 10%, rgba(255,255,255,.65), transparent 27%),
    linear-gradient(145deg, #edf1e9, #d4dfd2);
}
.details-section > :not(.reference-flower) { position: relative; z-index: 1; }
.section-heading.light h2 { color: var(--ink); }
.details-section .section-heading { margin-bottom: 0; }
.details-section .section-heading h2 { font-size: clamp(2.25rem, 8vw, 4.9rem); }
.map-card { width: min(100%, 850px); min-height: clamp(18rem, 55vw, 28rem); display: grid; place-items: center; margin: 2.5rem auto 0; padding: .45rem; border: 1px solid rgba(151,113,54,.28); background: rgba(255,253,248,.72); box-shadow: 0 1.5rem 3rem rgba(87,64,31,.1); }
.map-card iframe { width: 100%; height: clamp(18rem, 55vw, 28rem); display: block; border: 0; }
.map-card iframe[hidden] { display: none; }
.map-placeholder { color: #765b2e; font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.map-link { width: max-content; display: block; margin: 1.5rem auto 0; padding: .85rem 1.4rem; border-bottom: 1px solid rgba(114,90,47,.55); color: #60491f; font: 750 .68rem var(--sans); letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.gallery-section { overflow: hidden; }
.gallery-phrase { width: min(100%, 700px); margin: 0 auto 3rem; color: #7d6338; font: italic clamp(2.2rem, 8vw, 4.8rem)/1.05 var(--serif); text-align: center; }
.gallery-grid { width: min(100%, 980px); display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: clamp(9rem, 42vw, 18rem); gap: .8rem; margin: 0 auto; }
.gallery-frame { position: relative; overflow: hidden; margin: 0; border: .45rem solid #fff; background: linear-gradient(145deg, #f7f8f3, #ecefe8); box-shadow: 0 1.1rem 2.4rem rgba(73,55,31,.12); transform: rotate(var(--tilt)); }
.gallery-frame:nth-child(3n + 1) { --tilt: -1.8deg; }
.gallery-frame:nth-child(3n + 2) { --tilt: 1.4deg; }
.gallery-frame:nth-child(3n) { --tilt: -.6deg; }
.gallery-frame img { width: 100%; height: 100%; display: block; object-fit: cover; }
.gallery-frame .gallery-botanical { padding: 12%; opacity: .28; filter: saturate(.72); object-fit: contain; }
.gallery-frame .gallery-photo { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease; }
.gallery-frame .gallery-photo.is-loaded { opacity: 1; }
.gallery-3, .gallery-6 { grid-column: 1 / -1; }
.celebration-notes {
  display: grid;
  gap: 5rem;
  overflow: hidden;
  background:
    radial-gradient(circle at 85% 12%, rgba(118,146,123,.14), transparent 27%),
    radial-gradient(circle at 8% 82%, rgba(149,72,80,.08), transparent 24%),
    var(--paper);
}
.celebration-notes > :not(.reference-flower) { position: relative; z-index: 1; }
.notes-flower-red { top: 10%; right: -6rem; width: clamp(11rem, 25vw, 20rem); opacity: .13; transform: rotate(-12deg); }
.notes-flower-blue { bottom: 4%; left: -4rem; width: clamp(7rem, 16vw, 12rem); opacity: .18; transform: rotate(10deg); }
.adult-card, .dress-card {
  width: min(100%, 760px);
  margin: 0 auto;
  text-align: center;
}
.adult-card {
  padding: 2.8rem clamp(1rem, 6vw, 4rem);
  border-block: 1px solid rgba(111,135,116,.3);
}
.adult-card > p:not(.section-kicker) {
  margin: 0;
  color: #4f5c51;
  font: italic clamp(1.45rem, 5.5vw, 2.25rem)/1.5 var(--serif);
}
.adult-card > strong { display: block; margin-top: 1.3rem; color: var(--sage); font: 600 .9rem var(--sans); }
.adult-notice { color: var(--wine); }
.dress-card h2 {
  margin: 0;
  color: var(--sage);
  font: italic 400 clamp(3.8rem, 15vw, 7rem)/.95 var(--serif);
}
.dress-guidance {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: .6rem;
  margin-top: 2.5rem;
}
.dress-look {
  display: grid;
  grid-template-rows: minmax(16rem, 1fr) auto;
  overflow: hidden;
  border: 1px solid rgba(111,135,116,.28);
  background: linear-gradient(160deg, rgba(247,249,245,.88), rgba(233,239,231,.72));
}
.dress-look > img {
  width: 100%;
  height: clamp(16rem, 70vw, 34rem);
  display: block;
  align-self: end;
  padding: 1rem .35rem 0;
  object-fit: contain;
  object-position: center bottom;
}
.dress-look-woman > img { mix-blend-mode: multiply; }
.dress-look p {
  display: grid;
  gap: .65rem;
  margin: 0;
  min-height: 8rem;
  align-content: center;
  padding: 1.25rem .65rem;
  border-top: 1px solid rgba(111,135,116,.28);
  background: rgba(255,253,248,.82);
}
.dress-guidance strong { color: var(--wine); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; }
.dress-guidance span { color: #525a52; font: italic clamp(.88rem, 3.6vw, 1.08rem)/1.45 var(--serif); }

.good-wishes-section {
  display: grid;
  align-items: center;
  gap: 3.5rem;
  padding: 6rem 1.4rem;
  background:
    radial-gradient(circle at 80% 15%, rgba(255,255,255,.68), transparent 25%),
    linear-gradient(145deg, #e5ece3, #cfdccd);
}
.wishes-envelope {
  position: relative;
  width: min(82vw, 420px);
  aspect-ratio: 1.55;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(108,121,104,.28);
  background: linear-gradient(145deg, #f7f2e8, #ded6c7);
  box-shadow: 0 1.8rem 3.5rem rgba(57,68,57,.16);
}
.wishes-envelope::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(32deg, #eee6d8 49.6%, rgba(146,128,99,.28) 50%, transparent 50.4%), linear-gradient(-32deg, #f8f3e9 49.6%, rgba(146,128,99,.25) 50%, transparent 50.4%);
  clip-path: polygon(0 18%, 50% 62%, 100% 18%, 100% 100%, 0 100%);
}
.wishes-envelope::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, #ebe3d4, #f9f4ea);
  clip-path: polygon(0 0, 100% 0, 50% 58%);
}
.wishes-envelope span {
  position: absolute;
  top: 49%;
  left: 50%;
  z-index: 1;
  width: 4.2rem;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(135,99,46,.42);
  border-radius: 50%;
  background: radial-gradient(circle at 42% 35%, #fffaf0 0 9%, transparent 10%), radial-gradient(circle, #ead9bd 0 52%, #c8aa78 54% 59%, #f1e5d1 61%);
  box-shadow: 0 .5rem 1rem rgba(80,62,37,.16);
}
.wishes-copy { width: min(100%, 620px); margin: 0 auto; text-align: center; }
.wishes-copy h2 { margin: 0 0 1.5rem; color: #405246; font: 400 clamp(2.8rem, 10vw, 5.4rem)/.95 var(--serif); }
.wishes-copy > strong { display: block; margin-bottom: 1.4rem; color: var(--wine); font: italic 1.25rem var(--serif); }
.wishes-copy p { margin: .8rem 0 0; color: #536057; line-height: 1.75; }

.rsvp-section {
  display: grid;
  gap: 3rem;
  padding: 6rem 1.4rem;
  background:
    radial-gradient(circle at 88% 12%, rgba(255,255,255,.7), transparent 26%),
    linear-gradient(145deg, #f0f2eb, #dbe4d8);
}
.rsvp-intro { align-self: start; }
.rsvp-form {
  position: relative;
  display: grid;
  gap: 1.35rem;
  padding: clamp(2.2rem, 7vw, 4rem) clamp(1.2rem, 5vw, 3.6rem);
  border: 1px solid rgba(145,107,48,.44);
  clip-path: polygon(0 1.15rem, 1.15rem 0, calc(100% - 1.15rem) 0, 100% 1.15rem, 100% calc(100% - 1.15rem), calc(100% - 1.15rem) 100%, 1.15rem 100%, 0 calc(100% - 1.15rem));
  background: rgba(255,253,248,.88);
  box-shadow: 0 2rem 4rem rgba(79,58,29,.13);
}
.rsvp-form::before {
  content: "";
  position: absolute;
  inset: .6rem;
  pointer-events: none;
  border: 1px solid rgba(167,131,67,.18);
}
.form-ornament { display: flex; align-items: center; gap: .8rem; color: var(--gold); }
.form-ornament::before, .form-ornament::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(167,131,67,.52), transparent); }
.rsvp-form label, .admin-card label { display: grid; gap: .55rem; color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.rsvp-form input, .rsvp-form textarea, .admin-card input {
  width: 100%;
  border: 0;
  border-bottom: 1px solid #cbbfae;
  border-radius: 0;
  outline: 0;
  color: var(--ink);
  background: transparent;
  padding: .8rem .1rem;
  font-size: 1rem;
  letter-spacing: 0;
  text-transform: none;
}
.rsvp-form input:focus, .rsvp-form textarea:focus, .admin-card input:focus { border-color: var(--gold); box-shadow: 0 1px var(--gold); }
.rsvp-form textarea { resize: vertical; }
.rsvp-form fieldset { display: grid; grid-template-columns: 1fr; gap: .75rem; margin: .3rem 0 0; padding: 0; border: 0; }
.rsvp-form legend { grid-column: 1 / -1; margin-bottom: .65rem; color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.attendance-option { position: relative; display: block !important; color: inherit !important; font-weight: inherit !important; letter-spacing: 0 !important; text-transform: none !important; }
.attendance-option input { position: absolute; width: 1px !important; height: 1px; padding: 0 !important; opacity: 0; }
.attendance-option span { display: grid; gap: .28rem; min-height: 4.5rem; align-content: center; padding: .8rem 1rem .8rem 3.2rem; border: 1px solid #d7ccbc; background: rgba(255,255,255,.45); cursor: pointer; }
.attendance-option span::before { content: ""; position: absolute; top: 50%; left: 1.1rem; width: 1.15rem; aspect-ratio: 1; transform: translateY(-50%) rotate(45deg); border: 1px solid #b99a65; background: #fffdf8; }
.attendance-option input:checked + span { border-color: #9d7739; color: #fffdf8; background: linear-gradient(120deg, #80602f, #b18d4c); box-shadow: inset 0 0 0 3px rgba(255,255,255,.15); }
.attendance-option input:checked + span::before { border: 4px double #fffdf8; background: #ad8645; }
.attendance-option input:focus-visible + span { outline: 2px solid #80602f; outline-offset: 3px; }
.attendance-option b { font: 600 1rem var(--serif); }
.attendance-option small { opacity: .78; font-size: .72rem; }
.attendee-list { display: grid; gap: .8rem; }
.attendee-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .65rem; }
.remove-person, .add-person { border: 0; color: #765b2e; background: transparent; cursor: pointer; }
.remove-person { width: 2.5rem; height: 2.5rem; margin-bottom: .15rem; border: 1px solid rgba(167,131,67,.35); border-radius: 50%; font-size: 1.35rem; }
.add-person { width: max-content; padding: .55rem 0; border-bottom: 1px solid rgba(167,131,67,.48); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.family-rsvp-actions { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.family-choice {
  min-height: 4.2rem;
  padding: .8rem 1rem;
  border: 1px solid #cbb99a;
  color: #624d2c;
  background: rgba(255,255,255,.42);
  cursor: pointer;
  font: 600 1rem var(--serif);
  transition: border-color .2s ease, color .2s ease, background .2s ease, box-shadow .2s ease;
}
.family-choice.is-active { border-color: #8e6c36; color: #fffdf8; background: linear-gradient(120deg, #74592f, #a98448); box-shadow: inset 0 0 0 3px rgba(255,255,255,.14); }
.family-choice:focus-visible { outline: 2px solid #80602f; outline-offset: 3px; }
.family-attendance-summary { margin: 0; padding: 1rem; border-block: 1px solid rgba(167,131,67,.24); color: var(--sage); font: italic 1rem var(--serif); text-align: center; }
.member-choice-list { display: grid; gap: .55rem; }
.member-choice { position: relative; display: block !important; color: inherit !important; letter-spacing: 0 !important; text-transform: none !important; }
.member-choice input { position: absolute; width: 1px !important; height: 1px; padding: 0 !important; opacity: 0; }
.member-choice span { position: relative; display: block; min-height: 3.6rem; padding: 1rem 1rem 1rem 3.2rem; border: 1px solid #d7ccbc; background: rgba(255,255,255,.38); cursor: pointer; font: 500 1rem var(--serif); }
.member-choice span::before { content: ""; position: absolute; top: 50%; left: 1.15rem; width: 1.05rem; aspect-ratio: 1; transform: translateY(-50%) rotate(45deg); border: 1px solid #af8c51; background: #fffdf8; }
.member-choice input:checked + span { border-color: #9c7b44; background: rgba(229,236,228,.8); }
.member-choice input:checked + span::before { border: 4px double #fffdf8; background: var(--sage); }
.member-choice input:focus-visible + span { outline: 2px solid #80602f; outline-offset: 3px; }
.button {
  position: relative;
  overflow: hidden;
  min-height: 3.6rem;
  border: 1px solid #725a2f;
  color: #fffdf8;
  background: linear-gradient(110deg, #72572a, #b28d4c 45%, #765b2e);
  background-size: 220% 100%;
  cursor: pointer;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: transform .25s ease, box-shadow .25s ease;
}
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(85, 62, 26, .2); }
.button:disabled { cursor: wait; opacity: .65; }
.rsvp-submit { clip-path: polygon(0 .7rem, .7rem 0, calc(100% - .7rem) 0, 100% .7rem, 100% calc(100% - .7rem), calc(100% - .7rem) 100%, .7rem 100%, 0 calc(100% - .7rem)); }
.form-message { min-height: 1.3em; margin: 0; color: #4e7454; font-size: .82rem; }
.form-message.error { color: #995747; }

.confirmation-modal { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 1rem; background: rgba(25,24,21,.76); backdrop-filter: blur(9px); }
.confirmation-panel { position: relative; width: min(100%, 540px); max-height: calc(100svh - 2rem); overflow: auto; padding: 2rem 1.2rem; background: var(--paper); text-align: center; animation: modal-in .5s cubic-bezier(.16,.84,.2,1); }
.confirmation-panel h2 { margin: 0 0 1.5rem; font: italic 2rem var(--serif); }
.close { position: absolute; top: .55rem; right: .65rem; border: 0; background: none; cursor: pointer; font-size: 1.7rem; }
.download-card {
  min-height: 23rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  margin-bottom: 1.2rem;
  padding: 3rem 2.5rem;
  border: 1px solid rgba(167, 131, 67, .55);
  background: linear-gradient(rgba(255,253,247,.66), rgba(255,253,247,.78)), url("/invitation-template.png") center / cover;
  box-shadow: inset 0 0 45px rgba(102,79,41,.08);
}
.download-card > span, .download-card > small { color: var(--gold); font-size: .6rem; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; }
.download-card strong { font: italic 2rem var(--serif); }
.download-card b { max-width: 100%; overflow-wrap: anywhere; color: var(--gold); font: 700 1.25rem var(--serif); }
.download-card em { color: var(--muted); font: italic .9rem var(--serif); }
.ticket-card { position: relative; min-height: 42rem; justify-content: flex-start; padding: 3.4rem 2rem 2.5rem; background: radial-gradient(circle at 50% 10%, rgba(215,192,139,.18), transparent 28%), #fffdf8; }
.ticket-card::before, .ticket-card::after { content: ""; position: absolute; top: 49%; width: 1.8rem; aspect-ratio: 1; transform: translateY(-50%); border-radius: 50%; background: var(--paper); box-shadow: inset 0 0 0 1px rgba(167,131,67,.25); }
.ticket-card::before { left: -.95rem; }
.ticket-card::after { right: -.95rem; }
.ticket-card ul { width: 100%; display: grid; gap: .35rem; margin: .4rem 0 0; padding: 0; list-style: none; }
.ticket-card li { color: var(--ink); font: italic 1rem var(--serif); overflow-wrap: anywhere; }
.ticket-cut { width: 100%; margin: 1rem 0; border-top: 1px dashed rgba(167,131,67,.55); }
.ticket-card img { width: min(64vw, 240px); aspect-ratio: 1; display: block; margin: .15rem auto; border: .55rem solid #fff; background: #fff; }
.download-card .ticket-code { color: var(--ink); font: 700 clamp(2.8rem, 12vw, 4.5rem)/1 var(--serif); letter-spacing: .12em; }
.confirmation-panel .button { width: 100%; padding: 0 .8rem; }

.admin-shell { min-height: 100svh; display: grid; place-items: center; padding: 1.4rem; background: linear-gradient(rgba(248,243,233,.92), rgba(248,243,233,.94)), url("/invitation-template.png") center / cover; }
.admin-card { width: min(100%, 540px); padding: 2.4rem 1.4rem; border: 1px solid var(--gold-light); background: rgba(255,253,248,.92); box-shadow: 0 25px 70px rgba(63,48,25,.13); }
.admin-card form { display: grid; gap: 1.4rem; margin-top: 2rem; }
.summary-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; margin: 1.5rem 0; }
.summary-card { padding: 1.1rem; border: 1px solid rgba(167,131,67,.28); background: rgba(248,243,233,.66); }
.summary-card strong { display: block; color: #765b2e; font: italic 2rem var(--serif); }
.summary-card span { color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.list-tools { display: grid; gap: .8rem; margin: 1.4rem 0; }
.list-tools input, .list-tools select { min-height: 3.2rem; padding: .7rem .85rem; border: 1px solid #cbbfae; border-radius: 0; color: var(--ink); background: rgba(255,255,255,.66); }
.confirmation-list { display: grid; gap: .8rem; }
.confirmation-card { display: grid; gap: .8rem; padding: 1.1rem; border: 1px solid rgba(167,131,67,.3); background: rgba(255,253,248,.74); }
.confirmation-card header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; }
.confirmation-card h3 { margin: 0; font: 600 1.25rem var(--serif); }
.confirmation-card p { margin: .55rem 0; color: var(--muted); line-height: 1.6; }
.confirmation-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; color: #765b2e; font-size: .74rem; }
.status-pill { padding: .38rem .6rem; border: 1px solid; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.status-attending { border-color: #78907b; color: #49604d; background: #e5ece4; }
.status-declined { border-color: #bd8b82; color: #84483e; background: #f5e4e0; }
.status-pending { border-color: #c8ad75; color: #765b2e; background: #f5ecd9; }
.ticket-link { width: max-content; color: #765b2e; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }

[data-phrase] {
  opacity: 0;
  filter: blur(4px);
  clip-path: inset(0 0 100% 0);
  transform: translateY(1rem);
  transition: opacity .9s ease, filter 1.1s ease, clip-path 1.15s cubic-bezier(.18,.78,.2,1), transform 1.15s cubic-bezier(.18,.78,.2,1);
}
[data-phrase].is-visible { opacity: 1; filter: none; clip-path: inset(0); transform: none; }
.scene-quote[data-phrase] { opacity: 0; filter: none; clip-path: none; transform: translate(-50%, 1rem); }
.scene-quote[data-phrase].is-visible { transform: translate(-50%, 0); }
.reveal-scene.is-open .scene-quote { opacity: 1; filter: none; clip-path: none; transform: translate(-50%, 0); transition-delay: .28s; }
.confirmation-modal[hidden] { display: none; }

@keyframes envelope-breathe { from { transform: scale(1.001); } to { transform: scale(1.018); } }
@keyframes seal-pulse { 50% { box-shadow: 0 0 0 1rem rgba(255,255,255,.12); transform: translate(-50%, -50%) scale(1.12); } }
@keyframes envelope-interior { 15% { opacity: .45; } 72% { opacity: .22; } 100% { opacity: 0; } }
@keyframes invitation-light { 0% { opacity: 0; transform: scale(.88); } 48% { opacity: .82; } 100% { opacity: 0; transform: scale(1.18); } }
@keyframes flap-open { 0% { opacity: .98; transform: rotateX(0) translateZ(1px); } 22% { opacity: 1; } 72% { opacity: .95; transform: rotateX(152deg) translateY(-1.5%); } 100% { opacity: 0; transform: rotateX(178deg) translateY(-3%); } }
@keyframes seal-break { to { opacity: 0; } }
@keyframes envelope-away { 0% { filter: brightness(1); transform: scale(1); } 46% { opacity: 1; filter: brightness(1.04); transform: scale(1.035); } 100% { opacity: 0; filter: brightness(1.12) blur(2px); transform: scale(1.13); } }
@keyframes screen-away { to { opacity: 0; } }
@keyframes reveal-scene-in { to { opacity: 1; transform: none; } }
@keyframes envelope-settle { from { opacity: 0; transform: translateX(-50%) translateY(12%) scale(.94); } to { opacity: 1; transform: translateX(-50%); } }
@keyframes invitation-emerge { from { opacity: 0; transform: translate(-50%, 54%) scale(.82); } to { opacity: 1; transform: translate(-50%, -18%) scale(1); } }
@keyframes photo-left-emerge { from { opacity: 0; transform: translate(-50%, 58%) rotate(0); } to { opacity: 1; transform: translate(-108%, -48%) rotate(-8deg); } }
@keyframes photo-right-emerge { from { opacity: 0; transform: translate(-50%, 62%) rotate(0); } to { opacity: 1; transform: translate(8%, -44%) rotate(7deg); } }
@keyframes reveal-seal { to { transform: translateX(-50%) scale(1); } }
@keyframes petal-fall {
  0% { opacity: 0; transform: perspective(320px) translate3d(0, -10vh, 0) rotateX(0) rotateY(20deg) rotateZ(0); }
  8% { opacity: .92; }
  32% { transform: perspective(320px) translate3d(var(--sway-a), 31vh, 0) rotateX(160deg) rotateY(250deg) rotateZ(calc(var(--turn) * .28)); }
  63% { opacity: .86; transform: perspective(320px) translate3d(var(--sway-b), 68vh, 0) rotateX(310deg) rotateY(470deg) rotateZ(calc(var(--turn) * .64)); }
  100% { opacity: 0; transform: perspective(320px) translate3d(var(--drift), 114vh, 0) rotateX(510deg) rotateY(720deg) rotateZ(var(--turn)); }
}
@keyframes float { 50% { transform: translateY(.4rem); } }
@keyframes metallic { to { background-position: 220% 0; } }
@keyframes modal-in { from { opacity: 0; transform: translateY(2rem) scale(.96); } }

@media (max-width: 759px) {
  .hero .scene-quote { top: max(.8rem, env(safe-area-inset-top)); }
  .scene-quote span { margin-bottom: .25rem; }
  .scene-quote strong { font-size: clamp(2.15rem, 10.5vw, 3.4rem); line-height: .92; }
}

@media (min-width: 760px) {
  .seal-button::before { width: 6rem; height: 6rem; }
  .hero h1 { display: flex; align-items: center; justify-content: center; gap: .32em; }
  .hero h1 i { font-size: .6em; }
  .paper-section, .details-section { padding: 8rem 2rem; }
  .faith-story { margin-top: 5rem; }
  .dress-guidance { gap: 1.2rem; }
  .good-wishes-section { grid-template-columns: .9fr 1.1fr; gap: clamp(4rem, 8vw, 8rem); padding: 8rem max(2rem, calc((100vw - 1100px) / 2)); }
  .wishes-copy { text-align: left; }
  .gallery-grid { grid-template-columns: repeat(12, 1fr); grid-auto-rows: 12rem; gap: 1.2rem; }
  .gallery-1 { grid-column: 1 / 5; grid-row: 1 / 3; }
  .gallery-2 { grid-column: 5 / 9; grid-row: 1 / 2; }
  .gallery-3 { grid-column: 9 / 13; grid-row: 1 / 3; }
  .gallery-4 { grid-column: 5 / 9; grid-row: 2 / 4; }
  .gallery-5 { grid-column: 1 / 5; grid-row: 3 / 4; }
  .gallery-6 { grid-column: 9 / 13; grid-row: 3 / 4; }
  .rsvp-section { grid-template-columns: .8fr 1.2fr; gap: 6rem; padding: 8rem max(2rem, calc((100vw - 1100px) / 2)); }
  .rsvp-intro { position: sticky; top: 6rem; }
  .rsvp-form fieldset { grid-template-columns: 1fr 1fr; }
  .family-rsvp-actions { grid-template-columns: 1fr 1fr; }
  .summary-grid { grid-template-columns: repeat(5, 1fr); }
  .list-tools { grid-template-columns: minmax(220px, 1fr) 210px; }
  .confirmation-card { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .confirmation-panel { padding: 2.4rem; }
  .admin-card { padding: 3.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  [data-phrase] { opacity: 1; filter: none; clip-path: none; transform: none; }
}
