/* Production composition only. Approved scene CSS remains the desktop source.
   Every rule belongs to this homepage; native product type is never reset. */
body.home-v2 .site-header .brand .brand-master-logo {
  width:100%;
  height:auto;
  aspect-ratio:988 / 256;
  object-fit:contain;
}
body.home-v2 .home-anchor { position:absolute; width:1px; height:1px; pointer-events:none; }

body.home-v2 #feature-cards {
  padding:0 0 96px;
  color:var(--ink);
  background:var(--canvas);
}
body.home-v2 #feature-cards .afc-container {
  margin:0 auto;
}
body.home-v2 #feature-cards .afc-proof-heading {
  padding-top:32px;
}
body.home-v2 #feature-cards .afc-proof-heading h2 {
  margin:0;
  font-size:52px;
  line-height:1.04;
  letter-spacing:-1.6px;
  font-weight:450;
  font-variation-settings:"SHRP" 80,"CRSV" 0,"slnt" 0;
}

/* Existing public destinations, in the accepted marketing palette. */
body.home-v2 .home-footer {
  border-top:1px solid var(--hairline);
  padding:48px 0 24px;
  color:var(--ink);
  background:var(--paper);
  font-family:Geologica,Arial,sans-serif;
  font-weight:400;
  font-variation-settings:"SHRP" 20,"CRSV" 0,"slnt" 0;
}
body.home-v2 .home-footer :is(.foot__in,.foot__low) {
  width:min(1200px, calc(100% - 112px));
  margin:0 auto;
}
body.home-v2 .home-footer .foot__in {
  display:grid;
  grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);
  gap:48px;
}
body.home-v2 .home-footer .foot__brand { min-width:0; }
body.home-v2 .home-footer .top__brand {
  display:inline-flex;
  align-items:center;
  max-width:100%;
}
body.home-v2 .home-footer .foot__brand p {
  max-width:30ch;
  margin:16px 0 0;
  font-size:14px;
  line-height:1.65;
  color:var(--muted);
}
body.home-v2 .home-footer .foot__links {
  min-width:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
}
body.home-v2 .home-footer .foot__col {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:12px;
  font-size:13px;
  line-height:1.5;
}
body.home-v2 .home-footer .foot__col b {
  margin-bottom:4px;
  font-size:12px;
  font-weight:500;
  color:var(--ink);
}
body.home-v2 .home-footer :is(.foot__col a,.foot__low a) {
  color:var(--muted);
  overflow-wrap:anywhere;
}
body.home-v2 .home-footer :is(.foot__col a,.foot__low a):hover {
  color:var(--accent);
  text-decoration:underline;
}
body.home-v2 .home-footer .foot__low {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px 24px;
  border-top:1px solid var(--hairline);
  margin-top:32px;
  padding-top:20px;
  font-size:12px;
  line-height:1.5;
  color:var(--muted);
}

@media (max-width:1279px) {
  body.home-v2 .home-footer :is(.foot__in,.foot__low) {
    width:calc(100% - 64px);
  }
  body.home-v2 #feature-cards .afc-proof-heading h2 { font-size:46px; }
}

/* The same navigation is available before script execution and without JS. */
@media (max-width:1119px) {
  html.no-js body.home-v2 .site-header { height:auto; }
  html.no-js body.home-v2 .header-row {
    min-height:80px;
    height:auto;
    flex-wrap:wrap;
    gap:16px;
    padding-top:20px;
    padding-bottom:20px;
  }
  html.no-js body.home-v2 .compact-menu-toggle { display:none; }
  html.no-js body.home-v2 .site-header #compact-menu[hidden] {
    display:flex;
    position:static;
    order:3;
    flex:1 1 100%;
    flex-direction:row;
    flex-wrap:wrap;
    width:100%;
    max-width:none;
    margin:0;
    padding:0;
    gap:0 16px;
    border:0;
    border-radius:0;
  }
  html.no-js body.home-v2 #compact-menu a { padding:10px 0; }
  html.no-js body.home-v2 .header-install { margin-left:auto; }
}

