/* 1960s Le Mans vintage poster aesthetic — cream paper, ink, French racing blue */

:root {
  --lm-cream:   #efe7d2;
  --lm-paper:   #f6eed8;
  --lm-ink:     #1a1410;
  --lm-brown:   #3b2a1e;
  --lm-blue:    #1c3f84;
  --lm-red:     #b22233;
  --lm-gold:    #b58a3e;
  --lm-faded:   #8b7d5f;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

.lm-body {
  background: var(--lm-cream);
  color: var(--lm-ink);
  font-family: "Oswald", "Arial Narrow", sans-serif;
  font-weight: 400;
  min-height: 100dvh;
  /* aged paper texture */
  background-image:
    radial-gradient(ellipse at 20% 10%, rgba(255,240,200,0.5), transparent 60%),
    radial-gradient(ellipse at 80% 90%, rgba(120,80,40,0.12), transparent 60%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .3 0 0 0 0 .22 0 0 0 0 .1 0 0 0 .13 0'/></filter><rect width='100%' height='100%' filter='url(%23p)'/></svg>");
  background-size: auto, auto, 200px 200px;
}

.lm-body::before {
  content: "";
  position: fixed; inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at center, transparent 60%, rgba(60,40,20,0.25) 100%);
  z-index: 1;
}

/* ---- HEADER ---- */
.lm-header {
  padding: 28px clamp(20px, 5vw, 72px) 0;
  position: relative;
  z-index: 2;
}
.lm-header__row {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: "Playfair Display", serif;
}
.lm-header__brand {
  display: flex; align-items: baseline; gap: 12px;
  font-size: 22px; font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.lm-header__crest { color: var(--lm-red); font-size: 26px; }
.lm-header__org { color: var(--lm-ink); }
.lm-header__meta {
  display: flex; gap: 28px;
  font-family: "Special Elite", serif;
  font-size: 13px; letter-spacing: 0.2em;
  color: var(--lm-faded);
  text-transform: uppercase;
}
.lm-header__rule {
  margin-top: 16px;
  height: 6px;
  background:
    linear-gradient(to bottom,
      var(--lm-ink) 0 2px,
      transparent 2px 3px,
      var(--lm-ink) 3px 4px,
      transparent 4px 6px);
}

/* ---- POSTER HERO ---- */
.lm-poster {
  position: relative;
  margin: 32px clamp(20px, 5vw, 72px) 60px;
  padding: clamp(48px, 7vw, 100px) clamp(32px, 6vw, 88px);
  background:
    linear-gradient(180deg, var(--lm-paper), var(--lm-cream));
  border: 2px solid var(--lm-ink);
  box-shadow:
    0 0 0 6px var(--lm-cream),
    0 0 0 8px var(--lm-ink),
    12px 14px 0 rgba(26,20,16,0.22);
  overflow: hidden;
  z-index: 2;
}
.lm-poster__stripes {
  position: absolute;
  top: -10%; right: -8%;
  width: 52%; height: 120%;
  background:
    repeating-linear-gradient(28deg,
      var(--lm-blue) 0 22px,
      var(--lm-cream) 22px 30px,
      var(--lm-red) 30px 52px,
      var(--lm-cream) 52px 60px);
  opacity: 0.14;
  transform: rotate(-6deg);
  pointer-events: none;
}
.lm-poster__inner { position: relative; max-width: 70%; }
.lm-poster__kicker {
  font-family: "Special Elite", serif;
  font-size: 14px; letter-spacing: 0.28em;
  color: var(--lm-red);
  text-transform: uppercase;
  margin-bottom: 14px;
}
.lm-poster__title {
  font-family: "Playfair Display", "Times New Roman", serif;
  font-weight: 900;
  font-style: italic;
  font-size: clamp(56px, 10vw, 156px);
  line-height: 0.88;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
  color: var(--lm-ink);
  text-shadow: 3px 3px 0 rgba(178, 34, 51, 0.18);
}
.lm-poster__title-a {
  display: block;
  color: var(--lm-blue);
}
.lm-poster__title-b {
  display: block;
  color: var(--lm-red);
  padding-left: 0.6em;
}
.lm-poster__date {
  font-family: "Oswald", sans-serif;
  font-weight: 600;
  font-size: clamp(18px, 2vw, 26px);
  letter-spacing: 0.14em;
  margin: 0 0 20px;
  color: var(--lm-brown);
}
.lm-poster__tagline {
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.5;
  max-width: 58ch;
  color: var(--lm-brown);
  margin: 0 0 28px;
}
.lm-poster__ribbon {
  display: inline-flex; align-items: center; gap: 16px;
  padding: 10px 22px;
  background: var(--lm-ink);
  color: var(--lm-cream);
  font-family: "Oswald", sans-serif;
  font-weight: 600;
  font-size: 14px; letter-spacing: 0.22em;
  text-transform: uppercase;
}
.lm-poster__ribbon span:nth-child(odd) { color: var(--lm-gold); }

.lm-poster__roundel {
  position: absolute;
  right: clamp(32px, 5vw, 72px);
  top: 50%;
  transform: translateY(-50%) rotate(-6deg);
  width: clamp(120px, 16vw, 200px);
  height: clamp(120px, 16vw, 200px);
  border-radius: 50%;
  background: var(--lm-red);
  color: var(--lm-cream);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  box-shadow:
    inset 0 0 0 6px var(--lm-cream),
    inset 0 0 0 8px var(--lm-red),
    6px 8px 0 rgba(26,20,16,0.25);
  font-family: "Playfair Display", serif;
}
.lm-poster__roundel-num {
  font-size: clamp(52px, 7vw, 92px);
  font-weight: 900;
  line-height: 1;
}
.lm-poster__roundel-sub {
  font-size: 12px;
  letter-spacing: 0.3em;
  margin-top: 6px;
  text-transform: uppercase;
  font-family: "Oswald", sans-serif;
}
@media (max-width: 760px) {
  .lm-poster__inner { max-width: 100%; }
  .lm-poster__roundel { position: relative; right: auto; top: auto; transform: rotate(-6deg); margin-top: 28px; }
}

/* ---- SPEC SHEET ---- */
.lm-specsheet {
  position: relative;
  margin: 60px clamp(20px, 5vw, 72px);
  padding: 44px clamp(24px, 4vw, 56px);
  background: var(--lm-paper);
  border: 1px solid var(--lm-ink);
  display: grid; grid-template-columns: 1fr; gap: 32px;
  z-index: 2;
}
@media (min-width: 900px) {
  .lm-specsheet { grid-template-columns: auto 1fr; align-items: start; }
}
.lm-specsheet__stamp {
  border: 3px double var(--lm-red);
  color: var(--lm-red);
  padding: 18px 26px;
  text-align: center;
  font-family: "Special Elite", serif;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 12px;
  transform: rotate(-4deg);
  align-self: start;
  justify-self: start;
}
.lm-specsheet__stamp-num {
  font-family: "Playfair Display", serif;
  font-size: 56px;
  font-weight: 900;
  line-height: 1;
  margin: 6px 0 6px;
  letter-spacing: 0;
}
.lm-specsheet__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px 40px;
  margin: 0;
}
.lm-specsheet__list > div {
  border-top: 1px solid var(--lm-ink);
  padding-top: 10px;
}
.lm-specsheet__list dt {
  font-family: "Special Elite", serif;
  font-size: 11px; letter-spacing: 0.28em;
  color: var(--lm-faded);
  text-transform: uppercase;
  margin-bottom: 4px;
}
.lm-specsheet__list dd {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--lm-ink);
}

