:root {
  --xn-dark: #080b18;
  --xn-black: #03050a;
  --xn-off: #f2f2ef;
  --xn-white: #ffffff;
  --xn-blue: #2f49e8;
  --xn-sky: #74c6f4;
  --xn-mint: #c7e1e3;
  --xn-line-light: rgba(4, 8, 18, 0.12);
  --xn-line-dark: rgba(255, 255, 255, 0.12);
}

html { scroll-behavior: smooth; }

body:has(.xn-page) {
  margin: 0;
  background: var(--xn-dark);
  color: var(--xn-white);
  font-family: Arial, Helvetica, sans-serif;
}

.xn-page,
.xn-page * { box-sizing: border-box; }

.xn-page {
  position: relative;
  overflow: hidden;
  background: var(--xn-off);
}

.xn-page a { text-decoration: none; }

.xn-header {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  padding: 0 3vw;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--xn-line-dark);
  color: white;
}

.xn-logo {
  color: white;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.xn-logo span,
.xn-footer-logo span { color: var(--xn-sky); }

.xn-nav {
  margin-left: auto;
  display: flex;
  gap: 30px;
}

.xn-nav a {
  color: white;
  font: 700 10px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.xn-menu {
  display: none;
  margin-left: auto;
  padding: 9px 13px;
  border: 1px solid rgba(255,255,255,.55);
  background: transparent;
  color: white;
  font: 700 10px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.xn-menu span { margin-right: 6px; }

.xn-sticky-book {
  position: fixed;
  z-index: 40;
  left: 22px;
  bottom: 20px;
  padding: 14px 18px;
  background: var(--xn-blue);
  color: white;
  font: 700 11px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: 0 10px 35px rgba(0,0,0,.22);
}

.xn-sticky-book span { margin-right: 8px; color: var(--xn-sky); }

.xn-grid-lines {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), var(--xn-line-dark) calc(25% - 1px), var(--xn-line-dark) 25%);
}

.xn-hero {
  position: relative;
  height: 100svh;
  min-height: 760px;
  overflow: hidden;
  background: var(--xn-black);
}

.xn-hero-slideshow {
  position: absolute;
  inset: 0;
}

.xn-hero-slideshow img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
  filter: saturate(.7) contrast(1.08);
  opacity: 0;
  transition: opacity 1.2s ease;
}

.xn-hero-slideshow img.is-active {
  opacity: 1;
}

.xn-hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.34), rgba(0,0,0,.1) 38%, rgba(0,0,0,.82) 100%), linear-gradient(90deg, rgba(0,0,0,.38), transparent 55%);
}

.xn-hero-note {
  position: absolute;
  z-index: 2;
  top: 105px;
  right: 3vw;
  width: 25%;
  margin: 0;
  color: rgba(255,255,255,.75);
  font: 500 10px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.xn-hero-title {
  position: absolute;
  z-index: 2;
  right: 3vw;
  bottom: 64px;
  left: 3vw;
  display: grid;
  grid-template-columns: 1fr;
  align-items: end;
  color: white;
  font-size: clamp(62px, 10.7vw, 170px);
  font-weight: 300;
  letter-spacing: -.075em;
  line-height: .75;
}

.xn-hero-actions {
  position: absolute;
  z-index: 3;
  left: 3vw;
  bottom: 22px;
  display: flex;
  gap: 8px;
}

.xn-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid currentColor;
  color: white;
  font: 700 10px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
  transition: background .2s, color .2s;
}

.xn-button-blue { border-color: var(--xn-blue); background: var(--xn-blue); }
.xn-button-ghost { background: transparent; }
.xn-button:hover { background: white; border-color: white; color: var(--xn-dark); }

.xn-light-section,
.xn-dark-section,
.xn-terms-section {
  position: relative;
  padding: 120px 3vw;
}

.xn-light-section {
  background: var(--xn-off);
  color: var(--xn-dark);
}

