@font-face {
  font-family: "Montserrat";
  src: url("../fonts/Montserrat-VariableFont_wght.ttf") format("truetype");
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
}

:root {
  /* Master */
  --master-paper: #F4F4F1;
  --master-mist: #ECEBE6;
  --master-greige: #D9D8D2;
  --master-stone: #A8A69D;
  --master-graphite: #76766E;
  --master-ink: #15140F;
  --master-black: #0B0B0B;
  --master-white: #FFFFFF;

  /* Play */
  --play-tint: #E3F4EF;
  --play-light: #B9E4D8;
  --play-soft: #6BC7AC;
  --play-hero: #00A87E;
  --play-strong: #0E7F60;
  --play-deep: #0A5C4A;
  --play-night: #07322B;

  /* Technology */
  --technology-tint: #E6F4FB;
  --technology-light: #B8E0F5;
  --technology-soft: #6FC2EA;
  --technology-hero: #0E9BDE;
  --technology-strong: #0077B4;
  --technology-deep: #02557C;
  --technology-night: #052A40;

  /* Facility */
  --facility-tint: #F1EBF8;
  --facility-light: #D6C8EC;
  --facility-soft: #A88BD1;
  --facility-hero: #5C2E91;
  --facility-strong: #4A2478;
  --facility-deep: #38195C;
  --facility-night: #200E38;

  --font-display: Montserrat, "Noto Sans SC", "PingFang SC", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-sans: Inter, "Noto Sans SC", "PingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "Spline Sans Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  /* CI typography scale · Brand_CI/manifest/tokens.json v2.0 */
  --type-display: clamp(56px, 7.5vw, 96px);
  --type-hero: clamp(40px, 4.375vw, 56px);
  --type-h1: clamp(40px, 4.375vw, 56px);
  --type-h2: clamp(32px, 3.125vw, 40px);
  --type-title: var(--type-h2);
  --type-h3: clamp(24px, 2.188vw, 28px);
  --type-h4: 20px;
  --type-subtitle: var(--type-h4);
  --type-lead: 22px;
  --type-body: 16px;
  --type-small: 13px;
  --type-caption: 11px;
  --nav-height: 56px;
  --radius-control: 4px;
  --radius-media: 8px;
  --ease: cubic-bezier(.4, 0, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--master-white);
  color: var(--master-ink);
  font-family: var(--font-sans);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
  -webkit-font-smoothing: antialiased;
}
body.modal-open,
body.globalnav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img, video { display: block; max-width: 100%; }
h1, h2, h3, h4 { font-family: var(--font-display); }

.ts-main { scroll-snap-type: y proximity; }
.ts-showcase,
.ts-proof,
.ts-cta,
.ts-footer { scroll-snap-align: start; }
.ts-shell { width: min(1200px, calc(100% - 64px)); margin-inline: auto; }
.ts-title,
.ts-subtitle,
.ts-body,
.ts-caption { margin: 0; letter-spacing: normal; }
.ts-title { font-size: var(--type-h2); font-weight: 700; line-height: 1.05; letter-spacing: -.045em; }
.ts-subtitle { font-size: var(--type-h4); font-weight: 600; line-height: 1.3; letter-spacing: -.01em; }
.ts-body { font-size: var(--type-body); font-weight: 400; line-height: 1.6; }
.ts-caption { font-family: var(--font-mono); font-size: var(--type-caption); font-weight: 700; line-height: 1.3; letter-spacing: .09em; }
.ts-accent--play { color: var(--play-strong); }
.ts-accent--facility { color: var(--facility-hero); }
.ts-accent--technology { color: var(--technology-deep); }

.ts-actions { display: flex; justify-content: center; gap: 12px; }
.ts-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 220px;
  width: 220px;
  height: 40px;
  padding: 8px 24px;
  border: 1px solid var(--master-ink);
  border-radius: var(--radius-control);
  background: var(--master-ink);
  color: var(--master-white);
  font-size: var(--type-small);
  font-weight: 500;
  line-height: 22px;
  letter-spacing: normal;
  white-space: nowrap;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.ts-button:hover { background: var(--master-black); border-color: var(--master-black); }