/* ---- STAGES ---- */
.lm-stages {
  padding: clamp(40px, 6vw, 96px) clamp(20px, 5vw, 72px);
  position: relative;
  z-index: 2;
}
.lm-stages__title {
  font-family: "Playfair Display", serif;
  font-weight: 900;
  font-style: italic;
  font-size: clamp(36px, 5vw, 64px);
  margin: 0;
  color: var(--lm-blue);
  text-align: center;
}
.lm-stages__title::after {
  content: "· · ·";
  display: block;
  color: var(--lm-red);
  letter-spacing: 0.5em;
  font-size: 0.5em;
  margin-top: 8px;
}
.lm-stages__lede {
  text-align: center;
  max-width: 60ch;
  margin: 18px auto 48px;
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-size: 18px;
  color: var(--lm-brown);
}
.lm-stages__list {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 28px;
}
.lm-stage {
  background: var(--lm-paper);
  border: 1px solid var(--lm-ink);
  padding: 28px 26px;
  position: relative;
  box-shadow: 4px 4px 0 rgba(26,20,16,0.2);
}
.lm-stage__plate {
  display: inline-block;
  background: var(--lm-ink);
  color: var(--lm-cream);
  font-family: "Playfair Display", serif;
  font-size: 22px;
  font-weight: 900;
  font-style: italic;
  padding: 4px 16px;
  margin-bottom: 14px;
  letter-spacing: 0.08em;
}
.lm-stage__body h3 {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-size: 26px;
  margin: 0 0 8px;
  color: var(--lm-blue);
}
.lm-stage__meta {
  font-family: "Special Elite", serif;
  font-size: 12px; letter-spacing: 0.14em;
  color: var(--lm-red);
  text-transform: uppercase;
  margin-bottom: 10px;
  display: flex; gap: 8px; flex-wrap: wrap;
}
.lm-stage__body p {
  margin: 0; font-size: 15px; line-height: 1.55;
  color: var(--lm-brown);
  font-family: "Playfair Display", serif;
}

