:root {
  color-scheme: light;
  --pink: #e84386;
  --pink-dark: #cf286c;
  --pink-pale: #fff2f7;
  --ink: #161316;
  --muted: #635b60;
  --line: #f0dbe4;
}

* { box-sizing: border-box; }
html { min-width: 280px; }
body {
  margin: 0;
  background: var(--pink-pale);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
.page {
  width: min(1080px, 100%);
  min-height: 100svh;
  margin-inline: auto;
  padding: 0 48px;
  display: flex;
  flex-direction: column;
}
.masthead {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 104px;
}
.monogram {
  display: grid;
  place-items: center;
  width: 37px;
  height: 37px;
  border: 1px solid var(--pink);
  border-radius: 50%;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  font-style: italic;
  padding-bottom: 5px;
}
.wordmark { font-size: 11px; font-weight: 650; letter-spacing: .17em; }
.landing {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(38px, 6vw, 76px);
  align-items: center;
  flex: 1;
  padding: 20px 0 30px;
}
.portrait {
  position: relative;
  width: 100%;
  aspect-ratio: 896 / 1200;
  max-height: 610px;
  border-radius: 160px 160px 12px 12px;
  overflow: hidden;
  background: #f0e5e8;
  box-shadow: 0 13px 34px #6b234e13;
}
picture { display: contents; }
.portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 40%;
}
.invitation { padding: 20px 0; }
.eyebrow {
  margin: 0 0 27px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .16em;
}
.eyebrow span { font-size: 20px; color: var(--pink-dark); font-weight: 400; }
h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(54px, 6vw, 76px);
  letter-spacing: -.06em;
  line-height: 1.02;
}
h1 span { display: block; font-style: italic; }
.intro {
  margin: 29px 0 30px;
  font-size: 16px;
  line-height: 1.75;
  color: var(--muted);
}
.telegram-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  width: 100%;
  min-height: 58px;
  padding: 15px 18px;
  border-radius: 10px;
  background: var(--ink);
  color: #fff;
  border: 1px solid var(--ink);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 600;
  transition: background .18s, border-color .18s, transform .18s;
}
.telegram-icon { width: 20px; height: 20px; flex: 0 0 auto; fill: #fff; }
.button-arrow { margin-left: auto; color: #f5aac9; font-size: 23px; line-height: 1; }
.telegram-button:hover { background: #38232f; border-color: #38232f; transform: translateY(-2px); }
.telegram-button:focus-visible { outline: 3px solid var(--pink-dark); outline-offset: 5px; }
.button-note { margin: 13px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
footer {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 76px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
  letter-spacing: .02em;
}
footer span { color: var(--pink-dark); font-size: 16px; }

@media (min-width: 1300px) { .page { min-height: min(100svh, 960px); } }
@media (max-width: 700px) {
  .page { max-width: 460px; padding-inline: 24px; }
  .masthead { min-height: 73px; gap: 10px; }
  .monogram { width: 30px; height: 30px; font-size: 25px; }
  .wordmark { font-size: 9px; }
  .landing { display: flex; flex-direction: column; gap: 0; padding: 4px 0 23px; }
  .portrait { height: clamp(270px, 81vw, 350px); aspect-ratio: auto; border-radius: 110px 110px 10px 10px; }
  .portrait img { object-position: 50% 40%; }
  .invitation { width: 100%; padding: 24px 0 0; text-align: center; }
  .eyebrow { justify-content: center; font-size: 8px; margin-bottom: 10px; letter-spacing: .13em; }
  .eyebrow span { font-size: 16px; }
  h1 { font-size: 43px; line-height: 1.07; letter-spacing: -.055em; }
  h1 span { display: inline; }
  .intro { margin: 15px 0 21px; font-size: 14px; line-height: 1.6; }
  .intro br { display: none; }
  .telegram-button { min-height: 56px; padding: 14px; gap: 8px; font-size: 13px; }
  .button-note { font-size: 10px; margin-top: 11px; }
  footer { justify-content: center; margin-top: auto; min-height: 54px; font-size: 9px; }
}
@media (max-width: 350px) {
  .page { padding-inline: 17px; }
  h1 { font-size: 37px; }
  .telegram-button { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .telegram-button { transition: none; } }