.ts-button--light { background: var(--master-white); border-color: var(--master-white); color: var(--master-ink); }
.ts-button--light:hover { background: var(--master-paper); border-color: var(--master-paper); }
.ts-button--ghost-light { background: transparent; border-color: var(--master-white); color: var(--master-white); }
.ts-button--ghost-light:hover { background: var(--master-white); color: var(--master-ink); }
.ts-button--play { background: var(--play-strong); border-color: var(--play-strong); }
.ts-button--play:hover { background: var(--play-deep); border-color: var(--play-deep); }
.ts-button--facility { background: var(--facility-hero); border-color: var(--facility-hero); }
.ts-button--facility:hover { background: var(--facility-strong); border-color: var(--facility-strong); }
.ts-button--technology { background: var(--technology-deep); border-color: var(--technology-deep); }
.ts-button--technology:hover { background: var(--technology-night); border-color: var(--technology-night); }
.ts-button:focus-visible,
.globalnav a:focus-visible,
.globalnav button:focus-visible,
.lead-modal :focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Shared light navigation across all company pages. */
.globalnav { position: fixed; z-index: 100; inset: 0 0 auto; height: var(--nav-height); background:rgb(244 244 241 / .92); color: var(--master-ink); box-shadow: 0 1px 0 rgb(21 20 15 / .10); backdrop-filter:saturate(1.8) blur(20px); -webkit-backdrop-filter:saturate(1.8) blur(20px); transition: color .25s var(--ease), background-color .25s var(--ease), box-shadow .25s var(--ease); }
.globalnav.is-solid,
.globalnav.is-open { background: var(--master-white); color: var(--master-ink); box-shadow: 0 1px 0 var(--master-greige); }
.globalnav-inner { display: grid; grid-template-columns: 1fr repeat(4, auto) 1fr; align-items: center; gap: 24px; width: min(1200px, calc(100% - 64px)); height: 100%; margin-inline: auto; }
.globalnav-logo { position: relative; width: 140px; height: 28px; justify-self: start; }
.globalnav-logo img { position: absolute; inset: 0; width: 140px; height: 28px; object-fit: contain; transition: opacity .2s var(--ease); }
.globalnav-logo .logo-ink { opacity: 1; }
.globalnav-logo .logo-white { opacity: 0; }
.globalnav.is-solid .logo-ink,
.globalnav.is-open .logo-ink { opacity: 1; }
.globalnav.is-solid .logo-white,
.globalnav.is-open .logo-white { opacity: 0; }
.globalnav-link { font-size: var(--type-small); font-weight: 500; line-height: 1.55; letter-spacing: normal; }
.globalnav-cta { justify-self: end; display: inline-flex; align-items: center; justify-content: center; min-width: 112px; height: 32px; border: 1px solid var(--master-ink); border-radius: var(--radius-control); background:var(--master-ink); color:var(--master-white); font-size: var(--type-small); font-weight: 500; }
.globalnav.is-solid .globalnav-cta,
.globalnav.is-open .globalnav-cta { background: var(--master-ink); border-color: var(--master-ink); color: var(--master-white); }
.globalnav.has-page-plan-cta .globalnav-cta,
.globalnav.has-page-plan-cta .globalnav-overlay-cta { display: none; }
.plan-facility-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 200px !important;
  max-width: 100% !important;
  min-width: 200px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 20px !important;
  border: 1px solid var(--master-white) !important;
  border-radius: var(--radius-control) !important;
  background: transparent !important;
  color: var(--master-white) !important;
  font-size: var(--type-small) !important;
  font-weight: 500 !important;
  line-height: 20px !important;
  text-align: center !important;
}
.plan-facility-cta:hover {
  border-color: var(--master-white) !important;
  background: rgb(255 255 255 / 12%) !important;
  color: var(--master-white) !important;
}
.globalnav .globalnav-cta.plan-facility-cta {
  width: auto !important;
  min-width: 112px !important;
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 14px !important;
  border-color: var(--master-ink) !important;
  background: var(--master-ink) !important;
  color: var(--master-white) !important;
}
.globalnav .globalnav-cta.plan-facility-cta:hover {
  border-color: var(--master-ink) !important;
  background: var(--master-ink) !important;
  color: var(--master-white) !important;
  opacity: .8;
}
.globalnav.has-page-plan-cta .plan-facility-cta {
  display: none !important;
}
.globalnav-toggle { display: none; width: 40px; height: 40px; padding: 12px 10px; border: 0; background: transparent; color: currentColor; }
.globalnav-toggle span { display: block; width: 18px; height: 1px; margin: 4px auto; background: currentColor; transition: transform .2s var(--ease); }
.globalnav-overlay { display: none; }

