/* Local Cyrillic typography. OFL licenses are distributed with the fonts. */
@font-face {
  font-family: 'Golos Text';
  src: url('/fonts/GolosText.woff') format('woff');
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}
@font-face {
  font-family: 'Literata';
  src: url('/fonts/Literata.woff') format('woff');
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}
:root {
  --font-reading: 'Golos Text', 'Segoe UI', sans-serif;
  --font-display: 'Literata', Georgia, serif;
  --text-primary: #203c30;
  --text-secondary: #53604d;
  --text-wine: #8b263c;
}
html {
  font-family: var(--font-reading);
  font-size: 16px;
  line-height: 1.55;
  color: var(--text-primary);
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body { font-family: var(--font-reading); font-optical-sizing: auto; }
body :is(p, small, span, label, legend, input, select, textarea, button, summary, b, strong, nav a) {
  font-family: var(--font-reading) !important;
}
body :is(h1, h2, .brand) {
  font-family: var(--font-display) !important;
  font-optical-sizing: auto;
  font-weight: 650;
  letter-spacing: -.025em;
  line-height: 1.16;
  text-wrap: balance;
}
body h3 { font-family: var(--font-reading) !important; line-height: 1.3; letter-spacing: -.015em; }
body p { line-height: 1.6; }
body small { font-size: .8125rem; line-height: 1.5; }
body :is(input, select, textarea) { font-size: 1rem; line-height: 1.5; font-weight: 400; }
body :is(label, legend) { font-size: .9375rem; line-height: 1.45; font-weight: 600; }
body :is(button:not(.envelope-open-card), .btn, .book-create) { line-height: 1.4; letter-spacing: 0; font-weight: 600; }
body :is(.tag, .winter-tag) { letter-spacing: .045em; font-size: .75rem; line-height: 1.5; }
body .brand { font-size: clamp(21px, 2.1vw, 30px); line-height: 1.15; letter-spacing: -.035em; }
body header nav :is(a, button) { font-size: .875rem !important; line-height: 1.4; }
body .handwriting { font-family: var(--font-display) !important; font-style: normal; font-weight: 500; letter-spacing: -.015em; }
body .christmas-copy h1 { font-size: clamp(42px, min(4.7vw, 7.5svh), 76px); line-height: 1.02; letter-spacing: -.045em; }
body .christmas-copy p { font-size: clamp(16px, 1.9svh, 20px); line-height: 1.55; max-width: 32ch; }
body .christmas-guide h2 { font-size: clamp(23px, 3.1svh, 36px); line-height: 1.2; }
body .guide-cards figcaption { font-family: var(--font-reading); font-size: clamp(15px, 1.9svh, 19px); line-height: 1.4; font-weight: 600; }
body .gift-label { font-size: clamp(15px, 1.8svh, 18px); line-height: 1.4; }
body .invite-paper h1 { font-size: clamp(32px, 3.8vw, 54px); line-height: 1.12; }
body .invite-intro { font-size: 1rem; line-height: 1.6; color: var(--text-secondary); }
body .modes label { font-family: var(--font-reading); font-size: clamp(15px, 1.4vw, 19px); line-height: 1.4; }
body .game-facts h1 { font-size: clamp(29px, 2.7vw, 40px); line-height: 1.18; }
body .fact small { font-size: .8125rem; line-height: 1.5; color: #5c604c; }
body .fact b { font-size: 1rem; line-height: 1.4; font-weight: 650; font-variant-numeric: tabular-nums; }
body .guest-list h3 { font-size: clamp(19px, 1.6vw, 24px); }
body .guest-list li { line-height: 1.45; }
body .guest-list :is(.guest-state, .receipt-mark) { font-size: .8125rem; line-height: 1.4; font-weight: 550; }
#main .lounge-center .sealed-letter-box h2 {
  font-family: var(--font-display) !important;
  font-size: clamp(29px, 2.8vw, 40px);
  line-height: 1.18;
  letter-spacing: -.025em;
  color: var(--text-wine);
  max-width: 23ch;
}
#main .lounge-center .sealed-letter-box > p { font-size: .9375rem; line-height: 1.6; color: var(--text-secondary); }
body .lounge .recipient-card h2 { font-size: clamp(30px, 3vw, 44px); line-height: 1.2; color: var(--text-wine); }
body .recipient-card .tag { text-transform: none; font-size: .8125rem; letter-spacing: .025em; }
body :is(.gift-strip, .receipt-strip) b { font-size: 1.0625rem; font-weight: 650; line-height: 1.4; }
body :is(.gift-strip, .receipt-strip) small { font-size: .875rem; line-height: 1.55; color: var(--text-secondary); }
body .chat-box h2 { font-size: clamp(26px, 2.3vw, 33px); line-height: 1.2; }
body .thread-partner h3 { font-size: 1rem; line-height: 1.4; }
body .thread-partner small { font-size: .8125rem; line-height: 1.5; color: var(--text-secondary); }
body .chat-box #messages article { font-size: .9375rem; line-height: 1.6; }
body .chat-box #messages article strong { font-size: .875rem; font-weight: 650; }
body .chat-box #messages article small { font-size: .75rem; color: #62654f; }
body .chat-box #messages article p { line-height: 1.6; }
body .chat-box #message textarea { font-size: 1rem; line-height: 1.5; }
body .book-cover h1 { font-size: clamp(36px, 4.6vw, 58px); line-height: 1.15; }
body :is(.book-cover, .profile-cover) :is(h1, h2) { color: #fff3db; }
body :is(.book-cover, .profile-cover) small { color: #f4d294; font-size: .75rem; letter-spacing: .09em; }
body .exchange-ticket h3 { font-size: 1.375rem; line-height: 1.3; font-weight: 650; }
body .exchange-ticket :is(small, span) { font-size: .875rem; line-height: 1.5; }
body .exchange-ticket b { font-size: .9375rem; line-height: 1.5; }
body dialog h2 { font-size: 2rem; line-height: 1.2; }
body dialog p { font-size: .9375rem; line-height: 1.6; }
body :is(.note, .invite-intro) { color: var(--text-secondary); }
body .lounge summary { font-size: .9375rem; line-height: 1.5; }
::selection { background: #ecd5a8; color: #203c30; }
@media (max-width: 760px) {
  body header nav :is(a, button) { font-size: .8125rem !important; }
  body .brand { font-size: clamp(19px, 4.8vw, 24px); }
  body .christmas-copy h1 { font-size: clamp(40px, 11vw, 64px); }
  #main .lounge-center .sealed-letter-box h2 { font-size: clamp(27px, 7.4vw, 36px); line-height: 1.2; }
  body .book-cover h1 { font-size: clamp(34px, 8.2vw, 46px); }
}