@media (max-width:899px) {
  body.home-v2 .home-footer .foot__in { grid-template-columns:minmax(0,1fr); gap:32px; }
  body.home-v2 #feature-cards .afc-proof-heading h2 { font-size:42px; }
}

/* Compact production composition: content reflows instead of being covered by
   floating fragments. The scene canvas keeps the original camera ratio. */
@media (max-width:767px) {
  body.home-v2 .container,
  body.home-v2 .hero-product,
  body.home-v2 #feature-cards .afc-container,
  body.home-v2 .home-footer :is(.foot__in,.foot__low) {
    width:calc(100% - 40px);
  }
  body.home-v2 .hero-copy { padding-top:48px; }
  body.home-v2 .hero-copy h1 {
    width:100%;
    max-width:100%;
    font-size:clamp(26px,7.1vw,52px);
    letter-spacing:-.035em;
    overflow-wrap:break-word;
  }
  body.home-v2 .hero-description { font-size:16px; }
  body.home-v2 .hero-actions {
    width:100%;
    align-items:flex-start;
    gap:20px;
  }
  body.home-v2 .hero-actions .button { max-width:100%; }
  body.home-v2 .hero-product {
    display:flex;
    flex-direction:column;
    gap:24px;
    margin-top:48px;
  }
  body.home-v2 .sheet-back { inset:-8px 0 16px 8px; }
  body.home-v2 .camera-sheet { min-width:0; padding:0 12px 12px; }
  body.home-v2 .sheet-topline {
    height:auto;
    min-height:46px;
    flex-wrap:wrap;
    gap:4px 12px;
    padding:10px 0;
  }
  body.home-v2 .camera-sheet-caption {
    height:auto;
    min-height:39px;
    flex-wrap:wrap;
    gap:8px;
    padding:12px 0 0;
  }
  body.home-v2 .hero-event {
    position:relative;
    inset:auto;
    width:100%;
    max-width:none;
  }
  body.home-v2 .hero-event img { width:100%; height:auto; }
  body.home-v2 .hero-time-sheet {
    width:100%;
    margin:0;
    padding:12px;
  }
  body.home-v2 .hero-time-title { flex-wrap:wrap; gap:8px; }
  /* Keep the measured native playhead centered in the unchanged capture. */
  body.home-v2 .hero-timeline img { left:calc(50% - 1099.006211px); }
  body.home-v2 .archive-timeline img { left:calc(50% - 263.130435px); }
  body.home-v2 .archive-heading h2 {
    font-size:clamp(28px,6.5vw,44px);
    letter-spacing:-.035em;
  }
  body.home-v2 .archive-heading>p { font-size:16px; }
  body.home-v2 .archive-controls { grid-template-columns:minmax(0,1fr); gap:20px; }
  body.home-v2 .mode-controls { width:100%; }
  body.home-v2 .event-jump { min-height:44px; }

  body.home-v2 #analytics,
  body.home-v2 #architecture,
  body.home-v2 #pwa { padding-top:72px; }
  body.home-v2 #analytics h2,
  body.home-v2 #architecture h2,
  body.home-v2 #pwa h2 {
    font-size:clamp(28px,6.5vw,44px);
    letter-spacing:-.035em;
  }
  body.home-v2 #analytics .an-product-top {
    height:auto;
    min-height:40px;
    padding:10px 12px;
    flex-wrap:wrap;
    gap:6px 12px;
  }
  body.home-v2 #analytics .an-product { overflow:visible; }
  body.home-v2 #analytics .an-camera {
    aspect-ratio:1672 / 941;
    overflow:visible;
  }
  /* JS draws against camera.clientHeight. Reserve the separate native event
     below the camera without changing that coordinate system or its fonts. */
  body.home-v2 #analytics[data-state=record] .an-product { margin-bottom:260px; }
  body.home-v2 #analytics .an-event-card {
    top:calc(100% + 16px);
    right:auto;
    left:0;
    width:100%;
    padding:16px;
  }
  body.home-v2 #analytics .an-event-head { gap:12px; }
  body.home-v2 #analytics .an-event-head img { width:80px; height:60px; }
  body.home-v2 #analytics .an-media-message {
    left:8px;
    right:8px;
    bottom:8px;
    padding:12px;
  }
  body.home-v2 #analytics .an-steps { grid-template-columns:minmax(0,1fr); }

  /* The existing connector controller uses scene width + 12px for its outer
     route. This reserved rail keeps the complete route inside the container. */
  body.home-v2 #architecture .av-scene {
    width:calc(100% - 16px);
    margin-left:0;
    margin-right:16px;
    gap:64px;
  }
  body.home-v2 #architecture .av-core {
    height:auto;
    min-height:288px;
    padding:24px 20px;
  }
  body.home-v2 #architecture .av-core h3 { font-size:28px; }
  body.home-v2 #architecture .av-health { flex-wrap:wrap; gap:12px; }
  body.home-v2 #architecture .av-storage { padding:20px 16px; gap:12px; }
  body.home-v2 #architecture .av-storage h3 { font-size:24px; }
  body.home-v2 #architecture .av-web-client { grid-template-columns:minmax(0,1fr); gap:16px; }
  body.home-v2 #architecture .av-desktop .av-client-title { flex-wrap:wrap; }
  body.home-v2 #architecture .av-client-title { flex-wrap:wrap; gap:8px 12px; }
  body.home-v2 #architecture .av-route p {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
  }
  body.home-v2 #architecture .av-route p>span:not(.av-route-connector) { overflow-wrap:anywhere; }
  body.home-v2 #architecture .av-route-connector {
    min-width:0;
    width:1px;
    height:18px;
    margin-left:12px;
    border-top:0;
    border-left:1px solid var(--construction);
  }
  body.home-v2 #architecture .av-route-remote .av-route-connector { border-left-style:dashed; }
  body.home-v2 #architecture .av-route-connector::after {
    right:auto;
    left:-3px;
    top:auto;
    bottom:0;
    transform:rotate(135deg);
  }

  body.home-v2 #pwa .pwa-tabs { width:100%; gap:20px; }
  body.home-v2 #pwa .pwa-tabs button { min-width:0; font-size:14px; }
  body.home-v2 #pwa .pwa-window-chrome { height:auto; min-height:58px; }
  body.home-v2 #pwa .pwa-browser-chrome,
  body.home-v2 #pwa .pwa-app-chrome { padding:12px; flex-wrap:wrap; gap:12px; }
  body.home-v2 #pwa .pwa-address { flex:1 1 100%; min-width:0; }
  body.home-v2 #pwa .pwa-install { flex:1 1 100%; min-height:40px; }
  body.home-v2 #pwa .pwa-app-name { min-width:0; }
  body.home-v2 #pwa .pwa-standalone-label { margin-left:0; }
  body.home-v2 #pwa .pwa-desktop-roadmap { grid-template-columns:minmax(0,1fr); }
  body.home-v2 #pwa .pwa-roadmap-status { grid-column:1; margin-top:0; }

  body.home-v2 #feature-cards { padding-bottom:64px; }
  body.home-v2 #feature-cards .afc-proof-heading h2 { font-size:34px; letter-spacing:-1px; }
  body.home-v2 #feature-cards .afc-motion-toolbar { display:block; text-align:left; }
  body.home-v2 #feature-cards .afc-motion-toolbar button { max-width:100%; min-height:44px; text-align:left; }
  body.home-v2 #feature-cards .afc-motion-toolbar p { margin-top:10px; max-width:none; }
  body.home-v2 #feature-cards .afc-bento { display:flex; flex-direction:column; }
  body.home-v2 #feature-cards .afc-card { display:flex; flex-direction:column; height:auto; }
  body.home-v2 #feature-cards .afc-copy,
  body.home-v2 #feature-cards .afc-analytics .afc-copy,
  body.home-v2 #feature-cards .afc-pwa .afc-copy,
  body.home-v2 #feature-cards .afc-server .afc-copy { height:auto; padding:24px; }
  body.home-v2 #feature-cards .afc-visual { position:relative; inset:auto; flex:none; }
  body.home-v2 #feature-cards .afc-archive-visual { height:235px; }
  body.home-v2 #feature-cards .afc-analytics-visual { height:clamp(400px, calc((100vw - 80px) * .944445 + 160px), 760px); }
  body.home-v2 #feature-cards .afc-analytics-camera {
    left:20px;
    right:20px;
    height:auto;
    aspect-ratio:720 / 680;
  }
  body.home-v2 #feature-cards .afc-analytics-event { left:20px; right:20px; width:auto; bottom:45px; }
  body.home-v2 #feature-cards .afc-pwa-visual,
  body.home-v2 #feature-cards .afc-server-visual { height:240px; }
  body.home-v2 #feature-cards .afc-pwa-window { top:12px; left:20px; right:20px; width:auto; }
  body.home-v2 #feature-cards .afc-pwa-app-icon { left:20px; bottom:20px; }

  body.home-v2 .home-footer .foot__links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
}