.ts-hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: var(--master-black);
  color: var(--master-white);
}
.ts-hero__media,
.ts-hero__scrim { position: absolute; inset: 0; }
.ts-hero__media video { width: 100%; height: 100%; object-fit: cover; }
.ts-hero__scrim { background: var(--master-black); opacity: .44; }
.ts-hero__content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; min-height: 100svh; padding: calc(var(--nav-height) + 48px) 24px 56px; text-align: center; }
.ts-hero__title { max-width: 900px; margin: 0; font-size: var(--type-hero); font-weight: 700; line-height: 1; letter-spacing: -.05em; }
.ts-hero__subtitle { max-width: 680px; margin-top: 12px; text-wrap: balance; }
.ts-hero__actions { margin-top: 28px; }
.ts-hero__note { margin-top: auto; color: var(--master-mist); }

.ts-showcase { min-height: 100svh; padding: 72px 0; background: var(--master-white); }
.ts-showcase--paper { background: var(--master-paper); }
.ts-showcase__content { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ts-showcase__subtitle { max-width: 760px; margin-top: 10px; color: var(--master-graphite); text-wrap: balance; }
.ts-showcase__actions { margin-top: 24px; }
.ts-media-frame { position: relative; width: min(1360px, calc(100% - 48px)); margin: 48px auto 0; overflow: hidden; border-radius: var(--radius-media); background: var(--master-mist); }
.ts-media-frame img { width: 100%; height: clamp(360px, 52vw, 650px); object-fit: cover; }
.ts-media-frame__caption { position: absolute; z-index: 1; right: 12px; bottom: 12px; padding: 6px 8px; border-radius: var(--radius-control); background: var(--master-black); color: var(--master-white); }

.ts-product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; width: min(1200px, calc(100% - 64px)); margin: 16px auto 0; }
.ts-product-card { display: flex; flex-direction: column; min-height: 260px; padding: 28px; border: 1px solid var(--master-greige); border-radius: var(--radius-control); background: var(--master-white); text-align: left; }
.ts-product-card__eyebrow { color: var(--play-strong); }
.ts-product-card h3 { margin: 48px 0 0; font-size: var(--type-h3); font-weight: 600; line-height: 1.15; letter-spacing: -.03em; }
.ts-product-card p { margin: 12px 0 0; }
.ts-product-card p strong { color: var(--play-strong); font-weight: 500; }
.ts-product-card__price,
.ts-product-card__note { margin-top: auto !important; padding-top: 24px; color: var(--play-strong); font-family: var(--font-mono); font-size: var(--type-caption); }

.ts-facility-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; width: min(1200px, calc(100% - 64px)); margin: 16px auto 0; }
.ts-facility-card { min-height: 150px; padding: 24px; border: 1px solid var(--facility-light); border-radius: var(--radius-control); background: var(--facility-tint); text-align: left; }
.ts-facility-card h3 { margin: 0; color: var(--facility-hero); font-size: var(--type-h4); font-weight: 600; line-height: 1.3; letter-spacing: -.01em; }
.ts-facility-card p { margin: 10px 0 0; }

