:root {
  --paper: #f3ead8;
  --paper-deep: #e9dcc3;
  --ink: #1b2430;
  --navy: #10203a;
  --navy-soft: #193052;
  --red: #b5292f;
  --red-dark: #8f1f25;
  --gold: #c39a52;
  --cream: #fbf4e5;
  --line: rgba(16, 32, 58, 0.16);
  --display: Georgia, "Times New Roman", serif;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.55 var(--sans);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { max-width: 100%; }

.wrap { width: min(1180px, calc(100% - 44px)); margin: 0 auto; }

/* ------------------------------------------------------------- masthead */
.masthead {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.masthead__inner {
  min-height: 92px; display: flex; align-items: center; justify-content: space-between;
  gap: 24px;
}
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand__mark {
  width: 54px; height: 54px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%; background: var(--cream);
}
.brand__mark img { width: 46px; height: 46px; object-fit: contain; }
.brand__text { display: flex; flex-direction: column; line-height: 1.05; }
.brand__text strong {
  font-family: var(--display); font-size: 26px; font-weight: 700; letter-spacing: 0.01em;
}
.brand__text small {
  margin-top: 4px; font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.2em;
  color: #6e6354;
}
.masthead__right { display: flex; align-items: center; gap: 14px; text-align: right; }
.masthead__now { font-size: 10px; text-transform: uppercase; letter-spacing: 0.18em; color: #756a59; }
.text-link {
  padding: 9px 14px; border: 1px solid var(--navy); border-radius: 999px;
  text-decoration: none; font-size: 13px; font-weight: 700; color: var(--navy);
  transition: background .15s ease, color .15s ease;
}
.text-link:hover { background: var(--navy); color: var(--cream); }

/* ------------------------------------------------------------------ hero */
.hero {
  position: relative; overflow: hidden; color: var(--cream);
  background:
    radial-gradient(1100px 560px at 75% 10%, rgba(195, 154, 82, 0.18), transparent 62%),
    linear-gradient(135deg, #0c1a2e 0%, #10203a 58%, #142945 100%);
}
.hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .22;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}
.hero__rays {
  position: absolute; width: 900px; height: 900px; right: -260px; top: -390px;
  border-radius: 50%; opacity: .16;
  background: repeating-conic-gradient(from 0deg, rgba(251,244,229,.65) 0deg 3deg, transparent 3deg 12deg);
}
.hero__grid {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  gap: 54px; align-items: center; padding-top: 62px; padding-bottom: 68px;
}
.hero__copy { min-width: 0; }
.kicker {
  margin: 0 0 18px; max-width: 430px; color: var(--gold);
  font-size: 10.5px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
}
.hero h1 {
  margin: 0; font-family: var(--display); font-weight: 700;
  font-size: clamp(64px, 8.5vw, 112px); line-height: .82; letter-spacing: -0.045em;
  text-transform: uppercase;
}
.hero h1 span { display: block; }
.hero h1 span:last-child { color: var(--gold); font-style: italic; font-weight: 400; }

.launch { display: flex; align-items: center; gap: 14px; margin: 26px 0 20px; }
.launch__number {
  width: 58px; height: 58px; flex: none; display: grid; place-items: center;
  border: 1px solid rgba(251,244,229,.35); border-radius: 50%;
  font-family: var(--display); font-size: 38px; line-height: 1; color: var(--cream);
}
.launch__label {
  margin: 0 0 3px; font-size: 10px; text-transform: uppercase; letter-spacing: .17em;
  color: rgba(251,244,229,.6);
}
.launch__date { margin: 0; font-family: var(--display); font-size: 24px; line-height: 1.1; }
.launch__date strong { color: var(--gold); font-weight: 700; }
.hero__lead { max-width: 430px; margin: 0 0 26px; color: rgba(251,244,229,.76); font-size: 15.5px; }
.hero__action { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.button {
  display: inline-flex; align-items: center; gap: 14px;
  min-height: 48px; padding: 0 22px; border-radius: 999px;
  background: var(--red); color: #fff; text-decoration: none;
  font-size: 14px; font-weight: 700; letter-spacing: .01em;
  box-shadow: 0 18px 32px -18px rgba(181,41,47,.9);
  transition: background .15s ease, transform .15s ease;
}
.button:hover { background: var(--red-dark); transform: translateY(-1px); }
.button span { font-size: 17px; }
.hero__url { margin: 0; font-size: 11.5px; color: rgba(251,244,229,.55); }
.hero__url a { color: var(--cream); text-underline-offset: 3px; }

/* ---------------------------------------------------------------- poster */
.poster { position: relative; margin: 0; min-width: 0; }
.poster__frame {
  position: relative; padding: 9px; background: var(--cream);
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 36px 60px -34px rgba(0,0,0,.85);
  transform: rotate(1.2deg);
}
.poster__frame::before {
  content: ""; position: absolute; inset: -13px; border: 1px solid rgba(195,154,82,.45);
  pointer-events: none;
}
.poster__frame picture { display: block; overflow: hidden; background: #0b1626; }
.poster__frame img { display: block; width: 100%; height: auto; }
.poster__caption {
  display: block; padding: 10px 4px 2px; color: #5e5548; font-size: 9.5px;
  letter-spacing: .14em; text-transform: uppercase; text-align: right;
}
.poster__stamp {
  position: absolute; left: -24px; bottom: -26px; width: 94px; height: 94px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: var(--red); color: #fff; border-radius: 50%;
  font-family: var(--display); font-size: 46px; line-height: .8;
  box-shadow: 0 14px 26px -14px rgba(0,0,0,.75); transform: rotate(-8deg);
}
.poster__stamp small {
  margin-top: 6px; font-family: var(--sans); font-size: 8px; letter-spacing: .18em;
  text-transform: uppercase;
}

/* ------------------------------------------------------------- statement */
.statement { background: var(--paper); }
.statement__inner { display: flex; align-items: center; gap: 26px; padding: 38px 0; }
.statement__rule { flex: 1; height: 1px; background: var(--line); }
.statement__big {
  margin: 0; flex: none; font-family: var(--display); font-size: 27px; font-weight: 700;
  color: var(--navy);
}
.statement__small { margin: 0; flex: none; color: #6f6453; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

/* ------------------------------------------------------------------ next */
.next { background: var(--paper-deep); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.next__grid { display: grid; grid-template-columns: 1fr 300px; gap: 40px; align-items: center; padding: 46px 0; }
.next__label { margin: 0 0 8px; color: var(--red); font-size: 10px; text-transform: uppercase; letter-spacing: .18em; font-weight: 700; }
.next h2 { margin: 0 0 10px; font-family: var(--display); font-size: 32px; font-weight: 700; color: var(--navy); }
.next__copy p:not(.next__label) { max-width: 560px; margin: 0 0 18px; color: #615747; font-size: 14.5px; }
.next__link {
  display: inline-flex; align-items: center; gap: 10px; color: var(--navy);
  font-weight: 700; font-size: 15px; text-decoration: none; border-bottom: 1px solid var(--navy);
  padding-bottom: 2px;
}
.next__ticket {
  justify-self: end; width: 260px; padding: 18px 20px; background: var(--red);
  color: #fff; transform: rotate(-2.5deg); box-shadow: 0 20px 34px -24px rgba(0,0,0,.55);
  display: flex; flex-direction: column; gap: 8px;
}
.next__ticket-top { font-size: 9px; letter-spacing: .22em; opacity: .8; }
.next__ticket-plane { font-size: 48px; line-height: 1; text-align: right; }
.next__ticket-bottom { font-family: var(--display); font-size: 25px; letter-spacing: .04em; text-align: right; }
.next__ticket-bottom em { font-style: normal; opacity: .55; }

/* ---------------------------------------------------------------- footer */
.footer { background: var(--navy); color: var(--cream); }
.footer__inner {
  min-height: 94px; display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap; padding-top: 18px; padding-bottom: 18px;
}
.footer__brand { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 18px; }
.footer__brand img { width: 34px; height: 34px; object-fit: contain; filter: brightness(0) invert(1); opacity: .9; }
.footer p { margin: 0; font-size: 11px; color: rgba(251,244,229,.58); }
.footer__note a { color: var(--cream); }

@media (max-width: 900px) {
  .hero__grid { grid-template-columns: 1fr; gap: 42px; padding-top: 42px; padding-bottom: 52px; }
  .hero h1 { font-size: clamp(64px, 16vw, 100px); }
  .poster { max-width: 680px; margin: 0 auto; width: 100%; }
  .next__grid { grid-template-columns: 1fr; gap: 24px; }
  .next__ticket { justify-self: start; }
}
@media (max-width: 560px) {
  .wrap { width: min(100% - 32px, 1180px); }
  .masthead__inner { min-height: 78px; gap: 10px; }
  .brand__mark { width: 46px; height: 46px; }
  .brand__mark img { width: 39px; height: 39px; }
  .brand__text strong { font-size: 22px; }
  .masthead__now { display: none; }
  .text-link { font-size: 11.5px; padding: 7px 10px; }
  .kicker { font-size: 9px; letter-spacing: .14em; }
  .launch { margin-top: 20px; }
  .launch__number { width: 48px; height: 48px; font-size: 32px; }
  .launch__date { font-size: 21px; }
  .hero__lead { font-size: 14px; }
  .poster__stamp { left: -10px; bottom: -18px; width: 76px; height: 76px; font-size: 38px; }
  .statement__inner { flex-wrap: wrap; gap: 10px; padding: 26px 0; }
  .statement__rule { display: none; }
  .statement__big { font-size: 23px; }
  .statement__small { font-size: 10px; }
  .next h2 { font-size: 27px; }
  .next__ticket { width: 100%; max-width: 320px; }
  .footer__inner { align-items: flex-start; flex-direction: column; gap: 8px; }
}

/* Inline line-art icons replace emoji glyphs. */
.icon-arrow {
  width: 14px; height: 14px; flex: none; display: inline-block;
  vertical-align: -0.12em; overflow: visible;
}
.text-link .icon-arrow { margin-left: 3px; }
.button .icon-arrow { width: 16px; height: 16px; margin-left: 2px; }
.next__link .icon-arrow { margin-left: 2px; }
.next__ticket-plane {
  width: 100%; height: 64px; margin: 2px 0 4px;
  color: rgba(255, 255, 255, .92);
}
