/* Car Drive Hub — Kinetic Supercar Design System (Carbon Black & Racing Crimson) */
:root {
  --void: #0A0A0B;
  --carbon: #141416;
  --crimson: #E11D2E;
  --crimson-glow: #FF3B4A;
  --steel: #A8A8B0;
  --white: #F5F5F7;
  --font-display: "Bebas Neue", "Oswald", sans-serif;
  --font-body: "Noto Sans JP", sans-serif;
  --header-h: 72px;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --max: 1180px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
*::-webkit-scrollbar { display: none; width: 0; height: 0; }

body.ml-body {
  font-family: var(--font-body);
  font-weight: 400;
  color: var(--white);
  background: var(--void);
  line-height: 1.7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
body.ml-body::-webkit-scrollbar { display: none; }
body.ml-body.is-nav-open {
  overflow: hidden;
  touch-action: none;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button, input, textarea { font: inherit; color: inherit; }
address { font-style: normal; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.15;
}

.ml-container {
  width: min(100% - 2.5rem, var(--max));
  margin-inline: auto;
}

.ml-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--crimson);
  color: var(--white);
  padding: 0.75rem 1rem;
  z-index: 9999;
}
.ml-skip:focus { left: 1rem; top: 1rem; }

/* Scroll progress — crimson accent */
.ml-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 1100;
  background: transparent;
  pointer-events: none;
}
.ml-scroll-progress span {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--crimson), var(--crimson-glow));
  box-shadow: 0 0 12px rgba(225, 29, 46, 0.6);
}

/* Carbon texture helper */
.ml-footer__carbon,
.ml-hero__carbon,
.ml-owners__carbon {
  background-image:
    linear-gradient(135deg, rgba(255,255,255,0.03) 25%, transparent 25%),
    linear-gradient(225deg, rgba(255,255,255,0.03) 25%, transparent 25%),
    linear-gradient(45deg, rgba(255,255,255,0.03) 25%, transparent 25%),
    linear-gradient(315deg, rgba(255,255,255,0.03) 25%, transparent 25%);
  background-size: 8px 8px;
  background-position: 0 0, 4px 0, 4px -4px, 0 4px;
  opacity: 0.45;
  pointer-events: none;
}

/* —— Header —— */
.ml-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1000;
  transition: background 0.35s var(--ease-out), border-color 0.35s;
}
.ml-header.is-scrolled,
.ml-header.is-menu-open {
  background: rgba(10, 10, 11, 0.96);
  border-bottom: 1px solid rgba(225, 29, 46, 0.25);
}
.ml-header.is-menu-open {
  background: #080809;
  border-bottom-color: rgba(225, 29, 46, 0.35);
  z-index: 1060;
}
.ml-header__bar {
  position: relative;
  z-index: 1010;
  width: min(100% - 2rem, var(--max));
  margin-inline: auto;
  min-height: var(--header-h);
  height: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: env(safe-area-inset-top, 0px);
  box-sizing: content-box;
}

.ml-logo {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  z-index: 1010;
  min-width: 0;
  flex-shrink: 1;
}
.ml-logo__mark {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  background: var(--crimson);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 70% 100%, 0 100%);
  box-shadow: 0 0 18px rgba(225, 29, 46, 0.5);
}
.ml-logo__text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.ml-logo__en {
  font-family: var(--font-display);
  font-size: 1.35rem;
  letter-spacing: 0.12em;
  font-weight: 400;
  white-space: nowrap;
}
.ml-logo__jp { font-size: 0.7rem; color: var(--steel); font-weight: 400; white-space: nowrap; }

.ml-nav--desktop { display: none; align-items: center; gap: 1.75rem; }
.ml-nav__link {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--steel);
  position: relative;
  transition: color 0.25s;
}
.ml-nav__link::after {
  content: "";
  position: absolute;
  left: 0; bottom: -4px;
  width: 0; height: 2px;
  background: var(--crimson);
  transition: width 0.3s var(--ease-out);
}
.ml-nav__link:hover,
.ml-nav__link.is-active { color: var(--white); }
.ml-nav__link:hover::after,
.ml-nav__link.is-active::after { width: 100%; }

.ml-nav__cta,
.ml-mobile__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1.15rem;
  background: var(--crimson);
  color: var(--white);
  font-size: 0.85rem;
  font-weight: 500;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
  transition: background 0.25s, transform 0.25s;
}
.ml-nav__cta:hover,
.ml-mobile__cta:hover {
  background: var(--crimson-glow);
  transform: translateY(-1px);
}

.ml-burger {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  background: rgba(245, 245, 247, 0.06);
  border: 1px solid rgba(245, 245, 247, 0.28);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  z-index: 1010;
  clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
  -webkit-tap-highlight-color: transparent;
}
.ml-burger span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--white);
  transition: transform 0.35s var(--ease-out), opacity 0.25s;
}
.ml-burger.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.ml-burger.is-open span:nth-child(2) { opacity: 0; }
.ml-burger.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

.ml-mobile {
  position: fixed;
  inset: 0;
  background: #080809;
  z-index: 1050;
  display: flex;
  align-items: stretch;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.35s var(--ease-out), visibility 0.35s;
  padding:
    calc(var(--header-h) + env(safe-area-inset-top, 0px) + 1.5rem)
    1.5rem
    calc(2rem + env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  isolation: isolate;
}
.ml-mobile.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.ml-mobile[hidden] {
  display: none !important;
}
.ml-mobile__speed {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(160deg, rgba(225, 29, 46, 0.12) 0%, transparent 42%),
    repeating-linear-gradient(
      105deg,
      transparent,
      transparent 40px,
      rgba(225, 29, 46, 0.045) 40px,
      rgba(225, 29, 46, 0.045) 42px
    );
  animation: ml-speed-drift 8s linear infinite;
  pointer-events: none;
}
.ml-mobile__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 0.15rem;
  width: min(100%, 22rem);
  margin: auto;
  position: relative;
  z-index: 1;
}
.ml-mobile__label {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  color: var(--crimson);
  text-align: center;
  margin-bottom: 0.85rem;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
}
.ml-mobile.is-open .ml-mobile__label {
  opacity: 1;
  transform: translateY(0);
}
.ml-mobile__link {
  font-family: var(--font-body);
  font-size: clamp(1.35rem, 6.5vw, 1.85rem);
  letter-spacing: 0.06em;
  font-weight: 500;
  color: var(--steel);
  text-align: center;
  padding: 0.85rem 0.75rem;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid rgba(245, 245, 247, 0.06);
  transform: translateY(18px);
  opacity: 0;
  transition: color 0.25s, transform 0.45s var(--ease-out), opacity 0.45s;
  -webkit-tap-highlight-color: transparent;
}
.ml-mobile.is-open .ml-mobile__link {
  transform: translateY(0);
  opacity: 1;
}
.ml-mobile.is-open .ml-mobile__link:nth-of-type(1) { transition-delay: 0.06s; }
.ml-mobile.is-open .ml-mobile__link:nth-of-type(2) { transition-delay: 0.11s; }
.ml-mobile.is-open .ml-mobile__link:nth-of-type(3) { transition-delay: 0.16s; }
.ml-mobile.is-open .ml-mobile__link:nth-of-type(4) { transition-delay: 0.21s; }
.ml-mobile__link:hover,
.ml-mobile__link.is-active { color: var(--crimson-glow); }
.ml-mobile__cta {
  margin-top: 1.35rem;
  width: 100%;
  padding: 1rem 1.25rem;
  font-size: 1rem;
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: 0.04em;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.45s var(--ease-out) 0.28s, transform 0.45s var(--ease-out) 0.28s, background 0.25s;
}
.ml-mobile.is-open .ml-mobile__cta {
  opacity: 1;
  transform: translateY(0);
}

@keyframes ml-speed-drift {
  from { background-position: 0 0; }
  to { background-position: 200px 0; }
}
@keyframes ml-fade-up {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Buttons */
.ml-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.6rem;
  font-size: 0.9rem;
  font-weight: 500;
  border: none;
  cursor: pointer;
  transition: transform 0.25s, background 0.25s, color 0.25s, box-shadow 0.25s;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
}
.ml-btn--crimson {
  background: var(--crimson);
  color: var(--white);
  box-shadow: 0 0 24px rgba(225, 29, 46, 0.35);
}
.ml-btn--crimson:hover {
  background: var(--crimson-glow);
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 0 32px rgba(255, 59, 74, 0.45);
}
.ml-btn--ghost {
  background: transparent;
  color: var(--white);
  box-shadow: inset 0 0 0 1px rgba(245, 245, 247, 0.35);
}
.ml-btn--ghost:hover {
  box-shadow: inset 0 0 0 1px var(--crimson);
  color: var(--crimson-glow);
}
.ml-btn--lg { padding: 1.05rem 2rem; font-size: 1rem; }

.ml-link {
  font-weight: 500;
  color: var(--crimson-glow);
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s;
}
.ml-link:hover { border-color: var(--crimson-glow); }

.ml-eyebrow {
  font-family: var(--font-display);
  font-size: 0.95rem;
  letter-spacing: 0.2em;
  color: var(--crimson);
  font-weight: 400;
  margin-bottom: 0.75rem;
}
.ml-lead { color: var(--steel); max-width: 36rem; margin-top: 0.75rem; }

/* Reveals — aggressive slide + speed feel */
.ml-reveal-side {
  opacity: 0;
  transform: translateX(-72px) skewX(-2deg);
  transition: opacity 0.55s var(--ease-out), transform 0.55s var(--ease-out);
}
.ml-reveal-side.is-in {
  opacity: 1;
  transform: translateX(0) skewX(0);
}
[data-ml-stagger] > * {
  opacity: 0;
  transform: translateX(-56px);
  transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
}
[data-ml-stagger] > *.is-in {
  opacity: 1;
  transform: translateX(0);
}

