/* Clear View - FREE SCROLL (Nov 3). html.cv-mob is set once at load by freescroll.js (viewport < 1024px or any touch device).
   Mobile/touch: native scrolling only. No scroll-snap anywhere, no overscroll capture on page-level scrollers. */
html.cv-mob,html.cv-mob body{overscroll-behavior:auto!important;scroll-snap-type:none!important}
html.cv-mob *{scroll-snap-type:none!important;scroll-snap-align:none!important}
html.cv-mob .g-clips{overscroll-behavior-x:auto!important}
/* in-flow sections (nothing is pinned on mobile): no pin-spacer leftovers, no scroll hints that promise a stepped scroll */
html.cv-mob #residential .rs-hint,html.cv-mob #commercial .cm-hint,html.cv-mob #tesla-ppf .tp-hint{display:none!important}
/* touch devices >= 1024px (tablets): the inner-page film strip is not pinned, so lay it out as the <1024 grid */
@media (min-width:1024px){html.cv-mob .pv-strip-track{width:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;transform:none!important}
  html.cv-mob .pv-strip-card{width:auto}}
/* horizontal swipe rows: overflow-x:auto makes overflow-y compute to auto too, and these rows overflowed ~10px vertically
   (focus ring / padding), so a vertical swipe that started on them latched onto the row and the page did not move (gallery clips, FAQ chips).
   Lock their Y axis so vertical gestures always go to the page. All devices. */
.g-clips,.f-nav ol,.rvm.rvm-static .rvm-row{overflow-y:hidden!important;overscroll-behavior-y:auto!important}

/* ===== MOBILE v10 (Nov 3): phones/touch (html.cv-mob) only — desktop never matches these selectors =====
   1. no backdrop-filter anywhere: every frosted panel gets a solid dark base under its existing gradient, so it reads the same
      over the dark page without re-blurring what scrolls behind it on every frame.
   2. no live Gaussian SVG/CSS filters on the scroll stages (hero + Tesla panel glow, Tesla guide glow). The Tesla DRL and
      sweep-bar blurs are swapped for a pre-rendered PNG / gradient by tesla.js. #feather (the approved M3 35% tint edge) stays. */
html.cv-mob *,html.cv-mob *::before,html.cv-mob *::after{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.cv-mob .nav::before{background:linear-gradient(155deg,rgba(255,255,255,.09),rgba(255,255,255,.02) 46%,rgba(63,230,240,.035)),rgba(9,12,14,.94)}
html.cv-mob .pv-glass{background:var(--pv-glass),rgba(10,13,16,.9)}
html.cv-mob .s1-card,html.cv-mob .r3-card{background:linear-gradient(155deg,rgba(255,255,255,.13),rgba(255,255,255,.035) 42%,rgba(63,230,240,.05)),rgba(11,14,17,.9)}
html.cv-mob #commercial .cm-copy{background:linear-gradient(155deg,rgba(255,255,255,.12),rgba(255,255,255,.035) 42%,rgba(63,230,240,.05)),rgba(9,12,15,.86)}
html.cv-mob .r3-ben li{background:linear-gradient(155deg,rgba(255,255,255,.11),rgba(255,255,255,.03) 50%,rgba(63,230,240,.05)),rgba(10,13,16,.84)}
html.cv-mob .rvm-badge{background:rgba(22,27,31,.92)}
html.cv-mob .nav-menu{background:rgba(26,30,33,.92)}
html.cv-mob .nav-drop{background:rgba(12,16,18,.97)}
html.cv-mob .ibox,html.cv-mob #tesla-ppf .tp-ibox{background:rgba(14,17,20,.92)}
html.cv-mob .cta{background:rgba(10,12,15,.95)}
html.cv-mob #commercial .cm-chip{background:rgba(8,12,16,.85)}
html.cv-mob .g-lb-bg{background:rgba(4,6,7,.97)}
html.cv-mob #panels,html.cv-mob #tp-panels{filter:none!important}
html.cv-mob #tp-panels polygon.glow{filter:none;stroke-width:12;stroke-opacity:.28}
html.cv-mob #tp-guides line.guide{filter:none}
html.cv-mob .g-play{background:rgba(5,6,7,.72)}
html.cv-mob .c-map-btn{background:rgba(5,6,7,.88)}

/* ===== MOBILE v11 (Nov 3) =====
   --cvvh = 100svh in px, locked by freescroll.js at load (re-measured only on a width change), so a URL-bar show/hide can never
   change any section height or the document height. Hero / residential / Tesla sit in div.cv-tall wrappers (stage + N viewports
   of travel) and are native CSS position:sticky stages: no JS pin, no snap, nothing touches touch/wheel, momentum runs straight through. */
html.cv-mob .cv-tall{position:relative;height:calc(var(--cvvh,100svh) * (1 + var(--cvn,1)));background:#050607}
html.cv-mob .cv-tall>.cv-stick{position:-webkit-sticky!important;position:sticky!important;top:0}
html.cv-mob #hero,html.cv-mob #residential,html.cv-mob #tesla-ppf,html.cv-mob #commercial{height:var(--cvvh,100svh)!important;min-height:0!important;max-height:none!important}
/* F: one "Professional look" on phones (the in-flow price card below the section); the section keeps its glare copy */
html.cv-mob #commercial #cm-c1{display:none!important}