.xn-eyebrow {
  margin: 0 0 35px;
  color: var(--xn-blue);
  font: 600 10px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.xn-light-section > h1,
.xn-terms-section > h2,
.xn-section-intro h2,
.xn-manifesto h2,
.xn-combo h2,
.xn-booking h2 {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(45px, 6.2vw, 96px);
  font-weight: 400;
  letter-spacing: -.065em;
  line-height: .92;
}

.xn-offer-intro {
  max-width: 720px;
  margin: 20px 0 42px;
  color: #4e5159;
  font-size: clamp(16px, 1.35vw, 21px);
  line-height: 1.55;
}

.xn-offer-intro + .xn-package-grid,
.xn-offer-divider + .xn-package-grid {
  margin-top: 0;
}

.xn-offer-divider {
  margin: 104px 0 42px;
  padding-top: 54px;
  border-top: 1px solid var(--xn-line-light);
}

.xn-offer-divider h2 {
  max-width: 940px;
  margin: 14px 0 18px;
  font-size: clamp(58px, 9vw, 142px);
  font-weight: 400;
  line-height: .82;
  letter-spacing: -.07em;
  text-transform: uppercase;
}

.xn-offer-divider > p:last-child {
  max-width: 700px;
  margin: 0;
  color: #4e5159;
  font-size: clamp(16px, 1.35vw, 21px);
  line-height: 1.55;
}

.xn-package-grid {
  margin-top: 68px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--xn-line-light);
  border-left: 1px solid var(--xn-line-light);
}

.xn-package {
  min-width: 0;
  background: var(--xn-off);
  border-right: 1px solid var(--xn-line-light);
  border-bottom: 1px solid var(--xn-line-light);
}