/* —— Hero —— */
.ml-hero {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.ml-hero__stage { position: absolute; inset: 0; }
.ml-hero__img {
  position: absolute;
  inset: -8%;
  will-change: transform;
}
.ml-hero__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ml-hero__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(10,10,11,0.92) 0%, rgba(10,10,11,0.55) 45%, rgba(10,10,11,0.35) 100%),
    linear-gradient(to top, var(--void) 0%, transparent 45%);
}
.ml-hero__speed {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.ml-hero__speed span {
  position: absolute;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(225, 29, 46, 0.7), transparent);
  animation: ml-speed-line 2.8s linear infinite;
  opacity: 0;
}
.ml-hero__speed span:nth-child(1) { top: 22%; width: 40%; left: -20%; animation-delay: 0s; }
.ml-hero__speed span:nth-child(2) { top: 38%; width: 55%; left: -30%; animation-delay: 0.6s; }
.ml-hero__speed span:nth-child(3) { top: 55%; width: 35%; left: -15%; animation-delay: 1.1s; }
.ml-hero__speed span:nth-child(4) { top: 68%; width: 60%; left: -40%; animation-delay: 1.7s; }
.ml-hero__speed span:nth-child(5) { top: 82%; width: 45%; left: -25%; animation-delay: 2.2s; }

@keyframes ml-speed-line {
  0% { transform: translateX(0); opacity: 0; }
  15% { opacity: 1; }
  100% { transform: translateX(140vw); opacity: 0; }
}

.ml-hero__carbon {
  position: absolute;
  inset: auto 0 0 0;
  height: 30%;
  mask-image: linear-gradient(to top, black, transparent);
}

.ml-hero__copy {
  position: relative;
  z-index: 2;
  width: min(100% - 2.5rem, var(--max));
  margin: 0 auto;
  padding: 0 0 5.5rem;
}
.ml-hero__brand {
  font-family: var(--font-display);
  font-size: clamp(2.75rem, 10vw, 7.5rem);
  letter-spacing: 0.06em;
  line-height: 0.95;
  color: var(--white);
  text-shadow: 0 0 40px rgba(225, 29, 46, 0.25);
  word-break: normal;
  overflow-wrap: normal;
  white-space: nowrap;
}
.ml-hero__brand-jp {
  font-size: 1rem;
  font-weight: 500;
  color: var(--crimson-glow);
  letter-spacing: 0.35em;
  margin: 0.35rem 0 1.25rem;
}
.ml-hero__tag {
  font-family: var(--font-body);
  font-size: clamp(1.15rem, 2.5vw, 1.5rem);
  font-weight: 500;
  max-width: 18em;
  margin-bottom: 0.85rem;
  line-height: 1.45;
  word-break: normal;
  overflow-wrap: break-word;
}
.ml-hero__sub {
  color: var(--steel);
  max-width: 28rem;
  margin-bottom: 1.75rem;
  font-size: 0.95rem;
  line-height: 1.65;
}
.ml-hero__cta { display: flex; flex-wrap: wrap; gap: 0.85rem; }

.ml-hero__hint {
  position: absolute;
  right: 1.5rem;
  bottom: 2rem;
  z-index: 2;
  writing-mode: vertical-rl;
  font-family: var(--font-display);
  letter-spacing: 0.3em;
  font-size: 0.75rem;
  color: var(--steel);
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.ml-hero__hint span {
  width: 1px;
  height: 48px;
  background: var(--crimson);
  animation: ml-scroll-hint 1.6s ease-in-out infinite;
}
@keyframes ml-scroll-hint {
  0%, 100% { transform: scaleY(0.5); opacity: 0.4; }
  50% { transform: scaleY(1); opacity: 1; }
}

/* Pulse strip */
.ml-pulse {
  position: relative;
  background: var(--carbon);
  padding: 3.5rem 0;
  overflow: hidden;
}
.ml-pulse__diag {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(225, 29, 46, 0.08) 40%, rgba(225, 29, 46, 0.08) 42%, transparent 42%);
}
.ml-pulse__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem 2rem;
}
.ml-meter {
  border-left: 3px solid var(--crimson);
  padding-left: 1rem;
}
.ml-meter__label {
  display: block;
  font-size: 0.75rem;
  color: var(--steel);
  font-weight: 500;
  letter-spacing: 0.08em;
}
.ml-meter__value {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.2rem);
  letter-spacing: 0.04em;
  color: var(--white);
  line-height: 1.1;
}
.ml-meter__note { font-size: 0.8rem; color: var(--steel); }

/* Vehicle lanes */
.ml-lanes {
  padding: 5.5rem 0 4rem;
  background: var(--void);
}
.ml-lanes__head { margin-bottom: 2.5rem; }
.ml-lanes__head h2 {
  font-size: clamp(2rem, 5vw, 3.2rem);
}
.ml-lanes__strip {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  width: min(100% - 2.5rem, var(--max));
  margin-inline: auto;
}
.ml-card {
  background: var(--carbon);
  overflow: hidden;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%);
  transition: transform 0.4s var(--ease-out);
}
.ml-card:hover { transform: scale(1.03); }
.ml-card--shift { margin-top: 0; }
.ml-card__media {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
}
.ml-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out);
}
.ml-card:hover .ml-card__media img { transform: scale(1.08); }
.ml-card__spec {
  position: absolute;
  top: 1rem;
  left: 0;
  background: var(--crimson);
  color: var(--white);
  font-family: var(--font-display);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  padding: 0.35rem 0.85rem;
  clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.ml-card__body { padding: 1.25rem 1.35rem 1.5rem; }
.ml-card__body h3 {
  font-size: 1.6rem;
  margin-bottom: 0.4rem;
}
.ml-card__body p { color: var(--steel); font-size: 0.9rem; }
.ml-lanes__more { margin-top: 2rem; text-align: right; }

/* Track section — asymmetric */
.ml-track {
  display: grid;
  grid-template-columns: 1fr;
  background: var(--carbon);
  overflow: hidden;
}
.ml-track__media {
  position: relative;
  min-height: 320px;
}
.ml-track__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 320px;
}
.ml-track__slash {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 55%, var(--carbon) 55.2%);
}
.ml-track__copy {
  padding: 3.5rem 1.75rem;
}
.ml-track__copy h2 {
  font-size: clamp(2rem, 4.5vw, 3rem);
  margin-bottom: 1rem;
}
.ml-track__copy > p { color: var(--steel); margin-bottom: 1.25rem; }
.ml-track__list {
  margin-bottom: 1.75rem;
}
.ml-track__list li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.55rem;
  font-weight: 500;
  font-size: 0.95rem;
}
.ml-track__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 8px;
  height: 2px;
  background: var(--crimson);
}

/* Sound manifesto */
.ml-sound {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.ml-sound__bg {
  position: absolute;
  inset: -5%;
}
.ml-sound__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ml-sound__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(10,10,11,0.94) 0%, rgba(10,10,11,0.75) 55%, rgba(10,10,11,0.5) 100%);
}
.ml-sound__inner { position: relative; z-index: 1; padding: 5rem 0; }
.ml-sound__inner h2 {
  font-size: clamp(2.2rem, 6vw, 4rem);
  margin-bottom: 1.25rem;
}
.ml-sound__inner > p {
  color: var(--steel);
  max-width: 34rem;
  margin-bottom: 2rem;
}
.ml-sound__quote {
  border-left: 3px solid var(--crimson);
  padding-left: 1.25rem;
}
.ml-sound__quote p {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  letter-spacing: 0.08em;
  color: var(--crimson-glow);
}

/* Spec panels */
.ml-specs {
  padding: 5.5rem 0;
  background: var(--void);
  position: relative;
}
.ml-specs::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--crimson), transparent);
}
.ml-specs h2 {
  font-size: clamp(2rem, 4.5vw, 3rem);
  margin-bottom: 2.5rem;
}
.ml-specs__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.ml-spec {
  background: var(--carbon);
  padding: 1.75rem 1.5rem;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
  border-top: 2px solid var(--crimson);
  transition: transform 0.35s var(--ease-out), box-shadow 0.35s;
}
.ml-spec:hover {
  transform: scale(1.03);
  box-shadow: 0 12px 40px rgba(225, 29, 46, 0.15);
}
.ml-spec__k {
  font-family: var(--font-display);
  letter-spacing: 0.2em;
  color: var(--crimson);
  font-size: 0.85rem;
}
.ml-spec__v {
  display: block;
  font-family: var(--font-display);
  font-size: 2.4rem;
  margin: 0.35rem 0 0.15rem;
}
.ml-spec__u {
  display: block;
  color: var(--steel);
  font-size: 0.8rem;
  margin-bottom: 0.75rem;
}
.ml-spec p { color: var(--steel); font-size: 0.9rem; }

/* Owners */
.ml-owners {
  position: relative;
  padding: 5.5rem 0;
  background: var(--carbon);
  overflow: hidden;
}
.ml-owners__carbon {
  position: absolute;
  inset: 0;
}
.ml-owners h2 {
  font-size: clamp(2rem, 4.5vw, 3rem);
  margin-bottom: 2.5rem;
  position: relative;
}
.ml-owners__rail {
  position: relative;
  display: grid;
  gap: 1.25rem;
}
.ml-quote {
  background: rgba(10, 10, 11, 0.7);
  padding: 1.75rem 1.5rem;
  border-left: 3px solid var(--crimson);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
}
.ml-quote p {
  font-size: 1.05rem;
  font-weight: 500;
  margin-bottom: 1rem;
}
.ml-quote footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  font-size: 0.85rem;
  color: var(--steel);
}
.ml-quote cite { font-style: normal; color: var(--white); font-weight: 500; }

