:root {
  color-scheme: light;
  --paper: #ffffff;
  --ink: #171a25;
  --muted: #626675;
  --accent: #3155d9;
}

* { box-sizing: border-box; }

html { min-width: 320px; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Avenir Next", Avenir, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }

.site-shell {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  max-width: 1920px;
  margin: 0 auto;
  padding: 28px clamp(24px, 4.8vw, 84px) 32px;
}

.masthead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  text-decoration: none;
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -.06em;
}

.brand-dot { color: var(--accent); }

.hero {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1;
  min-height: 510px;
  padding: 70px 0 85px;
  isolation: isolate;
  overflow: hidden;
}

.hero-copy { position: relative; z-index: 1; max-width: 920px; }

h1 {
  margin: 0;
  font-size: clamp(70px, 8.2vw, 120px);
  font-weight: 700;
  line-height: 1.03;
  letter-spacing: -.035em;
}

h1 em { color: var(--accent); font-weight: inherit; font-style: normal; }

.lede {
  max-width: 640px;
  margin: 42px 0 0;
  font-size: clamp(22px, 2.3vw, 31px);
  line-height: 1.5;
  letter-spacing: -.02em;
}

.status { margin: 24px 0 0; color: var(--muted); font-size: 16px; line-height: 1.5; }

.reservation {
  display: flex;
  align-items: baseline;
  gap: 25px;
  max-width: 575px;
  margin-top: 58px;
  padding-top: 21px;
  border-top: 1px solid #d7dae4;
}

.reservation strong { font-size: 42px; line-height: 1; letter-spacing: -.04em; }
.reservation span { display: block; font-size: 16px; font-weight: 700; line-height: 1.5; }
.reservation p { margin: 6px 0 0; color: var(--muted); font-size: 15px; line-height: 1.5; }

.hero-number {
  position: absolute;
  right: -4vw;
  bottom: 6%;
  z-index: 0;
  color: #eef1fb;
  font-size: clamp(240px, 20vw, 360px);
  font-weight: 800;
  line-height: .72;
  letter-spacing: -.04em;
  white-space: nowrap;
  user-select: none;
  pointer-events: none;
}

.hero-number::before { content: "100."; }

.footer {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding-top: 25px;
  border-top: 1px solid #d7dae4;
  color: var(--muted);
  font-size: 13px;
}

.payment-result {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 80px 0 120px;
}

.payment-result h1 {
  max-width: 900px;
  font-size: clamp(44px, 7vw, 96px);
  line-height: 1.05;
  letter-spacing: -.04em;
}

.payment-result p {
  max-width: 580px;
  margin: 32px 0;
  color: var(--muted);
  font-size: 20px;
  line-height: 1.5;
}

.payment-result a { color: var(--accent); text-underline-offset: 4px; }

@media (max-width: 700px) {
  .site-shell { padding: 20px 22px 24px; }
  .brand { font-size: 26px; }
  .hero { min-height: 0; align-items: start; padding: 74px 0 160px; }
  h1 { font-size: clamp(58px, 12.3vw, 82px); }
  .lede { margin-top: 32px; max-width: 390px; font-size: 24px; }
  .status { margin-top: 18px; font-size: 15px; }
  .reservation { gap: 18px; margin-top: 46px; }
  .reservation strong { font-size: 36px; }
  .reservation p { font-size: 14px; }
  .hero-number { right: 0; bottom: 21px; font-size: 43vw; }
  .footer { gap: 16px; }
}

@media (max-width: 380px) {
  h1 { font-size: 55px; }
  .hero { padding-top: 70px; }
}