.ts-tech-path { display: grid; grid-template-columns: repeat(4, 1fr); width: min(1200px, calc(100% - 64px)); margin: 16px auto 0; border: 1px solid var(--technology-light); border-radius: var(--radius-control); background: var(--technology-tint); }
.ts-tech-path__item { min-height: 120px; padding: 24px; text-align: left; }
.ts-tech-path__item + .ts-tech-path__item { border-left: 1px solid var(--technology-light); }
.ts-tech-path__item span { color: var(--technology-deep); }
.ts-tech-path__item p { margin: 28px 0 0; color: var(--technology-deep); font-size: var(--type-lead); font-weight: 500; line-height: 1.35; }

.ts-proof { min-height: 46svh; display: grid; align-items: center; padding: 80px 0; background: var(--master-ink); color: var(--master-white); }
.ts-proof__title { text-align: center; }
.ts-proof__grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 48px; border-top: 1px solid var(--master-graphite); border-bottom: 1px solid var(--master-graphite); }
.ts-proof__item { min-height: 136px; padding: 24px; }
.ts-proof__item + .ts-proof__item { border-left: 1px solid var(--master-graphite); }
.ts-proof__item span { color: var(--master-stone); }
.ts-proof__item strong { display: block; margin-top: 24px; font-size: var(--type-lead); font-weight: 500; line-height: 1.4; }

.ts-cta { min-height: 70svh; display: grid; place-items: center; padding: 80px 0; background: var(--master-black); color: var(--master-white); text-align: center; }
.ts-cta__subtitle { margin-top: 10px; color: var(--master-stone); }
.ts-cta__actions { margin-top: 28px; }
.ts-cta .ts-button--facility { background: transparent; border-color: var(--master-white); color: var(--master-white); }
.ts-cta .ts-button--facility:hover { background: var(--master-white); border-color: var(--master-white); color: var(--master-ink); }

.ts-footer { padding: 22px 0; background: var(--master-black); color: var(--master-stone); }
.ts-footer__line { display: flex; align-items: center; justify-content: center; gap: 10px 24px; flex-wrap: wrap; font-size: var(--type-small); font-weight: 400; line-height: 1.55; }
.ts-footer__line a { transition: color .2s var(--ease); }
.ts-footer__line a:hover,
.ts-footer__line a:focus-visible { color: var(--master-white); }

.ts-reveal { opacity: 0; transform: translateY(18px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.ts-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Lead modal: copied structurally from the approved current homepage, restyled with the same source tokens. */
.lead-overlay { position: fixed; z-index: 300; inset: 0; display: none; place-items: center; padding: 24px; background: var(--master-black); }
.lead-overlay.is-open { display: grid; }
.lead-modal { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(520px, 1.25fr); width: min(1040px, 100%); max-height: min(760px, calc(100svh - 48px)); overflow: hidden; border-radius: var(--radius-media); background: var(--master-white); color: var(--master-ink); }
.lead-aside { display: flex; flex-direction: column; justify-content: space-between; padding: 36px; background: var(--master-ink); color: var(--master-white); }
.lead-aside h2 { margin: 16px 0 12px; font-size: var(--type-h2); font-weight: 500; line-height: 1.25; }
.lead-aside p { margin: 0; font-size: var(--type-body); }
.lead-aside-foot { color: var(--master-stone); font-size: var(--type-caption); }
.lead-steps { display: grid; gap: 18px; margin-top: 32px; }
.lead-step { display: grid; grid-template-columns: 24px 1fr; gap: 12px; font-size: 13px; }
.lead-step b { color: var(--master-stone); font-family: var(--font-mono); font-weight: 400; }
.lead-step strong { display: block; margin-bottom: 2px; font-weight: 500; }
.lead-main { overflow: auto; padding: 32px; }
.lead-top { display: flex; justify-content: space-between; gap: 20px; }
.lead-intent, .lead-source { color: var(--master-graphite); font-family: var(--font-mono); font-size: var(--type-caption); }
.lead-top h3 { margin: 8px 0 0; font-size: var(--type-h2); font-weight: 500; line-height: 1.25; }
.lead-close { flex: 0 0 auto; width: 40px; height: 40px; border: 1px solid var(--master-greige); border-radius: var(--radius-control); background: var(--master-white); color: var(--master-ink); font-size: 24px; font-weight: 400; }
.lead-form { margin-top: 28px; }
.lead-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.lead-field { margin-top: 14px; }
.lead-field label { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 500; }
.lead-field label span { color: var(--master-graphite); font-weight: 400; }
.lead-field input, .lead-field select, .lead-field textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--master-stone); border-radius: var(--radius-control); background: var(--master-white); color: var(--master-ink); font-size: var(--type-body); }
.lead-field textarea { min-height: 72px; resize: vertical; }
.lead-form-foot { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-top: 24px; }
.lead-form-note { color: var(--master-graphite); font-size: var(--type-caption); }
.lead-submit { width: 180px; }
.lead-error { padding: 12px; border: 1px solid var(--master-ink); border-radius: var(--radius-control); font-size: 13px; }
.lead-success { display: none; margin-top: 40px; }
.lead-success.is-visible { display: block; }
.lead-success h3 { margin: 0; font-size: var(--type-h2); font-weight: 500; }
.hp { position: absolute !important; left: -9999px !important; }