.xn-package.is-blue { background: #dce7ff; }

.xn-package-copy { min-height: 360px; padding: 24px; display: flex; flex-direction: column; }

.xn-card-meta {
  display: flex;
  justify-content: space-between;
  color: #59606c;
  font: 600 9px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.xn-package h2 {
  margin: 40px 0 12px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(28px, 3vw, 45px);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .95;
}

.xn-package-copy > p {
  margin: 0;
  color: #575d68;
  font: 500 12px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-price-row {
  margin-top: auto;
  padding: 28px 0 20px;
  display: flex;
  align-items: flex-end;
  gap: 13px;
}

.xn-price-row strong {
  font-size: clamp(44px, 4.4vw, 68px);
  font-weight: 400;
  letter-spacing: -.075em;
  line-height: .78;
}

.xn-price-row span {
  color: #626a76;
  font: 500 9px/1.35 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-transform: uppercase;
}

.xn-package-copy > a,
.xn-text-link {
  width: max-content;
  padding-bottom: 5px;
  border-bottom: 1px solid currentColor;
  color: var(--xn-dark);
  font: 700 11px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-dropin {
  min-height: 245px;
  display: grid;
  grid-template-columns: 1.45fr .55fr;
  border-right: 1px solid var(--xn-line-light);
  border-bottom: 1px solid var(--xn-line-light);
  border-left: 1px solid var(--xn-line-light);
  background: var(--xn-dark);
  color: white;
}

.xn-dropin-copy {
  padding: 28px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: end;
  border-right: 1px solid var(--xn-line-dark);
}

.xn-dropin .xn-card-meta { grid-column: 1 / 3; color: #979ca8; }

.xn-dropin h2 {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(30px, 4.2vw, 62px);
  font-weight: 400;
  letter-spacing: -.06em;
  line-height: .92;
}

.xn-dropin p {
  max-width: 390px;
  margin: 0;
  color: #a8acb7;
  font: 500 11px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-dropin a {
  grid-column: 2;
  width: max-content;
  color: var(--xn-sky);
  font: 700 11px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  border-bottom: 1px solid currentColor;
  padding-bottom: 5px;
}

.xn-dropin-price {
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: var(--xn-blue);
}

.xn-dropin-price strong {
  font-size: clamp(54px, 7vw, 104px);
  font-weight: 300;
  letter-spacing: -.085em;
  line-height: .78;
}

.xn-dropin-price span {
  margin-top: 15px;
  font: 600 9px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-transform: uppercase;
}

.xn-price-note {
  margin: 18px 0 0;
  color: #747b85;
  font: 500 9px/1.45 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .025em;
  text-align: right;
  text-transform: uppercase;
}

.xn-dark-section {
  background: var(--xn-dark);
  color: white;
}

.xn-dark-section > *:not(.xn-grid-lines) { position: relative; z-index: 2; }

.xn-section-intro {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 8vw;
  align-items: end;
}

.xn-section-intro p {
  max-width: 560px;
  margin: 0;
  color: #a8acb7;
  font: 500 13px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-training-video {
  margin-top: 80px;
  display: grid;
  grid-template-columns: minmax(300px, 430px) 1fr;
  overflow: hidden;
  background: #08090c;
  border: 1px solid var(--xn-line-dark);
}

.xn-training-video video {
  width: 100%;
  height: 680px;
  display: block;
  object-fit: cover;
  object-position: center;
  background: #000;
}

.xn-training-video-copy {
  padding: clamp(40px, 7vw, 110px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-left: 1px solid var(--xn-line-dark);
}

.xn-training-video-copy > span {
  color: var(--xn-sky);
  font: 600 9px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.xn-training-video-copy h3 {
  margin: 24px 0;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(42px, 6vw, 92px);
  font-weight: 400;
  letter-spacing: -.06em;
  line-height: .86;
}

.xn-training-video-copy p {
  max-width: 540px;
  margin: 0;
  color: #a8acb7;
  font: 500 12px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-feature-grid {
  margin-top: 80px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--xn-line-dark);
  border-left: 1px solid var(--xn-line-dark);
}

.xn-feature-grid article {
  min-width: 0;
  min-height: 270px;
  padding: clamp(28px, 4vw, 58px);
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--xn-line-dark);
  border-bottom: 1px solid var(--xn-line-dark);
}

.xn-feature-grid article > span {
  color: var(--xn-sky);
  font: 600 9px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-transform: uppercase;
}

.xn-feature-grid h3 {
  margin: 14px 0;
  font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(27px, 3vw, 46px);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .95;
}

.xn-feature-grid p {
  max-width: 520px;
  margin: auto 0 0;
  color: #a8acb7;
  font: 500 12px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-terms-section {
  padding: 80px 3vw;
  background: var(--xn-off);
  color: var(--xn-dark);
}

.xn-terms-section > h2 { font-size: clamp(42px, 5vw, 76px); }

.xn-terms-grid {
  margin-top: 38px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--xn-line-light);
  border-left: 1px solid var(--xn-line-light);
}

.xn-terms-grid article {
  min-height: 270px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid var(--xn-line-light);
  border-bottom: 1px solid var(--xn-line-light);
}

.xn-terms-grid article:last-child { background: var(--xn-mint); }

.xn-terms-grid > article > strong {
  color: var(--xn-blue);
  font-size: clamp(58px, 6vw, 88px);
  font-weight: 300;
  letter-spacing: -.08em;
  line-height: .8;
}

.xn-terms-grid h3 {
  margin: 0 0 10px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: -.045em;
}

.xn-terms-grid p {
  max-width: 610px;
  margin: 0;
  color: #555d68;
  font: 500 12px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-terms-grid b { color: var(--xn-dark); }

.xn-terms-note {
  margin: 18px 0 0;
  color: #747b85;
  font: 500 9px/1.45 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-align: right;
  text-transform: uppercase;
}

.xn-manifesto {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 760px;
  background: var(--xn-mint);
  color: var(--xn-dark);
}

.xn-manifesto figure { min-height: 650px; margin: 0; overflow: hidden; }

.xn-manifesto figure img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 60% center;
}

.xn-manifesto > div,
.xn-combo-copy,
.xn-booking-copy {
  padding: 90px 5vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.xn-manifesto h2 { margin-bottom: 38px; }

.xn-manifesto > div > p:not(.xn-eyebrow),
.xn-combo-copy > p:not(.xn-eyebrow),
.xn-booking-copy > p:not(.xn-eyebrow) {
  max-width: 620px;
  margin: 0;
  color: #4f5e67;
  font: 500 13px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-manifesto .xn-text-link { margin-top: 32px; }

.xn-combo {
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  min-height: 620px;
  background: var(--xn-blue);
  color: white;
}

.xn-combo-brand {
  padding: 55px;
  display: grid;
  place-items: center;
  border-right: 1px solid rgba(255,255,255,.2);
}

.xn-combo-brand img {
  width: min(350px, 90%);
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
}

.xn-combo .xn-eyebrow { color: var(--xn-sky); }
.xn-combo h2 { margin-bottom: 36px; }
.xn-combo-copy > p:not(.xn-eyebrow) { color: rgba(255,255,255,.72); }
.xn-combo-copy .xn-button { width: max-content; margin-top: 34px; }

.xn-booking {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  background: var(--xn-off);
  color: var(--xn-dark);
}

.xn-booking-copy { background: var(--xn-dark); color: white; }
.xn-booking-copy .xn-eyebrow { color: var(--xn-sky); }
.xn-booking-copy h2 { margin-bottom: 35px; font-size: clamp(65px, 8vw, 126px); }
.xn-booking-copy > p:not(.xn-eyebrow) { color: #a8acb7; }

.xn-slot-pricing {
  width: min(100%, 560px);
  margin-top: 46px;
  display: grid;
  border-top: 1px solid rgba(255,255,255,.18);
}

.xn-slot-pricing article {
  padding: 24px 0;
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.xn-slot-pricing article > span,
.xn-weekend-note > span {
  color: var(--xn-sky);
  font: 600 9px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.xn-slot-pricing h3 {
  margin: 9px 0 18px;
  color: white;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 400;
  letter-spacing: -.04em;
}

.xn-slot-pricing dl { margin: 0; }

.xn-slot-pricing dl > div {
  padding: 7px 0;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgba(255,255,255,.08);
  color: #a8acb7;
  font: 500 10px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-transform: uppercase;
}

.xn-slot-pricing dt,
.xn-slot-pricing dd { margin: 0; }
.xn-slot-pricing dd { color: white; }

.xn-weekend-note {
  width: min(100%, 560px);
  margin-top: 24px;
  padding: 22px;
  border: 1px solid rgba(116,198,244,.5);
  background: rgba(116,198,244,.08);
}

.xn-weekend-note strong {
  display: block;
  margin-top: 9px;
  color: white;
  font-size: clamp(24px, 2.4vw, 38px);
  font-weight: 400;
  letter-spacing: -.04em;
}

.xn-weekend-note p {
  margin: 10px 0 0;
  color: #a8acb7;
  font: 500 10px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-booking-mail {
  margin-top: 40px;
  color: var(--xn-sky);
  font: 600 11px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-training-location {
  width: min(100%, 430px);
  margin-top: 46px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.18);
}

.xn-training-location > span {
  display: block;
  margin-bottom: 14px;
  color: var(--xn-sky);
  font: 600 9px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.xn-training-location address {
  color: white;
  font: normal 400 clamp(20px, 2vw, 28px)/1.25 Arial, Helvetica, sans-serif;
  letter-spacing: -.035em;
}

.xn-training-location p {
  margin: 13px 0 0;
  color: #a8acb7;
  font: 500 10px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-transform: uppercase;
}

.xn-training-location a {
  display: inline-block;
  margin-top: 18px;
  color: white;
  border-bottom: 1px solid rgba(255,255,255,.45);
  font: 600 10px/1.8 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-transform: uppercase;
}

.xn-training-location a:hover { color: var(--xn-sky); border-color: var(--xn-sky); }

.xn-form {
  margin: 0;
  padding: 90px 5vw;
  background: var(--xn-off);
  color: var(--xn-dark);
}

.xn-form-heading {
  margin-bottom: 34px;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 18px;
  align-items: start;
}

.xn-form-heading > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--xn-blue);
  color: white;
  font: 700 10px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-form-heading h3 {
  margin: 0 0 7px;
  font-size: clamp(23px, 2.3vw, 34px);
  font-weight: 400;
  letter-spacing: -.045em;
}

.xn-form-heading p,
.xn-mode-note {
  margin: 0;
  color: #68717d;
  font: 500 10px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-form-heading-contact {
  margin-top: 58px;
  padding-top: 42px;
  border-top: 1px solid var(--xn-line-light);
}

.xn-booking-mode[hidden] { display: none !important; }
.xn-mode-note { margin: -10px 0 28px; }

.xn-booking-price {
  margin: 8px 0 0;
  padding: 24px;
  display: flex;
  flex-direction: column;
  background: var(--xn-blue);
  color: white;
}

.xn-booking-price > span {
  font: 600 9px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .72;
}

.xn-booking-price > strong {
  margin-top: 10px;
  font-size: clamp(24px, 2.7vw, 42px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.05;
}

.xn-booking-price > small {
  margin-top: 12px;
  font: 500 9px/1.45 ui-monospace, SFMono-Regular, Consolas, monospace;
  opacity: .7;
}

.xn-form label {
  display: block;
  color: #343b45;
  font: 700 9px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.xn-form input,
.xn-form select,
.xn-form textarea {
  width: 100%;
  margin: 7px 0 26px;
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid #aab0b8;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--xn-dark);
  font: 500 15px/1.4 Arial, Helvetica, sans-serif;
}

.xn-form input:focus,
.xn-form select:focus,
.xn-form textarea:focus { border-color: var(--xn-blue); }

.xn-form textarea { resize: vertical; }

.xn-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }

.xn-consent {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
}

.xn-consent input { width: 16px; min-width: 16px; height: 16px; margin: 0; }
.xn-honey { position: absolute; left: -9999px; }

.xn-form button {
  width: 100%;
  margin-top: 28px;
  padding: 18px 20px;
  display: flex;
  justify-content: space-between;
  border: 1px solid var(--xn-dark);
  background: var(--xn-dark);
  color: white;
  cursor: pointer;
  font: 700 11px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-transform: uppercase;
}

.xn-form button:hover { background: var(--xn-blue); border-color: var(--xn-blue); }
.xn-form button:disabled { opacity: .55; cursor: wait; }

.xn-form-status {
  min-height: 18px;
  margin: 14px 0 0;
  color: #59616b;
  font: 600 10px/1.45 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.xn-ready-strip {
  padding: 42px 0;
  overflow: hidden;
  background: var(--xn-blue);
  color: white;
  white-space: nowrap;
}

.xn-ready-strip div {
  width: max-content;
  font-size: clamp(48px, 8vw, 120px);
  font-weight: 300;
  letter-spacing: -.06em;
  animation: xn-marquee 18s linear infinite;
}

@keyframes xn-marquee { to { transform: translateX(-50%); } }

.xn-footer {
  position: static;
  padding: 90px 3vw 42px;
  display: grid;
  grid-template-columns: 1.5fr .9fr .6fr .8fr;
  gap: 50px;
  background: var(--xn-black);
  color: white;
  border-radius: 0;
}

.xn-footer-logo {
  font-size: clamp(35px, 4vw, 65px);
  font-weight: 800;
  letter-spacing: .06em;
}

.xn-footer p,
.xn-footer a {
  display: block;
  margin: 0 0 10px;
  color: #9297a2;
  font: 500 10px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
}

@media (max-width: 980px) {
  .xn-nav { display: none; }
  .xn-header.is-open .xn-nav {
    position: absolute;
    top: 80px;
    left: 0;
    width: 100%;
    padding: 28px 3vw;
    display: flex;
    flex-direction: column;
    gap: 22px;
    background: var(--xn-dark);
    border-top: 1px solid var(--xn-line-dark);
  }
  .xn-menu { display: block; }
  .xn-package-grid { grid-template-columns: 1fr 1fr; }
  .xn-package:last-child { grid-column: 1 / 3; }
  .xn-section-intro { grid-template-columns: 1fr; gap: 35px; }
  .xn-training-video { grid-template-columns: 360px 1fr; }
  .xn-manifesto { grid-template-columns: .9fr 1.1fr; }
  .xn-booking { grid-template-columns: 1fr; }
  .xn-footer { grid-template-columns: 1.4fr 1fr 1fr; }
  .xn-footer > div:last-child { grid-column: 2; }
}

@media (max-width: 680px) {
  .xn-header { height: 66px; padding: 0 16px; }
  .xn-header.is-open .xn-nav { top: 66px; padding: 26px 16px; }
  .xn-logo { font-size: 12px; }
  .xn-sticky-book { right: 12px; bottom: 12px; left: auto; }
  .xn-grid-lines { background: repeating-linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), var(--xn-line-dark) calc(50% - 1px), var(--xn-line-dark) 50%); }
  .xn-hero { min-height: 700px; }
  .xn-hero-slideshow img { object-position: 46% center; }
  .xn-hero-note { top: 92px; right: 16px; width: 46%; font-size: 8px; }
  .xn-hero-title {
    right: 16px;
    bottom: 104px;
    left: 16px;
    grid-template-columns: 1fr;
    gap: 18px;
    font-size: 17vw;
    line-height: .8;
  }
  .xn-hero-actions { left: 16px; bottom: 28px; }
  .xn-light-section,
  .xn-dark-section,
  .xn-terms-section { padding: 85px 16px; }
  .xn-light-section > h1,
  .xn-terms-section > h2,
  .xn-section-intro h2,
  .xn-manifesto h2,
  .xn-combo h2,
  .xn-booking h2 { font-size: 13vw; }
  .xn-package-grid,
  .xn-feature-grid,
  .xn-terms-grid,
  .xn-manifesto,
  .xn-combo,
  .xn-footer { grid-template-columns: 1fr; }
  .xn-package:last-child { grid-column: auto; }
  .xn-dropin { grid-template-columns: 1fr; }
  .xn-dropin-copy { grid-template-columns: 1fr; border-right: 0; border-bottom: 1px solid var(--xn-line-dark); }
  .xn-dropin .xn-card-meta,
  .xn-dropin a { grid-column: auto; }
  .xn-dropin-price { min-height: 190px; }
  .xn-price-note { text-align: left; }
  .xn-package-copy { min-height: 330px; }
  .xn-offer-intro { margin-bottom: 34px; }
  .xn-offer-divider { margin-top: 74px; padding-top: 40px; }
  .xn-offer-divider h2 { font-size: 15vw; }
  .xn-training-video { grid-template-columns: 1fr; margin-top: 55px; }
  .xn-training-video video { height: min(145vw, 650px); }
  .xn-training-video-copy { padding: 48px 20px; border-top: 1px solid var(--xn-line-dark); border-left: 0; }
  .xn-training-video-copy h3 { font-size: 13vw; }
  .xn-feature-grid article { padding: 18px; }
  .xn-terms-section { padding: 60px 16px; }
  .xn-terms-section > h2 { font-size: clamp(38px, 11vw, 56px); }
  .xn-terms-grid { margin-top: 30px; }
  .xn-terms-grid article { min-height: 240px; padding: 20px; }
  .xn-terms-note { text-align: left; }
  .xn-manifesto figure { min-height: 590px; }
  .xn-manifesto > div,
  .xn-combo-copy,
  .xn-booking-copy,
  .xn-form { padding: 80px 20px; }
  .xn-combo-brand { min-height: 420px; padding: 45px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
  .xn-booking-copy h2 { font-size: 18vw; }
  .xn-form-row { grid-template-columns: 1fr; gap: 0; }
  .xn-form-heading { grid-template-columns: 36px 1fr; gap: 14px; }
  .xn-form-heading > span { width: 36px; height: 36px; }
  .xn-booking-price { padding: 20px; }
  .xn-ready-strip { padding: 28px 0; }
  .xn-footer { padding: 70px 20px 40px; gap: 30px; }
  .xn-footer > div:last-child { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .xn-ready-strip div { animation: none; }
}