/* CTA */
.ml-cta {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.ml-cta__bg {
  position: absolute;
  inset: -6%;
}
.ml-cta__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ml-cta__slash {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(10,10,11,0.92) 0%, rgba(10,10,11,0.7) 50%, rgba(10,10,11,0.4) 100%);
}
.ml-cta__panel {
  position: relative;
  z-index: 1;
  width: min(100% - 2.5rem, 36rem);
  margin: 4rem auto;
  padding: 2.5rem 1.75rem;
  background: rgba(20, 20, 22, 0.88);
  border-top: 3px solid var(--crimson);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%);
}
.ml-cta__brand {
  font-family: var(--font-display);
  letter-spacing: 0.15em;
  color: var(--crimson);
  margin-bottom: 0.75rem;
}
.ml-cta__panel h2 {
  font-size: clamp(2rem, 5vw, 3rem);
  margin-bottom: 0.85rem;
}
.ml-cta__panel > p {
  color: var(--steel);
  margin-bottom: 1.5rem;
}

/* —— Page hero (inner) —— */
.ml-page-hero {
  position: relative;
  min-height: 72vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.ml-page-hero__bg { position: absolute; inset: 0; }
.ml-page-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ml-page-hero__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, rgba(10,10,11,0.9) 0%, rgba(10,10,11,0.45) 100%),
    linear-gradient(to top, var(--void), transparent 50%);
}
.ml-page-hero__speed {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.ml-page-hero__speed span {
  position: absolute;
  height: 1px;
  width: 50%;
  background: linear-gradient(90deg, transparent, var(--crimson), transparent);
  animation: ml-speed-line 3.2s linear infinite;
  opacity: 0;
}
.ml-page-hero__speed span:nth-child(1) { top: 30%; animation-delay: 0.2s; }
.ml-page-hero__speed span:nth-child(2) { top: 50%; animation-delay: 1s; }
.ml-page-hero__speed span:nth-child(3) { top: 70%; animation-delay: 1.8s; }
.ml-page-hero__scan {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(225, 29, 46, 0.03) 3px,
    rgba(225, 29, 46, 0.03) 4px
  );
  animation: ml-scan 6s linear infinite;
}
@keyframes ml-scan {
  from { background-position: 0 0; }
  to { background-position: 0 80px; }
}
.ml-page-hero__copy {
  position: relative;
  z-index: 2;
  width: min(100% - 2.5rem, var(--max));
  margin: 0 auto;
  padding: 0 0 4rem;
}
.ml-page-hero__brand {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 8vw, 5rem);
  letter-spacing: 0.08em;
  color: var(--crimson-glow);
  margin-bottom: 0.5rem;
}
.ml-page-hero__copy h1 {
  font-size: clamp(2.2rem, 6vw, 3.8rem);
  margin-bottom: 0.75rem;
}
.ml-page-hero__copy > p { color: var(--steel); max-width: 28rem; }
.ml-page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 1.5rem;
}

/* About */
.ml-about-letter { padding: 5rem 0; background: var(--void); }
.ml-about-letter__grid {
  display: grid;
  gap: 2rem;
}
.ml-about-letter__aside h2 { font-size: 2.2rem; }
.ml-about-letter__body p {
  color: var(--steel);
  margin-bottom: 1rem;
}

.ml-about-path {
  padding: 4.5rem 0;
  background: var(--carbon);
}
.ml-about-path h2 { font-size: 2.4rem; margin-bottom: 2.5rem; }
.ml-about-path__list {
  display: grid;
  gap: 1.5rem;
}
.ml-node {
  display: grid;
  grid-template-columns: 5rem 1fr;
  gap: 0.5rem 1.25rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(168, 168, 176, 0.15);
  border-left: 2px solid var(--crimson);
  padding-left: 1.25rem;
}
.ml-node time {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--crimson);
  grid-row: span 2;
}
.ml-node h3 { font-size: 1.35rem; }
.ml-node p { color: var(--steel); font-size: 0.9rem; grid-column: 2; }

.ml-about-pillars {
  display: grid;
  grid-template-columns: 1fr;
  background: var(--void);
}
.ml-about-pillars__media { min-height: 300px; }
.ml-about-pillars__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 300px;
}
.ml-about-pillars__list { padding: 3.5rem 1.75rem; }
.ml-about-pillars__list h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-pillar {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(168, 168, 176, 0.12);
}
.ml-pillar span {
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--crimson);
  min-width: 2.5rem;
}
.ml-pillar h3 { font-size: 1.3rem; margin-bottom: 0.35rem; }
.ml-pillar p { color: var(--steel); font-size: 0.9rem; }

.ml-about-quote {
  position: relative;
  min-height: 50vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.ml-about-quote__bg { position: absolute; inset: 0; }
.ml-about-quote__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.35);
}
.ml-about-quote blockquote {
  position: relative;
  z-index: 1;
  width: min(100% - 2.5rem, 40rem);
  text-align: left;
  border-left: 3px solid var(--crimson);
  padding-left: 1.5rem;
}
.ml-about-quote p {
  font-size: clamp(1.2rem, 3vw, 1.75rem);
  font-weight: 500;
  line-height: 1.6;
}

.ml-about-crew { padding: 5rem 0; background: var(--carbon); }
.ml-about-crew h2 { font-size: 2.4rem; margin-bottom: 2.5rem; }
.ml-about-crew__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.ml-person__img {
  aspect-ratio: 4/5;
  overflow: hidden;
  margin-bottom: 0.85rem;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%);
}
.ml-person__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease-out);
}
.ml-person:hover .ml-person__img img { transform: scale(1.06); }
.ml-person h3 { font-size: 1.25rem; }
.ml-person p { color: var(--steel); font-size: 0.85rem; }
.ml-person span {
  display: inline-block;
  margin-top: 0.35rem;
  font-size: 0.75rem;
  color: var(--crimson);
  font-weight: 500;
}

.ml-about-vision { padding: 5rem 0; background: var(--void); }
.ml-about-vision__head h2 { font-size: 2.4rem; margin-bottom: 0.85rem; }
.ml-about-vision__head p { color: var(--steel); max-width: 40rem; margin-bottom: 2.5rem; }
.ml-about-vision__cards {
  display: grid;
  gap: 1.25rem;
}
.ml-vcard {
  background: var(--carbon);
  overflow: hidden;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%);
  transition: transform 0.35s;
}
.ml-vcard:hover { transform: scale(1.02); }
.ml-vcard__img { aspect-ratio: 16/10; overflow: hidden; }
.ml-vcard__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ml-vcard h3 { font-size: 1.3rem; padding: 1.1rem 1.25rem 0.35rem; }
.ml-vcard p { color: var(--steel); font-size: 0.9rem; padding: 0 1.25rem 1.35rem; }

.ml-about-runway { padding: 4.5rem 0; background: var(--carbon); }
.ml-about-runway h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-about-runway__strip {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.ml-fact__n {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 3.5rem);
  color: var(--crimson-glow);
  line-height: 1;
}
.ml-fact__l { color: var(--steel); font-size: 0.85rem; }

.ml-about-invite {
  display: grid;
  grid-template-columns: 1fr;
  background: var(--void);
}
.ml-about-invite__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 280px;
}
.ml-about-invite__copy { padding: 3.5rem 1.75rem; }
.ml-about-invite__copy h2 { font-size: 2.2rem; margin-bottom: 0.85rem; }
.ml-about-invite__copy > p { color: var(--steel); margin-bottom: 1.5rem; }

/* Services */
.ml-svc-orbit { padding: 4rem 0 2rem; background: var(--void); }
.ml-svc-orbit h2 { font-size: 2.2rem; margin-bottom: 1.5rem; }
.ml-svc-orbit__ring {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding: 0.5rem 1.25rem 1.5rem;
  scrollbar-width: none;
}
.ml-svc-orbit__ring::-webkit-scrollbar { display: none; }
.ml-chip {
  flex: 0 0 180px;
  background: var(--carbon);
  overflow: hidden;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%);
  transition: transform 0.35s;
}
.ml-chip:hover { transform: scale(1.05); }
.ml-chip img {
  width: 100%;
  height: 110px;
  object-fit: cover;
}
.ml-chip span {
  display: block;
  padding: 0.65rem 0.75rem 0.15rem;
  font-weight: 500;
  font-size: 0.9rem;
}
.ml-chip em {
  display: block;
  padding: 0 0.75rem 0.75rem;
  font-style: normal;
  color: var(--crimson);
  font-size: 0.8rem;
  font-family: var(--font-display);
  letter-spacing: 0.06em;
}

.ml-svc-index { padding: 3rem 0 5rem; background: var(--void); }
.ml-svc-index h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-svc-list { display: flex; flex-direction: column; gap: 1rem; }
.ml-svc-row {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0.75rem 1rem;
  background: var(--carbon);
  padding: 1.15rem;
  align-items: center;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
  transition: transform 0.35s;
}
.ml-svc-row:hover { transform: scale(1.015); }
.ml-svc-row__code {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--crimson);
}
.ml-svc-row__thumb {
  grid-column: 1 / -1;
  aspect-ratio: 16/9;
  overflow: hidden;
}
.ml-svc-row__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ml-svc-row__copy { grid-column: 1 / -1; }
.ml-svc-row__tag {
  font-family: var(--font-display);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: var(--crimson);
}
.ml-svc-row__copy h3 { font-size: 1.35rem; margin: 0.2rem 0 0.35rem; }
.ml-svc-row__copy p { color: var(--steel); font-size: 0.9rem; }
.ml-svc-row__meta {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.35rem;
}
.ml-svc-row__meta span {
  font-family: var(--font-display);
  letter-spacing: 0.06em;
  color: var(--white);
}
.ml-svc-row__meta a {
  color: var(--crimson-glow);
  font-weight: 500;
  font-size: 0.9rem;
}

.ml-svc-zones { padding: 4.5rem 0; background: var(--carbon); }
.ml-svc-zones h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-svc-zones__row {
  display: grid;
  gap: 1rem;
}
.ml-zone {
  background: var(--void);
  padding: 1.75rem 1.5rem;
  border-top: 2px solid var(--crimson);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
}
.ml-zone__code {
  font-family: var(--font-display);
  font-size: 2rem;
  color: var(--crimson);
}
.ml-zone h3 { font-size: 1.4rem; margin: 0.35rem 0; }
.ml-zone__price {
  font-family: var(--font-display);
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  margin-bottom: 0.5rem;
}
.ml-zone p:last-child { color: var(--steel); font-size: 0.9rem; }