@media (max-width: 1024px) {
  .ts-shell, .globalnav-inner { width: min(100% - 48px, 920px); }
  .globalnav-inner { gap: 18px; }
  .ts-product-grid, .ts-facility-grid, .ts-tech-path { width: calc(100% - 48px); }
  .ts-facility-grid { grid-template-columns: repeat(2, 1fr); }
  .ts-tech-path { grid-template-columns: repeat(2, 1fr); }
  .ts-tech-path__item:nth-child(3) { border-left: 0; border-top: 1px solid var(--technology-light); }
  .ts-tech-path__item:nth-child(4) { border-top: 1px solid var(--technology-light); }
}

@media (max-width: 980px) {
  .globalnav { color: var(--master-white); }
  .globalnav-inner { grid-template-columns: 1fr auto; }
  .globalnav-link, .globalnav-cta { display: none; }
  .globalnav-toggle { display: block; justify-self: end; }
  .globalnav-overlay { position: fixed; inset: var(--nav-height) 0 0; padding: 40px 24px; background: var(--master-white); color: var(--master-ink); }
  .globalnav.is-open .globalnav-overlay { display: block; }
  .globalnav-overlay a { display: block; width: max-content; margin-bottom: 20px; font-size: var(--type-h2); font-weight: 500; }
  .globalnav-overlay-cta { margin-top: 32px; padding: 8px 20px; border: 1px solid var(--master-ink); border-radius: var(--radius-control); font-size: 15px !important; }
}