/* ---- SPONSORS ---- */
.lm-sponsors {
  margin: 0 clamp(20px, 5vw, 72px) 60px;
  padding: 40px 32px;
  border-top: 1px solid var(--lm-ink);
  border-bottom: 1px solid var(--lm-ink);
  text-align: center;
  position: relative;
  z-index: 2;
}
.lm-sponsors__title {
  font-family: "Special Elite", serif;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--lm-faded);
  font-size: 13px;
  margin-bottom: 20px;
}
.lm-sponsors__list {
  display: flex; flex-wrap: wrap; gap: 28px 48px;
  justify-content: center;
}
.lm-sponsors__item {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-style: italic;
  font-size: 22px;
  color: var(--lm-brown);
  letter-spacing: 0.04em;
}

/* ---- CTA ---- */
.lm-cta {
  margin: 60px clamp(20px, 5vw, 72px);
  padding: clamp(44px, 6vw, 88px) clamp(28px, 5vw, 72px);
  background: var(--lm-ink);
  color: var(--lm-cream);
  position: relative;
  overflow: hidden;
  z-index: 2;
}
.lm-cta::before {
  content: "";
  position: absolute;
  top: -30%; left: -10%;
  width: 50%; height: 160%;
  background:
    repeating-linear-gradient(20deg,
      var(--lm-red) 0 8px,
      transparent 8px 28px);
  opacity: 0.18;
  pointer-events: none;
}
.lm-cta__inner {
  position: relative;
  max-width: 60ch;
  margin-left: auto;
  text-align: right;
}
.lm-cta__eyebrow {
  font-family: "Special Elite", serif;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--lm-gold);
  margin-bottom: 12px;
}
.lm-cta h2 {
  font-family: "Playfair Display", serif;
  font-weight: 900;
  font-style: italic;
  font-size: clamp(40px, 6vw, 72px);
  margin: 0 0 18px;
  letter-spacing: -0.01em;
}
.lm-cta p {
  font-family: "Playfair Display", serif;
  font-size: 17px; line-height: 1.5;
  color: rgba(239, 231, 210, 0.8);
  margin: 0 0 28px;
}
.lm-cta__btn {
  display: inline-block;
  background: var(--lm-cream);
  color: var(--lm-ink);
  padding: 18px 32px;
  font-family: "Oswald", sans-serif;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid var(--lm-cream);
  box-shadow: 4px 4px 0 var(--lm-red);
  transition: transform .15s, box-shadow .15s;
}
.lm-cta__btn:hover {
  transform: translate(-2px, -2px);
  box-shadow: 6px 6px 0 var(--lm-red);
}

/* ---- FOOTER ---- */
.lm-foot {
  padding: 28px clamp(20px, 5vw, 72px) 72px;
  color: var(--lm-faded);
  font-family: "Special Elite", serif;
  font-size: 12px; letter-spacing: 0.16em;
  text-transform: uppercase;
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px;
  border-top: 1px dashed var(--lm-brown);
  position: relative; z-index: 2;
}
.lm-foot a { color: var(--lm-blue); text-decoration: none; }
.lm-foot a:hover { color: var(--lm-red); }


.lm-header__org-logo { height: 36px; width: auto; display: block; }