.ml-svc-route { padding: 5rem 0; background: var(--void); }
.ml-svc-route h2 { font-size: 2.2rem; margin-bottom: 2.5rem; }
.ml-svc-route__map {
  position: relative;
  display: grid;
  gap: 1.5rem;
}
.ml-svc-route__line {
  display: none;
}
.ml-stop {
  background: var(--carbon);
  padding: 1.5rem;
  border-left: 3px solid var(--crimson);
}
.ml-stop span {
  font-family: var(--font-display);
  color: var(--crimson);
  letter-spacing: 0.12em;
  font-size: 0.9rem;
}
.ml-stop h3 { font-size: 1.3rem; margin: 0.35rem 0; }
.ml-stop p { color: var(--steel); font-size: 0.9rem; }

.ml-svc-included { padding: 4rem 0 2rem; background: var(--carbon); overflow: hidden; }
.ml-svc-included h2 { font-size: 2.2rem; margin-bottom: 1.5rem; }
.ml-svc-ticker { overflow: hidden; mask-image: linear-gradient(90deg, transparent, black 8%, black 92%, transparent); }
.ml-svc-ticker__track {
  display: flex;
  gap: 1rem;
  width: max-content;
  animation: ml-ticker 28s linear infinite;
}
.ml-svc-ticker__item {
  flex: 0 0 auto;
  background: var(--void);
  padding: 1rem 1.5rem;
  border-top: 2px solid var(--crimson);
}
.ml-svc-ticker__item span {
  display: block;
  font-weight: 500;
  font-size: 0.95rem;
}
.ml-svc-ticker__item em {
  font-style: normal;
  color: var(--steel);
  font-size: 0.8rem;
}
@keyframes ml-ticker {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.ml-svc-garage { padding: 4.5rem 0; background: var(--void); }
.ml-svc-garage h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-svc-garage__wall {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  width: min(100% - 2rem, var(--max));
  margin-inline: auto;
}
.ml-shot {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
}
.ml-shot--tall { grid-row: span 2; aspect-ratio: auto; min-height: 100%; }
.ml-shot--wide { grid-column: span 2; aspect-ratio: 21/9; }
.ml-shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
.ml-shot:hover img { transform: scale(1.06); }
.ml-shot figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  background: var(--crimson);
  font-family: var(--font-display);
  letter-spacing: 0.12em;
  font-size: 0.8rem;
  padding: 0.3rem 0.75rem;
}

.ml-svc-cta {
  display: grid;
  grid-template-columns: 1fr;
  background: var(--carbon);
}
.ml-svc-cta__panel { padding: 3.5rem 1.75rem; }
.ml-svc-cta__brand {
  font-family: var(--font-display);
  letter-spacing: 0.15em;
  color: var(--crimson);
  margin-bottom: 0.75rem;
}
.ml-svc-cta__panel h2 { font-size: 2.2rem; margin-bottom: 0.85rem; }
.ml-svc-cta__panel > p { color: var(--steel); margin-bottom: 1.5rem; }
.ml-svc-cta__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 300px;
}

/* Blog */
.ml-blog-mast {
  padding: calc(var(--header-h) + 3.5rem) 0 2.5rem;
  background: var(--void);
  position: relative;
}
.ml-blog-mast__brand {
  font-family: var(--font-display);
  letter-spacing: 0.2em;
  color: var(--crimson);
  font-size: 0.95rem;
}
.ml-blog-mast h1 {
  font-size: clamp(3rem, 10vw, 6rem);
  letter-spacing: 0.06em;
}
.ml-blog-mast > .ml-container > p { color: var(--steel); margin-top: 0.5rem; }
.ml-blog-mast__line {
  height: 3px;
  margin-top: 2rem;
  background: linear-gradient(90deg, var(--crimson), transparent);
}

.ml-blog-cover { padding: 0 0 2rem; background: var(--void); }
.ml-blog-cover__main {
  position: relative;
  width: min(100% - 1.5rem, var(--max));
  margin-inline: auto;
  overflow: hidden;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%);
}
.ml-blog-cover__main img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
}
.ml-blog-cover__meta {
  position: absolute;
  inset: auto 0 0 0;
  padding: 2rem 1.5rem;
  background: linear-gradient(to top, rgba(10,10,11,0.95), transparent);
}
.ml-blog-cover__meta span {
  font-family: var(--font-display);
  color: var(--crimson);
  letter-spacing: 0.12em;
  font-size: 0.85rem;
}
.ml-blog-cover__meta time {
  display: block;
  color: var(--steel);
  font-size: 0.8rem;
  margin: 0.25rem 0 0.5rem;
}
.ml-blog-cover__meta h2 { font-size: clamp(1.4rem, 3vw, 2.2rem); margin-bottom: 0.4rem; }
.ml-blog-cover__meta p { color: var(--steel); font-size: 0.9rem; max-width: 36rem; }

.ml-blog-filter { padding: 1.5rem 0; background: var(--void); }
.ml-blog-filter__bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.ml-blog-filter__bar button {
  background: transparent;
  border: 1px solid rgba(168, 168, 176, 0.3);
  color: var(--steel);
  padding: 0.45rem 0.9rem;
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 500;
  clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
  transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.ml-blog-filter__bar button.is-active,
.ml-blog-filter__bar button:hover {
  background: var(--crimson);
  border-color: var(--crimson);
  color: var(--white);
}

.ml-blog-stack { padding: 1rem 0 4rem; background: var(--void); }
.ml-blog-stack__list { display: flex; flex-direction: column; gap: 1rem; }
.ml-article {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  background: var(--carbon);
  padding: 1rem;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
  transition: transform 0.35s;
}
.ml-article:hover { transform: scale(1.015); }
.ml-article.is-hidden { display: none; }
.ml-article__img {
  aspect-ratio: 16/10;
  overflow: hidden;
}
.ml-article__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ml-article__body time { color: var(--steel); font-size: 0.8rem; }
.ml-article__body h3 { font-size: 1.3rem; margin: 0.3rem 0; }
.ml-article__body p { color: var(--steel); font-size: 0.9rem; }
.ml-article__cat {
  font-family: var(--font-display);
  letter-spacing: 0.1em;
  color: var(--crimson);
  font-size: 0.8rem;
}

.ml-blog-tips { padding: 4.5rem 0; background: var(--carbon); }
.ml-blog-tips h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-blog-tips__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.ml-tip {
  background: var(--void);
  padding: 1.35rem;
  border-top: 2px solid var(--crimson);
}
.ml-tip span {
  font-family: var(--font-display);
  color: var(--crimson);
  font-size: 1.2rem;
}
.ml-tip h3 { font-size: 1.15rem; margin: 0.35rem 0; }
.ml-tip p { color: var(--steel); font-size: 0.85rem; }

.ml-blog-seasons { padding: 4.5rem 0; background: var(--void); }
.ml-blog-seasons h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-blog-seasons__dial {
  display: grid;
  gap: 1rem;
}
.ml-season {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 1rem;
  background: var(--carbon);
  overflow: hidden;
  align-items: center;
}
.ml-season img {
  width: 100%;
  height: 140px;
  object-fit: cover;
}
.ml-season span {
  font-family: var(--font-display);
  color: var(--crimson);
  font-size: 1.4rem;
}
.ml-season h3 { font-size: 1.15rem; }
.ml-season p { color: var(--steel); font-size: 0.85rem; padding-right: 0.75rem; }

.ml-blog-notes { padding: 4.5rem 0; background: var(--carbon); }
.ml-blog-notes h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-blog-notes__row {
  display: grid;
  gap: 1.25rem;
}
.ml-note img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  margin-bottom: 0.85rem;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
}
.ml-note h3 { font-size: 1.2rem; margin-bottom: 0.35rem; }
.ml-note p { color: var(--steel); font-size: 0.9rem; }

.ml-blog-subscribe {
  position: relative;
  min-height: 55vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.ml-blog-subscribe__bg { position: absolute; inset: -5%; }
.ml-blog-subscribe__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.35);
}
.ml-blog-subscribe__inner {
  position: relative;
  z-index: 1;
  width: min(100% - 2.5rem, 36rem);
  margin: 4rem auto;
}
.ml-blog-subscribe__brand {
  font-family: var(--font-display);
  letter-spacing: 0.15em;
  color: var(--crimson);
  margin-bottom: 0.75rem;
}
.ml-blog-subscribe__inner h2 { font-size: 2.4rem; margin-bottom: 0.75rem; }
.ml-blog-subscribe__inner > p { color: var(--steel); margin-bottom: 1.5rem; }

/* Contact */
.ml-contact-dock {
  display: grid;
  grid-template-columns: 1fr;
  min-height: 100vh;
  padding-top: var(--header-h);
}
.ml-contact-dock__visual {
  position: relative;
  min-height: 280px;
}
.ml-contact-dock__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 280px;
}
.ml-contact-dock__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  background: var(--crimson);
  padding: 0.85rem 1.25rem;
  clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
}
.ml-contact-dock__caption p {
  font-family: var(--font-display);
  letter-spacing: 0.1em;
  font-size: 1.1rem;
}
.ml-contact-dock__caption span { font-size: 0.8rem; opacity: 0.9; }
.ml-contact-dock__form {
  background: var(--carbon);
  padding: 2.5rem 1.5rem 3.5rem;
}
.ml-contact-dock__brand {
  font-family: var(--font-display);
  font-size: 2rem;
  letter-spacing: 0.1em;
  color: var(--crimson-glow);
}
.ml-contact-dock__form h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  margin: 0.5rem 0 0.75rem;
}
.ml-contact-dock__form > p { color: var(--steel); margin-bottom: 1.5rem; }