@media (max-width: 640px) {
  .ts-shell, .globalnav-inner { width: calc(100% - 40px); }
  .ts-actions { width: 100%; flex-direction: column; gap: 8px; }
  .ts-button { flex-basis: 40px; width: 100%; }
  .ts-hero__content { justify-content: flex-start; padding-top: 112px; }
  .ts-hero__title { max-width: 330px; }
  .ts-hero__subtitle { max-width: 330px; font-size: 17px; }
  .ts-hero__actions { margin-top: 22px; }
  .ts-showcase { min-height: auto; padding: 64px 0; }
  .ts-showcase__content { padding-inline: 20px; }
  .ts-showcase__subtitle { font-size: 17px; }
  .ts-media-frame { width: calc(100% - 24px); margin-top: 32px; }
  .ts-media-frame img { height: 58svh; min-height: 420px; }
  .ts-product-grid, .ts-facility-grid, .ts-tech-path { width: calc(100% - 40px); grid-template-columns: 1fr; }
  .ts-product-card { min-height: 240px; }
  .ts-facility-card { min-height: auto; }
  .ts-tech-path__item + .ts-tech-path__item { border-left: 0; border-top: 1px solid var(--technology-light); }
  .ts-proof { min-height: auto; padding: 64px 0; }
  .ts-proof__grid { grid-template-columns: 1fr; }
  .ts-proof__item + .ts-proof__item { border-left: 0; border-top: 1px solid var(--master-graphite); }
  .ts-cta { min-height: 70svh; padding: 64px 0; }
  .lead-overlay { padding: 0; }
  .lead-modal { grid-template-columns: 1fr; width: 100%; max-height: 100svh; min-height: 100svh; border-radius: 0; overflow: auto; }
  .lead-aside { padding: 28px 24px; }
  .lead-aside-foot { display: none; }
  .lead-main { overflow: visible; padding: 24px; }
  .lead-row { grid-template-columns: 1fr; gap: 0; }
  .lead-form-foot { align-items: stretch; flex-direction: column; }
  .lead-submit { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ts-main { scroll-snap-type: none; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .ts-reveal { opacity: 1; transform: none; }
}

/* Inner pages · Tesla alignment (2026-07-22)
   Appended only: the approved homepage rules above remain byte-for-byte intact. */
:root { --img-grade: saturate(1.06) contrast(1.03); }
.inner-tesla { background:var(--master-paper);color:var(--master-ink);font-family:var(--font-sans);font-weight:400;letter-spacing:normal;overflow-x:clip; }
.inner-tesla main { background:var(--master-paper); }
.inner-tesla :is(p,a,button,li,span,strong){letter-spacing:normal}
.inner-tesla :is(strong,b){font-weight:600}.inner-tesla :is(p,li){font-weight:400}
.inner-tesla h1{font-size:var(--type-h1);font-weight:700;line-height:1;letter-spacing:-.05em}.inner-tesla h2{font-size:var(--type-h2);font-weight:700;line-height:1.05;letter-spacing:-.045em}.inner-tesla h3{font-size:var(--type-h3);font-weight:600;line-height:1.15;letter-spacing:-.03em}.inner-tesla h4{font-size:var(--type-h4);font-weight:600;line-height:1.3;letter-spacing:-.01em}.inner-tesla :is(p,li){font-size:var(--type-body);line-height:1.6}
.inner-tesla :is(.eyebrow,.mono,.beyebrow,.snum,.draft-label,.mono-cap){font-family:var(--font-mono);font-size:var(--type-caption);font-weight:700;line-height:1.3;letter-spacing:.09em;text-transform:uppercase}
.inner-tesla .globalnav{color:var(--master-ink);background:color-mix(in srgb,var(--master-paper) 92%,transparent)}.inner-tesla .globalnav .logo-white{display:none}.inner-tesla .globalnav .logo-ink{display:block}.inner-tesla .globalnav-link[aria-current="page"]{color:var(--master-black)}
.inner-tesla img[src$=".jpg"],.inner-tesla img[src$=".jpeg"]{filter:var(--img-grade)!important;opacity:1!important}.inner-tesla img[src$=".png"],.inner-tesla img[src$=".svg"]{filter:none!important;opacity:1!important}
.inner-tesla :is(.ts-media-frame,.f-split-media,.f-wide-media,.capture-media,.sec-media,.split-media,.proof-figure,.editorial-media,.media-card,.feat,.capfig,.mslot){border-radius:var(--radius-media);overflow:hidden}
.inner-tesla :is(.hero-visual,.scene,.operator-visual,.f-media,.moments-head,.hero,.feat,.layer)::before,.inner-tesla :is(.hero-visual,.scene,.operator-visual,.f-media,.moments-head)::after{display:none!important}
.inner-tesla :is(#system,#court,#capture,#understand,#record,#operators,.connect,.operators,.footer-cta)::before{display:none!important}
.inner-tesla .hero::after{background:var(--master-black)!important;opacity:.40!important}.inner-tesla .layer::after{inset:auto 0 0!important;height:55%!important;background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--master-black) 55%,transparent) 100%)!important}
.inner-tesla :is(.hero-scrim,.vstage-scrim){background:var(--master-black)!important;opacity:.40!important}.inner-tesla :is(.feat-scrim,.moments-head-scrim,.vdemo-scrim){inset:auto 0 0!important;height:55%!important;background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--master-black) 55%,transparent) 100%)!important}
.inner-tesla :is(.intro,.system,.proof-copy,.value,.closing,.f-band,.f-process,.f-split-copy,.f-dura-copy,.editorial-copy,.build-copy,.spec-hero,.spec-intro,.flow,.band,.dura-text){padding-inline:clamp(24px,8vw,120px)}
.inner-tesla :is(.system,.f-split,.f-image-band,.f-dura,.proof,.value,.closing,.editorial-section,.build-section,.flow){scroll-margin-top:72px}.inner-tesla :is(.button,.btn,.btn-band,.psub-cta,.globalnav-cta){min-height:40px;border-radius:var(--radius-control);font-weight:500}.inner-tesla .localnav{top:var(--nav-height)}
.inner-tesla .ts-footer{position:relative;z-index:2;display:block;padding:22px 0;background:var(--master-black);color:var(--master-stone)}
@media(max-width:640px){.inner-tesla :is(.intro,.system,.proof-copy,.value,.closing,.f-band,.f-process,.f-split-copy,.f-dura-copy,.editorial-copy,.build-copy,.spec-hero,.spec-intro,.flow,.band,.dura-text){padding-inline:20px}}
.inner-tesla .hero-visual::after,.inner-tesla .facility-hero .f-media::after{display:block!important;content:"";position:absolute;inset:0;background:var(--master-black)!important;opacity:.40!important}

