:root {
  --paper:#FEF4EF;
  --ivory:#FEF4EF;
  --ink:#665541;
  --muted:#807368;
  --gold:#BDA286;
  --rose:#F2C6AF;
  --sky:#CBD2CD;
  --gutter:clamp(1.2rem,5vw,4rem);
}

* {
  box-sizing:border-box;
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  -webkit-font-smoothing:antialiased;
}

button {
  font:inherit;
  color:inherit;
  -webkit-text-fill-color:currentColor;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  touch-action:manipulation;
}

button:disabled {
  cursor:default;
}

button:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:6px;
}

[hidden] {
  display:none!important;
}

h1,h2,p {
  margin:0;
}

svg {
  display:block;
}

p {
  overflow-wrap:anywhere;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}

.svg-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden;
}

.load-status {
  padding:2rem;
  font-size:.85rem;
}

.intro {
  min-height:100svh;
  position:relative;
  isolation:isolate;
  padding:0 var(--gutter) 1.3rem;
  overflow:clip;
  background:radial-gradient(ellipse at 12% 48%,#F2C6AF35,transparent 45%),radial-gradient(ellipse at 90% 42%,#CBD2CD50,transparent 48%),var(--paper);
}

.scene-top {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:66px;
  border-bottom:1px solid #BDA28640;
  font-size:.62rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  width:100%;
  max-width:1320px;
  margin:0 auto;
  flex:none;
}

.scene-top>span:first-child {
  letter-spacing:.05em;
  font-weight:600;
}

.scene-ornament {
  position:absolute;
  width:min(125vw,700px);
  aspect-ratio:1;
  top:48%;
  left:50%;
  transform:translate(-50%,-50%);
  z-index:-1;
  pointer-events:none;
}

.scene-ornament svg {
  width:100%;
  height:100%;
  fill:none;
  stroke:#BDA28644;
  stroke-width:.7;
}

.ambient-light {
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 50% 42%,#FEF4EF,transparent 65%);
  opacity:0;
  pointer-events:none;
  z-index:-1;
}

.intro-copy {
  text-align:center;
  max-width:720px;
  margin:clamp(1.8rem,5svh,4rem) auto 0;
}

.eyebrow {
  font-size:.62rem;
  line-height:1.7;
  text-transform:uppercase;
  letter-spacing:.17em;
  color:var(--ink);
}

.intro-copy h1 {
  font-family:Georgia,serif;
  font-size:clamp(1.75rem,6.6vw,3.8rem);
  font-weight:400;
  line-height:1.3;
  letter-spacing:-.035em;
  max-width:18ch;
  margin:.8rem auto;
}

.intro-copy>p:last-child {
  font-family:Georgia,serif;
  font-style:italic;
  font-size:clamp(.85rem,2.2vw,1.1rem);
  line-height:1.6;
  color:var(--muted);
}

.envelope-stage {
  position:relative;
  height:clamp(290px,43svh,450px);
  width:100%;
  max-width:1050px;
  margin:auto;
  perspective:1300px;
}

.envelope-arrival {
  position:absolute;
  width:min(91%,420px);
  aspect-ratio:1.5;
  left:50%;
  top:55%;
  transform:translate(-50%,-50%);
}

.envelope-shell {
  position:relative;
  width:100%;
  height:100%;
  transform-style:preserve-3d;
}

.envelope-shadow {
  position:absolute;
  inset:88% 4% -5%;
  background:radial-gradient(ellipse,#80736824,transparent 72%);
  transform:translateY(14px);
  pointer-events:none;
}

.paper {
  background-color:var(--ivory);
  background-image:radial-gradient(#80736817 .5px,transparent .7px),linear-gradient(120deg,#FFFFFF10,#BDA28610);
  background-size:5px 5px,100% 100%;
}

.envelope-back {
  position:absolute;
  inset:0;
  border:1px solid #BDA28670;
  border-radius:3px;
  background-color:var(--peach);
}

.letter {
  position:absolute;
  inset:4% 8% 5%;
  z-index:2;
  padding:5% 8%;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  border:1px solid var(--beige);
  border-radius:1px;
}

.letter-border {
  position:absolute;
  inset:5%;
  border:1px solid #BDA28655;
  pointer-events:none;
}

.letter-star {
  width:20px;
  height:20px;
  fill:var(--butter);
  flex:none;
}

.letter .eyebrow {
  font-size:clamp(.38rem,1.25vw,.48rem);
  max-width:22ch;
}

.letter h2 {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(1.15rem,4.5vw,2rem);
  line-height:1.2;
  letter-spacing:-.04em;
}

.letter>p:last-child {
  font-family:Georgia,serif;
  font-style:italic;
  font-size:clamp(.6rem,1.8vw,.8rem);
  line-height:1.5;
  max-width:24ch;
}

.envelope-pocket {
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
}

.envelope-pocket>svg {
  width:100%;
  height:100%;
}

.envelope-pocket>span {
  position:absolute;
  bottom:13%;
  left:10%;
  right:10%;
  font-family:Georgia,serif;
  font-style:italic;
  text-align:center;
  font-size:clamp(.75rem,2.4vw,1rem);
  color:var(--ink);
  letter-spacing:.03em;
}

.envelope-flap {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:59%;
  transform-origin:center top;
  transform-style:preserve-3d;
  z-index:5;
}

.envelope-flap>svg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

.flap-back {
  transform:rotateY(180deg);
}

.wax-seal {
  position:absolute;
  left:50%;
  top:51%;
  transform:translate(-50%,-50%);
  width:clamp(49px,15vw,68px);
  aspect-ratio:1;
  border-radius:48%;
  z-index:6;
  background:radial-gradient(circle at 38% 28%,#F8E2CD,#BDA286 75%);
  border:1px solid var(--beige);
  color:var(--brown);
  display:grid;
  place-items:center;
  box-shadow:0 3px 4px #80736816;
}

.seal-edge {
  position:absolute;
  inset:9%;
  border:1px solid #80736855;
  border-radius:50%;
}

.wax-seal>svg {
  width:40%;
  height:40%;
  fill:var(--brown);
}

.envelope-hit {
  position:absolute;
  inset:0;
  z-index:10;
  background:transparent;
  border:0;
  border-radius:3px;
}

.envelope-hit:focus-visible {
  outline-offset:10px;
}

.intro-bottom {
  position:relative;
  display:flex;
  align-items:center;
  flex-direction:column;
  gap:.9rem;
  text-align:center;
  max-width:720px;
  margin:0 auto;
}

.open-button {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  min-height:48px;
  background:none;
  border:0;
  border-bottom:1px solid var(--beige);
  padding:.65rem .5rem;
  font-family:Georgia,serif;
  font-style:italic;
  font-size:1.1rem;
}

.open-button svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:var(--ink);
  stroke-width:1.2;
  transition:transform .3s;
}

.open-button:hover svg {
  transform:translateY(3px);
}

.intro-bottom>p {
  font-size:.68rem;
  line-height:1.6;
  max-width:34ch;
}

.text-button {
  min-height:44px;
  background:none;
  border:0;
  font-size:.65rem;
  color:var(--brown);
  padding:.6rem 0;
  text-decoration:underline;
  text-underline-offset:4px;
  text-decoration-color:var(--beige);
}

.opening-sparks {
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:12;
}

.opening-spark {
  position:absolute;
  width:12px;
  height:12px;
  background:var(--butter);
  clip-path:polygon(50% 0,57% 43%,100% 50%,57% 57%,50% 100%,43% 57%,0 50%,43% 43%);
}

.paper-bridge {
  position:fixed;
  inset:0;
  z-index:30;
  pointer-events:none;
  transform-origin:0 0;
}

@font-face {
  font-family:Italianno;
  src:url('../../wedding/premium-cinematic/fonts/Italianno.ttf') format('truetype');
  font-display:swap;
}

:root {
  --peach:#F8E2CD;
  --blush:#F2C6AF;
  --butter:#F5C16F;
  --blue-grey:#CBD2CD;
  --brown:#665541;
  --beige:#BDA286;
}

html {
  scroll-padding-top:1rem;
  scroll-behavior:auto;
}

a {
  color:inherit;
  text-decoration:none;
}

img {
  display:block;
  max-width:100%;
  height:auto;
}

button,a {
  touch-action:manipulation;
}

button,input,textarea {
  font:inherit;
  color:var(--ink);
}

input,textarea {
  font-size:16px;
}

a:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:2px solid var(--brown);
  outline-offset:5px;
}

em {
  font-family:Italianno,Georgia,serif;
  font-weight:400;
  font-size:1.3em;
}

h2 {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(1.9rem,5vw,3.4rem);
  line-height:1.22;
  letter-spacing:-.045em;
  overflow-wrap:anywhere;
}

.scene {
  padding:clamp(3rem,7vw,6rem) var(--gutter);
  position:relative;
}

.scene>div {
  min-width:0;
}

.scene h2+p {
  margin-top:1.2rem;
  line-height:1.85;
  font-size:.88rem;
  max-width:42ch;
}

.scene .eyebrow {
  font-size:.65rem;
  margin-bottom:1.2rem;
  color:var(--brown);
}

.scene-link,.closing-action {
  display:inline-flex;
  align-items:center;
  gap:1rem;
  min-height:48px;
  border-bottom:1px solid var(--beige);
  font-size:.75rem;
  padding:.6rem 0;
  color:var(--brown);
}

.scene-link svg,.map-links svg,.rsvp-submit svg {
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.4;
  flex:none;
}

.cover {
  position:relative;
  min-height:100svh;
  background:radial-gradient(ellipse at 75% 52%,#F8E2CD88,transparent 55%),var(--paper);
  padding:0 var(--gutter) 1rem;
}

.cover:focus {
  outline:none;
}

.cover-composition {
  width:100%;
  max-width:1220px;
  margin:auto;
  position:relative;
  display:grid;
  padding-top:clamp(55px,15vw,100px);
}

.garland {
  position:absolute;
  top:-5px;
  left:0;
  width:100%;
  height:clamp(70px,20vw,130px);
  object-fit:contain;
  pointer-events:none;
}

.cover-copy {
  text-align:center;
  position:relative;
  padding:0;
  width:100%;
  max-width:570px;
  margin:auto;
  z-index:1;
}

.cover-copy .eyebrow {
  font-size:.68rem;
  letter-spacing:.25em;
  color:var(--brown);
  margin:0 0 .9rem;
}

.cover-copy h1 {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(2rem,9vw,4.1rem);
  line-height:1.06;
  letter-spacing:-.055em;
  color:var(--brown);
}

.title-line {
  display:block;
  white-space:nowrap;
  padding:.08em;
  margin:0;
  overflow:clip;
}

.title-line>span {
  display:block;
}

.cover-subtitle {
  font-family:Italianno,Georgia,serif;
  font-size:clamp(2rem,8vw,3rem);
  line-height:1.1;
  margin:.8rem 0;
}

.cover-message {
  font-size:.8rem;
  line-height:1.85;
  max-width:34ch;
  margin:auto;
}

.cover-copy .scene-link {
  margin-top:1rem;
}

.cover-art {
  position:relative;
  width:100%;
  max-width:600px;
  margin:-.5rem auto 0;
  isolation:isolate;
}

.art-halo {
  position:absolute;
  inset:11% 12%;
  border:1px solid #BDA28655;
  border-radius:50%;
  z-index:-1;
}

.stork-float img {
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:contain;
}

.wish-button {
  position:absolute;
  right:1%;
  top:14%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.4rem;
  background:none;
  border:0;
  min-height:48px;
  padding:.5rem;
  color:var(--brown);
}

.wish-button svg {
  width:30px;
  height:30px;
  fill:var(--butter);
}

.wish-button span {
  font-size:.6rem;
}

.wish-message {
  font-family:Georgia,serif;
  font-style:italic;
  font-size:.7rem;
  line-height:1.65;
  min-height:3.4em;
  text-align:center;
  max-width:33ch;
  margin:-1rem auto 0;
  padding:0 .5rem;
}

.cover-signature {
  font-size:.54rem;
  letter-spacing:.13em;
  text-align:center;
  text-transform:uppercase;
  padding:1rem 0;
  line-height:1.8;
  color:var(--brown);
}

.story {
  display:grid;
  gap:2rem;
  align-items:center;
  background:linear-gradient(130deg,#F8E2CD88,#FEF4EF);
}

.story-art {
  position:relative;
  width:min(100%,290px);
  aspect-ratio:1;
  margin:auto;
  display:grid;
  place-items:center;
}

.story-orbit {
  position:absolute;
  inset:5%;
  border:1px solid var(--beige);
  border-radius:50%;
}

.story-orbit::after {
  content:'';
  position:absolute;
  inset:10%;
  border:1px dashed #BDA28666;
  border-radius:50%;
}

.story-script {
  font-family:Italianno,Georgia,serif;
  font-size:7rem;
  line-height:1;
  color:var(--brown);
  transform:rotate(-9deg);
}

.story-art>svg {
  position:absolute;
  right:8%;
  top:6%;
  width:30px;
  fill:var(--butter);
}

.story-copy {
  max-width:640px;
}

.story-copy>p:not(.eyebrow) {
  font-size:.88rem;
  line-height:1.85;
  margin-top:1.3rem;
  max-width:44ch;
}

fieldset {
  border:0;
  padding:0;
  margin:1.5rem 0;
}

legend {
  font-size:.78rem;
  line-height:1.6;
  margin-bottom:.8rem;
  padding:0;
}

.intuition-options {
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}

.intuition button {
  border:1px solid var(--beige);
  background:none;
  border-radius:40px;
  padding:.65rem 1rem;
  min-height:46px;
  font-size:.75rem;
}

.intuition button[aria-pressed=true] {
  background:var(--brown);
  color:var(--paper);
}

.intuition>p {
  min-height:3.5em;
  font-size:.7rem;
  line-height:1.7;
  margin-top:1rem;
  max-width:42ch;
}

.details {
  display:grid;
  gap:2rem;
  align-items:center;
  max-width:1280px;
  margin:auto;
}

.date-keepsake {
  position:relative;
  max-width:480px;
  width:100%;
  margin:auto;
  border:1px solid var(--beige);
  padding:1.5rem 1.3rem;
  border-radius:110px 110px 0 0;
  text-align:center;
  background-color:var(--peach);
}

.keepsake-top {
  display:flex;
  justify-content:center;
  gap:1rem;
  font-size:.66rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  padding-top:1.5rem;
}

.date-center {
  display:flex;
  flex-direction:column;
  align-items:center;
  margin:1rem 0;
}

.date-center strong {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(5rem,19vw,8rem);
  line-height:1;
  letter-spacing:-.07em;
}

.date-center>span {
  font-family:Italianno,Georgia,serif;
  font-size:2.5rem;
  line-height:1.2;
}

.keepsake-bottom {
  display:grid;
  gap:.7rem;
  border-top:1px solid #BDA28680;
  padding:1rem 0;
  font-size:.77rem;
}

.keepsake-bottom span:last-child {
  font-size:.65rem;
}

.date-trace {
  width:100%;
  height:20px;
  fill:none;
  stroke:var(--beige);
  stroke-width:1;
}

.location {
  background:#CBD2CD55;
  display:grid;
  align-items:center;
  gap:2rem;
}

.venue {
  font-family:Georgia,serif;
  font-style:italic;
  font-size:clamp(1.4rem,4vw,2rem);
  line-height:1.4;
  margin-top:1.6rem;
}

#address {
  font-size:.85rem;
  line-height:1.75;
  margin-top:.5rem;
  max-width:40ch;
}

.small-note {
  font-size:.65rem;
  line-height:1.7;
  max-width:45ch;
  margin-top:.7rem;
  color:var(--brown);
}

.map-links {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(0,1fr);
  gap:.8rem;
  max-width:350px;
  margin-top:1.4rem;
}

.map-links a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  min-height:48px;
  padding:.6rem .3rem;
  border-bottom:1px solid var(--beige);
  font-size:.76rem;
}

.map-frame {
  aspect-ratio:4/3;
  width:100%;
  border:1px solid var(--beige);
}

.map-frame iframe {
  display:block;
  width:100%;
  height:100%;
  border:0;
}

.venue-art {
  position:relative;
  width:min(100%,320px);
  aspect-ratio:360/330;
  margin:auto;
}

.venue-art>svg {
  width:100%;
  height:100%;
  fill:none;
  stroke:var(--beige);
  stroke-width:1.5;
}

.venue-art>span {
  position:absolute;
  inset:27% 0 0;
  text-align:center;
  font-family:Italianno,Georgia,serif;
  font-size:3rem;
  line-height:1;
  transform:rotate(-5deg);
}

.countdown {
  display:grid;
  gap:2rem;
  align-items:center;
}

.countdown-art {
  width:min(100%,370px);
  aspect-ratio:1;
  position:relative;
  margin:auto;
}

.count-orbit {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  fill:none;
  stroke:var(--beige);
  stroke-width:1;
}

.count-values {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.count-values strong {
  font-weight:400;
  display:block;
  line-height:1.1;
  font-variant-numeric:tabular-nums;
}

.days {
  text-align:center;
}

.days strong {
  font-family:Georgia,serif;
  font-size:clamp(4.5rem,20vw,7.5rem);
  letter-spacing:-.07em;
}

.count-values span {
  font-size:.6rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.count-small {
  display:flex;
  gap:2.5rem;
  text-align:center;
  margin-top:1.2rem;
}

.count-small strong {
  font-size:1.8rem;
}

.count-star {
  position:absolute;
  top:2%;
  right:9%;
  width:28px;
  fill:var(--butter);
}

.extras {
  display:grid;
  gap:2rem;
  align-items:center;
  background:#F8E2CD66;
}

.extras-illustration {
  max-width:540px;
  margin:auto;
}

.extras-illustration img {
  width:100%;
  aspect-ratio:7/6;
  object-fit:contain;
}

.extra-detail {
  border-top:1px solid #BDA28666;
  padding-top:1.3rem;
  margin-top:1.7rem;
}

.extra-detail h3 {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:1.2rem;
  line-height:1.5;
}

.extra-detail p {
  font-size:.82rem;
  line-height:1.85;
  margin-top:.65rem;
  max-width:42ch;
}

.palette-chips {
  display:flex;
  gap:1.2rem;
  flex-wrap:wrap;
  margin-top:1.3rem;
}

.palette-chips span {
  font-size:.6rem;
  text-align:center;
}

.palette-chips span::before {
  content:'';
  display:block;
  width:27px;
  height:27px;
  border:1px solid var(--beige);
  border-radius:50%;
  background:var(--swatch);
  margin:0 auto .5rem;
}

.rsvp {
  background:linear-gradient(120deg,#F2C6AF44,#F8E2CD99);
}

.rsvp-heading {
  max-width:720px;
}

.rsvp-layout {
  display:grid;
  gap:2.5rem;
  margin-top:2rem;
  align-items:center;
}

.rsvp label {
  display:block;
  font-size:.78rem;
  line-height:1.6;
  margin-bottom:.5rem;
}

.rsvp label>span {
  font-size:.7rem;
}

.rsvp input:not([type=radio]),.rsvp textarea {
  width:100%;
  border:0;
  border-bottom:1px solid var(--beige);
  border-radius:0;
  min-height:48px;
  background:transparent;
  padding:.6rem 0;
  color:var(--brown);
  -webkit-text-fill-color:var(--brown);
}

.rsvp textarea {
  resize:vertical;
  min-height:80px;
}

.rsvp input::placeholder,.rsvp textarea::placeholder {
  color:var(--muted);
  opacity:1;
}

.attendance-options {
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
}

.attendance-options label {
  position:relative;
  margin:0;
  cursor:pointer;
}

.attendance-options input {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
}

.attendance-options span {
  display:flex;
  align-items:center;
  min-height:46px;
  border:1px solid var(--beige);
  padding:.7rem 1rem;
  border-radius:40px;
}

.attendance-options input:checked+span {
  background:var(--brown);
  color:var(--paper);
}

.attendance-options input:focus-visible+span {
  outline:2px solid var(--brown);
  outline-offset:3px;
}

.guest-selector {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.5rem;
}

.guest-selector label {
  margin:0;
  font-size:.7rem;
}

.stepper {
  display:flex;
  align-items:center;
  gap:.7rem;
}

.stepper button {
  width:44px;
  height:44px;
  border:1px solid var(--beige);
  background:none;
  border-radius:50%;
  font-size:1.2rem;
}

.stepper button:disabled {
  opacity:.4;
}

.stepper output {
  min-width:1rem;
  text-align:center;
  font-size:.9rem;
}

.rsvp-submit {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  width:100%;
  min-height:54px;
  background:var(--brown);
  color:var(--paper);
  border:0;
  padding:1rem 1.2rem;
  margin-top:1.4rem;
  font-size:.85rem;
}

.reservation {
  width:min(100%,410px);
  position:relative;
  border:1px solid var(--beige);
  padding:2rem 1.4rem;
  text-align:center;
  margin:auto;
  border-radius:120px 120px 0 0;
}

.reservation-label {
  font-size:.57rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  display:block;
  line-height:1.7;
  padding-top:1rem;
}

.reservation>svg {
  width:30px;
  height:30px;
  fill:var(--butter);
  margin:1.5rem auto;
}

.reservation>p {
  font-family:Italianno,Georgia,serif;
  font-size:2.9rem;
  line-height:1.2;
  overflow-wrap:anywhere;
}

.reservation>span:last-of-type {
  display:block;
  font-size:.68rem;
  margin-top:.8rem;
}

.reservation-bottom {
  border-top:1px dashed var(--beige);
  margin-top:2rem;
  padding-top:1.3rem;
  display:flex;
  flex-wrap:wrap;
  gap:.8rem;
  justify-content:space-between;
  font-size:.62rem;
}

.closing {
  text-align:center;
  overflow:clip;
  background:radial-gradient(ellipse at 50% 35%,#F8E2CD88,transparent 70%),var(--paper);
  padding-top:clamp(5rem,15vw,10rem);
}

.closing-garland {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  max-height:140px;
  object-fit:contain;
  pointer-events:none;
}

.closing h2 {
  max-width:20ch;
  margin:auto;
}

.closing>p:not(.eyebrow) {
  font-family:Italianno,Georgia,serif;
  font-size:1.9rem;
  line-height:1.4;
  max-width:30ch;
  margin:1.2rem auto;
}

.closing-action {
  margin-top:.5rem;
}

.closing-bow {
  width:100px;
  height:70px;
  fill:none;
  stroke:var(--beige);
  stroke-width:1.4;
  margin:1.5rem auto;
}

.closing footer {
  font-size:.6rem;
  border-top:1px solid #BDA28666;
  padding-top:1.6rem;
  margin-top:2rem;
}

@media(min-width:700px) {
  .intro-copy {
    margin-top:3rem;
  }
  .envelope-stage {
    height:clamp(360px,47svh,510px);
  }
  .envelope-arrival {
    width:440px;
  }
  .letter {
    gap:1rem;
  }
  .intro-bottom {
    gap:1rem;
  }
  .story,.details,.location,.countdown,.extras {
    grid-template-columns:1fr 1fr;
    gap:clamp(2rem,5vw,5rem);
  }
  .rsvp-layout {
    grid-template-columns:1.2fr 1fr;
    gap:clamp(2rem,5vw,5rem);
  }
  .scene {
    padding-inline:clamp(2rem,7vw,8rem);
  }
}

@media(min-width:900px) {
  .cover-composition {
    grid-template-columns:.95fr 1.05fr;
    align-items:center;
    padding-top:90px;
    min-height:700px;
  }
  .cover-copy {
    text-align:left;
    margin:0;
    padding:1rem 0 1rem 1rem;
  }
  .cover-copy h1 {
    font-size:clamp(2.4rem,4.5vw,4.4rem);
  }
  .cover-message {
    margin:0;
    max-width:35ch;
    font-size:.9rem;
  }
  .cover-subtitle {
    font-size:3.4rem;
    margin:1.1rem 0;
  }
  .cover-art {
    margin:0;
  }
  .garland {
    height:150px;
    top:-30px;
  }
  .wish-message {
    margin-top:-1.5rem;
  }
  .story-art {
    width:350px;
  }
  .story-script {
    font-size:9rem;
  }
  .scene>div {
    max-width:640px;
  }
  .rsvp-heading {
    max-width:800px;
  }
  .rsvp {
    padding-inline:clamp(3rem,8vw,9rem);
  }
  .closing h2 {
    font-size:3.7rem;
  }
}

@media(min-width:1100px) {
  .intro-copy h1 {
    max-width:22ch;
  }
  .envelope-arrival {
    width:490px;
  }
  .envelope-stage {
    height:clamp(390px,49svh,550px);
  }
  .intro-copy {
    margin-top:2.5rem;
  }
  .cover-composition {
    min-height:760px;
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    transition:none!important;
    scroll-behavior:auto!important;
  }
}