.ml-notice {
  padding: 0.85rem 1rem;
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
}
.ml-notice--ok {
  background: rgba(225, 29, 46, 0.15);
  border-left: 3px solid var(--crimson);
}
.ml-notice--err {
  background: rgba(225, 29, 46, 0.2);
  border-left: 3px solid var(--crimson-glow);
}
.ml-notice ul { padding-left: 1.1rem; list-style: disc; }

.ml-form {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.ml-form label { display: flex; flex-direction: column; gap: 0.4rem; }
.ml-form label span {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--steel);
}
.ml-form input,
.ml-form textarea {
  background: var(--void);
  border: 1px solid rgba(168, 168, 176, 0.25);
  padding: 0.85rem 1rem;
  outline: none;
  transition: border-color 0.25s;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
}
.ml-form input:focus,
.ml-form textarea:focus { border-color: var(--crimson); }
.ml-form textarea { resize: vertical; min-height: 120px; }

.ml-contact-channels { padding: 4.5rem 0; background: var(--void); }
.ml-contact-channels h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-contact-channels__grid {
  display: grid;
  gap: 1rem;
}
.ml-channel {
  background: var(--carbon);
  padding: 1.5rem;
  border-top: 2px solid var(--crimson);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  transition: transform 0.35s;
}
.ml-channel:hover { transform: scale(1.02); }
.ml-channel span {
  font-family: var(--font-display);
  letter-spacing: 0.12em;
  color: var(--crimson);
  font-size: 0.9rem;
}
.ml-channel strong { font-weight: 500; font-size: 1.05rem; }
.ml-channel em { font-style: normal; color: var(--steel); font-size: 0.85rem; }

.ml-contact-hours { padding: 4rem 0; background: var(--carbon); }
.ml-contact-hours h2 { font-size: 2.2rem; margin-bottom: 0.75rem; }
.ml-contact-hours__note { color: var(--steel); margin-bottom: 1.5rem; }
.ml-contact-hours__row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
}
.ml-day {
  background: var(--void);
  text-align: center;
  padding: 0.85rem 0.35rem;
  border-bottom: 2px solid var(--crimson);
}
.ml-day span {
  display: block;
  font-family: var(--font-display);
  font-size: 1.1rem;
}
.ml-day em {
  font-style: normal;
  color: var(--steel);
  font-size: 0.75rem;
}

.ml-contact-map {
  height: 380px;
  background: var(--void);
}
.ml-contact-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(0.4) contrast(1.05);
}

.ml-contact-flow { padding: 5rem 0; background: var(--void); }
.ml-contact-flow h2 { font-size: 2.2rem; margin-bottom: 2.5rem; }
.ml-contact-flow__track {
  display: grid;
  gap: 1.25rem;
}
.ml-step {
  border-left: 3px solid var(--crimson);
  padding-left: 1.25rem;
}
.ml-step span {
  font-family: var(--font-display);
  color: var(--crimson);
  font-size: 1.3rem;
}
.ml-step h3 { font-size: 1.25rem; margin: 0.25rem 0; }
.ml-step p { color: var(--steel); font-size: 0.9rem; }

.ml-contact-glimpse { background: var(--carbon); }
.ml-contact-glimpse__grid {
  display: grid;
  grid-template-columns: 1fr;
}
.ml-contact-glimpse figure { min-height: 240px; overflow: hidden; }
.ml-contact-glimpse img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 240px;
}
.ml-contact-glimpse__copy { padding: 3rem 1.75rem; }
.ml-contact-glimpse__copy h2 { font-size: 2rem; margin-bottom: 0.75rem; }
.ml-contact-glimpse__copy > p { color: var(--steel); }

.ml-contact-faq { padding: 5rem 0; background: var(--void); }
.ml-contact-faq h2 { font-size: 2.2rem; margin-bottom: 2rem; }
.ml-contact-faq__list details {
  border-bottom: 1px solid rgba(168, 168, 176, 0.2);
  padding: 1rem 0;
}
.ml-contact-faq__list summary {
  cursor: pointer;
  font-weight: 500;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}
.ml-contact-faq__list summary::-webkit-details-marker { display: none; }
.ml-contact-faq__list summary::after {
  content: "+";
  color: var(--crimson);
  font-family: var(--font-display);
  font-size: 1.4rem;
}
.ml-contact-faq__list details[open] summary::after { content: "−"; }
.ml-contact-faq__list details p {
  color: var(--steel);
  margin-top: 0.75rem;
  font-size: 0.9rem;
}

.ml-contact-final {
  display: grid;
  grid-template-columns: 1fr;
  background: var(--carbon);
}
.ml-contact-final__social,
.ml-contact-final__cta { padding: 3.5rem 1.75rem; }
.ml-contact-final h2 { font-size: 1.8rem; margin-bottom: 1rem; }
.ml-contact-final__cta { border-top: 1px solid rgba(168, 168, 176, 0.15); }
.ml-contact-final__cta > p { color: var(--steel); margin-bottom: 1.25rem; }
.ml-contact-final__icons {
  display: flex;
  gap: 0.85rem;
}
.ml-contact-final__icons a {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  background: var(--void);
  color: var(--white);
  transition: background 0.25s, color 0.25s;
  clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
}
.ml-contact-final__icons a:hover {
  background: var(--crimson);
}

/* Footer */
.ml-footer {
  position: relative;
  background: var(--void);
  border-top: 1px solid rgba(225, 29, 46, 0.3);
  overflow: hidden;
  padding: 4rem 0 1.5rem;
}
.ml-footer__carbon {
  position: absolute;
  inset: 0;
}
.ml-footer__diag {
  position: absolute;
  top: 0;
  right: 0;
  width: 40%;
  height: 100%;
  background: linear-gradient(135deg, transparent 40%, rgba(225, 29, 46, 0.06) 40%);
  pointer-events: none;
}
.ml-footer__top {
  position: relative;
  width: min(100% - 2.5rem, var(--max));
  margin-inline: auto;
  display: grid;
  gap: 2.5rem;
  margin-bottom: 3rem;
}
.ml-footer__en {
  display: block;
  font-family: var(--font-display);
  font-size: 2rem;
  letter-spacing: 0.1em;
}
.ml-footer__jp {
  display: block;
  color: var(--crimson);
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  margin-bottom: 0.75rem;
}
.ml-footer__tag {
  font-weight: 500;
  margin-bottom: 0.75rem;
}
.ml-footer__desc {
  color: var(--steel);
  font-size: 0.9rem;
  max-width: 28rem;
}
.ml-footer__col h3 {
  font-family: var(--font-display);
  letter-spacing: 0.12em;
  font-size: 1rem;
  color: var(--crimson);
  margin-bottom: 1rem;
}
.ml-footer__col li { margin-bottom: 0.5rem; }
.ml-footer__col a {
  color: var(--steel);
  font-size: 0.9rem;
  transition: color 0.25s;
}
.ml-footer__col a:hover { color: var(--white); }
.ml-footer__col address p {
  color: var(--steel);
  font-size: 0.9rem;
  margin-bottom: 0.45rem;
}
.ml-footer__col address a:hover { color: var(--crimson-glow); }

.ml-footer__bottom {
  position: relative;
  width: min(100% - 2.5rem, var(--max));
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(168, 168, 176, 0.15);
  font-size: 0.8rem;
  color: var(--steel);
}
.ml-social { display: flex; gap: 0.65rem; }
.ml-social a {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  background: var(--carbon);
  transition: background 0.25s, color 0.25s;
}
.ml-social a:hover { background: var(--crimson); color: var(--white); }
.ml-top {
  width: 40px;
  height: 40px;
  background: var(--carbon);
  border: 1px solid rgba(225, 29, 46, 0.4);
  color: var(--white);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background 0.25s;
}
.ml-top:hover { background: var(--crimson); }

/* —— Responsive —— */
@media (min-width: 768px) {
  .ml-nav--desktop { display: flex; }
  .ml-burger { display: none; }
  .ml-mobile,
  .ml-mobile.is-open {
    display: none !important;
    pointer-events: none;
  }
  .ml-pulse__grid { grid-template-columns: repeat(4, 1fr); }
  .ml-lanes__strip { grid-template-columns: repeat(2, 1fr); }
  .ml-card--shift { margin-top: 2.5rem; }
  .ml-track { grid-template-columns: 1.1fr 0.9fr; }
  .ml-track__slash {
    background: linear-gradient(105deg, transparent 70%, var(--carbon) 70.2%);
  }
  .ml-specs__grid { grid-template-columns: repeat(2, 1fr); }
  .ml-owners__rail { grid-template-columns: repeat(3, 1fr); }
  .ml-about-letter__grid { grid-template-columns: 0.8fr 1.2fr; gap: 3rem; }
  .ml-about-path__list { grid-template-columns: repeat(2, 1fr); }
  .ml-about-pillars { grid-template-columns: 0.9fr 1.1fr; }
  .ml-about-crew__grid { grid-template-columns: repeat(4, 1fr); }
  .ml-about-vision__cards { grid-template-columns: repeat(3, 1fr); }
  .ml-about-runway__strip { grid-template-columns: repeat(4, 1fr); }
  .ml-about-invite { grid-template-columns: 1fr 1fr; }
  .ml-svc-zones__row { grid-template-columns: repeat(3, 1fr); }
  .ml-svc-route__map { grid-template-columns: repeat(4, 1fr); gap: 1rem; }
  .ml-svc-route__line {
    display: block;
    position: absolute;
    top: 1.5rem;
    left: 5%;
    right: 5%;
    height: 2px;
    background: linear-gradient(90deg, var(--crimson), transparent);
  }
  .ml-svc-cta { grid-template-columns: 1.1fr 0.9fr; }
  .ml-svc-row {
    grid-template-columns: 3rem 160px 1fr auto;
    align-items: center;
  }
  .ml-svc-row__thumb {
    grid-column: auto;
    aspect-ratio: 16/11;
  }
  .ml-svc-row__copy,
  .ml-svc-row__meta { grid-column: auto; }
  .ml-svc-row__meta {
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
  }
  .ml-article {
    grid-template-columns: 220px 1fr auto;
    align-items: center;
  }
  .ml-article__img { aspect-ratio: 4/3; }
  .ml-blog-seasons__dial { grid-template-columns: repeat(2, 1fr); }
  .ml-blog-notes__row { grid-template-columns: repeat(3, 1fr); }
  .ml-contact-dock { grid-template-columns: 0.9fr 1.1fr; }
  .ml-contact-dock__visual { min-height: auto; }
  .ml-contact-channels__grid { grid-template-columns: repeat(3, 1fr); }
  .ml-contact-hours__row { grid-template-columns: repeat(7, 1fr); }
  .ml-contact-flow__track { grid-template-columns: repeat(4, 1fr); }
  .ml-contact-glimpse__grid { grid-template-columns: 1fr 1fr 1fr; }
  .ml-contact-final { grid-template-columns: 1fr 1fr; }
  .ml-contact-final__cta { border-top: none; border-left: 1px solid rgba(168, 168, 176, 0.15); }
  .ml-footer__top { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; }
}

