@font-face {
  font-family: Sniffr Poppins;
  src: url('/assets/Poppins-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
}
@font-face {
  font-family: Sniffr Nunito;
  src: url('/assets/NunitoSans-Variable.ttf') format('truetype');
  font-weight: 300 900;
  font-display: swap;
}
:root {
  color-scheme: light;
  font-family: 'Sniffr Nunito', system-ui, sans-serif;
  color: #211f1d;
  background: #f4f6f5;
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; }
.page {
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: clamp(20px, 4vw, 64px);
  background:
    radial-gradient(ellipse at 2% 12%, #dce8df 0, transparent 40%),
    radial-gradient(ellipse at 98% 98%, #f6e5c8 0, transparent 38%),
    #f4f6f5;
}
.invitation {
  width: min(1180px, 100%);
  display: grid;
  grid-template-columns: 47% 53%;
  min-height: 740px;
  overflow: hidden;
  border-radius: 38px;
  background: #fff;
  border: 1px solid #e5e9e5;
  box-shadow: 0 24px 70px #29392c14;
}
.copy {
  padding: 54px 56px 32px 60px;
  display: flex;
  flex-direction: column;
  align-items: start;
}
.wordmark { width: 132px; height: auto; display: block; margin-bottom: 42px; }
.eyebrow {
  margin: 0 0 15px;
  color: #456555;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .085em;
  text-transform: uppercase;
}
h1 {
  font-family: 'Sniffr Poppins', sans-serif;
  font-size: clamp(54px, 5.4vw, 76px);
  line-height: 1.02;
  letter-spacing: -.055em;
  margin: 0;
}
.lead, .shared { color: #65645d; font-size: 19px; line-height: 1.55; }
.lead { margin: 25px 0 16px; }
.shared { margin: 0; }
.availability { margin-top: 30px; width: 100%; }
.release {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 18px 12px;
  background: #f8b95e;
  border-radius: 16px;
  font-weight: 850;
  font-size: 17px;
}
.release-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #775322; }
.release-note { margin: 12px 0 0; text-align: center; color: #6b6a62; font-size: 13px; }
footer { display: flex; flex-wrap: wrap; gap: 18px; margin-top: auto; padding-top: 32px; font-size: 12px; color: #74756c; }
.scene {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 48% 0 0 48%;
  background: linear-gradient(155deg, #eaf0e8, #f9f1d9 65%, #fbefd4);
}
.scene::before {
  content: '';
  position: absolute;
  width: 280px;
  height: 280px;
  right: -75px;
  top: -70px;
  border-radius: 50%;
  background: #c9e1e9a6;
}
.scene img {
  position: absolute;
  width: 148%;
  max-width: none;
  height: auto;
  left: -24%;
  bottom: 0;
  mask-image: linear-gradient(to bottom, transparent, #000 16%);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 16%);
}
.scene-label {
  position: absolute;
  z-index: 1;
  right: 34px;
  top: 32px;
  margin: 0;
  padding: 11px 16px;
  border-radius: 30px;
  background: #ffffffd9;
  color: #456555;
  font-size: 12px;
  font-weight: 850;
}
@media (min-width: 1001px) and (max-height: 850px) {
  .page { padding-block: 28px; }
  .invitation { min-height: 690px; }
  .copy { padding-top: 38px; padding-bottom: 26px; }
  .wordmark { margin-bottom: 30px; }
  h1 { font-size: 66px; }
  .lead, .shared { font-size: 18px; }
  footer { padding-top: 24px; }
}
@media (max-width: 1000px) and (min-width: 721px) {
  .copy { padding: 42px 30px 28px 36px; }
  .invitation { min-height: 720px; }
  .lead, .shared { font-size: 17px; }
  .eyebrow { font-size: 10px; }
  .scene-label { right: 20px; font-size: 11px; }
  .scene img { width: 170%; left: -35%; }
}
@media (max-width: 720px) {
  .page { padding: 14px; }
  .invitation { grid-template-columns: 1fr; min-height: 0; border-radius: 28px; }
  .copy { padding: 32px 28px 24px; }
  .wordmark { width: 116px; margin-bottom: 30px; }
  h1 { font-size: clamp(54px, 14vw, 72px); }
  .eyebrow { font-size: 10px; }
  .lead, .shared { font-size: 17px; }
  .lead { margin-top: 20px; }
  .availability { margin-top: 24px; }
  footer { padding-top: 24px; }
  .scene { height: clamp(270px, 75vw, 460px); border-radius: 46% 0 0 0; }
  .scene img { width: 124%; left: -12%; bottom: -5%; }
  .scene-label { top: 20px; right: 20px; font-size: 11px; }
}
@media (max-width: 360px) {
  .copy { padding-inline: 22px; }
  .release { font-size: 15px; }
  .release-note { font-size: 12px; }
}