/* Media statement standard: large editorial copy over immersive imagery. */
.inner-tesla {
  --type-media-statement: clamp(32px, 3.4vw, 52px);
}
.inner-tesla :is(.vstage-state, .story-lines) p {
  font-family: var(--font-display);
  font-size: var(--type-h2);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -.045em;
}
@media (max-width: 640px) {
  .inner-tesla {
    --type-media-statement: 30px;
  }
}

/* Product pages: local navigation takes over the viewport edge after scroll. */
.has-localnav .globalnav {
  transition: transform .28s var(--ease), color .25s var(--ease), background-color .25s var(--ease), box-shadow .25s var(--ease);
  will-change: transform;
}
.has-localnav .globalnav.is-scroll-hidden {
  transform: translateY(-100%);
  pointer-events: none;
}
.inner-tesla.has-localnav .localnav {
  position: fixed;
  inset: 0 0 auto;
  top: 0;
  z-index: 1090;
  color: var(--master-ink);
  background: color-mix(in srgb, var(--master-paper) 88%, transparent);
  border-bottom: 1px solid var(--master-greige);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  backdrop-filter: saturate(160%) blur(14px);
  opacity: 0;
  transform: translateY(-100%);
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s var(--ease), transform .28s var(--ease), visibility 0s linear .28s;
}
.inner-tesla.has-localnav.localnav-primary .localnav {
  top: 0;
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}
.inner-tesla .psub-inner {
  width: min(1200px, calc(100% - 64px));
  height: 50px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 28px;
}
.inner-tesla .psub-name {
  flex: none;
  color: var(--master-ink);
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.015em;
  white-space: nowrap;
}
.inner-tesla .psub-links {
  display: flex;
  align-items: stretch;
  align-self: stretch;
  gap: 28px;
  margin: 0 0 0 auto;
  padding: 0;
  list-style: none;
}
.inner-tesla .psub-links li {
  display: flex;
}
.inner-tesla .psub-links a {
  position: relative;
  display: flex;
  align-items: center;
  color: var(--master-graphite);
  font-size: 14px;
  line-height: 1;
  white-space: nowrap;
}
.inner-tesla .psub-links a:hover,
.inner-tesla .psub-links a.cur,
.inner-tesla .psub-links a[aria-current="page"] {
  color: var(--master-ink);
}
.inner-tesla .psub-links a.cur::after,
.inner-tesla .psub-links a[aria-current="page"]::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: var(--accent, var(--technology-hero));
}
.inner-tesla .psub-cta {
  min-width: 200px;
  min-height: 40px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--master-ink);
  background: transparent;
  border: 1px solid var(--master-ink);
  border-radius: var(--radius-control);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.inner-tesla .psub-cta:hover {
  color: var(--master-paper);
  background: var(--master-ink);
}
.inner-tesla .psub .psub-cta.plan-facility-cta {
  color: var(--master-ink) !important;
  background: transparent !important;
  border-color: var(--master-ink) !important;
}
.inner-tesla .psub .psub-cta.plan-facility-cta:hover {
  color: var(--master-paper) !important;
  background: var(--master-ink) !important;
  border-color: var(--master-ink) !important;
}
.psub-name--logo {
  display: flex;
  flex: none;
  align-items: center;
  line-height: 0;
}
.psub-name--logo .play-lockup,
.psub-name--logo .facility-lockup,
.psub-name--logo .technology-lockup {
  display: block;
  width: clamp(136px, 15vw, 174px);
  height: auto;
  object-fit: contain;
}
@media (max-width: 640px) {
  .inner-tesla .psub-inner {
    width: calc(100% - 32px);
    gap: 14px;
  }
  .inner-tesla .psub-name {
    font-size: 15px;
  }
  .inner-tesla .psub-links {
    display: none;
  }
  .inner-tesla .psub-cta {
    min-width: 0;
    min-height: 36px;
    margin-left: auto;
    padding-inline: 14px;
    font-size: 12px;
  }
  .psub-name--logo .play-lockup,
  .psub-name--logo .facility-lockup,
  .psub-name--logo .technology-lockup { width: 116px; }
}
@media (prefers-reduced-motion: reduce) {
  .has-localnav .globalnav,
  .has-localnav .localnav { transition: none; }
}