@media (min-width: 1024px) {
  .ml-lanes__strip { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
  .ml-card--shift { margin-top: 3.5rem; }
  .ml-specs__grid { grid-template-columns: repeat(4, 1fr); }
  .ml-cta__panel { margin-left: max(1.25rem, calc((100% - var(--max)) / 2)); margin-right: auto; }
  .ml-hero__copy { padding-bottom: 6.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .ml-reveal-side,
  [data-ml-stagger] > * {
    opacity: 1;
    transform: none;
  }
  .ml-mobile__link,
  .ml-mobile__cta,
  .ml-mobile__label {
    opacity: 1;
    transform: none;
  }
}
/* ===== HOMEPAGE v2 — stacked bands / HUD / dyno / film (not card clones) ===== */
.ml-hero__slash {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(115deg, transparent 42%, rgba(225,29,46,0.55) 42.2%, rgba(225,29,46,0.55) 46%, transparent 46.3%);
  pointer-events: none;
  mix-blend-mode: screen;
}

.ml-hud {
  background: #050506;
  border-top: 1px solid rgba(225,29,46,0.45);
  border-bottom: 1px solid rgba(225,29,46,0.45);
  overflow-x: auto;
  scrollbar-width: none;
}
.ml-hud::-webkit-scrollbar { display: none; }
.ml-hud__rail {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  min-width: 640px;
}
.ml-hud__cell {
  padding: 1.25rem 1.5rem;
  border-right: 1px solid rgba(255,255,255,0.08);
  clip-path: polygon(0 0, 100% 0, 96% 100%, 0 100%);
  background: linear-gradient(135deg, rgba(225,29,46,0.12), transparent 60%);
}
.ml-hud__label {
  display: block;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--steel);
  margin-bottom: 0.35rem;
}
.ml-hud__value {
  display: block;
  font-family: "Bebas Neue", sans-serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  color: #fff;
  line-height: 1;
  font-weight: 400;
}
.ml-hud__note { font-size: 0.75rem; color: var(--crimson); }
.ml-hud__copy {
  padding: 1.75rem 0 2.25rem;
  color: var(--steel);
  max-width: 52rem;
  font-size: 0.95rem;
  line-height: 1.85;
}

.ml-bands { background: var(--void); padding-bottom: 2rem; }
.ml-bands__intro { padding: 3rem 0 1.5rem; }
.ml-bands__intro h2 {
  font-family: var(--font-body);
  font-size: clamp(1.55rem, 4.5vw, 2.6rem);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.35;
}
.ml-band {
  display: grid;
  grid-template-columns: 1fr;
  min-height: min(70vh, 620px);
  position: relative;
  overflow: hidden;
  margin-bottom: 0.35rem;
}
.ml-band__media { position: relative; min-height: 280px; }
.ml-band__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  min-height: 280px;
  filter: saturate(1.1) contrast(1.05);
}
.ml-band__copy {
  background: #0d0d0f;
  padding: clamp(1.5rem, 4vw, 3rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.6rem;
  border-left: 3px solid var(--crimson);
}
.ml-band__n {
  font-family: "Bebas Neue", sans-serif;
  font-size: 2.5rem;
  color: var(--crimson);
  line-height: 1;
  font-weight: 400;
}
.ml-band__spec {
  display: inline-block;
  width: fit-content;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: #fff;
  background: var(--crimson);
  padding: 0.25rem 0.55rem;
  clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%);
}
.ml-band__copy h3 {
  font-family: "Bebas Neue", sans-serif;
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  margin: 0;
}
.ml-band__copy p { margin: 0; color: var(--steel); max-width: 28em; line-height: 1.65; }
.ml-bands__more { padding: 1.5rem 0 0; text-align: right; }
@media (min-width: 900px) {
  .ml-band { grid-template-columns: 1.25fr 0.75fr; }
  .ml-band--right { grid-template-columns: 0.75fr 1.25fr; }
  .ml-band--right .ml-band__media { order: 2; }
  .ml-band--right .ml-band__copy { order: 1; border-left: none; border-right: 3px solid var(--crimson); }
  .ml-band__media img { position: absolute; inset: 0; min-height: 100%; }
  .ml-band__media { min-height: 100%; }
}

.ml-immerse {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.ml-immerse__bg { position: absolute; inset: 0; }
.ml-immerse__bg img { width: 100%; height: 100%; object-fit: cover; }
.ml-immerse__veil {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(10,10,11,0.92) 0%, rgba(10,10,11,0.55) 55%, rgba(10,10,11,0.25) 100%);
}
.ml-immerse__panel {
  position: relative;
  z-index: 1;
  max-width: 32rem;
  margin: 0 var(--pad, 1.5rem);
  padding: 2rem;
  background: rgba(10,10,11,0.72);
  border-left: 3px solid var(--crimson);
  clip-path: polygon(0 0, 100% 0, 100% 88%, 96% 100%, 0 100%);
}
.ml-immerse__panel h2 {
  font-family: "Bebas Neue", sans-serif;
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 400;
  line-height: 1.05;
  margin: 0.5rem 0 1rem;
}
.ml-immerse__list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
}
.ml-immerse__list li {
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  color: var(--steel);
  font-size: 0.92rem;
}
.ml-immerse__list li::before {
  content: "▸ ";
  color: var(--crimson);
}

.ml-typewall {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.ml-typewall__bg { position: absolute; inset: 0; }
.ml-typewall__bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.ml-typewall__veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, rgba(225,29,46,0.25), rgba(10,10,11,0.92) 70%);
}
.ml-typewall__inner { position: relative; z-index: 1; padding: 4rem 0; }
.ml-typewall__inner h2 {
  font-family: "Bebas Neue", sans-serif;
  font-size: clamp(2.8rem, 8vw, 5.5rem);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: 0.02em;
  margin: 0.5rem 0 1.25rem;
}
.ml-typewall__inner > p:last-child {
  max-width: 34em;
  color: var(--steel);
  font-size: 1.05rem;
  line-height: 1.75;
}

.ml-dyno { padding: 4rem 0; background: #080809; }
.ml-dyno h2 {
  font-family: "Bebas Neue", sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 400;
  margin: 0 0 2rem;
}
.ml-dyno__list { display: flex; flex-direction: column; gap: 1.5rem; }
.ml-dyno__top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: baseline;
  margin-bottom: 0.45rem;
}
.ml-dyno__k {
  font-family: "Bebas Neue", sans-serif;
  font-size: 1.4rem;
  color: var(--crimson);
  letter-spacing: 0.08em;
  font-weight: 400;
}
.ml-dyno__label { color: #fff; font-size: 0.9rem; }
.ml-dyno__bar {
  height: 6px;
  background: rgba(255,255,255,0.08);
  overflow: hidden;
}
.ml-dyno__bar span {
  display: block;
  height: 100%;
  width: var(--w, 50%);
  background: linear-gradient(90deg, var(--crimson), #ff3b4a);
}
.ml-dyno__row p { margin: 0.45rem 0 0; color: var(--steel); font-size: 0.88rem; }

.ml-film { padding: 4rem 0; background: var(--void); }
.ml-film h2 {
  font-family: "Bebas Neue", sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 400;
  margin: 0 0 1.5rem;
}
.ml-film__strip {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, 1fr);
  gap: 0.75rem;
  overflow-x: auto;
  padding-bottom: 0.5rem;
  scrollbar-width: none;
}
.ml-film__strip::-webkit-scrollbar { display: none; }
.ml-film__frame {
  margin: 0;
  background: #121214;
  border: 2px solid rgba(255,255,255,0.08);
  border-top: 10px solid #1a1a1c;
  border-bottom: 10px solid #1a1a1c;
  padding: 1.5rem 1.25rem;
  position: relative;
}
.ml-film__frame::before,
.ml-film__frame::after {
  content: "";
  position: absolute;
  left: 0.55rem;
  right: 0.55rem;
  height: 6px;
  background: repeating-linear-gradient(90deg, #0a0a0b 0 8px, transparent 8px 14px);
}
.ml-film__frame::before { top: -8px; }
.ml-film__frame::after { bottom: -8px; }
.ml-film__frame p { color: #e8e8ea; line-height: 1.65; margin: 0 0 1rem; font-size: 0.95rem; }
.ml-film__frame footer { display: flex; flex-direction: column; gap: 0.2rem; }
.ml-film__frame cite { font-style: normal; color: #fff; font-size: 0.9rem; }
.ml-film__frame span { color: var(--crimson); font-size: 0.78rem; letter-spacing: 0.06em; }

/* —— Supplemental sections (text + image shot) —— */
.ml-section {
  padding: 3.5rem 0;
  background: var(--void);
}
.ml-section h2 {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  margin: 0 0 0.85rem;
}
.ml-section > .ml-container > p:not(.ml-eyebrow) {
  color: var(--steel);
  max-width: 36em;
  line-height: 1.7;
}

.ml-section--shot {
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  min-height: min(62vh, 560px);
  overflow: hidden;
  position: relative;
  background: #0c0c0e;
}
.ml-section__media {
  position: relative;
  min-height: 240px;
  overflow: hidden;
}
.ml-section__media img {
  width: 100%;
  height: 100%;
  min-height: 240px;
  object-fit: cover;
  display: block;
  filter: saturate(1.08) contrast(1.06);
  transform: scale(1.04);
  transition: transform 1.1s var(--ease-out);
}
.ml-section__veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 35%, rgba(10, 10, 11, 0.75) 100%),
    linear-gradient(90deg, rgba(10, 10, 11, 0.55), transparent 55%);
  pointer-events: none;
}
.ml-section__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  padding: clamp(1.75rem, 4vw, 3.25rem);
  background: #0c0c0e;
  border-left: 3px solid var(--crimson);
}
.ml-section__body > p:not(.ml-eyebrow) {
  color: var(--steel);
  max-width: 32em;
  line-height: 1.7;
  margin: 0 0 0.5rem;
}
.ml-section__ticks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.65rem;
  margin-top: 0.65rem;
}
.ml-section__ticks li {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: var(--white);
  background: rgba(225, 29, 46, 0.18);
  border: 1px solid rgba(225, 29, 46, 0.45);
  padding: 0.4rem 0.75rem;
  clip-path: polygon(0 0, 100% 0, 94% 100%, 0 100%);
}
.ml-section--flip .ml-section__body {
  border-left: none;
  border-right: 3px solid var(--crimson);
}