@media (max-width:599px) {
  html.no-js body.home-v2 .site-header #compact-menu[hidden] { grid-column:1 / -1; }
  body.home-v2 .site-header { height:auto; min-height:80px; }
  body.home-v2 .header-row {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    height:auto;
    gap:12px;
    padding-top:16px;
    padding-bottom:16px;
  }
  body.home-v2 .compact-menu-toggle { margin-left:0; min-height:44px; }
  body.home-v2 .header-install {
    grid-column:1 / -1;
    margin-left:0;
    min-height:44px;
    height:auto;
    font-size:14px;
  }
  body.home-v2 .site-header #compact-menu:not([hidden]) {
    left:0;
    right:0;
    width:100%;
    max-width:none;
  }
  html.no-js body.home-v2 .header-row { display:grid; padding-top:16px; padding-bottom:16px; }
  html.no-js body.home-v2 .site-header #compact-menu[hidden] {
    grid-column:1 / -1;
    order:initial;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  html.no-js body.home-v2 .header-install { grid-column:1 / -1; width:100%; margin-left:0; }
  body.home-v2 #architecture .av-cameras { grid-template-columns:minmax(0,1fr); }
  body.home-v2 #architecture .av-camera img { max-height:180px; object-fit:cover; }
  body.home-v2 #architecture .av-camera figcaption { height:auto; min-height:30px; flex-wrap:wrap; gap:4px 12px; }
  body.home-v2 #pwa-install-dialog { width:calc(100% - 32px); max-height:calc(100dvh - 32px); }
  body.home-v2 #pwa-install-dialog .pwa-dialog-top { padding:16px; gap:16px; align-items:start; }
  body.home-v2 #pwa-install-dialog .pwa-dialog-body { padding:16px; }
  body.home-v2 #pwa-install-dialog h2 { font-size:20px; }
  body.home-v2 #pwa-install-dialog .pwa-dialog-close { flex:none; }
}

/* Compact touch target repair: text metrics and desktop composition stay exact. */
@media (max-width:1279px) {
  body.home-v2 .site-header :is(.brand,.header-account,.compact-menu-toggle,.header-install),
  body.home-v2 .quiet-action,
  body.home-v2 .mode-controls button,
  body.home-v2 #pwa .pwa-install { min-height:44px; }
  body.home-v2 .site-header nav a { display:inline-flex; align-items:center; min-height:44px; }
  body.home-v2 .home-footer :is(.top__brand,.foot__col a,.foot__low a) {
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }
}
