:root {
  color-scheme: dark;
  --navy: #28374a;
  --paper: #d3c7ad;
  --muted-paper: #b7af9d;
  --rule: rgba(211, 199, 173, .28);
  font-family: "Noto Serif TC", "Songti TC", "PMingLiU", serif;
  color: var(--paper);
  background: var(--navy);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 280px; }
.page { width: min(100%, 720px); margin: 0 auto; padding: 56px 24px 28px; text-align: center; }
.brand { display: block; width: 260px; max-width: 70%; height: auto; margin: 0 auto 38px; }
.status { display: flex; justify-content: center; align-items: baseline; gap: 15px; margin: 0 0 16px; font-size: 15px; letter-spacing: .12em; }
.status span { font-family: "Cormorant Garamond", Georgia, serif; font-size: 22px; font-style: italic; letter-spacing: .02em; }
h1 { margin: 0 0 24px; font-size: clamp(29px, 5.7vw, 42px); font-weight: 500; line-height: 1.65; letter-spacing: .055em; text-wrap: balance; }
p { margin: 0; }
.description { font-size: 17px; line-height: 1.95; letter-spacing: .025em; }
.invitation { margin-top: 15px; font-size: 15px; line-height: 1.9; }
.contact { display: flex; justify-content: center; gap: 12px; max-width: 480px; margin: 30px auto 36px; }
.button { display: flex; justify-content: center; align-items: center; gap: 10px; min-height: 54px; min-width: 0; width: 100%; padding: 12px 20px; border: 1px solid var(--paper); border-radius: 2px; font-family: inherit; font-size: 16px; font-weight: 500; line-height: 1.5; text-decoration: none; transition: color .18s, background-color .18s; }
.button-primary { color: var(--navy); background: var(--paper); }
.button-secondary { color: var(--paper); background: transparent; }
.button-primary:hover { color: var(--paper); background: transparent; }
.button-secondary:hover { color: var(--navy); background: var(--paper); }
.button:focus-visible { outline: 2px solid var(--paper); outline-offset: 5px; }
.account { font-size: 15px; font-weight: 400; }
address { padding-top: 24px; border-top: 1px solid var(--rule); font-style: normal; }
address p { font-size: 15px; line-height: 1.9; letter-spacing: .025em; }
.address-english { margin-top: 8px; font-family: "Cormorant Garamond", Georgia, serif; font-size: 19px; line-height: 1.45; letter-spacing: .015em; }
footer { margin-top: 27px; color: var(--muted-paper); font-size: 12px; line-height: 1.9; letter-spacing: .025em; }
footer span { margin: 0 5px; }
.small-break { display: none; }
::selection { color: var(--navy); background: var(--paper); }

@media (max-width: 520px) {
  .page { padding-top: 38px; }
  .brand { width: 200px; margin-bottom: 29px; }
  .status { font-size: 14px; gap: 12px; margin-bottom: 15px; }
  .status span { font-size: 21px; }
  h1 { max-width: 320px; margin-right: auto; margin-left: auto; margin-bottom: 22px; }
  .description { font-size: 16px; line-height: 1.95; }
  .invitation { max-width: 290px; margin: 15px auto 0; }
  .contact { flex-direction: column; margin-top: 25px; margin-bottom: 31px; }
  .small-break { display: initial; }
  .address-english { font-size: 18px; }
  footer { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .button { transition: none; }
}