@media (min-width: 900px) {
  .ml-section--shot {
    grid-template-columns: 1.2fr 0.8fr;
  }
  .ml-section--flip {
    grid-template-columns: 0.8fr 1.2fr;
  }
  .ml-section--flip .ml-section__media { order: 2; }
  .ml-section--flip .ml-section__body { order: 1; }
  .ml-section__media {
    min-height: 100%;
  }
  .ml-section__media img {
    position: absolute;
    inset: 0;
    min-height: 100%;
  }
  .ml-section__veil {
    background:
      linear-gradient(90deg, transparent 40%, rgba(10, 10, 11, 0.35) 100%),
      linear-gradient(115deg, rgba(225, 29, 46, 0.12), transparent 50%);
  }
  .ml-section--flip .ml-section__veil {
    background:
      linear-gradient(270deg, transparent 40%, rgba(10, 10, 11, 0.35) 100%),
      linear-gradient(245deg, rgba(225, 29, 46, 0.12), transparent 50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ml-section--shot:hover .ml-section__media img {
    transform: scale(1.04);
  }
}

/* ===== Mobile polish ===== */
@media (max-width: 767px) {
  .ml-header {
    background: rgba(10, 10, 11, 0.96);
    border-bottom: 1px solid rgba(225, 29, 46, 0.18);
  }
  .ml-header.is-menu-open {
    background: #080809;
  }
  .ml-logo__en {
    font-size: 1.1rem;
    letter-spacing: 0.08em;
  }
  .ml-logo__jp {
    font-size: 0.62rem;
  }
  .ml-burger {
    width: 44px;
    height: 44px;
  }
  .ml-footer__top {
    gap: 2rem;
  }
  .ml-footer__col h3 {
    font-family: var(--font-body);
    font-weight: 500;
    letter-spacing: 0.18em;
    font-size: 0.8rem;
  }
  .ml-hud__rail {
    min-width: 0;
    grid-template-columns: 1fr 1fr;
  }
  .ml-hud__cell {
    clip-path: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .ml-hud__cell:nth-child(even) {
    border-right: 0;
  }
  .ml-reveal-side,
  [data-ml-stagger] > * {
    transform: translateY(22px);
  }
  .ml-reveal-side.is-in,
  [data-ml-stagger] > *.is-in {
    transform: none;
  }
  .ml-hero {
    min-height: 100svh;
  }
  .ml-hero__copy {
    width: min(100% - 2rem, var(--max));
    padding: 5.5rem 0 4.5rem;
  }
  .ml-hero__brand {
    font-size: clamp(2.4rem, 11vw, 3.4rem);
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .ml-hero__brand-jp {
    font-size: 0.85rem;
    letter-spacing: 0.28em;
    margin: 0.25rem 0 1rem;
  }
  .ml-hero__tag {
    font-size: 1.05rem;
    max-width: none;
    margin-bottom: 0.65rem;
  }
  .ml-hero__sub {
    font-size: 0.88rem;
    margin-bottom: 1.35rem;
  }
  .ml-hero__slash {
    opacity: 0.22;
    mix-blend-mode: normal;
  }
  .ml-hero__img img {
    height: 100%;
    max-width: none;
    width: 100%;
    object-fit: cover;
  }
  .ml-hero__cta,
  .ml-section__body,
  .ml-extra__body {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .ml-hero__cta .ml-btn,
  .ml-section__body .ml-btn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
  .ml-section h2 {
    overflow-wrap: break-word;
    word-break: normal;
  }
  img {
    max-width: 100%;
    height: auto;
  }
  .ml-hero__img img,
  .ml-band__media img,
  .ml-immerse__bg img,
  .ml-typewall__bg img,
  .ml-cta__bg img,
  .ml-section__media img {
    height: 100%;
    max-width: none;
  }
}

@media (max-width: 480px) {
  .ml-hud__rail {
    grid-template-columns: 1fr;
  }
  .ml-hud__cell {
    border-right: 0;
  }
  .ml-btn--lg {
    padding: 0.95rem 1.25rem;
  }
  .ml-hero__hint {
    display: none;
  }
  .ml-hero__brand {
    font-size: 2.35rem;
    letter-spacing: 0.03em;
  }
}

@media (hover: hover) and (pointer: fine) {
  .ml-section--shot:hover .ml-section__media img {
    transform: scale(1.06);
  }
}

/* =========================================================================
   HOMEPAGE v3 — "Grid Start / Launch Ramp" (hub-* namespace)
   Hero launch ramp + start lights / tach marquee / profile lane / soundwall /
   radio chatter / pit gate CTA. Old .ml-hero / .ml-hud / .ml-band / .ml-immerse
   / .ml-typewall / .ml-dyno / .ml-film rules above are left in place, unused.
   ========================================================================= */
:root {
  --hub-green: #22C55E;
  --hub-green-glow: #4ADE80;
}

/* —— 1. Hero —— */
.hub-hero {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--void);
}
.hub-hero__media { position: absolute; inset: 0; }
.hub-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 78%;
  filter: saturate(1.12) contrast(1.08);
}
.hub-hero__scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, var(--void) 0%, rgba(10,10,11,0.72) 26%, rgba(10,10,11,0.22) 55%, rgba(10,10,11,0.58) 100%),
    linear-gradient(115deg, rgba(10,10,11,0.78) 0%, rgba(10,10,11,0.3) 50%, transparent 78%);
}
.hub-hero__grid {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 10px;
  background: repeating-linear-gradient(90deg, #f5f5f7 0 22px, #0a0a0b 22px 44px);
  opacity: 0.9;
  box-shadow: 0 0 24px rgba(225, 29, 46, 0.35);
}
.hub-hero__lights {
  position: absolute;
  top: 16%;
  right: 6%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
}
.hub-hero__light {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(225, 29, 46, 0.25);
  box-shadow: 0 0 10px rgba(225, 29, 46, 0.2);
  opacity: 0.35;
  transform: scale(0.85);
  animation: hub-light-pulse 3.6s ease-in-out infinite;
}
.hub-hero__light--red {
  background: radial-gradient(circle at 35% 30%, var(--crimson-glow), var(--crimson) 70%);
  box-shadow: 0 0 18px rgba(225, 29, 46, 0.55);
}
.hub-hero__light--green {
  background: radial-gradient(circle at 35% 30%, var(--hub-green-glow), var(--hub-green) 70%);
  box-shadow: 0 0 18px rgba(34, 197, 94, 0.55);
}
.hub-hero__light--red:nth-child(1) { animation-delay: 0s; }
.hub-hero__light--red:nth-child(2) { animation-delay: 0.4s; }
.hub-hero__light--red:nth-child(3) { animation-delay: 0.8s; }
.hub-hero__light--red:nth-child(4) { animation-delay: 1.2s; }
.hub-hero__light--green { animation: hub-light-go 3.6s ease-in-out infinite; animation-delay: 1.7s; }
@keyframes hub-light-pulse {
  0%, 12% { opacity: 0.35; transform: scale(0.85); }
  20%, 30% { opacity: 1; transform: scale(1.15); }
  55%, 100% { opacity: 0.3; transform: scale(0.85); }
}
@keyframes hub-light-go {
  0%, 45% { opacity: 0.3; transform: scale(0.85); }
  55%, 82% { opacity: 1; transform: scale(1.25); }
  100% { opacity: 0.3; transform: scale(0.85); }
}
.hub-hero__content {
  position: relative;
  z-index: 3;
  width: min(100% - 2.5rem, var(--max));
  margin: 0 auto;
  padding: 0 0 5.5rem;
}
.hub-hero__brand {
  font-family: var(--font-display);
  font-size: clamp(3.4rem, 16vw, 11.5rem);
  letter-spacing: 0.03em;
  line-height: 0.85;
  color: var(--white);
  text-shadow: 0 0 60px rgba(225, 29, 46, 0.3);
  white-space: nowrap;
}
.hub-hero__brand-jp {
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--crimson-glow);
  letter-spacing: 0.4em;
  margin: 0.5rem 0 1.5rem;
}
.hub-hero__tag {
  font-family: var(--font-body);
  font-size: clamp(1.2rem, 2.6vw, 1.6rem);
  font-weight: 500;
  max-width: 18em;
  margin-bottom: 0.85rem;
  line-height: 1.45;
}
.hub-hero__lead {
  color: var(--steel);
  max-width: 28rem;
  margin-bottom: 1.75rem;
  font-size: 0.95rem;
  line-height: 1.65;
}
.hub-hero__scroll {
  position: absolute;
  right: 1.5rem;
  bottom: 2rem;
  z-index: 3;
  writing-mode: vertical-rl;
  font-family: var(--font-display);
  letter-spacing: 0.3em;
  font-size: 0.75rem;
  color: var(--steel);
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.hub-hero__scroll span {
  width: 1px;
  height: 48px;
  background: var(--crimson);
  animation: ml-scroll-hint 1.6s ease-in-out infinite;
}

/* —— 2. Tach strip —— */
.hub-tach {
  position: relative;
  background: #050506;
  border-top: 1px solid rgba(225, 29, 46, 0.4);
  border-bottom: 1px solid rgba(225, 29, 46, 0.4);
  padding: 1.5rem 0;
  overflow: hidden;
}
.hub-tach__marquee {
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, black 6%, black 94%, transparent);
}
.hub-tach__track {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  width: max-content;
  animation: hub-marquee 20s linear infinite;
}
.hub-tach__word {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 8vw, 4.2rem);
  letter-spacing: 0.05em;
  color: var(--crimson);
  white-space: nowrap;
  line-height: 1;
}
.hub-tach__dot {
  color: rgba(245, 245, 247, 0.25);
  font-size: 0.9rem;
}
@keyframes hub-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.hub-tach__note {
  padding-top: 1.5rem;
  color: var(--steel);
  max-width: 52rem;
  font-size: 0.9rem;
  line-height: 1.85;
}