/* CI typography authority
   Keeps page-local presentation rules from redefining the shared type hierarchy. */
body.inner-tesla main h1,
.ts-main h1 {
  font-family: var(--font-display) !important;
  font-size: var(--type-h1) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: -.05em !important;
}
body.inner-tesla main h2,
.ts-main h2 {
  font-family: var(--font-display) !important;
  font-size: var(--type-h2) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: -.045em !important;
}
body.inner-tesla main h3,
.ts-main h3 {
  font-family: var(--font-display) !important;
  font-size: var(--type-h3) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: -.03em !important;
}
body.inner-tesla main h4,
.ts-main h4 {
  font-family: var(--font-display) !important;
  font-size: var(--type-h4) !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: -.01em !important;
}
body.inner-tesla :is(.eyebrow,.mono,.beyebrow,.snum,.draft-label,.mono-cap),
.ts-main .ts-caption,
body.inner-tesla :is(.spec-k,.spec-idx,.layer-kicker,.series-card__meta,.base-card__meta,.flow-tag,.flow-cap,.capnum,.capmodal-num,.pos-tag,.series-type,.vhero-hint),
body.inner-tesla :is(.configuration__item,.engineering-item,.path-step,.sc-supports) > span,
body.inner-tesla :is(.footer-col h4,.field label) {
  font-family: var(--font-mono) !important;
  font-size: var(--type-caption) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase;
}
body.inner-tesla :is(.series-name,.path-step strong,.configuration__item strong) {
  font-family: var(--font-display) !important;
}
body.inner-tesla :is(.crange-top output,.calc-footprint,.effective-rate) {
  font-family: var(--font-mono) !important;
  font-size: var(--type-small) !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  font-variant-numeric: tabular-nums;
}
body.inner-tesla :is(.footer-bottom .meta,.footer-bottom .legal,.ts-footer__line) {
  font-family: var(--font-sans) !important;
  font-size: var(--type-small) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}
body :is(.globalnav-link,.globalnav-cta,.plan-facility-cta,.psub-link,.psub-cta,.ts-button) {
  font-family: var(--font-sans) !important;
  font-size: var(--type-small) !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  letter-spacing: normal !important;
}