/* —— 3. Profile lane —— */
.hub-lane { background: var(--void); padding: 5rem 0 2rem; }
.hub-lane__intro { padding-bottom: 2rem; }
.hub-lane__intro h2 { font-size: clamp(2rem, 5vw, 3.4rem); }
.hub-lane__row {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  min-height: min(62vh, 560px);
  overflow: hidden;
  margin-bottom: 2px;
  background: #0c0c0e;
}
.hub-lane__media { position: relative; min-height: 260px; }
.hub-lane__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  min-height: 260px;
  filter: saturate(1.1) contrast(1.05);
}
.hub-lane__copy {
  position: relative;
  padding: clamp(1.75rem, 4vw, 3.5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.55rem;
  background: #0d0d0f;
  border-left: 8px solid var(--crimson);
  box-shadow: inset 6px 0 22px rgba(225, 29, 46, 0.18);
}
.hub-lane__row--right .hub-lane__copy {
  border-left: none;
  border-right: 8px solid var(--crimson);
  box-shadow: inset -6px 0 22px rgba(225, 29, 46, 0.18);
}
.hub-lane__index {
  font-family: var(--font-display);
  color: rgba(225, 29, 46, 0.55);
  font-size: clamp(2.2rem, 6vw, 3.4rem);
  line-height: 1;
}
.hub-lane__name {
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 9vw, 5.5rem);
  font-weight: 400;
  line-height: 0.9;
  letter-spacing: 0.01em;
  margin: 0.1rem 0 0.25rem;
}
.hub-lane__spec {
  display: inline-block;
  width: fit-content;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--white);
  background: rgba(225, 29, 46, 0.18);
  border: 1px solid rgba(225, 29, 46, 0.5);
  padding: 0.3rem 0.75rem;
  margin-bottom: 0.35rem;
}
.hub-lane__copy p { color: var(--steel); max-width: 32em; line-height: 1.7; margin: 0; }
.hub-lane__more { padding: 1.5rem 0 0; text-align: right; }
@media (min-width: 900px) {
  .hub-lane__row { grid-template-columns: 1.3fr 0.7fr; }
  .hub-lane__row--right { grid-template-columns: 0.7fr 1.3fr; }
  .hub-lane__row--right .hub-lane__media { order: 2; }
  .hub-lane__row--right .hub-lane__copy { order: 1; }
  .hub-lane__media { min-height: 100%; }
  .hub-lane__media img { position: absolute; inset: 0; min-height: 100%; }
}

/* —— 4. Soundwall —— */
.hub-soundwall {
  position: relative;
  min-height: 72vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #000;
}
.hub-soundwall__media { position: absolute; inset: 0; }
.hub-soundwall__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.4;
  filter: grayscale(0.25) contrast(1.15) brightness(0.7);
}
.hub-soundwall__scrim {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(225, 29, 46, 0.2), rgba(0, 0, 0, 0.93) 72%);
}
.hub-soundwall__bars {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 150px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.3rem;
  padding: 0 1rem;
  opacity: 0.6;
  pointer-events: none;
}
.hub-soundwall__bars span {
  flex: 0 1 8px;
  width: 8px;
  min-width: 3px;
  transform-origin: bottom;
  background: linear-gradient(to top, var(--crimson), var(--crimson-glow));
  border-radius: 2px 2px 0 0;
  animation: hub-wave 1.5s ease-in-out infinite;
}
@keyframes hub-wave {
  0%, 100% { transform: scaleY(0.35); opacity: 0.65; }
  50% { transform: scaleY(1); opacity: 1; }
}
.hub-soundwall__inner { position: relative; z-index: 1; padding: 4rem 0; }
.hub-soundwall__inner h2 {
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 9vw, 6.5rem);
  font-weight: 400;
  line-height: 0.92;
  letter-spacing: 0.01em;
  margin: 0.5rem 0 1.25rem;
}
.hub-soundwall__inner > p:last-child {
  max-width: 34em;
  color: var(--steel);
  font-size: 1.05rem;
  line-height: 1.75;
}

/* —— 5. Radio chatter —— */
.hub-radio {
  position: relative;
  padding: 5.5rem 0;
  background: #08090a;
  overflow: hidden;
}
.hub-radio__media { position: absolute; inset: 0; opacity: 0.14; }
.hub-radio__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0.5); }
.hub-radio__scan {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(225, 29, 46, 0.035) 3px, rgba(225, 29, 46, 0.035) 4px);
  animation: ml-scan 6s linear infinite;
}
.hub-radio h2 { font-size: clamp(2rem, 4.5vw, 3rem); margin-bottom: 2rem; position: relative; }
.hub-radio__log { position: relative; display: flex; flex-direction: column; gap: 2px; background: rgba(225, 29, 46, 0.15); }
.hub-radio__line {
  background: #101012;
  padding: 1.15rem 1.4rem;
  border-left: 3px solid var(--crimson);
}
.hub-radio__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.85rem;
  margin-bottom: 0.5rem;
}
.hub-radio__callsign {
  font-family: var(--font-display);
  color: var(--crimson-glow);
  letter-spacing: 0.1em;
  font-size: 1.1rem;
}
.hub-radio__time {
  font-size: 0.8rem;
  color: var(--steel);
  letter-spacing: 0.05em;
}
.hub-radio__time::before { content: "● "; color: var(--crimson); }
.hub-radio__msg { color: #e8e8ea; font-size: 1rem; line-height: 1.65; margin: 0 0 0.6rem; }
.hub-radio__foot { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; font-size: 0.85rem; color: var(--steel); }
.hub-radio__foot cite { font-style: normal; color: var(--white); font-weight: 500; }

/* —— 6. Pit gate CTA —— */
.hub-pitgate {
  position: relative;
  min-height: 58vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hub-pitgate__media { position: absolute; inset: 0; }
.hub-pitgate__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.6) saturate(1.1);
}
.hub-pitgate__slash {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg,
    rgba(10,10,11,0.96) 0%,
    rgba(10,10,11,0.96) 46%,
    var(--crimson) 46.4%,
    var(--crimson) 48.4%,
    rgba(10,10,11,0.2) 48.8%,
    rgba(10,10,11,0.2) 100%);
}
.hub-pitgate__content { position: relative; z-index: 1; }
.hub-pitgate__brand { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 1.75rem; }
.hub-pitgate__en {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 8vw, 5rem);
  letter-spacing: 0.04em;
  line-height: 0.95;
}
.hub-pitgate__jp {
  font-size: 0.9rem;
  letter-spacing: 0.3em;
  color: var(--crimson-glow);
}

/* —— Responsive —— */
@media (min-width: 768px) {
  .hub-hero__content { padding-bottom: 6.5rem; }
}
@media (min-width: 1024px) {
  .hub-pitgate__content { max-width: 30rem; }
}

@media (max-width: 767px) {
  .hub-hero__content { width: min(100% - 2rem, var(--max)); padding: 5.5rem 0 4.5rem; }
  .hub-hero__brand { font-size: clamp(2.6rem, 13vw, 3.8rem); letter-spacing: 0.02em; }
  .hub-hero__brand-jp { font-size: 0.85rem; letter-spacing: 0.3em; margin: 0.35rem 0 1.1rem; }
  .hub-hero__tag { font-size: 1.05rem; margin-bottom: 0.65rem; }
  .hub-hero__lead { font-size: 0.88rem; margin-bottom: 1.35rem; }
  .hub-hero__lights { top: 12%; right: 5%; gap: 0.6rem; }
  .hub-hero__light { width: 12px; height: 12px; }
  .hub-lane__name { font-size: clamp(2.2rem, 12vw, 3.2rem); }
  .hub-soundwall__inner h2 { font-size: clamp(2.3rem, 12vw, 3.6rem); }
  .hub-soundwall__bars { height: 90px; gap: 0.2rem; }
  .hub-pitgate__slash {
    background: linear-gradient(100deg,
      rgba(10,10,11,0.97) 0%,
      rgba(10,10,11,0.97) 60%,
      var(--crimson) 60.6%,
      var(--crimson) 63%,
      rgba(10,10,11,0.35) 63.6%,
      rgba(10,10,11,0.35) 100%);
  }
}

@media (max-width: 480px) {
  .hub-hero__scroll { display: none; }
  .hub-tach__word { font-size: 1.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  .hub-hero__light,
  .hub-tach__track,
  .hub-soundwall__bars span,
  .hub-radio__scan,
  .hub-hero__scroll span {
    animation: none;
  }
}
